From 399734884334de2d1c617b87d6d3199d92fcc1e5 Mon Sep 17 00:00:00 2001 From: "REDMOND\\wiboris" Date: Wed, 6 Aug 2025 15:55:15 -0700 Subject: [PATCH 01/13] inital generation --- .../Generated/ApplicationPackageOperations.cs | 9 +- .../ApplicationPackageOperationsExtensions.cs | 8 +- .../Generated/BatchAccountOperations.cs | 4 +- .../BatchAccountOperationsExtensions.cs | 8 +- .../Generated/BatchManagementClient.cs | 10 +- .../IApplicationPackageOperations.cs | 5 +- .../Generated/IBatchAccountOperations.cs | 8 +- .../Generated/IBatchManagementClient.cs | 5 + .../Generated/ILocationOperations.cs | 56 -- .../INetworkSecurityPerimeterOperations.cs | 147 +++ .../IPrivateEndpointConnectionOperations.cs | 18 +- .../Generated/LocationOperations.cs | 405 -------- .../Generated/LocationOperationsExtensions.cs | 82 -- .../Generated/Models/AccessRule.cs | 58 ++ .../Generated/Models/AccessRuleDirection.cs | 25 + .../Generated/Models/AccessRuleProperties.cs | 108 ++ .../AccessRulePropertiesSubscriptionsItem.cs | 50 + .../Generated/Models/Application.cs | 9 +- .../Generated/Models/ApplicationPackage.cs | 9 +- .../Generated/Models/AuthenticationMode.cs | 2 +- .../Models/AutomaticOSUpgradePolicy.cs | 91 ++ .../Generated/Models/AzureProxyResource.cs | 88 ++ .../Generated/Models/AzureResource.cs | 88 ++ .../Generated/Models/BatchAccount.cs | 6 +- .../Models/BatchAccountCreateParameters.cs | 15 +- .../Models/BatchAccountCreateProperties.cs | 15 +- .../Models/BatchAccountProperties.cs | 4 +- .../Models/BatchAccountUpdateParameters.cs | 4 +- .../Models/BatchAccountUpdateProperties.cs | 4 +- .../Generated/Models/Certificate.cs | 9 +- .../CertificateCreateOrUpdateParameters.cs | 9 +- .../Generated/Models/CertificateReference.cs | 48 +- .../Models/CloudServiceConfiguration.cs | 90 -- .../Models/ContainerConfiguration.cs | 36 +- .../ContainerHostBatchBindMountEntry.cs | 69 ++ .../Generated/Models/ContainerHostDataPath.cs | 41 + .../Generated/Models/ContainerType.cs | 35 +- .../Generated/Models/CreatedByType.cs | 21 + .../Generated/Models/DataDisk.cs | 4 +- .../Models/DeploymentConfiguration.cs | 30 +- .../Generated/Models/DetectorResponse.cs | 9 +- .../Generated/Models/DiffDiskSettings.cs | 8 +- .../Models/DiskEncryptionConfiguration.cs | 2 +- .../Generated/Models/ErrorAdditionalInfo.cs | 58 ++ .../Generated/Models/ErrorDetail.cs | 88 ++ .../Generated/Models/ErrorResponse.cs | 55 + .../Models/ErrorResponseException.cs | 55 + .../Generated/Models/ImageReference.cs | 40 +- .../Generated/Models/InboundNatPool.cs | 11 +- .../Generated/Models/IssueType.cs | 39 + .../Generated/Models/KeyVaultProperties.cs | 10 +- .../Generated/Models/ManagedDisk.cs | 60 ++ .../Generated/Models/NetworkConfiguration.cs | 53 +- .../Models/NetworkSecurityPerimeter.cs | 68 ++ .../NetworkSecurityPerimeterConfiguration.cs | 64 ++ ...ecurityPerimeterConfigurationProperties.cs | 91 ++ ...PerimeterConfigurationProvisioningState.cs | 24 + ...yPerimeterReconcileConfigurationHeaders.cs | 55 + .../Models/NetworkSecurityProfile.cs | 88 ++ .../Generated/Models/OSDisk.cs | 44 +- .../Generated/Models/Pool.cs | 79 +- .../Generated/Models/PoolProperties.cs | 72 +- .../Models/PrivateEndpointConnection.cs | 9 +- .../Generated/Models/PrivateLinkResource.cs | 9 +- .../Generated/Models/ProvisioningIssue.cs | 67 ++ .../Models/ProvisioningIssueProperties.cs | 97 ++ .../Generated/Models/ProxyResource.cs | 51 +- .../Models/PublicNetworkAccessType.cs | 11 +- .../Generated/Models/Resource.cs | 47 +- .../Generated/Models/ResourceAssociation.cs | 58 ++ .../Models/ResourceAssociationAccessMode.cs | 32 + .../Generated/Models/RollingUpgradePolicy.cs | 209 ++++ .../Models/SecurityEncryptionTypes.cs | 19 + .../Generated/Models/SecurityProfile.cs | 79 ++ .../Generated/Models/SecurityTypes.cs | 61 ++ .../Models/ServiceArtifactReference.cs | 66 ++ .../Generated/Models/Severity.cs | 19 + .../Generated/Models/StartTask.cs | 4 +- .../Generated/Models/StorageAccountType.cs | 15 +- .../Generated/Models/SupportedSku.cs | 12 +- .../Generated/Models/SystemData.cs | 98 ++ .../Generated/Models/TaskContainerSettings.cs | 18 +- .../Generated/Models/UefiSettings.cs | 61 ++ .../Generated/Models/UpgradeMode.cs | 71 ++ .../Generated/Models/UpgradePolicy.cs | 97 ++ .../Generated/Models/VMDiskSecurityProfile.cs | 58 ++ .../Generated/Models/VMExtension.cs | 15 +- .../Models/VirtualMachineConfiguration.cs | 36 +- .../Models/WindowsUserConfiguration.cs | 9 +- .../NetworkSecurityPerimeterOperations.cs | 949 ++++++++++++++++++ ...rkSecurityPerimeterOperationsExtensions.cs | 223 ++++ .../PrivateEndpointConnectionOperations.cs | 29 +- ...eEndpointConnectionOperationsExtensions.cs | 16 +- src/Batch/Batch.Management.Sdk/README.md | 5 +- 94 files changed, 4349 insertions(+), 1007 deletions(-) create mode 100644 src/Batch/Batch.Management.Sdk/Generated/INetworkSecurityPerimeterOperations.cs create mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/AccessRule.cs create mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/AccessRuleDirection.cs create mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/AccessRuleProperties.cs create mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/AccessRulePropertiesSubscriptionsItem.cs create mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/AutomaticOSUpgradePolicy.cs create mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/AzureProxyResource.cs create mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/AzureResource.cs delete mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/CloudServiceConfiguration.cs create mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/ContainerHostBatchBindMountEntry.cs create mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/ContainerHostDataPath.cs create mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/CreatedByType.cs create mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/ErrorAdditionalInfo.cs create mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/ErrorDetail.cs create mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/ErrorResponse.cs create mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/ErrorResponseException.cs create mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/IssueType.cs create mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/ManagedDisk.cs create mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/NetworkSecurityPerimeter.cs create mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/NetworkSecurityPerimeterConfiguration.cs create mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/NetworkSecurityPerimeterConfigurationProperties.cs create mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/NetworkSecurityPerimeterConfigurationProvisioningState.cs create mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/NetworkSecurityPerimeterReconcileConfigurationHeaders.cs create mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/NetworkSecurityProfile.cs create mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/ProvisioningIssue.cs create mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/ProvisioningIssueProperties.cs create mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/ResourceAssociation.cs create mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/ResourceAssociationAccessMode.cs create mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/RollingUpgradePolicy.cs create mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/SecurityEncryptionTypes.cs create mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/SecurityProfile.cs create mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/SecurityTypes.cs create mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/ServiceArtifactReference.cs create mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/Severity.cs create mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/SystemData.cs create mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/UefiSettings.cs create mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/UpgradeMode.cs create mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/UpgradePolicy.cs create mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/VMDiskSecurityProfile.cs create mode 100644 src/Batch/Batch.Management.Sdk/Generated/NetworkSecurityPerimeterOperations.cs create mode 100644 src/Batch/Batch.Management.Sdk/Generated/NetworkSecurityPerimeterOperationsExtensions.cs diff --git a/src/Batch/Batch.Management.Sdk/Generated/ApplicationPackageOperations.cs b/src/Batch/Batch.Management.Sdk/Generated/ApplicationPackageOperations.cs index 709c9e26f6b6..528cccd10319 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/ApplicationPackageOperations.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/ApplicationPackageOperations.cs @@ -349,6 +349,9 @@ internal ApplicationPackageOperations (BatchManagementClient client) /// /// The version of the application. /// + /// + /// The tags of the resource. + /// /// /// Headers that will be added to request. /// @@ -370,7 +373,7 @@ internal ApplicationPackageOperations (BatchManagementClient client) /// /// A response object containing the response body and response headers. /// - public async System.Threading.Tasks.Task> CreateWithHttpMessagesAsync(string resourceGroupName, string accountName, string applicationName, string versionName, System.Collections.Generic.Dictionary> customHeaders = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + public async System.Threading.Tasks.Task> CreateWithHttpMessagesAsync(string resourceGroupName, string accountName, string applicationName, string versionName, System.Collections.Generic.IDictionary tags = default(System.Collections.Generic.IDictionary), System.Collections.Generic.Dictionary> customHeaders = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { @@ -449,6 +452,10 @@ internal ApplicationPackageOperations (BatchManagementClient client) } ApplicationPackage parameters = new ApplicationPackage(); + if(tags != null) + { + parameters.Tags = tags; + } // Tracing bool _shouldTrace = Microsoft.Rest.ServiceClientTracing.IsEnabled; string _invocationId = null; diff --git a/src/Batch/Batch.Management.Sdk/Generated/ApplicationPackageOperationsExtensions.cs b/src/Batch/Batch.Management.Sdk/Generated/ApplicationPackageOperationsExtensions.cs index 34c9024b3036..724c4c711e8b 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/ApplicationPackageOperationsExtensions.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/ApplicationPackageOperationsExtensions.cs @@ -89,9 +89,9 @@ public static ApplicationPackage Activate(this IApplicationPackageOperations ope /// /// The version of the application. /// - public static ApplicationPackage Create(this IApplicationPackageOperations operations, string resourceGroupName, string accountName, string applicationName, string versionName) + public static ApplicationPackage Create(this IApplicationPackageOperations operations, string resourceGroupName, string accountName, string applicationName, string versionName, System.Collections.Generic.IDictionary tags = default(System.Collections.Generic.IDictionary)) { - return ((IApplicationPackageOperations)operations).CreateAsync(resourceGroupName, accountName, applicationName, versionName).GetAwaiter().GetResult(); + return ((IApplicationPackageOperations)operations).CreateAsync(resourceGroupName, accountName, applicationName, versionName, tags).GetAwaiter().GetResult(); } /// @@ -119,9 +119,9 @@ public static ApplicationPackage Create(this IApplicationPackageOperations opera /// /// The cancellation token. /// - public static async System.Threading.Tasks.Task CreateAsync(this IApplicationPackageOperations operations, string resourceGroupName, string accountName, string applicationName, string versionName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + public static async System.Threading.Tasks.Task CreateAsync(this IApplicationPackageOperations operations, string resourceGroupName, string accountName, string applicationName, string versionName, System.Collections.Generic.IDictionary tags = default(System.Collections.Generic.IDictionary), System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { - using (var _result = await operations.CreateWithHttpMessagesAsync(resourceGroupName, accountName, applicationName, versionName, null, cancellationToken).ConfigureAwait(false)) + using (var _result = await operations.CreateWithHttpMessagesAsync(resourceGroupName, accountName, applicationName, versionName, tags, null, cancellationToken).ConfigureAwait(false)) { return _result.Body; } diff --git a/src/Batch/Batch.Management.Sdk/Generated/BatchAccountOperations.cs b/src/Batch/Batch.Management.Sdk/Generated/BatchAccountOperations.cs index b470cb9da37c..40c384cc58db 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/BatchAccountOperations.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/BatchAccountOperations.cs @@ -2111,7 +2111,7 @@ internal BatchAccountOperations (BatchManagementClient client) /// network allows outbound access to these endpoints. Failure to allow access /// to these endpoints may cause Batch to mark the affected nodes as unusable. /// For more information about creating a pool inside of a virtual network, see - /// https://docs.microsoft.com/en-us/azure/batch/batch-virtual-network. + /// https://learn.microsoft.com/azure/batch/batch-virtual-network. /// /// /// The name of the resource group that contains the Batch account. @@ -3375,7 +3375,7 @@ internal BatchAccountOperations (BatchManagementClient client) /// network allows outbound access to these endpoints. Failure to allow access /// to these endpoints may cause Batch to mark the affected nodes as unusable. /// For more information about creating a pool inside of a virtual network, see - /// https://docs.microsoft.com/en-us/azure/batch/batch-virtual-network. + /// https://learn.microsoft.com/azure/batch/batch-virtual-network. /// /// /// The NextLink from the previous successful call to List operation. diff --git a/src/Batch/Batch.Management.Sdk/Generated/BatchAccountOperationsExtensions.cs b/src/Batch/Batch.Management.Sdk/Generated/BatchAccountOperationsExtensions.cs index 1ceac9aca4ca..1e7f5c1fcf5d 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/BatchAccountOperationsExtensions.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/BatchAccountOperationsExtensions.cs @@ -471,7 +471,7 @@ public static DetectorResponse GetDetector(this IBatchAccountOperations operatio /// network allows outbound access to these endpoints. Failure to allow access /// to these endpoints may cause Batch to mark the affected nodes as unusable. /// For more information about creating a pool inside of a virtual network, see - /// https://docs.microsoft.com/en-us/azure/batch/batch-virtual-network. + /// https://learn.microsoft.com/azure/batch/batch-virtual-network. /// /// /// The operations group for this extension method. @@ -494,7 +494,7 @@ public static Microsoft.Rest.Azure.IPage ListOutbou /// network allows outbound access to these endpoints. Failure to allow access /// to these endpoints may cause Batch to mark the affected nodes as unusable. /// For more information about creating a pool inside of a virtual network, see - /// https://docs.microsoft.com/en-us/azure/batch/batch-virtual-network. + /// https://learn.microsoft.com/azure/batch/batch-virtual-network. /// /// /// The operations group for this extension method. @@ -715,7 +715,7 @@ public static Microsoft.Rest.Azure.IPage ListDetectorsNext(thi /// network allows outbound access to these endpoints. Failure to allow access /// to these endpoints may cause Batch to mark the affected nodes as unusable. /// For more information about creating a pool inside of a virtual network, see - /// https://docs.microsoft.com/en-us/azure/batch/batch-virtual-network. + /// https://learn.microsoft.com/azure/batch/batch-virtual-network. /// /// /// The operations group for this extension method. @@ -735,7 +735,7 @@ public static Microsoft.Rest.Azure.IPage ListOutbou /// network allows outbound access to these endpoints. Failure to allow access /// to these endpoints may cause Batch to mark the affected nodes as unusable. /// For more information about creating a pool inside of a virtual network, see - /// https://docs.microsoft.com/en-us/azure/batch/batch-virtual-network. + /// https://learn.microsoft.com/azure/batch/batch-virtual-network. /// /// /// The operations group for this extension method. diff --git a/src/Batch/Batch.Management.Sdk/Generated/BatchManagementClient.cs b/src/Batch/Batch.Management.Sdk/Generated/BatchManagementClient.cs index d0654bb16452..80b6eb71a1ce 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/BatchManagementClient.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/BatchManagementClient.cs @@ -98,6 +98,10 @@ public partial class BatchManagementClient : Microsoft.Rest.ServiceClient public virtual IPoolOperations Pool { get; private set; } /// + /// Gets the INetworkSecurityPerimeterOperations + /// + public virtual INetworkSecurityPerimeterOperations NetworkSecurityPerimeter { get; private set; } + /// /// Initializes a new instance of the BatchManagementClient class. /// /// @@ -301,6 +305,9 @@ public BatchManagementClient(System.Uri baseUri, Microsoft.Rest.ServiceClientCre /// /// Optional. The http client handler used to handle http transport. /// + /// + /// Optional. The delegating handlers to add to the http client pipeline. + /// /// /// Thrown when a required parameter is null /// @@ -341,8 +348,9 @@ private void Initialize() this.PrivateLinkResource = new PrivateLinkResourceOperations(this); this.PrivateEndpointConnection = new PrivateEndpointConnectionOperations(this); this.Pool = new PoolOperations(this); + this.NetworkSecurityPerimeter = new NetworkSecurityPerimeterOperations(this); this.BaseUri = new System.Uri("https://management.azure.com"); - this.ApiVersion = "2022-10-01"; + this.ApiVersion = "2024-07-01"; this.AcceptLanguage = "en-US"; this.LongRunningOperationRetryTimeout = 30; this.GenerateClientRequestId = true; diff --git a/src/Batch/Batch.Management.Sdk/Generated/IApplicationPackageOperations.cs b/src/Batch/Batch.Management.Sdk/Generated/IApplicationPackageOperations.cs index 85c81fa9f7ca..ef9cbb09fac1 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/IApplicationPackageOperations.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/IApplicationPackageOperations.cs @@ -78,6 +78,9 @@ public partial interface IApplicationPackageOperations /// /// The version of the application. /// + /// + /// The tags of the resource. + /// /// /// The headers that will be added to request. /// @@ -90,7 +93,7 @@ public partial interface IApplicationPackageOperations /// /// Thrown when unable to deserialize the response /// - System.Threading.Tasks.Task> CreateWithHttpMessagesAsync(string resourceGroupName, string accountName, string applicationName, string versionName, System.Collections.Generic.Dictionary> customHeaders = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task> CreateWithHttpMessagesAsync(string resourceGroupName, string accountName, string applicationName, string versionName, System.Collections.Generic.IDictionary tags = default(System.Collections.Generic.IDictionary), System.Collections.Generic.Dictionary> customHeaders = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); /// /// Deletes an application package record and its associated binary file. diff --git a/src/Batch/Batch.Management.Sdk/Generated/IBatchAccountOperations.cs b/src/Batch/Batch.Management.Sdk/Generated/IBatchAccountOperations.cs index 7bbb53b99291..2139fa6dfcfb 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/IBatchAccountOperations.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/IBatchAccountOperations.cs @@ -336,7 +336,7 @@ public partial interface IBatchAccountOperations /// network allows outbound access to these endpoints. Failure to allow access /// to these endpoints may cause Batch to mark the affected nodes as unusable. /// For more information about creating a pool inside of a virtual network, see - /// https://docs.microsoft.com/en-us/azure/batch/batch-virtual-network. + /// https://learn.microsoft.com/azure/batch/batch-virtual-network. /// /// /// Lists the endpoints that a Batch Compute Node under this Batch Account may @@ -345,7 +345,7 @@ public partial interface IBatchAccountOperations /// network allows outbound access to these endpoints. Failure to allow access /// to these endpoints may cause Batch to mark the affected nodes as unusable. /// For more information about creating a pool inside of a virtual network, see - /// https://docs.microsoft.com/en-us/azure/batch/batch-virtual-network. + /// https://learn.microsoft.com/azure/batch/batch-virtual-network. /// /// /// The name of the resource group that contains the Batch account. @@ -506,7 +506,7 @@ public partial interface IBatchAccountOperations /// network allows outbound access to these endpoints. Failure to allow access /// to these endpoints may cause Batch to mark the affected nodes as unusable. /// For more information about creating a pool inside of a virtual network, see - /// https://docs.microsoft.com/en-us/azure/batch/batch-virtual-network. + /// https://learn.microsoft.com/azure/batch/batch-virtual-network. /// /// /// Lists the endpoints that a Batch Compute Node under this Batch Account may @@ -515,7 +515,7 @@ public partial interface IBatchAccountOperations /// network allows outbound access to these endpoints. Failure to allow access /// to these endpoints may cause Batch to mark the affected nodes as unusable. /// For more information about creating a pool inside of a virtual network, see - /// https://docs.microsoft.com/en-us/azure/batch/batch-virtual-network. + /// https://learn.microsoft.com/azure/batch/batch-virtual-network. /// /// /// The NextLink from the previous successful call to List operation. diff --git a/src/Batch/Batch.Management.Sdk/Generated/IBatchManagementClient.cs b/src/Batch/Batch.Management.Sdk/Generated/IBatchManagementClient.cs index 83562fff68f6..066fc167d4aa 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/IBatchManagementClient.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/IBatchManagementClient.cs @@ -114,5 +114,10 @@ public partial interface IBatchManagementClient : System.IDisposable /// IPoolOperations Pool { get; } + /// + /// Gets the INetworkSecurityPerimeterOperations + /// + INetworkSecurityPerimeterOperations NetworkSecurityPerimeter { get; } + } } \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/ILocationOperations.cs b/src/Batch/Batch.Management.Sdk/Generated/ILocationOperations.cs index d9c71c0a6ca9..71606ba55c87 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/ILocationOperations.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/ILocationOperations.cs @@ -69,37 +69,6 @@ public partial interface ILocationOperations /// System.Threading.Tasks.Task>> ListSupportedVirtualMachineSkusWithHttpMessagesAsync(string locationName, int? maxresults = default(int?), string filter = default(string), System.Collections.Generic.Dictionary> customHeaders = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - /// - /// Gets the list of Batch supported Cloud Service VM sizes available at the - /// given location. - /// - /// - /// Gets the list of Batch supported Cloud Service VM sizes available at the - /// given location. - /// - /// - /// The region for which to retrieve Batch service supported SKUs. - /// - /// - /// The maximum number of items to return in the response. - /// - /// - /// OData filter expression. Valid properties for filtering are "familyName". - /// - /// - /// The headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when unable to deserialize the response - /// - System.Threading.Tasks.Task>> ListSupportedCloudServiceSkusWithHttpMessagesAsync(string locationName, int? maxresults = default(int?), string filter = default(string), System.Collections.Generic.Dictionary> customHeaders = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - /// /// Checks whether the Batch account name is available in the specified region. /// @@ -151,30 +120,5 @@ public partial interface ILocationOperations /// System.Threading.Tasks.Task>> ListSupportedVirtualMachineSkusNextWithHttpMessagesAsync(string nextPageLink, System.Collections.Generic.Dictionary> customHeaders = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - /// - /// Gets the list of Batch supported Cloud Service VM sizes available at the - /// given location. - /// - /// - /// Gets the list of Batch supported Cloud Service VM sizes available at the - /// given location. - /// - /// - /// The NextLink from the previous successful call to List operation. - /// - /// - /// The headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when unable to deserialize the response - /// - System.Threading.Tasks.Task>> ListSupportedCloudServiceSkusNextWithHttpMessagesAsync(string nextPageLink, System.Collections.Generic.Dictionary> customHeaders = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - } } \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/INetworkSecurityPerimeterOperations.cs b/src/Batch/Batch.Management.Sdk/Generated/INetworkSecurityPerimeterOperations.cs new file mode 100644 index 000000000000..49871b57073c --- /dev/null +++ b/src/Batch/Batch.Management.Sdk/Generated/INetworkSecurityPerimeterOperations.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.Management.Batch +{ + using Microsoft.Rest.Azure; + using Models; + + /// + /// NetworkSecurityPerimeterOperations operations. + /// + public partial interface INetworkSecurityPerimeterOperations + { + /// + /// Lists all of the NSP configurations in the specified account. + /// + /// + /// Lists all of the NSP configurations in the specified account. + /// + /// + /// The name of the resource group that contains the Batch account. + /// + /// + /// The name of the Batch account. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + System.Threading.Tasks.Task>> ListConfigurationsWithHttpMessagesAsync(string resourceGroupName, string accountName, System.Collections.Generic.Dictionary> customHeaders = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + + /// + /// Gets information about the specified NSP configuration. + /// + /// + /// Gets information about the specified NSP configuration. + /// + /// + /// The name of the resource group that contains the Batch account. + /// + /// + /// The name of the Batch account. + /// + /// + /// The name for Network Security Perimeter configuration + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + System.Threading.Tasks.Task> GetConfigurationWithHttpMessagesAsync(string resourceGroupName, string accountName, string networkSecurityPerimeterConfigurationName, System.Collections.Generic.Dictionary> customHeaders = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + + /// + /// Reconciles the specified NSP configuration. + /// + /// + /// Reconciles the specified NSP configuration. + /// + /// + /// The name of the resource group that contains the Batch account. + /// + /// + /// The name of the Batch account. + /// + /// + /// The name for Network Security Perimeter configuration + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + System.Threading.Tasks.Task> ReconcileConfigurationWithHttpMessagesAsync(string resourceGroupName, string accountName, string networkSecurityPerimeterConfigurationName, System.Collections.Generic.Dictionary> customHeaders = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + + /// + /// Reconciles the specified NSP configuration. + /// + /// + /// Reconciles the specified NSP configuration. + /// + /// + /// The name of the resource group that contains the Batch account. + /// + /// + /// The name of the Batch account. + /// + /// + /// The name for Network Security Perimeter configuration + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + System.Threading.Tasks.Task> BeginReconcileConfigurationWithHttpMessagesAsync(string resourceGroupName, string accountName, string networkSecurityPerimeterConfigurationName, System.Collections.Generic.Dictionary> customHeaders = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + + /// + /// Lists all of the NSP configurations in the specified account. + /// + /// + /// Lists all of the NSP configurations in the specified account. + /// + /// + /// The NextLink from the previous successful call to List operation. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + System.Threading.Tasks.Task>> ListConfigurationsNextWithHttpMessagesAsync(string nextPageLink, System.Collections.Generic.Dictionary> customHeaders = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/IPrivateEndpointConnectionOperations.cs b/src/Batch/Batch.Management.Sdk/Generated/IPrivateEndpointConnectionOperations.cs index 233a6afc572b..8a5caf1d7593 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/IPrivateEndpointConnectionOperations.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/IPrivateEndpointConnectionOperations.cs @@ -92,9 +92,10 @@ public partial interface IPrivateEndpointConnectionOperations /// The state (ETag) version of the private endpoint connection to update. This /// value can be omitted or set to "*" to apply the operation unconditionally. /// - /// - /// The private link service connection state of the private endpoint - /// connection + /// + /// PrivateEndpointConnection properties that should be updated. Properties + /// that are supplied will be updated, any property not supplied will be + /// unchanged. /// /// /// The headers that will be added to request. @@ -108,7 +109,7 @@ public partial interface IPrivateEndpointConnectionOperations /// /// Thrown when unable to deserialize the response /// - System.Threading.Tasks.Task> UpdateWithHttpMessagesAsync(string resourceGroupName, string accountName, string privateEndpointConnectionName, PrivateLinkServiceConnectionState privateLinkServiceConnectionState = default(PrivateLinkServiceConnectionState), string ifMatch = default(string), System.Collections.Generic.Dictionary> customHeaders = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task> UpdateWithHttpMessagesAsync(string resourceGroupName, string accountName, string privateEndpointConnectionName, PrivateEndpointConnection parameters, string ifMatch = default(string), System.Collections.Generic.Dictionary> customHeaders = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); /// /// Deletes the specified private endpoint connection. @@ -157,9 +158,10 @@ public partial interface IPrivateEndpointConnectionOperations /// The state (ETag) version of the private endpoint connection to update. This /// value can be omitted or set to "*" to apply the operation unconditionally. /// - /// - /// The private link service connection state of the private endpoint - /// connection + /// + /// PrivateEndpointConnection properties that should be updated. Properties + /// that are supplied will be updated, any property not supplied will be + /// unchanged. /// /// /// The headers that will be added to request. @@ -173,7 +175,7 @@ public partial interface IPrivateEndpointConnectionOperations /// /// Thrown when unable to deserialize the response /// - System.Threading.Tasks.Task> BeginUpdateWithHttpMessagesAsync(string resourceGroupName, string accountName, string privateEndpointConnectionName, PrivateLinkServiceConnectionState privateLinkServiceConnectionState = default(PrivateLinkServiceConnectionState), string ifMatch = default(string), System.Collections.Generic.Dictionary> customHeaders = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task> BeginUpdateWithHttpMessagesAsync(string resourceGroupName, string accountName, string privateEndpointConnectionName, PrivateEndpointConnection parameters, string ifMatch = default(string), System.Collections.Generic.Dictionary> customHeaders = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); /// /// Deletes the specified private endpoint connection. diff --git a/src/Batch/Batch.Management.Sdk/Generated/LocationOperations.cs b/src/Batch/Batch.Management.Sdk/Generated/LocationOperations.cs index 6ccb5b76ea2d..24fce390fb61 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/LocationOperations.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/LocationOperations.cs @@ -463,228 +463,6 @@ internal LocationOperations (BatchManagementClient client) - } - /// - /// Gets the list of Batch supported Cloud Service VM sizes available at the - /// given location. - /// - /// - /// The region for which to retrieve Batch service supported SKUs. - /// - /// - /// The maximum number of items to return in the response. - /// - /// - /// OData filter expression. Valid properties for filtering are "familyName". - /// - /// - /// Headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when unable to deserialize the response - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// A response object containing the response body and response headers. - /// - public async System.Threading.Tasks.Task>> ListSupportedCloudServiceSkusWithHttpMessagesAsync(string locationName, int? maxresults = default(int?), string filter = default(string), System.Collections.Generic.Dictionary> customHeaders = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) - { - - - - - if (locationName == null) - { - throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.CannotBeNull, "locationName"); - } - - - - if (this.Client.ApiVersion == null) - { - throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.CannotBeNull, "this.Client.ApiVersion"); - } - - if (this.Client.SubscriptionId == null) - { - throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.CannotBeNull, "this.Client.SubscriptionId"); - } - - // Tracing - bool _shouldTrace = Microsoft.Rest.ServiceClientTracing.IsEnabled; - string _invocationId = null; - if (_shouldTrace) - { - _invocationId = Microsoft.Rest.ServiceClientTracing.NextInvocationId.ToString(); - System.Collections.Generic.Dictionary tracingParameters = new System.Collections.Generic.Dictionary(); - tracingParameters.Add("locationName", locationName); - tracingParameters.Add("maxresults", maxresults); - tracingParameters.Add("filter", filter); - - - tracingParameters.Add("cancellationToken", cancellationToken); - Microsoft.Rest.ServiceClientTracing.Enter(_invocationId, this, "ListSupportedCloudServiceSkus", tracingParameters); - } - // Construct URL - - var _baseUrl = this.Client.BaseUri.AbsoluteUri; - var _url = new System.Uri(new System.Uri(_baseUrl + (_baseUrl.EndsWith("/") ? "" : "/")), "subscriptions/{subscriptionId}/providers/Microsoft.Batch/locations/{locationName}/cloudServiceSkus").ToString(); - _url = _url.Replace("{locationName}", System.Uri.EscapeDataString(locationName)); - _url = _url.Replace("{subscriptionId}", System.Uri.EscapeDataString(this.Client.SubscriptionId)); - - System.Collections.Generic.List _queryParameters = new System.Collections.Generic.List(); - if (maxresults != null) - { - _queryParameters.Add(string.Format("maxresults={0}", System.Uri.EscapeDataString(Microsoft.Rest.Serialization.SafeJsonConvert.SerializeObject(maxresults, this.Client.SerializationSettings).Trim('"')))); - } - if (filter != null) - { - _queryParameters.Add(string.Format("$filter={0}", System.Uri.EscapeDataString(filter))); - } - if (this.Client.ApiVersion != null) - { - _queryParameters.Add(string.Format("api-version={0}", System.Uri.EscapeDataString(this.Client.ApiVersion))); - } - if (_queryParameters.Count > 0) - { - _url += (_url.Contains("?") ? "&" : "?") + string.Join("&", _queryParameters); - } - // Create HTTP transport objects - var _httpRequest = new System.Net.Http.HttpRequestMessage(); - System.Net.Http.HttpResponseMessage _httpResponse = null; - _httpRequest.Method = new System.Net.Http.HttpMethod("GET"); - _httpRequest.RequestUri = new System.Uri(_url); - // Set Headers - if (this.Client.GenerateClientRequestId != null && this.Client.GenerateClientRequestId.Value) - { - _httpRequest.Headers.TryAddWithoutValidation("x-ms-client-request-id", System.Guid.NewGuid().ToString()); - } - if (this.Client.AcceptLanguage != null) - { - if (_httpRequest.Headers.Contains("accept-language")) - { - _httpRequest.Headers.Remove("accept-language"); - } - _httpRequest.Headers.TryAddWithoutValidation("accept-language", this.Client.AcceptLanguage); - } - - if (customHeaders != null) - { - foreach(var _header in customHeaders) - { - if (_httpRequest.Headers.Contains(_header.Key)) - { - _httpRequest.Headers.Remove(_header.Key); - } - _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); - } - } - // Serialize Request - string _requestContent = null; - // Set Credentials - if (this.Client.Credentials != null) - { - cancellationToken.ThrowIfCancellationRequested(); - await this.Client.Credentials.ProcessHttpRequestAsync(_httpRequest, cancellationToken).ConfigureAwait(false); - } - // Send Request - if (_shouldTrace) - { - Microsoft.Rest.ServiceClientTracing.SendRequest(_invocationId, _httpRequest); - } - cancellationToken.ThrowIfCancellationRequested(); - _httpResponse = await this.Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); - if (_shouldTrace) - { - Microsoft.Rest.ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); - } - - System.Net.HttpStatusCode _statusCode = _httpResponse.StatusCode; - cancellationToken.ThrowIfCancellationRequested(); - string _responseContent = null; - - if ((int)_statusCode != 200) - { - var ex = new Microsoft.Rest.Azure.CloudException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); - try - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - CloudError _errorBody = Microsoft.Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, this.Client.DeserializationSettings); - if (_errorBody != null) - { - ex = new Microsoft.Rest.Azure.CloudException(_errorBody.Message); - ex.Body = _errorBody; - } - } - catch (Newtonsoft.Json.JsonException) - { - // Ignore the exception - } - ex.Request = new Microsoft.Rest.HttpRequestMessageWrapper(_httpRequest, _requestContent); - ex.Response = new Microsoft.Rest.HttpResponseMessageWrapper(_httpResponse, _responseContent); - if (_httpResponse.Headers.Contains("x-ms-request-id")) - { - ex.RequestId = _httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault(); - } - if (_shouldTrace) - { - Microsoft.Rest.ServiceClientTracing.Error(_invocationId, ex); - } - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw ex; - } - // Create Result - var _result = new Microsoft.Rest.Azure.AzureOperationResponse>(); - _result.Request = _httpRequest; - _result.Response = _httpResponse; - - if (_httpResponse.Headers.Contains("x-ms-request-id")) - { - _result.RequestId = _httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault(); - } - // Deserialize Response - if ((int)_statusCode == 200) - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - try - { - _result.Body = Microsoft.Rest.Serialization.SafeJsonConvert.DeserializeObject>(_responseContent, this.Client.DeserializationSettings); - } - catch (Newtonsoft.Json.JsonException ex) - { - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw new Microsoft.Rest.SerializationException("Unable to deserialize the response.", _responseContent, ex); - } - } - if (_shouldTrace) - { - Microsoft.Rest.ServiceClientTracing.Exit(_invocationId, _result); - } - return _result; - - - - - } /// /// Checks whether the Batch account name is available in the specified region. @@ -1086,189 +864,6 @@ internal LocationOperations (BatchManagementClient client) - } - /// - /// Gets the list of Batch supported Cloud Service VM sizes available at the - /// given location. - /// - /// - /// The NextLink from the previous successful call to List operation. - /// - /// - /// Headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when unable to deserialize the response - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// A response object containing the response body and response headers. - /// - public async System.Threading.Tasks.Task>> ListSupportedCloudServiceSkusNextWithHttpMessagesAsync(string nextPageLink, System.Collections.Generic.Dictionary> customHeaders = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) - { - - if (nextPageLink == null) - { - throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.CannotBeNull, "nextPageLink"); - } - // Tracing - bool _shouldTrace = Microsoft.Rest.ServiceClientTracing.IsEnabled; - string _invocationId = null; - if (_shouldTrace) - { - _invocationId = Microsoft.Rest.ServiceClientTracing.NextInvocationId.ToString(); - System.Collections.Generic.Dictionary tracingParameters = new System.Collections.Generic.Dictionary(); - tracingParameters.Add("nextPageLink", nextPageLink); - - - tracingParameters.Add("cancellationToken", cancellationToken); - Microsoft.Rest.ServiceClientTracing.Enter(_invocationId, this, "ListSupportedCloudServiceSkusNext", tracingParameters); - } - // Construct URL - string _url = "{nextLink}"; - _url = _url.Replace("{nextLink}", nextPageLink); - - System.Collections.Generic.List _queryParameters = new System.Collections.Generic.List(); - if (_queryParameters.Count > 0) - { - _url += (_url.Contains("?") ? "&" : "?") + string.Join("&", _queryParameters); - } - // Create HTTP transport objects - var _httpRequest = new System.Net.Http.HttpRequestMessage(); - System.Net.Http.HttpResponseMessage _httpResponse = null; - _httpRequest.Method = new System.Net.Http.HttpMethod("GET"); - _httpRequest.RequestUri = new System.Uri(_url); - // Set Headers - if (this.Client.GenerateClientRequestId != null && this.Client.GenerateClientRequestId.Value) - { - _httpRequest.Headers.TryAddWithoutValidation("x-ms-client-request-id", System.Guid.NewGuid().ToString()); - } - if (this.Client.AcceptLanguage != null) - { - if (_httpRequest.Headers.Contains("accept-language")) - { - _httpRequest.Headers.Remove("accept-language"); - } - _httpRequest.Headers.TryAddWithoutValidation("accept-language", this.Client.AcceptLanguage); - } - - if (customHeaders != null) - { - foreach(var _header in customHeaders) - { - if (_httpRequest.Headers.Contains(_header.Key)) - { - _httpRequest.Headers.Remove(_header.Key); - } - _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); - } - } - // Serialize Request - string _requestContent = null; - // Set Credentials - if (this.Client.Credentials != null) - { - cancellationToken.ThrowIfCancellationRequested(); - await this.Client.Credentials.ProcessHttpRequestAsync(_httpRequest, cancellationToken).ConfigureAwait(false); - } - // Send Request - if (_shouldTrace) - { - Microsoft.Rest.ServiceClientTracing.SendRequest(_invocationId, _httpRequest); - } - cancellationToken.ThrowIfCancellationRequested(); - _httpResponse = await this.Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); - if (_shouldTrace) - { - Microsoft.Rest.ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); - } - - System.Net.HttpStatusCode _statusCode = _httpResponse.StatusCode; - cancellationToken.ThrowIfCancellationRequested(); - string _responseContent = null; - - if ((int)_statusCode != 200) - { - var ex = new Microsoft.Rest.Azure.CloudException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); - try - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - CloudError _errorBody = Microsoft.Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, this.Client.DeserializationSettings); - if (_errorBody != null) - { - ex = new Microsoft.Rest.Azure.CloudException(_errorBody.Message); - ex.Body = _errorBody; - } - } - catch (Newtonsoft.Json.JsonException) - { - // Ignore the exception - } - ex.Request = new Microsoft.Rest.HttpRequestMessageWrapper(_httpRequest, _requestContent); - ex.Response = new Microsoft.Rest.HttpResponseMessageWrapper(_httpResponse, _responseContent); - if (_httpResponse.Headers.Contains("x-ms-request-id")) - { - ex.RequestId = _httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault(); - } - if (_shouldTrace) - { - Microsoft.Rest.ServiceClientTracing.Error(_invocationId, ex); - } - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw ex; - } - // Create Result - var _result = new Microsoft.Rest.Azure.AzureOperationResponse>(); - _result.Request = _httpRequest; - _result.Response = _httpResponse; - - if (_httpResponse.Headers.Contains("x-ms-request-id")) - { - _result.RequestId = _httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault(); - } - // Deserialize Response - if ((int)_statusCode == 200) - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - try - { - _result.Body = Microsoft.Rest.Serialization.SafeJsonConvert.DeserializeObject>(_responseContent, this.Client.DeserializationSettings); - } - catch (Newtonsoft.Json.JsonException ex) - { - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw new Microsoft.Rest.SerializationException("Unable to deserialize the response.", _responseContent, ex); - } - } - if (_shouldTrace) - { - Microsoft.Rest.ServiceClientTracing.Exit(_invocationId, _result); - } - return _result; - - - - - } } } \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/LocationOperationsExtensions.cs b/src/Batch/Batch.Management.Sdk/Generated/LocationOperationsExtensions.cs index 0d664da956bc..34fb2c6e958c 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/LocationOperationsExtensions.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/LocationOperationsExtensions.cs @@ -95,53 +95,6 @@ public static BatchLocationQuota GetQuotas(this ILocationOperations operations, } } /// - /// Gets the list of Batch supported Cloud Service VM sizes available at the - /// given location. - /// - /// - /// The operations group for this extension method. - /// - /// - /// The region for which to retrieve Batch service supported SKUs. - /// - /// - /// The maximum number of items to return in the response. - /// - /// - /// OData filter expression. Valid properties for filtering are "familyName". - /// - public static Microsoft.Rest.Azure.IPage ListSupportedCloudServiceSkus(this ILocationOperations operations, string locationName, int? maxresults = default(int?), string filter = default(string)) - { - return ((ILocationOperations)operations).ListSupportedCloudServiceSkusAsync(locationName, maxresults, filter).GetAwaiter().GetResult(); - } - - /// - /// Gets the list of Batch supported Cloud Service VM sizes available at the - /// given location. - /// - /// - /// The operations group for this extension method. - /// - /// - /// The region for which to retrieve Batch service supported SKUs. - /// - /// - /// The maximum number of items to return in the response. - /// - /// - /// OData filter expression. Valid properties for filtering are "familyName". - /// - /// - /// The cancellation token. - /// - public static async System.Threading.Tasks.Task> ListSupportedCloudServiceSkusAsync(this ILocationOperations operations, string locationName, int? maxresults = default(int?), string filter = default(string), System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) - { - using (var _result = await operations.ListSupportedCloudServiceSkusWithHttpMessagesAsync(locationName, maxresults, filter, null, cancellationToken).ConfigureAwait(false)) - { - return _result.Body; - } - } - /// /// Checks whether the Batch account name is available in the specified region. /// /// @@ -209,40 +162,5 @@ public static Microsoft.Rest.Azure.IPage ListSupportedVirtualMachi return _result.Body; } } - /// - /// Gets the list of Batch supported Cloud Service VM sizes available at the - /// given location. - /// - /// - /// The operations group for this extension method. - /// - /// - /// The NextLink from the previous successful call to List operation. - /// - public static Microsoft.Rest.Azure.IPage ListSupportedCloudServiceSkusNext(this ILocationOperations operations, string nextPageLink) - { - return ((ILocationOperations)operations).ListSupportedCloudServiceSkusNextAsync(nextPageLink).GetAwaiter().GetResult(); - } - - /// - /// Gets the list of Batch supported Cloud Service VM sizes available at the - /// given location. - /// - /// - /// The operations group for this extension method. - /// - /// - /// The NextLink from the previous successful call to List operation. - /// - /// - /// The cancellation token. - /// - public static async System.Threading.Tasks.Task> ListSupportedCloudServiceSkusNextAsync(this ILocationOperations operations, string nextPageLink, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) - { - using (var _result = await operations.ListSupportedCloudServiceSkusNextWithHttpMessagesAsync(nextPageLink, null, cancellationToken).ConfigureAwait(false)) - { - return _result.Body; - } - } } } diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/AccessRule.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/AccessRule.cs new file mode 100644 index 000000000000..c20cab9a1ffa --- /dev/null +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/AccessRule.cs @@ -0,0 +1,58 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.Management.Batch.Models +{ + using System.Linq; + + /// + /// Access rule in a network security perimeter configuration profile + /// + public partial class AccessRule + { + /// + /// Initializes a new instance of the AccessRule class. + /// + public AccessRule() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the AccessRule class. + /// + + /// Name of the access rule + /// + + /// Properties of Access Rule + /// + public AccessRule(string name = default(string), AccessRuleProperties properties = default(AccessRuleProperties)) + + { + this.Name = name; + this.Properties = properties; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + + /// + /// Gets or sets name of the access rule + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "name")] + public string Name {get; set; } + + /// + /// Gets or sets properties of Access Rule + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "properties")] + public AccessRuleProperties Properties {get; set; } + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/AccessRuleDirection.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/AccessRuleDirection.cs new file mode 100644 index 000000000000..4b8ae08415fb --- /dev/null +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/AccessRuleDirection.cs @@ -0,0 +1,25 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.Management.Batch.Models +{ + + /// + /// Defines values for AccessRuleDirection. + /// + + + public static class AccessRuleDirection + { + /// + /// Applies to inbound network traffic to the secured resources. + /// + public const string Inbound = "Inbound"; + /// + /// Applies to outbound network traffic from the secured resources + /// + public const string Outbound = "Outbound"; + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/AccessRuleProperties.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/AccessRuleProperties.cs new file mode 100644 index 000000000000..b3ab0cd63661 --- /dev/null +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/AccessRuleProperties.cs @@ -0,0 +1,108 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.Management.Batch.Models +{ + using System.Linq; + + /// + /// Properties of Access Rule + /// + public partial class AccessRuleProperties + { + /// + /// Initializes a new instance of the AccessRuleProperties class. + /// + public AccessRuleProperties() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the AccessRuleProperties class. + /// + + /// Direction of Access Rule + /// Possible values include: 'Inbound', 'Outbound' + + /// Address prefixes in the CIDR format for inbound rules + /// + + /// Subscriptions for inbound rules + /// + + /// Network security perimeters for inbound rules + /// + + /// Fully qualified domain names (FQDN) for outbound rules + /// + + /// Email addresses for outbound rules + /// + + /// Phone numbers for outbound rules + /// + public AccessRuleProperties(string direction = default(string), System.Collections.Generic.IList addressPrefixes = default(System.Collections.Generic.IList), System.Collections.Generic.IList subscriptions = default(System.Collections.Generic.IList), System.Collections.Generic.IList networkSecurityPerimeters = default(System.Collections.Generic.IList), System.Collections.Generic.IList fullyQualifiedDomainNames = default(System.Collections.Generic.IList), System.Collections.Generic.IList emailAddresses = default(System.Collections.Generic.IList), System.Collections.Generic.IList phoneNumbers = default(System.Collections.Generic.IList)) + + { + this.Direction = direction; + this.AddressPrefixes = addressPrefixes; + this.Subscriptions = subscriptions; + this.NetworkSecurityPerimeters = networkSecurityPerimeters; + this.FullyQualifiedDomainNames = fullyQualifiedDomainNames; + this.EmailAddresses = emailAddresses; + this.PhoneNumbers = phoneNumbers; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + + /// + /// Gets or sets direction of Access Rule Possible values include: 'Inbound', 'Outbound' + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "direction")] + public string Direction {get; set; } + + /// + /// Gets or sets address prefixes in the CIDR format for inbound rules + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "addressPrefixes")] + public System.Collections.Generic.IList AddressPrefixes {get; set; } + + /// + /// Gets or sets subscriptions for inbound rules + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "subscriptions")] + public System.Collections.Generic.IList Subscriptions {get; set; } + + /// + /// Gets or sets network security perimeters for inbound rules + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "networkSecurityPerimeters")] + public System.Collections.Generic.IList NetworkSecurityPerimeters {get; set; } + + /// + /// Gets or sets fully qualified domain names (FQDN) for outbound rules + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "fullyQualifiedDomainNames")] + public System.Collections.Generic.IList FullyQualifiedDomainNames {get; set; } + + /// + /// Gets or sets email addresses for outbound rules + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "emailAddresses")] + public System.Collections.Generic.IList EmailAddresses {get; set; } + + /// + /// Gets or sets phone numbers for outbound rules + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "phoneNumbers")] + public System.Collections.Generic.IList PhoneNumbers {get; set; } + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/AccessRulePropertiesSubscriptionsItem.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/AccessRulePropertiesSubscriptionsItem.cs new file mode 100644 index 000000000000..eea37adc4545 --- /dev/null +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/AccessRulePropertiesSubscriptionsItem.cs @@ -0,0 +1,50 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.Management.Batch.Models +{ + using System.Linq; + + /// + /// Subscription identifiers + /// + public partial class AccessRulePropertiesSubscriptionsItem + { + /// + /// Initializes a new instance of the AccessRulePropertiesSubscriptionsItem class. + /// + public AccessRulePropertiesSubscriptionsItem() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the AccessRulePropertiesSubscriptionsItem class. + /// + + /// The fully qualified Azure resource ID of the subscription e.g. + /// ('/subscriptions/00000000-0000-0000-0000-000000000000') + /// + public AccessRulePropertiesSubscriptionsItem(string id = default(string)) + + { + this.Id = id; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + + /// + /// Gets or sets the fully qualified Azure resource ID of the subscription e.g. + /// ('/subscriptions/00000000-0000-0000-0000-000000000000') + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "id")] + public string Id {get; set; } + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/Application.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/Application.cs index 0ce1fc8ab1e7..3bf992b1f1d5 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/Application.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/Application.cs @@ -11,7 +11,7 @@ namespace Microsoft.Azure.Management.Batch.Models /// Contains information about an application in a Batch account. /// [Microsoft.Rest.Serialization.JsonTransformation] - public partial class Application : ProxyResource + public partial class Application : AzureProxyResource { /// /// Initializes a new instance of the Application class. @@ -37,6 +37,9 @@ public Application() /// The ETag of the resource, used for concurrency statements. /// + /// The tags of the resource. + /// + /// The display name for the application. /// @@ -48,9 +51,9 @@ public Application() /// specify a version. This property can only be set to the name of an existing /// package. /// - public Application(string id = default(string), string name = default(string), string type = default(string), string etag = default(string), string displayName = default(string), bool? allowUpdates = default(bool?), string defaultVersion = default(string)) + public Application(string id = default(string), string name = default(string), string type = default(string), string etag = default(string), System.Collections.Generic.IDictionary tags = default(System.Collections.Generic.IDictionary), string displayName = default(string), bool? allowUpdates = default(bool?), string defaultVersion = default(string)) - : base(id, name, type, etag) + : base(id, name, type, etag, tags) { this.DisplayName = displayName; this.AllowUpdates = allowUpdates; diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/ApplicationPackage.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/ApplicationPackage.cs index 4232032b173c..b2479702cfd9 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/ApplicationPackage.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/ApplicationPackage.cs @@ -12,7 +12,7 @@ namespace Microsoft.Azure.Management.Batch.Models /// application. /// [Microsoft.Rest.Serialization.JsonTransformation] - public partial class ApplicationPackage : ProxyResource + public partial class ApplicationPackage : AzureProxyResource { /// /// Initializes a new instance of the ApplicationPackage class. @@ -38,6 +38,9 @@ public ApplicationPackage() /// The ETag of the resource, used for concurrency statements. /// + /// The tags of the resource. + /// + /// The current state of the application package. /// Possible values include: 'Pending', 'Active' @@ -52,9 +55,9 @@ public ApplicationPackage() /// The time at which the package was last activated, if the package is active. /// - public ApplicationPackage(string id = default(string), string name = default(string), string type = default(string), string etag = default(string), PackageState? state = default(PackageState?), string format = default(string), string storageUrl = default(string), System.DateTime? storageUrlExpiry = default(System.DateTime?), System.DateTime? lastActivationTime = default(System.DateTime?)) + public ApplicationPackage(string id = default(string), string name = default(string), string type = default(string), string etag = default(string), System.Collections.Generic.IDictionary tags = default(System.Collections.Generic.IDictionary), PackageState? state = default(PackageState?), string format = default(string), string storageUrl = default(string), System.DateTime? storageUrlExpiry = default(System.DateTime?), System.DateTime? lastActivationTime = default(System.DateTime?)) - : base(id, name, type, etag) + : base(id, name, type, etag, tags) { this.State = state; this.Format = format; diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/AuthenticationMode.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/AuthenticationMode.cs index 558bda075764..c58b2c4916f7 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/AuthenticationMode.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/AuthenticationMode.cs @@ -20,7 +20,7 @@ public enum AuthenticationMode [System.Runtime.Serialization.EnumMember(Value = "SharedKey")] SharedKey, /// - /// The authentication mode using Azure Active Directory. + /// The authentication mode using Microsoft Entra ID. /// [System.Runtime.Serialization.EnumMember(Value = "AAD")] AAD, diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/AutomaticOSUpgradePolicy.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/AutomaticOSUpgradePolicy.cs new file mode 100644 index 000000000000..123c638629e5 --- /dev/null +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/AutomaticOSUpgradePolicy.cs @@ -0,0 +1,91 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.Management.Batch.Models +{ + using System.Linq; + + /// + /// The configuration parameters used for performing automatic OS upgrade. + /// + public partial class AutomaticOSUpgradePolicy + { + /// + /// Initializes a new instance of the AutomaticOSUpgradePolicy class. + /// + public AutomaticOSUpgradePolicy() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the AutomaticOSUpgradePolicy class. + /// + + /// Whether OS image rollback feature should be disabled. + /// + + /// Indicates whether OS upgrades should automatically be applied to scale set + /// instances in a rolling fashion when a newer version of the OS image becomes + /// available. <br /><br /> If this is set to true for Windows based pools, + /// [WindowsConfiguration.enableAutomaticUpdates](https://learn.microsoft.com/rest/api/batchmanagement/pool/create?tabs=HTTP#windowsconfiguration) + /// cannot be set to true. + /// + + /// Indicates whether rolling upgrade policy should be used during Auto OS + /// Upgrade. Auto OS Upgrade will fallback to the default policy if no policy + /// is defined on the VMSS. + /// + + /// Defer OS upgrades on the TVMs if they are running tasks. + /// + public AutomaticOSUpgradePolicy(bool? disableAutomaticRollback = default(bool?), bool? enableAutomaticOSUpgrade = default(bool?), bool? useRollingUpgradePolicy = default(bool?), bool? osRollingUpgradeDeferral = default(bool?)) + + { + this.DisableAutomaticRollback = disableAutomaticRollback; + this.EnableAutomaticOSUpgrade = enableAutomaticOSUpgrade; + this.UseRollingUpgradePolicy = useRollingUpgradePolicy; + this.OSRollingUpgradeDeferral = osRollingUpgradeDeferral; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + + /// + /// Gets or sets whether OS image rollback feature should be disabled. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "disableAutomaticRollback")] + public bool? DisableAutomaticRollback {get; set; } + + /// + /// Gets or sets indicates whether OS upgrades should automatically be applied + /// to scale set instances in a rolling fashion when a newer version of the OS + /// image becomes available. <br /><br /> If this is set to true for Windows + /// based pools, + /// [WindowsConfiguration.enableAutomaticUpdates](https://learn.microsoft.com/rest/api/batchmanagement/pool/create?tabs=HTTP#windowsconfiguration) + /// cannot be set to true. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "enableAutomaticOSUpgrade")] + public bool? EnableAutomaticOSUpgrade {get; set; } + + /// + /// Gets or sets indicates whether rolling upgrade policy should be used during + /// Auto OS Upgrade. Auto OS Upgrade will fallback to the default policy if no + /// policy is defined on the VMSS. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "useRollingUpgradePolicy")] + public bool? UseRollingUpgradePolicy {get; set; } + + /// + /// Gets or sets defer OS upgrades on the TVMs if they are running tasks. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "osRollingUpgradeDeferral")] + public bool? OSRollingUpgradeDeferral {get; set; } + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/AzureProxyResource.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/AzureProxyResource.cs new file mode 100644 index 000000000000..0fa2913c89be --- /dev/null +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/AzureProxyResource.cs @@ -0,0 +1,88 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.Management.Batch.Models +{ + using System.Linq; + + /// + /// A definition of an Azure resource. + /// + public partial class AzureProxyResource : Microsoft.Rest.Azure.IResource + { + /// + /// Initializes a new instance of the AzureProxyResource class. + /// + public AzureProxyResource() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the AzureProxyResource class. + /// + + /// The ID of the resource. + /// + + /// The name of the resource. + /// + + /// The type of the resource. + /// + + /// The ETag of the resource, used for concurrency statements. + /// + + /// The tags of the resource. + /// + public AzureProxyResource(string id = default(string), string name = default(string), string type = default(string), string etag = default(string), System.Collections.Generic.IDictionary tags = default(System.Collections.Generic.IDictionary)) + + { + this.Id = id; + this.Name = name; + this.Type = type; + this.Etag = etag; + this.Tags = tags; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + + /// + /// Gets the ID of the resource. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "id")] + public string Id {get; private set; } + + /// + /// Gets the name of the resource. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "name")] + public string Name {get; private set; } + + /// + /// Gets the type of the resource. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "type")] + public string Type {get; private set; } + + /// + /// Gets the ETag of the resource, used for concurrency statements. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "etag")] + public string Etag {get; private set; } + + /// + /// Gets or sets the tags of the resource. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "tags")] + public System.Collections.Generic.IDictionary Tags {get; set; } + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/AzureResource.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/AzureResource.cs new file mode 100644 index 000000000000..14d6861ac366 --- /dev/null +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/AzureResource.cs @@ -0,0 +1,88 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.Management.Batch.Models +{ + using System.Linq; + + /// + /// A definition of an Azure resource. + /// + public partial class AzureResource : Microsoft.Rest.Azure.IResource + { + /// + /// Initializes a new instance of the AzureResource class. + /// + public AzureResource() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the AzureResource class. + /// + + /// The ID of the resource. + /// + + /// The name of the resource. + /// + + /// The type of the resource. + /// + + /// The location of the resource. + /// + + /// The tags of the resource. + /// + public AzureResource(string id = default(string), string name = default(string), string type = default(string), string location = default(string), System.Collections.Generic.IDictionary tags = default(System.Collections.Generic.IDictionary)) + + { + this.Id = id; + this.Name = name; + this.Type = type; + this.Location = location; + this.Tags = tags; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + + /// + /// Gets the ID of the resource. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "id")] + public string Id {get; private set; } + + /// + /// Gets the name of the resource. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "name")] + public string Name {get; private set; } + + /// + /// Gets the type of the resource. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "type")] + public string Type {get; private set; } + + /// + /// Gets the location of the resource. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "location")] + public string Location {get; private set; } + + /// + /// Gets the tags of the resource. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "tags")] + public System.Collections.Generic.IDictionary Tags {get; private set; } + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/BatchAccount.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/BatchAccount.cs index 5b7157cd85c4..06c40549dfae 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/BatchAccount.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/BatchAccount.cs @@ -11,7 +11,7 @@ namespace Microsoft.Azure.Management.Batch.Models /// Contains information about an Azure Batch account. /// [Microsoft.Rest.Serialization.JsonTransformation] - public partial class BatchAccount : Resource + public partial class BatchAccount : AzureResource { /// /// Initializes a new instance of the BatchAccount class. @@ -64,7 +64,7 @@ public BatchAccount() /// /// If not specified, the default value is 'enabled'. - /// Possible values include: 'Enabled', 'Disabled' + /// Possible values include: 'Enabled', 'Disabled', 'SecuredByPerimeter' /// List of private endpoint connections associated with the Batch account /// @@ -184,7 +184,7 @@ public BatchAccount() public KeyVaultReference KeyVaultReference {get; private set; } /// - /// Gets or sets if not specified, the default value is 'enabled'. Possible values include: 'Enabled', 'Disabled' + /// Gets or sets if not specified, the default value is 'enabled'. Possible values include: 'Enabled', 'Disabled', 'SecuredByPerimeter' /// [Newtonsoft.Json.JsonProperty(PropertyName = "properties.publicNetworkAccess")] public PublicNetworkAccessType? PublicNetworkAccess {get; set; } diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/BatchAccountCreateParameters.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/BatchAccountCreateParameters.cs index 783f56b8fd8d..98849e001f31 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/BatchAccountCreateParameters.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/BatchAccountCreateParameters.cs @@ -42,16 +42,15 @@ public BatchAccountCreateParameters() /// The pool allocation mode also affects how clients may authenticate to the /// Batch Service API. If the mode is BatchService, clients may authenticate - /// using access keys or Azure Active Directory. If the mode is - /// UserSubscription, clients must use Azure Active Directory. The default is - /// BatchService. + /// using access keys or Microsoft Entra ID. If the mode is UserSubscription, + /// clients must use Microsoft Entra ID. The default is BatchService. /// Possible values include: 'BatchService', 'UserSubscription' /// A reference to the Azure key vault associated with the Batch account. /// /// If not specified, the default value is 'enabled'. - /// Possible values include: 'Enabled', 'Disabled' + /// Possible values include: 'Enabled', 'Disabled', 'SecuredByPerimeter' /// Configures how customer data is encrypted inside the Batch account. By /// default, accounts are encrypted using a Microsoft managed key. For @@ -118,9 +117,9 @@ public BatchAccountCreateParameters() /// /// Gets or sets the pool allocation mode also affects how clients may /// authenticate to the Batch Service API. If the mode is BatchService, clients - /// may authenticate using access keys or Azure Active Directory. If the mode - /// is UserSubscription, clients must use Azure Active Directory. The default - /// is BatchService. Possible values include: 'BatchService', 'UserSubscription' + /// may authenticate using access keys or Microsoft Entra ID. If the mode is + /// UserSubscription, clients must use Microsoft Entra ID. The default is + /// BatchService. Possible values include: 'BatchService', 'UserSubscription' /// [Newtonsoft.Json.JsonProperty(PropertyName = "properties.poolAllocationMode")] public PoolAllocationMode? PoolAllocationMode {get; set; } @@ -133,7 +132,7 @@ public BatchAccountCreateParameters() public KeyVaultReference KeyVaultReference {get; set; } /// - /// Gets or sets if not specified, the default value is 'enabled'. Possible values include: 'Enabled', 'Disabled' + /// Gets or sets if not specified, the default value is 'enabled'. Possible values include: 'Enabled', 'Disabled', 'SecuredByPerimeter' /// [Newtonsoft.Json.JsonProperty(PropertyName = "properties.publicNetworkAccess")] public PublicNetworkAccessType? PublicNetworkAccess {get; set; } diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/BatchAccountCreateProperties.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/BatchAccountCreateProperties.cs index df5d35605c39..69cbdf0e6ce6 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/BatchAccountCreateProperties.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/BatchAccountCreateProperties.cs @@ -29,16 +29,15 @@ public BatchAccountCreateProperties() /// The pool allocation mode also affects how clients may authenticate to the /// Batch Service API. If the mode is BatchService, clients may authenticate - /// using access keys or Azure Active Directory. If the mode is - /// UserSubscription, clients must use Azure Active Directory. The default is - /// BatchService. + /// using access keys or Microsoft Entra ID. If the mode is UserSubscription, + /// clients must use Microsoft Entra ID. The default is BatchService. /// Possible values include: 'BatchService', 'UserSubscription' /// A reference to the Azure key vault associated with the Batch account. /// /// If not specified, the default value is 'enabled'. - /// Possible values include: 'Enabled', 'Disabled' + /// Possible values include: 'Enabled', 'Disabled', 'SecuredByPerimeter' /// The network profile only takes effect when publicNetworkAccess is enabled. /// @@ -80,9 +79,9 @@ public BatchAccountCreateProperties() /// /// Gets or sets the pool allocation mode also affects how clients may /// authenticate to the Batch Service API. If the mode is BatchService, clients - /// may authenticate using access keys or Azure Active Directory. If the mode - /// is UserSubscription, clients must use Azure Active Directory. The default - /// is BatchService. Possible values include: 'BatchService', 'UserSubscription' + /// may authenticate using access keys or Microsoft Entra ID. If the mode is + /// UserSubscription, clients must use Microsoft Entra ID. The default is + /// BatchService. Possible values include: 'BatchService', 'UserSubscription' /// [Newtonsoft.Json.JsonProperty(PropertyName = "poolAllocationMode")] public PoolAllocationMode? PoolAllocationMode {get; set; } @@ -95,7 +94,7 @@ public BatchAccountCreateProperties() public KeyVaultReference KeyVaultReference {get; set; } /// - /// Gets or sets if not specified, the default value is 'enabled'. Possible values include: 'Enabled', 'Disabled' + /// Gets or sets if not specified, the default value is 'enabled'. Possible values include: 'Enabled', 'Disabled', 'SecuredByPerimeter' /// [Newtonsoft.Json.JsonProperty(PropertyName = "publicNetworkAccess")] public PublicNetworkAccessType? PublicNetworkAccess {get; set; } diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/BatchAccountProperties.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/BatchAccountProperties.cs index 513e40d74b8b..249e66e4ba98 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/BatchAccountProperties.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/BatchAccountProperties.cs @@ -42,7 +42,7 @@ public BatchAccountProperties() /// /// If not specified, the default value is 'enabled'. - /// Possible values include: 'Enabled', 'Disabled' + /// Possible values include: 'Enabled', 'Disabled', 'SecuredByPerimeter' /// The network profile only takes effect when publicNetworkAccess is enabled. /// @@ -150,7 +150,7 @@ public BatchAccountProperties() public KeyVaultReference KeyVaultReference {get; private set; } /// - /// Gets or sets if not specified, the default value is 'enabled'. Possible values include: 'Enabled', 'Disabled' + /// Gets or sets if not specified, the default value is 'enabled'. Possible values include: 'Enabled', 'Disabled', 'SecuredByPerimeter' /// [Newtonsoft.Json.JsonProperty(PropertyName = "publicNetworkAccess")] public PublicNetworkAccessType? PublicNetworkAccess {get; set; } diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/BatchAccountUpdateParameters.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/BatchAccountUpdateParameters.cs index 9ee28dbdaa03..aa51742f814c 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/BatchAccountUpdateParameters.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/BatchAccountUpdateParameters.cs @@ -48,7 +48,7 @@ public BatchAccountUpdateParameters() /// /// If not specified, the default value is 'enabled'. - /// Possible values include: 'Enabled', 'Disabled' + /// Possible values include: 'Enabled', 'Disabled', 'SecuredByPerimeter' public BatchAccountUpdateParameters(System.Collections.Generic.IDictionary tags = default(System.Collections.Generic.IDictionary), BatchAccountIdentity identity = default(BatchAccountIdentity), NetworkProfile networkProfile = default(NetworkProfile), AutoStorageBaseProperties autoStorage = default(AutoStorageBaseProperties), EncryptionProperties encryption = default(EncryptionProperties), System.Collections.Generic.IList allowedAuthenticationModes = default(System.Collections.Generic.IList), PublicNetworkAccessType? publicNetworkAccess = default(PublicNetworkAccessType?)) { @@ -110,7 +110,7 @@ public BatchAccountUpdateParameters() public System.Collections.Generic.IList AllowedAuthenticationModes {get; set; } /// - /// Gets or sets if not specified, the default value is 'enabled'. Possible values include: 'Enabled', 'Disabled' + /// Gets or sets if not specified, the default value is 'enabled'. Possible values include: 'Enabled', 'Disabled', 'SecuredByPerimeter' /// [Newtonsoft.Json.JsonProperty(PropertyName = "properties.publicNetworkAccess")] public PublicNetworkAccessType? PublicNetworkAccess {get; set; } diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/BatchAccountUpdateProperties.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/BatchAccountUpdateProperties.cs index 9e5f363926dc..eda5c11df711 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/BatchAccountUpdateProperties.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/BatchAccountUpdateProperties.cs @@ -38,7 +38,7 @@ public BatchAccountUpdateProperties() /// /// If not specified, the default value is 'enabled'. - /// Possible values include: 'Enabled', 'Disabled' + /// Possible values include: 'Enabled', 'Disabled', 'SecuredByPerimeter' /// The network profile only takes effect when publicNetworkAccess is enabled. /// @@ -82,7 +82,7 @@ public BatchAccountUpdateProperties() public System.Collections.Generic.IList AllowedAuthenticationModes {get; set; } /// - /// Gets or sets if not specified, the default value is 'enabled'. Possible values include: 'Enabled', 'Disabled' + /// Gets or sets if not specified, the default value is 'enabled'. Possible values include: 'Enabled', 'Disabled', 'SecuredByPerimeter' /// [Newtonsoft.Json.JsonProperty(PropertyName = "publicNetworkAccess")] public PublicNetworkAccessType? PublicNetworkAccess {get; set; } diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/Certificate.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/Certificate.cs index 8974dad97b76..3303a3657588 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/Certificate.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/Certificate.cs @@ -11,7 +11,7 @@ namespace Microsoft.Azure.Management.Batch.Models /// Contains information about a certificate. /// [Microsoft.Rest.Serialization.JsonTransformation] - public partial class Certificate : ProxyResource + public partial class Certificate : AzureProxyResource { /// /// Initializes a new instance of the Certificate class. @@ -37,6 +37,9 @@ public Certificate() /// The ETag of the resource, used for concurrency statements. /// + /// The tags of the resource. + /// + /// This must match the first portion of the certificate name. Currently /// required to be 'SHA1'. /// @@ -65,9 +68,9 @@ public Certificate() /// This is only returned when the certificate provisioningState is 'Failed'. /// - public Certificate(string id = default(string), string name = default(string), string type = default(string), string etag = default(string), string thumbprintAlgorithm = default(string), string thumbprint = default(string), CertificateFormat format = default(CertificateFormat), CertificateProvisioningState? provisioningState = default(CertificateProvisioningState?), System.DateTime? provisioningStateTransitionTime = default(System.DateTime?), CertificateProvisioningState? previousProvisioningState = default(CertificateProvisioningState?), System.DateTime? previousProvisioningStateTransitionTime = default(System.DateTime?), string publicData = default(string), DeleteCertificateError deleteCertificateError = default(DeleteCertificateError)) + public Certificate(string id = default(string), string name = default(string), string type = default(string), string etag = default(string), System.Collections.Generic.IDictionary tags = default(System.Collections.Generic.IDictionary), string thumbprintAlgorithm = default(string), string thumbprint = default(string), CertificateFormat format = default(CertificateFormat), CertificateProvisioningState? provisioningState = default(CertificateProvisioningState?), System.DateTime? provisioningStateTransitionTime = default(System.DateTime?), CertificateProvisioningState? previousProvisioningState = default(CertificateProvisioningState?), System.DateTime? previousProvisioningStateTransitionTime = default(System.DateTime?), string publicData = default(string), DeleteCertificateError deleteCertificateError = default(DeleteCertificateError)) - : base(id, name, type, etag) + : base(id, name, type, etag, tags) { this.ThumbprintAlgorithm = thumbprintAlgorithm; this.Thumbprint = thumbprint; diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/CertificateCreateOrUpdateParameters.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/CertificateCreateOrUpdateParameters.cs index da14eb6115ed..2412e603fe41 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/CertificateCreateOrUpdateParameters.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/CertificateCreateOrUpdateParameters.cs @@ -11,7 +11,7 @@ namespace Microsoft.Azure.Management.Batch.Models /// Contains information about a certificate. /// [Microsoft.Rest.Serialization.JsonTransformation] - public partial class CertificateCreateOrUpdateParameters : ProxyResource + public partial class CertificateCreateOrUpdateParameters : AzureProxyResource { /// /// Initializes a new instance of the CertificateCreateOrUpdateParameters class. @@ -37,6 +37,9 @@ public CertificateCreateOrUpdateParameters() /// The ETag of the resource, used for concurrency statements. /// + /// The tags of the resource. + /// + /// This must match the first portion of the certificate name. Currently /// required to be 'SHA1'. /// @@ -53,9 +56,9 @@ public CertificateCreateOrUpdateParameters() /// This must not be specified if the certificate format is Cer. /// - public CertificateCreateOrUpdateParameters(string id = default(string), string name = default(string), string type = default(string), string etag = default(string), string thumbprintAlgorithm = default(string), string thumbprint = default(string), CertificateFormat format = default(CertificateFormat), string data = default(string), string password = default(string)) + public CertificateCreateOrUpdateParameters(string id = default(string), string name = default(string), string type = default(string), string etag = default(string), System.Collections.Generic.IDictionary tags = default(System.Collections.Generic.IDictionary), string thumbprintAlgorithm = default(string), string thumbprint = default(string), CertificateFormat format = default(CertificateFormat), string data = default(string), string password = default(string)) - : base(id, name, type, etag) + : base(id, name, type, etag, tags) { this.ThumbprintAlgorithm = thumbprintAlgorithm; this.Thumbprint = thumbprint; diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/CertificateReference.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/CertificateReference.cs index c7a713bb6250..13a22682858d 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/CertificateReference.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/CertificateReference.cs @@ -38,22 +38,19 @@ public CertificateReference() /// /// The default value is currentUser. This property is applicable only for - /// pools configured with Windows 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. + /// pools configured with Windows compute nodes. 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 include: 'CurrentUser', 'LocalMachine' - /// This property is applicable only for pools configured with Windows 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. + /// This property is applicable only for pools configured with Windows compute + /// nodes. 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. /// /// Which user accounts on the compute node should have access to the private @@ -84,25 +81,22 @@ public CertificateReference() /// /// Gets or sets the default value is currentUser. This property is applicable - /// only for pools configured with Windows 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 include: 'CurrentUser', 'LocalMachine' + /// only for pools configured with Windows compute nodes. 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 include: 'CurrentUser', 'LocalMachine' /// [Newtonsoft.Json.JsonProperty(PropertyName = "storeLocation")] public CertificateStoreLocation? StoreLocation {get; set; } /// /// Gets or sets this property is applicable only for pools configured with - /// Windows 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. + /// Windows compute nodes. 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. /// [Newtonsoft.Json.JsonProperty(PropertyName = "storeName")] public string StoreName {get; set; } diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/CloudServiceConfiguration.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/CloudServiceConfiguration.cs deleted file mode 100644 index 3d74c82058f7..000000000000 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/CloudServiceConfiguration.cs +++ /dev/null @@ -1,90 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for license information. -// Code generated by Microsoft (R) AutoRest Code Generator. -// Changes may cause incorrect behavior and will be lost if the code is regenerated. - -namespace Microsoft.Azure.Management.Batch.Models -{ - using System.Linq; - - /// - /// The configuration for nodes in a pool based on the Azure Cloud Services - /// platform. - /// - /// - /// The configuration for nodes in a pool based on the Azure Cloud Services - /// platform. - /// - public partial class CloudServiceConfiguration - { - /// - /// Initializes a new instance of the CloudServiceConfiguration class. - /// - public CloudServiceConfiguration() - { - CustomInit(); - } - - /// - /// Initializes a new instance of the CloudServiceConfiguration class. - /// - - /// Possible values are: 2 - OS Family 2, equivalent to Windows Server 2008 R2 - /// SP1. 3 - OS Family 3, equivalent to Windows Server 2012. 4 - OS Family 4, - /// equivalent to Windows Server 2012 R2. 5 - OS Family 5, equivalent to - /// Windows Server 2016. 6 - OS Family 6, equivalent to Windows Server 2019. - /// For more information, see Azure Guest OS Releases - /// (https://azure.microsoft.com/documentation/articles/cloud-services-guestos-update-matrix/#releases). - /// - - /// The default value is * which specifies the latest operating system version - /// for the specified OS family. - /// - public CloudServiceConfiguration(string osFamily, string osVersion = default(string)) - - { - this.OSFamily = osFamily; - this.OSVersion = osVersion; - CustomInit(); - } - - /// - /// An initialization method that performs custom operations like setting defaults - /// - partial void CustomInit(); - - - /// - /// Gets or sets possible values are: 2 - OS Family 2, equivalent to Windows - /// Server 2008 R2 SP1. 3 - OS Family 3, equivalent to Windows Server 2012. 4 - - /// OS Family 4, equivalent to Windows Server 2012 R2. 5 - OS Family 5, - /// equivalent to Windows Server 2016. 6 - OS Family 6, equivalent to Windows - /// Server 2019. For more information, see Azure Guest OS Releases - /// (https://azure.microsoft.com/documentation/articles/cloud-services-guestos-update-matrix/#releases). - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "osFamily")] - public string OSFamily {get; set; } - - /// - /// Gets or sets the default value is * which specifies the latest operating - /// system version for the specified OS family. - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "osVersion")] - public string OSVersion {get; set; } - /// - /// Validate the object. - /// - /// - /// Thrown if validation fails - /// - public virtual void Validate() - { - if (this.OSFamily == null) - { - throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.CannotBeNull, "OSFamily"); - } - - - } - } -} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/ContainerConfiguration.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/ContainerConfiguration.cs index 029b3717d3f7..1d2f6ed9da1a 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/ContainerConfiguration.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/ContainerConfiguration.cs @@ -27,6 +27,9 @@ public ContainerConfiguration() /// Initializes a new instance of the ContainerConfiguration class. /// + /// The container technology to be used. + /// Possible values include: 'DockerCompatible', 'CriCompatible' + /// This is the full image reference, as would be specified to "docker pull". /// An image will be sourced from the default Docker registry unless the image /// is fully qualified with an alternative registry. @@ -35,20 +38,14 @@ public ContainerConfiguration() /// If any images must be downloaded from a private registry which requires /// credentials, then those credentials must be provided here. /// - public ContainerConfiguration(System.Collections.Generic.IList containerImageNames = default(System.Collections.Generic.IList), System.Collections.Generic.IList containerRegistries = default(System.Collections.Generic.IList)) + public ContainerConfiguration(string type, System.Collections.Generic.IList containerImageNames = default(System.Collections.Generic.IList), System.Collections.Generic.IList containerRegistries = default(System.Collections.Generic.IList)) { + this.Type = type; this.ContainerImageNames = containerImageNames; this.ContainerRegistries = containerRegistries; CustomInit(); } - /// - /// Static constructor for ContainerConfiguration class. - /// - static ContainerConfiguration() - { - Type = "DockerCompatible"; - } /// /// An initialization method that performs custom operations like setting defaults @@ -56,6 +53,12 @@ static ContainerConfiguration() partial void CustomInit(); + /// + /// Gets or sets the container technology to be used. Possible values include: 'DockerCompatible', 'CriCompatible' + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "type")] + public string Type {get; set; } + /// /// Gets or sets this is the full image reference, as would be specified to /// "docker pull". An image will be sourced from the default Docker registry @@ -71,9 +74,20 @@ static ContainerConfiguration() [Newtonsoft.Json.JsonProperty(PropertyName = "containerRegistries")] public System.Collections.Generic.IList ContainerRegistries {get; set; } /// - /// Gets or sets the container technology to be used. + /// Validate the object. /// - [Newtonsoft.Json.JsonProperty(PropertyName = "type")] - public static string Type {get; private set; } + /// + /// Thrown if validation fails + /// + public virtual void Validate() + { + if (this.Type == null) + { + throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.CannotBeNull, "Type"); + } + + + + } } } \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/ContainerHostBatchBindMountEntry.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/ContainerHostBatchBindMountEntry.cs new file mode 100644 index 000000000000..13232061f856 --- /dev/null +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/ContainerHostBatchBindMountEntry.cs @@ -0,0 +1,69 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.Management.Batch.Models +{ + using System.Linq; + + /// + /// The entry of path and mount mode you want to mount into task container. + /// + /// + /// The entry of path and mount mode you want to mount into task container. + /// + public partial class ContainerHostBatchBindMountEntry + { + /// + /// Initializes a new instance of the ContainerHostBatchBindMountEntry class. + /// + public ContainerHostBatchBindMountEntry() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the ContainerHostBatchBindMountEntry class. + /// + + /// The paths which will be mounted to container task's container. + /// Possible values include: 'Shared', 'Startup', 'VfsMounts', 'Task', + /// 'JobPrep', 'Applications' + + /// For Linux, if you mount this path as a read/write mode, this does not mean + /// that all users in container have the read/write access for the path, it + /// depends on the access in host VM. If this path is mounted read-only, all + /// users within the container will not be able to modify the path. + /// + public ContainerHostBatchBindMountEntry(string source = default(string), bool? isReadOnly = default(bool?)) + + { + this.Source = source; + this.IsReadOnly = isReadOnly; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + + /// + /// Gets or sets the paths which will be mounted to container task's container. Possible values include: 'Shared', 'Startup', 'VfsMounts', 'Task', 'JobPrep', 'Applications' + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "source")] + public string Source {get; set; } + + /// + /// Gets or sets for Linux, if you mount this path as a read/write mode, this + /// does not mean that all users in container have the read/write access for + /// the path, it depends on the access in host VM. If this path is mounted + /// read-only, all users within the container will not be able to modify the + /// path. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "isReadOnly")] + public bool? IsReadOnly {get; set; } + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/ContainerHostDataPath.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/ContainerHostDataPath.cs new file mode 100644 index 000000000000..b8f1d77ef4f2 --- /dev/null +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/ContainerHostDataPath.cs @@ -0,0 +1,41 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.Management.Batch.Models +{ + + /// + /// Defines values for ContainerHostDataPath. + /// + + + public static class ContainerHostDataPath + { + /// + /// The path for multi-instances task to shared their files. + /// + public const string Shared = "Shared"; + /// + /// The path for start task. + /// + public const string Startup = "Startup"; + /// + /// The path contains all virtual file systems are mounted on this node. + /// + public const string VfsMounts = "VfsMounts"; + /// + /// The task path. + /// + public const string Task = "Task"; + /// + /// The job-prep task path. + /// + public const string JobPrep = "JobPrep"; + /// + /// The applications path. + /// + public const string Applications = "Applications"; + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/ContainerType.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/ContainerType.cs index ea371c85547c..647398cf05c4 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/ContainerType.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/ContainerType.cs @@ -11,39 +11,16 @@ namespace Microsoft.Azure.Management.Batch.Models /// - [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.StringEnumConverter))] - public enum ContainerType + public static class ContainerType { /// /// A Docker compatible container technology will be used to launch the /// containers. /// - [System.Runtime.Serialization.EnumMember(Value = "DockerCompatible")] - DockerCompatible - } - internal static class ContainerTypeEnumExtension - { - internal static string ToSerializedValue(this ContainerType? value) - { - return value == null ? null : ((ContainerType)value).ToSerializedValue(); - } - internal static string ToSerializedValue(this ContainerType value) - { - switch( value ) - { - case ContainerType.DockerCompatible: - return "DockerCompatible"; - } - return null; - } - internal static ContainerType? ParseContainerType(this string value) - { - switch( value ) - { - case "DockerCompatible": - return ContainerType.DockerCompatible; - } - return null; - } + public const string DockerCompatible = "DockerCompatible"; + /// + /// A CRI based technology will be used to launch the containers. + /// + public const string CriCompatible = "CriCompatible"; } } \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/CreatedByType.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/CreatedByType.cs new file mode 100644 index 000000000000..8f6dd6d3652c --- /dev/null +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/CreatedByType.cs @@ -0,0 +1,21 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.Management.Batch.Models +{ + + /// + /// Defines values for CreatedByType. + /// + + + public static class CreatedByType + { + public const string User = "User"; + public const string Application = "Application"; + public const string ManagedIdentity = "ManagedIdentity"; + public const string Key = "Key"; + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/DataDisk.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/DataDisk.cs index 231a8a36ddee..2840798cd47c 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/DataDisk.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/DataDisk.cs @@ -46,7 +46,7 @@ public DataDisk() /// If omitted, the default is "Standard_LRS". Values are: /// Standard_LRS - The data disk should use standard locally redundant storage. /// Premium_LRS - The data disk should use premium locally redundant storage. - /// Possible values include: 'Standard_LRS', 'Premium_LRS' + /// Possible values include: 'Standard_LRS', 'Premium_LRS', 'StandardSSD_LRS' public DataDisk(int lun, int diskSizeGb, CachingType? caching = default(CachingType?), StorageAccountType? storageAccountType = default(StorageAccountType?)) { @@ -92,7 +92,7 @@ public DataDisk() /// /// Gets or sets if omitted, the default is "Standard_LRS". Values are: /// Standard_LRS - The data disk should use standard locally redundant storage. - /// Premium_LRS - The data disk should use premium locally redundant storage. Possible values include: 'Standard_LRS', 'Premium_LRS' + /// Premium_LRS - The data disk should use premium locally redundant storage. Possible values include: 'Standard_LRS', 'Premium_LRS', 'StandardSSD_LRS' /// [Newtonsoft.Json.JsonProperty(PropertyName = "storageAccountType")] public StorageAccountType? StorageAccountType {get; set; } diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/DeploymentConfiguration.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/DeploymentConfiguration.cs index 1f9b22e7fa58..8914f2b9eef5 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/DeploymentConfiguration.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/DeploymentConfiguration.cs @@ -27,19 +27,12 @@ public DeploymentConfiguration() /// Initializes a new instance of the DeploymentConfiguration class. /// - /// This property and virtualMachineConfiguration are mutually exclusive and - /// one of the properties must be specified. This property cannot be specified - /// if the Batch account was created with its poolAllocationMode property set - /// to 'UserSubscription'. + /// The configuration for compute nodes in a pool based on the Azure Virtual + /// Machines infrastructure. /// - - /// This property and cloudServiceConfiguration are mutually exclusive and one - /// of the properties must be specified. - /// - public DeploymentConfiguration(CloudServiceConfiguration cloudServiceConfiguration = default(CloudServiceConfiguration), VirtualMachineConfiguration virtualMachineConfiguration = default(VirtualMachineConfiguration)) + public DeploymentConfiguration(VirtualMachineConfiguration virtualMachineConfiguration = default(VirtualMachineConfiguration)) { - this.CloudServiceConfiguration = cloudServiceConfiguration; this.VirtualMachineConfiguration = virtualMachineConfiguration; CustomInit(); } @@ -51,17 +44,8 @@ public DeploymentConfiguration() /// - /// Gets or sets this property and virtualMachineConfiguration are mutually - /// exclusive and one of the properties must be specified. This property cannot - /// be specified if the Batch account was created with its poolAllocationMode - /// property set to 'UserSubscription'. - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "cloudServiceConfiguration")] - public CloudServiceConfiguration CloudServiceConfiguration {get; set; } - - /// - /// Gets or sets this property and cloudServiceConfiguration are mutually - /// exclusive and one of the properties must be specified. + /// Gets or sets the configuration for compute nodes in a pool based on the + /// Azure Virtual Machines infrastructure. /// [Newtonsoft.Json.JsonProperty(PropertyName = "virtualMachineConfiguration")] public VirtualMachineConfiguration VirtualMachineConfiguration {get; set; } @@ -73,10 +57,6 @@ public DeploymentConfiguration() /// public virtual void Validate() { - if (this.CloudServiceConfiguration != null) - { - this.CloudServiceConfiguration.Validate(); - } if (this.VirtualMachineConfiguration != null) { this.VirtualMachineConfiguration.Validate(); diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/DetectorResponse.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/DetectorResponse.cs index 6772c6ea28ca..92616c0abf5c 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/DetectorResponse.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/DetectorResponse.cs @@ -11,7 +11,7 @@ namespace Microsoft.Azure.Management.Batch.Models /// Contains the information for a detector. /// [Microsoft.Rest.Serialization.JsonTransformation] - public partial class DetectorResponse : ProxyResource + public partial class DetectorResponse : AzureProxyResource { /// /// Initializes a new instance of the DetectorResponse class. @@ -37,11 +37,14 @@ public DetectorResponse() /// The ETag of the resource, used for concurrency statements. /// + /// The tags of the resource. + /// + /// A base64 encoded string that represents the content of a detector. /// - public DetectorResponse(string id = default(string), string name = default(string), string type = default(string), string etag = default(string), string value = default(string)) + public DetectorResponse(string id = default(string), string name = default(string), string type = default(string), string etag = default(string), System.Collections.Generic.IDictionary tags = default(System.Collections.Generic.IDictionary), string value = default(string)) - : base(id, name, type, etag) + : base(id, name, type, etag, tags) { this.Value = value; CustomInit(); diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/DiffDiskSettings.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/DiffDiskSettings.cs index 3251404abfc8..99a23ebec160 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/DiffDiskSettings.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/DiffDiskSettings.cs @@ -34,9 +34,9 @@ public DiffDiskSettings() /// disk provisioning. For more information on Ephemeral OS disk size /// requirements, please refer to Ephemeral OS disk size requirements for /// Windows VMs at - /// https://docs.microsoft.com/en-us/azure/virtual-machines/windows/ephemeral-os-disks#size-requirements + /// https://learn.microsoft.com/azure/virtual-machines/windows/ephemeral-os-disks#size-requirements /// and Linux VMs at - /// https://docs.microsoft.com/en-us/azure/virtual-machines/linux/ephemeral-os-disks#size-requirements. + /// https://learn.microsoft.com/azure/virtual-machines/linux/ephemeral-os-disks#size-requirements. /// Possible values include: 'CacheDisk' public DiffDiskSettings(DiffDiskPlacement? placement = default(DiffDiskPlacement?)) @@ -57,9 +57,9 @@ public DiffDiskSettings() /// for Ephemeral OS disk provisioning. For more information on Ephemeral OS /// disk size requirements, please refer to Ephemeral OS disk size requirements /// for Windows VMs at - /// https://docs.microsoft.com/en-us/azure/virtual-machines/windows/ephemeral-os-disks#size-requirements + /// https://learn.microsoft.com/azure/virtual-machines/windows/ephemeral-os-disks#size-requirements /// and Linux VMs at - /// https://docs.microsoft.com/en-us/azure/virtual-machines/linux/ephemeral-os-disks#size-requirements. Possible values include: 'CacheDisk' + /// https://learn.microsoft.com/azure/virtual-machines/linux/ephemeral-os-disks#size-requirements. Possible values include: 'CacheDisk' /// [Newtonsoft.Json.JsonProperty(PropertyName = "placement")] public DiffDiskPlacement? Placement {get; set; } diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/DiskEncryptionConfiguration.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/DiskEncryptionConfiguration.cs index 3b48b428f459..921c0887ea41 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/DiskEncryptionConfiguration.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/DiskEncryptionConfiguration.cs @@ -10,7 +10,7 @@ namespace Microsoft.Azure.Management.Batch.Models /// /// The disk encryption configuration applied on compute nodes in the pool. /// Disk encryption configuration is not supported on Linux pool created with - /// Virtual Machine Image or Shared Image Gallery Image. + /// Virtual Machine Image or Azure Compute Gallery Image. /// public partial class DiskEncryptionConfiguration { diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/ErrorAdditionalInfo.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/ErrorAdditionalInfo.cs new file mode 100644 index 000000000000..c03d84b6f03e --- /dev/null +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/ErrorAdditionalInfo.cs @@ -0,0 +1,58 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.Management.Batch.Models +{ + using System.Linq; + + /// + /// The resource management error additional info. + /// + public partial class ErrorAdditionalInfo + { + /// + /// Initializes a new instance of the ErrorAdditionalInfo class. + /// + public ErrorAdditionalInfo() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the ErrorAdditionalInfo class. + /// + + /// The additional info type. + /// + + /// The additional info. + /// + public ErrorAdditionalInfo(string type = default(string), object info = default(object)) + + { + this.Type = type; + this.Info = info; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + + /// + /// Gets the additional info type. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "type")] + public string Type {get; private set; } + + /// + /// Gets the additional info. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "info")] + public object Info {get; private set; } + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/ErrorDetail.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/ErrorDetail.cs new file mode 100644 index 000000000000..1e1e859e86f5 --- /dev/null +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/ErrorDetail.cs @@ -0,0 +1,88 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.Management.Batch.Models +{ + using System.Linq; + + /// + /// The error detail. + /// + public partial class ErrorDetail + { + /// + /// Initializes a new instance of the ErrorDetail class. + /// + public ErrorDetail() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the ErrorDetail class. + /// + + /// The error code. + /// + + /// The error message. + /// + + /// The error target. + /// + + /// The error details. + /// + + /// The error additional info. + /// + public ErrorDetail(string code = default(string), string message = default(string), string target = default(string), System.Collections.Generic.IList details = default(System.Collections.Generic.IList), System.Collections.Generic.IList additionalInfo = default(System.Collections.Generic.IList)) + + { + this.Code = code; + this.Message = message; + this.Target = target; + this.Details = details; + this.AdditionalInfo = additionalInfo; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + + /// + /// Gets the error code. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "code")] + public string Code {get; private set; } + + /// + /// Gets the error message. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "message")] + public string Message {get; private set; } + + /// + /// Gets the error target. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "target")] + public string Target {get; private set; } + + /// + /// Gets the error details. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "details")] + public System.Collections.Generic.IList Details {get; private set; } + + /// + /// Gets the error additional info. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "additionalInfo")] + public System.Collections.Generic.IList AdditionalInfo {get; private set; } + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/ErrorResponse.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/ErrorResponse.cs new file mode 100644 index 000000000000..d052775e919c --- /dev/null +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/ErrorResponse.cs @@ -0,0 +1,55 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.Management.Batch.Models +{ + using System.Linq; + + /// + /// Common error response for all Azure Resource Manager APIs to return error + /// details for failed operations. (This also follows the OData error response + /// format.). + /// + /// + /// Common error response for all Azure Resource Manager APIs to return error + /// details for failed operations. (This also follows the OData error response + /// format.). + /// + public partial class ErrorResponse + { + /// + /// Initializes a new instance of the ErrorResponse class. + /// + public ErrorResponse() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the ErrorResponse class. + /// + + /// The error object. + /// + public ErrorResponse(ErrorDetail error = default(ErrorDetail)) + + { + this.Error = error; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + + /// + /// Gets or sets the error object. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "error")] + public ErrorDetail Error {get; set; } + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/ErrorResponseException.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/ErrorResponseException.cs new file mode 100644 index 000000000000..7d1319007228 --- /dev/null +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/ErrorResponseException.cs @@ -0,0 +1,55 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.Management.Batch.Models +{ + + /// + /// Exception thrown for an invalid response with ErrorResponse information. + /// + public partial class ErrorResponseException : Microsoft.Rest.RestException + { + /// + /// Gets information about the associated HTTP request. + /// + public Microsoft.Rest.HttpRequestMessageWrapper Request { get; set; } + + /// + /// Gets information about the associated HTTP response. + /// + public Microsoft.Rest.HttpResponseMessageWrapper Response { get; set; } + + /// + /// Gets or sets the body object. + /// + public ErrorResponse Body { get; set; } + + /// + /// Initializes a new instance of the ErrorResponseException class. + /// + public ErrorResponseException() + { + } + + /// + /// Initializes a new instance of the ErrorResponse class. + /// + /// The exception message. + public ErrorResponseException(string message) + : this(message, null) + { + } + + /// + /// Initializes a new instance of the ErrorResponse class. + /// + /// The exception message. + /// Inner exception. + public ErrorResponseException(string message, System.Exception innerException) + : base(message, innerException) + { + } + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/ImageReference.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/ImageReference.cs index e4a5704db903..3b796bea11be 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/ImageReference.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/ImageReference.cs @@ -46,13 +46,21 @@ public ImageReference() /// image. If omitted, the default is 'latest'. /// - /// This property is mutually exclusive with other properties. The Shared Image - /// Gallery image must have replicas in the same region as the Azure Batch - /// account. For information about the firewall settings for the Batch node - /// agent to communicate with the Batch service see - /// https://docs.microsoft.com/en-us/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration. + /// This property is mutually exclusive with other properties. The Azure + /// Compute Gallery Image must have replicas in the same region as the Azure + /// Batch account. For information about the firewall settings for the Batch + /// node agent to communicate with the Batch service see + /// https://learn.microsoft.com/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration. /// - public ImageReference(string publisher = default(string), string offer = default(string), string sku = default(string), string version = default(string), string id = default(string)) + + /// This property is mutually exclusive with other properties and can be + /// fetched from shared gallery image GET call. + /// + + /// This property is mutually exclusive with other properties and can be + /// fetched from community gallery image GET call. + /// + public ImageReference(string publisher = default(string), string offer = default(string), string sku = default(string), string version = default(string), string id = default(string), string sharedGalleryImageId = default(string), string communityGalleryImageId = default(string)) { this.Publisher = publisher; @@ -60,6 +68,8 @@ public ImageReference() this.Sku = sku; this.Version = version; this.Id = id; + this.SharedGalleryImageId = sharedGalleryImageId; + this.CommunityGalleryImageId = communityGalleryImageId; CustomInit(); } @@ -96,12 +106,26 @@ public ImageReference() /// /// Gets or sets this property is mutually exclusive with other properties. The - /// Shared Image Gallery image must have replicas in the same region as the + /// Azure Compute Gallery Image must have replicas in the same region as the /// Azure Batch account. For information about the firewall settings for the /// Batch node agent to communicate with the Batch service see - /// https://docs.microsoft.com/en-us/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration. + /// https://learn.microsoft.com/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration. /// [Newtonsoft.Json.JsonProperty(PropertyName = "id")] public string Id {get; set; } + + /// + /// Gets or sets this property is mutually exclusive with other properties and + /// can be fetched from shared gallery image GET call. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "sharedGalleryImageId")] + public string SharedGalleryImageId {get; set; } + + /// + /// Gets or sets this property is mutually exclusive with other properties and + /// can be fetched from community gallery image GET call. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "communityGalleryImageId")] + public string CommunityGalleryImageId {get; set; } } } \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/InboundNatPool.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/InboundNatPool.cs index 34d0340ab5bd..4523d48c9f21 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/InboundNatPool.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/InboundNatPool.cs @@ -40,9 +40,8 @@ public InboundNatPool() /// Possible values include: 'TCP', 'UDP' /// This must be unique within a Batch pool. Acceptable values are between 1 - /// and 65535 except for 22, 3389, 29876 and 29877 as these are reserved. If - /// any reserved values are provided the request fails with HTTP status code - /// 400. + /// and 65535 except for 29876 and 29877 as these are reserved. If any reserved + /// values are provided the request fails with HTTP status code 400. /// /// Acceptable values range between 1 and 65534 except ports from 50000 to @@ -99,9 +98,9 @@ public InboundNatPool() /// /// Gets or sets this must be unique within a Batch pool. Acceptable values are - /// between 1 and 65535 except for 22, 3389, 29876 and 29877 as these are - /// reserved. If any reserved values are provided the request fails with HTTP - /// status code 400. + /// between 1 and 65535 except for 29876 and 29877 as these are reserved. If + /// any reserved values are provided the request fails with HTTP status code + /// 400. /// [Newtonsoft.Json.JsonProperty(PropertyName = "backendPort")] public int BackendPort {get; set; } diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/IssueType.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/IssueType.cs new file mode 100644 index 000000000000..877cc16ddc5c --- /dev/null +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/IssueType.cs @@ -0,0 +1,39 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.Management.Batch.Models +{ + + /// + /// Defines values for IssueType. + /// + + + public static class IssueType + { + /// + /// Unknown issue type + /// + public const string Unknown = "Unknown"; + /// + /// An error occurred while applying the network security perimeter (NSP) + /// configuration. + /// + public const string ConfigurationPropagationFailure = "ConfigurationPropagationFailure"; + /// + /// A network connectivity issue is happening on the resource which could be + /// addressed either by adding new resources to the network security perimeter + /// (NSP) or by modifying access rules. + /// + public const string MissingPerimeterConfiguration = "MissingPerimeterConfiguration"; + /// + /// An managed identity hasn't been associated with the resource. The resource + /// will still be able to validate inbound traffic from the network security + /// perimeter (NSP) or matching inbound access rules, but it won't be able to + /// perform outbound access as a member of the NSP. + /// + public const string MissingIdentityConfiguration = "MissingIdentityConfiguration"; + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/KeyVaultProperties.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/KeyVaultProperties.cs index 88c6b8b6290f..f9679564ce89 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/KeyVaultProperties.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/KeyVaultProperties.cs @@ -25,9 +25,10 @@ public KeyVaultProperties() /// Initializes a new instance of the KeyVaultProperties class. /// - /// Full path to the versioned secret. Example + /// Full path to the secret with or without version. Example /// https://mykeyvault.vault.azure.net/keys/testkey/6e34a81fef704045975661e297a4c053. - /// To be usable the following prerequisites must be met: + /// or https://mykeyvault.vault.azure.net/keys/testkey. To be usable the + /// following prerequisites must be met: /// The Batch Account has a System Assigned identity /// The account identity has been granted Key/Get, Key/Unwrap and Key/Wrap /// permissions @@ -47,9 +48,10 @@ public KeyVaultProperties() /// - /// Gets or sets full path to the versioned secret. Example + /// Gets or sets full path to the secret with or without version. Example /// https://mykeyvault.vault.azure.net/keys/testkey/6e34a81fef704045975661e297a4c053. - /// To be usable the following prerequisites must be met: + /// or https://mykeyvault.vault.azure.net/keys/testkey. To be usable the + /// following prerequisites must be met: /// The Batch Account has a System Assigned identity /// The account identity has been granted Key/Get, Key/Unwrap and Key/Wrap /// permissions diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/ManagedDisk.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/ManagedDisk.cs new file mode 100644 index 000000000000..c124fafb28a5 --- /dev/null +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/ManagedDisk.cs @@ -0,0 +1,60 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.Management.Batch.Models +{ + using System.Linq; + + public partial class ManagedDisk + { + /// + /// Initializes a new instance of the ManagedDisk class. + /// + public ManagedDisk() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the ManagedDisk class. + /// + + /// The storage account type for use in creating data disks or OS disk. + /// Possible values include: 'Standard_LRS', 'Premium_LRS', 'StandardSSD_LRS' + + /// Specifies the security profile settings for the managed disk. **Note**: It + /// can only be set for Confidential VMs and is required when using + /// Confidential VMs. + /// + public ManagedDisk(StorageAccountType? storageAccountType = default(StorageAccountType?), VMDiskSecurityProfile securityProfile = default(VMDiskSecurityProfile)) + + { + this.StorageAccountType = storageAccountType; + this.SecurityProfile = securityProfile; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + + /// + /// Gets or sets the storage account type for use in creating data disks or OS + /// disk. Possible values include: 'Standard_LRS', 'Premium_LRS', 'StandardSSD_LRS' + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "storageAccountType")] + public StorageAccountType? StorageAccountType {get; set; } + + /// + /// Gets or sets specifies the security profile settings for the managed disk. + /// **Note**: It can only be set for Confidential VMs and is required when + /// using Confidential VMs. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "securityProfile")] + public VMDiskSecurityProfile SecurityProfile {get; set; } + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/NetworkConfiguration.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/NetworkConfiguration.cs index 0606bd92da94..7e91a6718fc8 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/NetworkConfiguration.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/NetworkConfiguration.cs @@ -38,32 +38,34 @@ public NetworkConfiguration() /// NSG, then the Batch service will set the state of the compute nodes to /// unusable. If the specified VNet has any associated Network Security Groups /// (NSG), then a few reserved system ports must be enabled for inbound - /// communication. For pools created with a virtual machine configuration, - /// enable ports 29876 and 29877, as well as port 22 for Linux and port 3389 - /// for Windows. For pools created with a cloud service configuration, enable - /// ports 10100, 20100, and 30100. Also enable outbound connections to Azure - /// Storage on port 443. For cloudServiceConfiguration pools, only 'classic' - /// VNETs are supported. For more details see: - /// https://docs.microsoft.com/en-us/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration + /// communication,including ports 29876 and 29877. Also enable outbound + /// connections to Azure Storage on port 443. For more details see: + /// https://learn.microsoft.com/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration /// /// The scope of dynamic vnet assignment. /// Possible values include: 'none', 'job' - /// Pool endpoint configuration is only supported on pools with the - /// virtualMachineConfiguration property. + /// The endpoint configuration for a pool. /// - /// This property is only supported on Pools with the - /// virtualMachineConfiguration property. + /// The public IP Address configuration of the networking configuration of a + /// Pool. /// - public NetworkConfiguration(string subnetId = default(string), DynamicVNetAssignmentScope? dynamicVnetAssignmentScope = default(DynamicVNetAssignmentScope?), PoolEndpointConfiguration endpointConfiguration = default(PoolEndpointConfiguration), PublicIPAddressConfiguration publicIPAddressConfiguration = default(PublicIPAddressConfiguration)) + + /// Accelerated networking enables single root I/O virtualization (SR-IOV) to a + /// VM, which may lead to improved networking performance. For more details, + /// see: + /// https://learn.microsoft.com/azure/virtual-network/accelerated-networking-overview. + /// + public NetworkConfiguration(string subnetId = default(string), DynamicVNetAssignmentScope? dynamicVnetAssignmentScope = default(DynamicVNetAssignmentScope?), PoolEndpointConfiguration endpointConfiguration = default(PoolEndpointConfiguration), PublicIPAddressConfiguration publicIPAddressConfiguration = default(PublicIPAddressConfiguration), bool? enableAcceleratedNetworking = default(bool?)) { this.SubnetId = subnetId; this.DynamicVnetAssignmentScope = dynamicVnetAssignmentScope; this.EndpointConfiguration = endpointConfiguration; this.PublicIPAddressConfiguration = publicIPAddressConfiguration; + this.EnableAcceleratedNetworking = enableAcceleratedNetworking; CustomInit(); } @@ -88,13 +90,10 @@ public NetworkConfiguration() /// specified subnet is denied by an NSG, then the Batch service will set the /// state of the compute nodes to unusable. If the specified VNet has any /// associated Network Security Groups (NSG), then a few reserved system ports - /// must be enabled for inbound communication. For pools created with a virtual - /// machine configuration, enable ports 29876 and 29877, as well as port 22 for - /// Linux and port 3389 for Windows. For pools created with a cloud service - /// configuration, enable ports 10100, 20100, and 30100. Also enable outbound - /// connections to Azure Storage on port 443. For cloudServiceConfiguration - /// pools, only 'classic' VNETs are supported. For more details see: - /// https://docs.microsoft.com/en-us/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration + /// must be enabled for inbound communication,including ports 29876 and 29877. + /// Also enable outbound connections to Azure Storage on port 443. For more + /// details see: + /// https://learn.microsoft.com/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration /// [Newtonsoft.Json.JsonProperty(PropertyName = "subnetId")] public string SubnetId {get; set; } @@ -106,18 +105,26 @@ public NetworkConfiguration() public DynamicVNetAssignmentScope? DynamicVnetAssignmentScope {get; set; } /// - /// Gets or sets pool endpoint configuration is only supported on pools with - /// the virtualMachineConfiguration property. + /// Gets or sets the endpoint configuration for a pool. /// [Newtonsoft.Json.JsonProperty(PropertyName = "endpointConfiguration")] public PoolEndpointConfiguration EndpointConfiguration {get; set; } /// - /// Gets or sets this property is only supported on Pools with the - /// virtualMachineConfiguration property. + /// Gets or sets the public IP Address configuration of the networking + /// configuration of a Pool. /// [Newtonsoft.Json.JsonProperty(PropertyName = "publicIPAddressConfiguration")] public PublicIPAddressConfiguration PublicIPAddressConfiguration {get; set; } + + /// + /// Gets or sets accelerated networking enables single root I/O virtualization + /// (SR-IOV) to a VM, which may lead to improved networking performance. For + /// more details, see: + /// https://learn.microsoft.com/azure/virtual-network/accelerated-networking-overview. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "enableAcceleratedNetworking")] + public bool? EnableAcceleratedNetworking {get; set; } /// /// Validate the object. /// diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/NetworkSecurityPerimeter.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/NetworkSecurityPerimeter.cs new file mode 100644 index 000000000000..df9f421ebaa8 --- /dev/null +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/NetworkSecurityPerimeter.cs @@ -0,0 +1,68 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.Management.Batch.Models +{ + using System.Linq; + + /// + /// Information about a network security perimeter (NSP) + /// + public partial class NetworkSecurityPerimeter + { + /// + /// Initializes a new instance of the NetworkSecurityPerimeter class. + /// + public NetworkSecurityPerimeter() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the NetworkSecurityPerimeter class. + /// + + /// Fully qualified Azure resource ID of the NSP resource + /// + + /// Universal unique ID (UUID) of the network security perimeter + /// + + /// Location of the network security perimeter + /// + public NetworkSecurityPerimeter(string id = default(string), System.Guid? perimeterGuid = default(System.Guid?), string location = default(string)) + + { + this.Id = id; + this.PerimeterGuid = perimeterGuid; + this.Location = location; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + + /// + /// Gets or sets fully qualified Azure resource ID of the NSP resource + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "id")] + public string Id {get; set; } + + /// + /// Gets or sets universal unique ID (UUID) of the network security perimeter + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "perimeterGuid")] + public System.Guid? PerimeterGuid {get; set; } + + /// + /// Gets or sets location of the network security perimeter + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "location")] + public string Location {get; set; } + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/NetworkSecurityPerimeterConfiguration.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/NetworkSecurityPerimeterConfiguration.cs new file mode 100644 index 000000000000..65ca39f79a9b --- /dev/null +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/NetworkSecurityPerimeterConfiguration.cs @@ -0,0 +1,64 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.Management.Batch.Models +{ + using System.Linq; + + /// + /// Network security perimeter (NSP) configuration resource + /// + public partial class NetworkSecurityPerimeterConfiguration : ProxyResource + { + /// + /// Initializes a new instance of the NetworkSecurityPerimeterConfiguration class. + /// + public NetworkSecurityPerimeterConfiguration() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the NetworkSecurityPerimeterConfiguration class. + /// + + /// Fully qualified resource ID for the resource. E.g. + /// "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}" + /// + + /// The name of the resource + /// + + /// The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + /// "Microsoft.Storage/storageAccounts" + /// + + /// Azure Resource Manager metadata containing createdBy and modifiedBy + /// information. + /// + + /// Network security configuration properties. + /// + public NetworkSecurityPerimeterConfiguration(string id = default(string), string name = default(string), string type = default(string), SystemData systemData = default(SystemData), NetworkSecurityPerimeterConfigurationProperties properties = default(NetworkSecurityPerimeterConfigurationProperties)) + + : base(id, name, type, systemData) + { + this.Properties = properties; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + + /// + /// Gets or sets network security configuration properties. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "properties")] + public NetworkSecurityPerimeterConfigurationProperties Properties {get; set; } + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/NetworkSecurityPerimeterConfigurationProperties.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/NetworkSecurityPerimeterConfigurationProperties.cs new file mode 100644 index 000000000000..cbe57291b0b8 --- /dev/null +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/NetworkSecurityPerimeterConfigurationProperties.cs @@ -0,0 +1,91 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.Management.Batch.Models +{ + using System.Linq; + + /// + /// Network security configuration properties. + /// + public partial class NetworkSecurityPerimeterConfigurationProperties + { + /// + /// Initializes a new instance of the NetworkSecurityPerimeterConfigurationProperties class. + /// + public NetworkSecurityPerimeterConfigurationProperties() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the NetworkSecurityPerimeterConfigurationProperties class. + /// + + /// Provisioning state of a network security perimeter configuration that is + /// being created or updated. + /// Possible values include: 'Succeeded', 'Creating', 'Updating', 'Deleting', + /// 'Accepted', 'Failed', 'Canceled' + + /// List of provisioning issues, if any + /// + + /// Information about a network security perimeter (NSP) + /// + + /// Information about resource association + /// + + /// Network security perimeter configuration profile + /// + public NetworkSecurityPerimeterConfigurationProperties(string provisioningState = default(string), System.Collections.Generic.IList provisioningIssues = default(System.Collections.Generic.IList), NetworkSecurityPerimeter networkSecurityPerimeter = default(NetworkSecurityPerimeter), ResourceAssociation resourceAssociation = default(ResourceAssociation), NetworkSecurityProfile profile = default(NetworkSecurityProfile)) + + { + this.ProvisioningState = provisioningState; + this.ProvisioningIssues = provisioningIssues; + this.NetworkSecurityPerimeter = networkSecurityPerimeter; + this.ResourceAssociation = resourceAssociation; + this.Profile = profile; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + + /// + /// Gets provisioning state of a network security perimeter configuration that + /// is being created or updated. Possible values include: 'Succeeded', 'Creating', 'Updating', 'Deleting', 'Accepted', 'Failed', 'Canceled' + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "provisioningState")] + public string ProvisioningState {get; private set; } + + /// + /// Gets list of provisioning issues, if any + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "provisioningIssues")] + public System.Collections.Generic.IList ProvisioningIssues {get; private set; } + + /// + /// Gets or sets information about a network security perimeter (NSP) + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "networkSecurityPerimeter")] + public NetworkSecurityPerimeter NetworkSecurityPerimeter {get; set; } + + /// + /// Gets or sets information about resource association + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "resourceAssociation")] + public ResourceAssociation ResourceAssociation {get; set; } + + /// + /// Gets or sets network security perimeter configuration profile + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "profile")] + public NetworkSecurityProfile Profile {get; set; } + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/NetworkSecurityPerimeterConfigurationProvisioningState.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/NetworkSecurityPerimeterConfigurationProvisioningState.cs new file mode 100644 index 000000000000..983ab2758ba9 --- /dev/null +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/NetworkSecurityPerimeterConfigurationProvisioningState.cs @@ -0,0 +1,24 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.Management.Batch.Models +{ + + /// + /// Defines values for NetworkSecurityPerimeterConfigurationProvisioningState. + /// + + + public static class NetworkSecurityPerimeterConfigurationProvisioningState + { + public const string Succeeded = "Succeeded"; + public const string Creating = "Creating"; + public const string Updating = "Updating"; + public const string Deleting = "Deleting"; + public const string Accepted = "Accepted"; + public const string Failed = "Failed"; + public const string Canceled = "Canceled"; + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/NetworkSecurityPerimeterReconcileConfigurationHeaders.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/NetworkSecurityPerimeterReconcileConfigurationHeaders.cs new file mode 100644 index 000000000000..460063e8e070 --- /dev/null +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/NetworkSecurityPerimeterReconcileConfigurationHeaders.cs @@ -0,0 +1,55 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.Management.Batch.Models +{ + using System.Linq; + + public partial class NetworkSecurityPerimeterReconcileConfigurationHeaders + { + /// + /// Initializes a new instance of the NetworkSecurityPerimeterReconcileConfigurationHeaders class. + /// + public NetworkSecurityPerimeterReconcileConfigurationHeaders() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the NetworkSecurityPerimeterReconcileConfigurationHeaders class. + /// + + /// + /// + + /// + /// + public NetworkSecurityPerimeterReconcileConfigurationHeaders(string location = default(string), int? retryAfter = default(int?)) + + { + this.Location = location; + this.RetryAfter = retryAfter; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + + /// + /// Gets or sets + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "Location")] + public string Location {get; set; } + + /// + /// Gets or sets + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "Retry-After")] + public int? RetryAfter {get; set; } + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/NetworkSecurityProfile.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/NetworkSecurityProfile.cs new file mode 100644 index 000000000000..ef326f14f54e --- /dev/null +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/NetworkSecurityProfile.cs @@ -0,0 +1,88 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.Management.Batch.Models +{ + using System.Linq; + + /// + /// Network security perimeter configuration profile + /// + public partial class NetworkSecurityProfile + { + /// + /// Initializes a new instance of the NetworkSecurityProfile class. + /// + public NetworkSecurityProfile() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the NetworkSecurityProfile class. + /// + + /// Name of the profile + /// + + /// Current access rules version + /// + + /// List of Access Rules + /// + + /// Current diagnostic settings version + /// + + /// List of log categories that are enabled + /// + public NetworkSecurityProfile(string name = default(string), int? accessRulesVersion = default(int?), System.Collections.Generic.IList accessRules = default(System.Collections.Generic.IList), int? diagnosticSettingsVersion = default(int?), System.Collections.Generic.IList enabledLogCategories = default(System.Collections.Generic.IList)) + + { + this.Name = name; + this.AccessRulesVersion = accessRulesVersion; + this.AccessRules = accessRules; + this.DiagnosticSettingsVersion = diagnosticSettingsVersion; + this.EnabledLogCategories = enabledLogCategories; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + + /// + /// Gets or sets name of the profile + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "name")] + public string Name {get; set; } + + /// + /// Gets or sets current access rules version + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "accessRulesVersion")] + public int? AccessRulesVersion {get; set; } + + /// + /// Gets or sets list of Access Rules + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "accessRules")] + public System.Collections.Generic.IList AccessRules {get; set; } + + /// + /// Gets or sets current diagnostic settings version + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "diagnosticSettingsVersion")] + public int? DiagnosticSettingsVersion {get; set; } + + /// + /// Gets or sets list of log categories that are enabled + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "enabledLogCategories")] + public System.Collections.Generic.IList EnabledLogCategories {get; set; } + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/OSDisk.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/OSDisk.cs index f55a582a9387..db610851e614 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/OSDisk.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/OSDisk.cs @@ -30,10 +30,27 @@ public OSDisk() /// Specifies the ephemeral Disk Settings for the operating system disk used by /// the virtual machine. /// - public OSDisk(DiffDiskSettings ephemeralOSDiskSettings = default(DiffDiskSettings)) + + /// The type of caching to enable for the disk. + /// Possible values include: 'None', 'ReadOnly', 'ReadWrite' + + /// + /// + + /// The initial disk size in GB when creating new OS disk. + /// + + /// Specifies whether writeAccelerator should be enabled or disabled on the + /// disk. + /// + public OSDisk(DiffDiskSettings ephemeralOSDiskSettings = default(DiffDiskSettings), CachingType? caching = default(CachingType?), ManagedDisk managedDisk = default(ManagedDisk), int? diskSizeGb = default(int?), bool? writeAcceleratorEnabled = default(bool?)) { this.EphemeralOSDiskSettings = ephemeralOSDiskSettings; + this.Caching = caching; + this.ManagedDisk = managedDisk; + this.DiskSizeGb = diskSizeGb; + this.WriteAcceleratorEnabled = writeAcceleratorEnabled; CustomInit(); } @@ -49,5 +66,30 @@ public OSDisk() /// [Newtonsoft.Json.JsonProperty(PropertyName = "ephemeralOSDiskSettings")] public DiffDiskSettings EphemeralOSDiskSettings {get; set; } + + /// + /// Gets or sets the type of caching to enable for the disk. Possible values include: 'None', 'ReadOnly', 'ReadWrite' + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "caching")] + public CachingType? Caching {get; set; } + + /// + /// Gets or sets + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "managedDisk")] + public ManagedDisk ManagedDisk {get; set; } + + /// + /// Gets or sets the initial disk size in GB when creating new OS disk. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "diskSizeGB")] + public int? DiskSizeGb {get; set; } + + /// + /// Gets or sets specifies whether writeAccelerator should be enabled or + /// disabled on the disk. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "writeAcceleratorEnabled")] + public bool? WriteAcceleratorEnabled {get; set; } } } \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/Pool.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/Pool.cs index c2b8172b2761..883dd30c61af 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/Pool.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/Pool.cs @@ -11,7 +11,7 @@ namespace Microsoft.Azure.Management.Batch.Models /// Contains information about a pool. /// [Microsoft.Rest.Serialization.JsonTransformation] - public partial class Pool : ProxyResource + public partial class Pool : AzureProxyResource { /// /// Initializes a new instance of the Pool class. @@ -37,15 +37,16 @@ public Pool() /// The ETag of the resource, used for concurrency statements. /// + /// The tags of the resource. + /// + /// The type of identity used for the Batch Pool. /// /// Whether the pool is resizing. /// Possible values include: 'Steady', 'Resizing', 'Stopping' - /// Using CloudServiceConfiguration specifies that the nodes should be creating - /// using Azure Cloud Services (PaaS), while VirtualMachineConfiguration uses - /// Azure Virtual Machines (IaaS). + /// Deployment configuration properties. /// /// Defines the desired size of the pool. This can either be 'fixedScale' where @@ -62,6 +63,9 @@ public Pool() /// to remove the start task from the pool. /// + /// Describes an upgrade policy - automatic, manual, or rolling. + /// + /// The display name need not be unique and can contain any Unicode characters /// up to a maximum length of 1024. /// @@ -83,17 +87,8 @@ public Pool() /// The time at which the pool entered its current allocation state. /// - /// For information about available sizes of virtual machines for Cloud - /// Services pools (pools created with cloudServiceConfiguration), see Sizes - /// for Cloud Services - /// (https://azure.microsoft.com/documentation/articles/cloud-services-sizes-specs/). - /// Batch supports all Cloud Services VM sizes except ExtraSmall. For - /// information about available VM sizes for pools using images from the - /// Virtual Machines Marketplace (pools created with - /// virtualMachineConfiguration) see Sizes for Virtual Machines (Linux) - /// (https://azure.microsoft.com/documentation/articles/virtual-machines-linux-sizes/) - /// or Sizes for Virtual Machines (Windows) - /// (https://azure.microsoft.com/documentation/articles/virtual-machines-windows-sizes/). + /// 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). /// @@ -166,9 +161,16 @@ public Pool() /// Determines how a pool communicates with the Batch service. /// Possible values include: 'Default', 'Classic', 'Simplified' - public Pool(string id = default(string), string name = default(string), string type = default(string), string etag = default(string), BatchPoolIdentity identity = default(BatchPoolIdentity), AllocationState? allocationState = default(AllocationState?), DeploymentConfiguration deploymentConfiguration = default(DeploymentConfiguration), ScaleSettings scaleSettings = default(ScaleSettings), NetworkConfiguration networkConfiguration = default(NetworkConfiguration), StartTask startTask = default(StartTask), string displayName = default(string), System.DateTime? lastModified = default(System.DateTime?), System.DateTime? creationTime = default(System.DateTime?), PoolProvisioningState? provisioningState = default(PoolProvisioningState?), System.DateTime? provisioningStateTransitionTime = default(System.DateTime?), System.DateTime? allocationStateTransitionTime = default(System.DateTime?), string vmSize = default(string), int? currentDedicatedNodes = default(int?), int? currentLowPriorityNodes = default(int?), AutoScaleRun autoScaleRun = default(AutoScaleRun), InterNodeCommunicationState? interNodeCommunication = default(InterNodeCommunicationState?), int? taskSlotsPerNode = default(int?), TaskSchedulingPolicy taskSchedulingPolicy = default(TaskSchedulingPolicy), System.Collections.Generic.IList userAccounts = default(System.Collections.Generic.IList), System.Collections.Generic.IList metadata = default(System.Collections.Generic.IList), System.Collections.Generic.IList certificates = default(System.Collections.Generic.IList), System.Collections.Generic.IList applicationPackages = default(System.Collections.Generic.IList), System.Collections.Generic.IList applicationLicenses = default(System.Collections.Generic.IList), ResizeOperationStatus resizeOperationStatus = default(ResizeOperationStatus), System.Collections.Generic.IList mountConfiguration = default(System.Collections.Generic.IList), NodeCommunicationMode? targetNodeCommunicationMode = default(NodeCommunicationMode?), NodeCommunicationMode? currentNodeCommunicationMode = default(NodeCommunicationMode?)) - : base(id, name, type, etag) + /// 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'. + /// + public Pool(string id = default(string), string name = default(string), string type = default(string), string etag = default(string), System.Collections.Generic.IDictionary tags = default(System.Collections.Generic.IDictionary), BatchPoolIdentity identity = default(BatchPoolIdentity), AllocationState? allocationState = default(AllocationState?), DeploymentConfiguration deploymentConfiguration = default(DeploymentConfiguration), ScaleSettings scaleSettings = default(ScaleSettings), NetworkConfiguration networkConfiguration = default(NetworkConfiguration), StartTask startTask = default(StartTask), UpgradePolicy upgradePolicy = default(UpgradePolicy), string displayName = default(string), System.DateTime? lastModified = default(System.DateTime?), System.DateTime? creationTime = default(System.DateTime?), PoolProvisioningState? provisioningState = default(PoolProvisioningState?), System.DateTime? provisioningStateTransitionTime = default(System.DateTime?), System.DateTime? allocationStateTransitionTime = default(System.DateTime?), string vmSize = default(string), int? currentDedicatedNodes = default(int?), int? currentLowPriorityNodes = default(int?), AutoScaleRun autoScaleRun = default(AutoScaleRun), InterNodeCommunicationState? interNodeCommunication = default(InterNodeCommunicationState?), int? taskSlotsPerNode = default(int?), TaskSchedulingPolicy taskSchedulingPolicy = default(TaskSchedulingPolicy), System.Collections.Generic.IList userAccounts = default(System.Collections.Generic.IList), System.Collections.Generic.IList metadata = default(System.Collections.Generic.IList), System.Collections.Generic.IList certificates = default(System.Collections.Generic.IList), System.Collections.Generic.IList applicationPackages = default(System.Collections.Generic.IList), System.Collections.Generic.IList applicationLicenses = default(System.Collections.Generic.IList), ResizeOperationStatus resizeOperationStatus = default(ResizeOperationStatus), System.Collections.Generic.IList mountConfiguration = default(System.Collections.Generic.IList), NodeCommunicationMode? targetNodeCommunicationMode = default(NodeCommunicationMode?), NodeCommunicationMode? currentNodeCommunicationMode = default(NodeCommunicationMode?), System.Collections.Generic.IDictionary resourceTags = default(System.Collections.Generic.IDictionary)) + + : base(id, name, type, etag, tags) { this.Identity = identity; this.AllocationState = allocationState; @@ -176,6 +178,7 @@ public Pool() this.ScaleSettings = scaleSettings; this.NetworkConfiguration = networkConfiguration; this.StartTask = startTask; + this.UpgradePolicy = upgradePolicy; this.DisplayName = displayName; this.LastModified = lastModified; this.CreationTime = creationTime; @@ -198,6 +201,7 @@ public Pool() this.MountConfiguration = mountConfiguration; this.TargetNodeCommunicationMode = targetNodeCommunicationMode; this.CurrentNodeCommunicationMode = currentNodeCommunicationMode; + this.ResourceTags = resourceTags; CustomInit(); } @@ -220,9 +224,7 @@ public Pool() public AllocationState? AllocationState {get; private set; } /// - /// Gets or sets using CloudServiceConfiguration specifies that the nodes - /// should be creating using Azure Cloud Services (PaaS), while - /// VirtualMachineConfiguration uses Azure Virtual Machines (IaaS). + /// Gets or sets deployment configuration properties. /// [Newtonsoft.Json.JsonProperty(PropertyName = "properties.deploymentConfiguration")] public DeploymentConfiguration DeploymentConfiguration {get; set; } @@ -250,6 +252,12 @@ public Pool() [Newtonsoft.Json.JsonProperty(PropertyName = "properties.startTask")] public StartTask StartTask {get; set; } + /// + /// Gets or sets describes an upgrade policy - automatic, manual, or rolling. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "properties.upgradePolicy")] + public UpgradePolicy UpgradePolicy {get; set; } + /// /// Gets or sets the display name need not be unique and can contain any /// Unicode characters up to a maximum length of 1024. @@ -290,18 +298,10 @@ public Pool() public System.DateTime? AllocationStateTransitionTime {get; private set; } /// - /// Gets or sets for information about available sizes of virtual machines for - /// Cloud Services pools (pools created with cloudServiceConfiguration), see - /// Sizes for Cloud Services - /// (https://azure.microsoft.com/documentation/articles/cloud-services-sizes-specs/). - /// Batch supports all Cloud Services VM sizes except ExtraSmall. For - /// information about available VM sizes for pools using images from the - /// Virtual Machines Marketplace (pools created with - /// virtualMachineConfiguration) see Sizes for Virtual Machines (Linux) - /// (https://azure.microsoft.com/documentation/articles/virtual-machines-linux-sizes/) - /// or Sizes for Virtual Machines (Windows) - /// (https://azure.microsoft.com/documentation/articles/virtual-machines-windows-sizes/). - /// Batch supports all Azure VM sizes except STANDARD_A0 and those with premium + /// Gets or sets 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). /// [Newtonsoft.Json.JsonProperty(PropertyName = "properties.vmSize")] @@ -421,6 +421,16 @@ public Pool() /// [Newtonsoft.Json.JsonProperty(PropertyName = "properties.currentNodeCommunicationMode")] public NodeCommunicationMode? CurrentNodeCommunicationMode {get; private set; } + + /// + /// Gets or sets 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'. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "properties.resourceTags")] + public System.Collections.Generic.IDictionary ResourceTags {get; set; } /// /// Validate the object. /// @@ -450,6 +460,10 @@ public virtual void Validate() { this.StartTask.Validate(); } + if (this.UpgradePolicy != null) + { + this.UpgradePolicy.Validate(); + } @@ -516,6 +530,7 @@ public virtual void Validate() } + } } } \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/PoolProperties.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/PoolProperties.cs index ca5e18f1baa5..7d21554e9bc7 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/PoolProperties.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/PoolProperties.cs @@ -48,24 +48,13 @@ public PoolProperties() /// The time at which the pool entered its current allocation state. /// - /// For information about available sizes of virtual machines for Cloud - /// Services pools (pools created with cloudServiceConfiguration), see Sizes - /// for Cloud Services - /// (https://azure.microsoft.com/documentation/articles/cloud-services-sizes-specs/). - /// Batch supports all Cloud Services VM sizes except ExtraSmall. For - /// information about available VM sizes for pools using images from the - /// Virtual Machines Marketplace (pools created with - /// virtualMachineConfiguration) see Sizes for Virtual Machines (Linux) - /// (https://azure.microsoft.com/documentation/articles/virtual-machines-linux-sizes/) - /// or Sizes for Virtual Machines (Windows) - /// (https://azure.microsoft.com/documentation/articles/virtual-machines-windows-sizes/). + /// 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). /// - /// Using CloudServiceConfiguration specifies that the nodes should be creating - /// using Azure Cloud Services (PaaS), while VirtualMachineConfiguration uses - /// Azure Virtual Machines (IaaS). + /// Deployment configuration properties. /// /// The number of dedicated compute nodes currently in the pool. @@ -150,7 +139,17 @@ public PoolProperties() /// Determines how a pool communicates with the Batch service. /// Possible values include: 'Default', 'Classic', 'Simplified' - public PoolProperties(string displayName = default(string), System.DateTime? lastModified = default(System.DateTime?), System.DateTime? creationTime = default(System.DateTime?), PoolProvisioningState? provisioningState = default(PoolProvisioningState?), System.DateTime? provisioningStateTransitionTime = default(System.DateTime?), AllocationState? allocationState = default(AllocationState?), System.DateTime? allocationStateTransitionTime = default(System.DateTime?), string vmSize = default(string), DeploymentConfiguration deploymentConfiguration = default(DeploymentConfiguration), int? currentDedicatedNodes = default(int?), int? currentLowPriorityNodes = default(int?), ScaleSettings scaleSettings = default(ScaleSettings), AutoScaleRun autoScaleRun = default(AutoScaleRun), InterNodeCommunicationState? interNodeCommunication = default(InterNodeCommunicationState?), NetworkConfiguration networkConfiguration = default(NetworkConfiguration), int? taskSlotsPerNode = default(int?), TaskSchedulingPolicy taskSchedulingPolicy = default(TaskSchedulingPolicy), System.Collections.Generic.IList userAccounts = default(System.Collections.Generic.IList), System.Collections.Generic.IList metadata = default(System.Collections.Generic.IList), StartTask startTask = default(StartTask), System.Collections.Generic.IList certificates = default(System.Collections.Generic.IList), System.Collections.Generic.IList applicationPackages = default(System.Collections.Generic.IList), System.Collections.Generic.IList applicationLicenses = default(System.Collections.Generic.IList), ResizeOperationStatus resizeOperationStatus = default(ResizeOperationStatus), System.Collections.Generic.IList mountConfiguration = default(System.Collections.Generic.IList), NodeCommunicationMode? targetNodeCommunicationMode = default(NodeCommunicationMode?), NodeCommunicationMode? currentNodeCommunicationMode = default(NodeCommunicationMode?)) + + /// Describes an upgrade policy - automatic, manual, or rolling. + /// + + /// 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'. + /// + public PoolProperties(string displayName = default(string), System.DateTime? lastModified = default(System.DateTime?), System.DateTime? creationTime = default(System.DateTime?), PoolProvisioningState? provisioningState = default(PoolProvisioningState?), System.DateTime? provisioningStateTransitionTime = default(System.DateTime?), AllocationState? allocationState = default(AllocationState?), System.DateTime? allocationStateTransitionTime = default(System.DateTime?), string vmSize = default(string), DeploymentConfiguration deploymentConfiguration = default(DeploymentConfiguration), int? currentDedicatedNodes = default(int?), int? currentLowPriorityNodes = default(int?), ScaleSettings scaleSettings = default(ScaleSettings), AutoScaleRun autoScaleRun = default(AutoScaleRun), InterNodeCommunicationState? interNodeCommunication = default(InterNodeCommunicationState?), NetworkConfiguration networkConfiguration = default(NetworkConfiguration), int? taskSlotsPerNode = default(int?), TaskSchedulingPolicy taskSchedulingPolicy = default(TaskSchedulingPolicy), System.Collections.Generic.IList userAccounts = default(System.Collections.Generic.IList), System.Collections.Generic.IList metadata = default(System.Collections.Generic.IList), StartTask startTask = default(StartTask), System.Collections.Generic.IList certificates = default(System.Collections.Generic.IList), System.Collections.Generic.IList applicationPackages = default(System.Collections.Generic.IList), System.Collections.Generic.IList applicationLicenses = default(System.Collections.Generic.IList), ResizeOperationStatus resizeOperationStatus = default(ResizeOperationStatus), System.Collections.Generic.IList mountConfiguration = default(System.Collections.Generic.IList), NodeCommunicationMode? targetNodeCommunicationMode = default(NodeCommunicationMode?), NodeCommunicationMode? currentNodeCommunicationMode = default(NodeCommunicationMode?), UpgradePolicy upgradePolicy = default(UpgradePolicy), System.Collections.Generic.IDictionary resourceTags = default(System.Collections.Generic.IDictionary)) { this.DisplayName = displayName; @@ -180,6 +179,8 @@ public PoolProperties() this.MountConfiguration = mountConfiguration; this.TargetNodeCommunicationMode = targetNodeCommunicationMode; this.CurrentNodeCommunicationMode = currentNodeCommunicationMode; + this.UpgradePolicy = upgradePolicy; + this.ResourceTags = resourceTags; CustomInit(); } @@ -235,27 +236,17 @@ public PoolProperties() public System.DateTime? AllocationStateTransitionTime {get; private set; } /// - /// Gets or sets for information about available sizes of virtual machines for - /// Cloud Services pools (pools created with cloudServiceConfiguration), see - /// Sizes for Cloud Services - /// (https://azure.microsoft.com/documentation/articles/cloud-services-sizes-specs/). - /// Batch supports all Cloud Services VM sizes except ExtraSmall. For - /// information about available VM sizes for pools using images from the - /// Virtual Machines Marketplace (pools created with - /// virtualMachineConfiguration) see Sizes for Virtual Machines (Linux) - /// (https://azure.microsoft.com/documentation/articles/virtual-machines-linux-sizes/) - /// or Sizes for Virtual Machines (Windows) - /// (https://azure.microsoft.com/documentation/articles/virtual-machines-windows-sizes/). - /// Batch supports all Azure VM sizes except STANDARD_A0 and those with premium + /// Gets or sets 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). /// [Newtonsoft.Json.JsonProperty(PropertyName = "vmSize")] public string VMSize {get; set; } /// - /// Gets or sets using CloudServiceConfiguration specifies that the nodes - /// should be creating using Azure Cloud Services (PaaS), while - /// VirtualMachineConfiguration uses Azure Virtual Machines (IaaS). + /// Gets or sets deployment configuration properties. /// [Newtonsoft.Json.JsonProperty(PropertyName = "deploymentConfiguration")] public DeploymentConfiguration DeploymentConfiguration {get; set; } @@ -397,6 +388,22 @@ public PoolProperties() /// [Newtonsoft.Json.JsonProperty(PropertyName = "currentNodeCommunicationMode")] public NodeCommunicationMode? CurrentNodeCommunicationMode {get; private set; } + + /// + /// Gets or sets describes an upgrade policy - automatic, manual, or rolling. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "upgradePolicy")] + public UpgradePolicy UpgradePolicy {get; set; } + + /// + /// Gets or sets 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'. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "resourceTags")] + public System.Collections.Generic.IDictionary ResourceTags {get; set; } /// /// Validate the object. /// @@ -488,6 +495,11 @@ public virtual void Validate() } + if (this.UpgradePolicy != null) + { + this.UpgradePolicy.Validate(); + } + } } } \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/PrivateEndpointConnection.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/PrivateEndpointConnection.cs index 4d64a0b175fd..5577ba145701 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/PrivateEndpointConnection.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/PrivateEndpointConnection.cs @@ -11,7 +11,7 @@ namespace Microsoft.Azure.Management.Batch.Models /// Contains information about a private link resource. /// [Microsoft.Rest.Serialization.JsonTransformation] - public partial class PrivateEndpointConnection : ProxyResource + public partial class PrivateEndpointConnection : AzureProxyResource { /// /// Initializes a new instance of the PrivateEndpointConnection class. @@ -37,6 +37,9 @@ public PrivateEndpointConnection() /// The ETag of the resource, used for concurrency statements. /// + /// The tags of the resource. + /// + /// The private endpoint of the private endpoint connection. /// @@ -50,9 +53,9 @@ public PrivateEndpointConnection() /// The private link service connection state of the private endpoint /// connection /// - public PrivateEndpointConnection(string id = default(string), string name = default(string), string type = default(string), string etag = default(string), PrivateEndpoint privateEndpoint = default(PrivateEndpoint), PrivateEndpointConnectionProvisioningState provisioningState = default(PrivateEndpointConnectionProvisioningState), System.Collections.Generic.IList groupIds = default(System.Collections.Generic.IList), PrivateLinkServiceConnectionState privateLinkServiceConnectionState = default(PrivateLinkServiceConnectionState)) + public PrivateEndpointConnection(string id = default(string), string name = default(string), string type = default(string), string etag = default(string), System.Collections.Generic.IDictionary tags = default(System.Collections.Generic.IDictionary), PrivateEndpoint privateEndpoint = default(PrivateEndpoint), PrivateEndpointConnectionProvisioningState provisioningState = default(PrivateEndpointConnectionProvisioningState), System.Collections.Generic.IList groupIds = default(System.Collections.Generic.IList), PrivateLinkServiceConnectionState privateLinkServiceConnectionState = default(PrivateLinkServiceConnectionState)) - : base(id, name, type, etag) + : base(id, name, type, etag, tags) { this.PrivateEndpoint = privateEndpoint; this.ProvisioningState = provisioningState; diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/PrivateLinkResource.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/PrivateLinkResource.cs index d4a5fd1a64fc..4a98efcdd566 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/PrivateLinkResource.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/PrivateLinkResource.cs @@ -11,7 +11,7 @@ namespace Microsoft.Azure.Management.Batch.Models /// Contains information about a private link resource. /// [Microsoft.Rest.Serialization.JsonTransformation] - public partial class PrivateLinkResource : ProxyResource + public partial class PrivateLinkResource : AzureProxyResource { /// /// Initializes a new instance of the PrivateLinkResource class. @@ -37,6 +37,9 @@ public PrivateLinkResource() /// The ETag of the resource, used for concurrency statements. /// + /// The tags of the resource. + /// + /// The group id is used to establish the private link connection. /// @@ -46,9 +49,9 @@ public PrivateLinkResource() /// The list of required zone names for the private DNS resource name /// - public PrivateLinkResource(string id = default(string), string name = default(string), string type = default(string), string etag = default(string), string groupId = default(string), System.Collections.Generic.IList requiredMembers = default(System.Collections.Generic.IList), System.Collections.Generic.IList requiredZoneNames = default(System.Collections.Generic.IList)) + public PrivateLinkResource(string id = default(string), string name = default(string), string type = default(string), string etag = default(string), System.Collections.Generic.IDictionary tags = default(System.Collections.Generic.IDictionary), string groupId = default(string), System.Collections.Generic.IList requiredMembers = default(System.Collections.Generic.IList), System.Collections.Generic.IList requiredZoneNames = default(System.Collections.Generic.IList)) - : base(id, name, type, etag) + : base(id, name, type, etag, tags) { this.GroupId = groupId; this.RequiredMembers = requiredMembers; diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/ProvisioningIssue.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/ProvisioningIssue.cs new file mode 100644 index 000000000000..6b2df0c005d2 --- /dev/null +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/ProvisioningIssue.cs @@ -0,0 +1,67 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.Management.Batch.Models +{ + using System.Linq; + + /// + /// Describes a provisioning issue for a network security perimeter + /// configuration + /// + public partial class ProvisioningIssue + { + /// + /// Initializes a new instance of the ProvisioningIssue class. + /// + public ProvisioningIssue() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the ProvisioningIssue class. + /// + + /// Name of the issue + /// + + /// Details of a provisioning issue for a network security perimeter (NSP) + /// configuration. Resource providers should generate separate provisioning + /// issue elements for each separate issue detected, and include a meaningful + /// and distinctive description, as well as any appropriate + /// suggestedResourceIds and suggestedAccessRules + /// + public ProvisioningIssue(string name = default(string), ProvisioningIssueProperties properties = default(ProvisioningIssueProperties)) + + { + this.Name = name; + this.Properties = properties; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + + /// + /// Gets name of the issue + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "name")] + public string Name {get; private set; } + + /// + /// Gets details of a provisioning issue for a network security perimeter (NSP) + /// configuration. Resource providers should generate separate provisioning + /// issue elements for each separate issue detected, and include a meaningful + /// and distinctive description, as well as any appropriate + /// suggestedResourceIds and suggestedAccessRules + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "properties")] + public ProvisioningIssueProperties Properties {get; private set; } + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/ProvisioningIssueProperties.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/ProvisioningIssueProperties.cs new file mode 100644 index 000000000000..f488d64e66f7 --- /dev/null +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/ProvisioningIssueProperties.cs @@ -0,0 +1,97 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.Management.Batch.Models +{ + using System.Linq; + + /// + /// Details of a provisioning issue for a network security perimeter (NSP) + /// configuration. Resource providers should generate separate provisioning + /// issue elements for each separate issue detected, and include a meaningful + /// and distinctive description, as well as any appropriate + /// suggestedResourceIds and suggestedAccessRules + /// + public partial class ProvisioningIssueProperties + { + /// + /// Initializes a new instance of the ProvisioningIssueProperties class. + /// + public ProvisioningIssueProperties() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the ProvisioningIssueProperties class. + /// + + /// Type of issue + /// Possible values include: 'Unknown', 'ConfigurationPropagationFailure', + /// 'MissingPerimeterConfiguration', 'MissingIdentityConfiguration' + + /// Severity of the issue. + /// Possible values include: 'Warning', 'Error' + + /// Description of the issue + /// + + /// Fully qualified resource IDs of suggested resources that can be associated + /// to the network security perimeter (NSP) to remediate the issue. + /// + + /// Access rules that can be added to the network security profile (NSP) to + /// remediate the issue. + /// + public ProvisioningIssueProperties(string issueType = default(string), string severity = default(string), string description = default(string), System.Collections.Generic.IList suggestedResourceIds = default(System.Collections.Generic.IList), System.Collections.Generic.IList suggestedAccessRules = default(System.Collections.Generic.IList)) + + { + this.IssueType = issueType; + this.Severity = severity; + this.Description = description; + this.SuggestedResourceIds = suggestedResourceIds; + this.SuggestedAccessRules = suggestedAccessRules; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + + /// + /// Gets type of issue Possible values include: 'Unknown', 'ConfigurationPropagationFailure', 'MissingPerimeterConfiguration', 'MissingIdentityConfiguration' + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "issueType")] + public string IssueType {get; private set; } + + /// + /// Gets severity of the issue. Possible values include: 'Warning', 'Error' + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "severity")] + public string Severity {get; private set; } + + /// + /// Gets description of the issue + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "description")] + public string Description {get; private set; } + + /// + /// Gets fully qualified resource IDs of suggested resources that can be + /// associated to the network security perimeter (NSP) to remediate the issue. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "suggestedResourceIds")] + public System.Collections.Generic.IList SuggestedResourceIds {get; private set; } + + /// + /// Gets access rules that can be added to the network security profile (NSP) + /// to remediate the issue. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "suggestedAccessRules")] + public System.Collections.Generic.IList SuggestedAccessRules {get; private set; } + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/ProxyResource.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/ProxyResource.cs index e7f09870da88..ab83fa5d6336 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/ProxyResource.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/ProxyResource.cs @@ -8,9 +8,14 @@ namespace Microsoft.Azure.Management.Batch.Models using System.Linq; /// - /// A definition of an Azure resource. + /// The resource model definition for a Azure Resource Manager proxy resource. + /// It will not have tags and a location /// - public partial class ProxyResource : Microsoft.Rest.Azure.IResource + /// + /// The resource model definition for a Azure Resource Manager proxy resource. + /// It will not have tags and a location + /// + public partial class ProxyResource : Resource { /// /// Initializes a new instance of the ProxyResource class. @@ -24,24 +29,24 @@ public ProxyResource() /// Initializes a new instance of the ProxyResource class. /// - /// The ID of the resource. + /// Fully qualified resource ID for the resource. E.g. + /// "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}" /// - /// The name of the resource. + /// The name of the resource /// - /// The type of the resource. + /// The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + /// "Microsoft.Storage/storageAccounts" /// - /// The ETag of the resource, used for concurrency statements. + /// Azure Resource Manager metadata containing createdBy and modifiedBy + /// information. /// - public ProxyResource(string id = default(string), string name = default(string), string type = default(string), string etag = default(string)) + public ProxyResource(string id = default(string), string name = default(string), string type = default(string), SystemData systemData = default(SystemData)) + : base(id, name, type, systemData) { - this.Id = id; - this.Name = name; - this.Type = type; - this.Etag = etag; CustomInit(); } @@ -50,29 +55,5 @@ public ProxyResource() /// partial void CustomInit(); - - /// - /// Gets the ID of the resource. - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "id")] - public string Id {get; private set; } - - /// - /// Gets the name of the resource. - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "name")] - public string Name {get; private set; } - - /// - /// Gets the type of the resource. - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "type")] - public string Type {get; private set; } - - /// - /// Gets the ETag of the resource, used for concurrency statements. - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "etag")] - public string Etag {get; private set; } } } \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/PublicNetworkAccessType.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/PublicNetworkAccessType.cs index b5ad2a4843e6..6a9b3b1839c8 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/PublicNetworkAccessType.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/PublicNetworkAccessType.cs @@ -24,7 +24,12 @@ public enum PublicNetworkAccessType /// Batch Service through private endpoint resource. /// [System.Runtime.Serialization.EnumMember(Value = "Disabled")] - Disabled + Disabled, + /// + /// Secures connectivity to Azure Batch through NSP configuration. + /// + [System.Runtime.Serialization.EnumMember(Value = "SecuredByPerimeter")] + SecuredByPerimeter } internal static class PublicNetworkAccessTypeEnumExtension { @@ -40,6 +45,8 @@ internal static string ToSerializedValue(this PublicNetworkAccessType value) return "Enabled"; case PublicNetworkAccessType.Disabled: return "Disabled"; + case PublicNetworkAccessType.SecuredByPerimeter: + return "SecuredByPerimeter"; } return null; } @@ -51,6 +58,8 @@ internal static string ToSerializedValue(this PublicNetworkAccessType value) return PublicNetworkAccessType.Enabled; case "Disabled": return PublicNetworkAccessType.Disabled; + case "SecuredByPerimeter": + return PublicNetworkAccessType.SecuredByPerimeter; } return null; } diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/Resource.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/Resource.cs index 25175ff79f3c..180289d8e4f4 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/Resource.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/Resource.cs @@ -8,8 +8,13 @@ namespace Microsoft.Azure.Management.Batch.Models using System.Linq; /// - /// A definition of an Azure resource. + /// Common fields that are returned in the response for all Azure Resource + /// Manager resources /// + /// + /// Common fields that are returned in the response for all Azure Resource + /// Manager resources + /// public partial class Resource : Microsoft.Rest.Azure.IResource { /// @@ -24,28 +29,27 @@ public Resource() /// Initializes a new instance of the Resource class. /// - /// The ID of the resource. + /// Fully qualified resource ID for the resource. E.g. + /// "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}" /// - /// The name of the resource. + /// The name of the resource /// - /// The type of the resource. + /// The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + /// "Microsoft.Storage/storageAccounts" /// - /// The location of the resource. + /// Azure Resource Manager metadata containing createdBy and modifiedBy + /// information. /// - - /// The tags of the resource. - /// - public Resource(string id = default(string), string name = default(string), string type = default(string), string location = default(string), System.Collections.Generic.IDictionary tags = default(System.Collections.Generic.IDictionary)) + public Resource(string id = default(string), string name = default(string), string type = default(string), SystemData systemData = default(SystemData)) { this.Id = id; this.Name = name; this.Type = type; - this.Location = location; - this.Tags = tags; + this.SystemData = systemData; CustomInit(); } @@ -56,33 +60,30 @@ public Resource() /// - /// Gets the ID of the resource. + /// Gets fully qualified resource ID for the resource. E.g. + /// "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}" /// [Newtonsoft.Json.JsonProperty(PropertyName = "id")] public string Id {get; private set; } /// - /// Gets the name of the resource. + /// Gets the name of the resource /// [Newtonsoft.Json.JsonProperty(PropertyName = "name")] public string Name {get; private set; } /// - /// Gets the type of the resource. + /// Gets the type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + /// "Microsoft.Storage/storageAccounts" /// [Newtonsoft.Json.JsonProperty(PropertyName = "type")] public string Type {get; private set; } /// - /// Gets the location of the resource. - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "location")] - public string Location {get; private set; } - - /// - /// Gets the tags of the resource. + /// Gets azure Resource Manager metadata containing createdBy and modifiedBy + /// information. /// - [Newtonsoft.Json.JsonProperty(PropertyName = "tags")] - public System.Collections.Generic.IDictionary Tags {get; private set; } + [Newtonsoft.Json.JsonProperty(PropertyName = "systemData")] + public SystemData SystemData {get; private set; } } } \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/ResourceAssociation.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/ResourceAssociation.cs new file mode 100644 index 000000000000..4d4f84be10e9 --- /dev/null +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/ResourceAssociation.cs @@ -0,0 +1,58 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.Management.Batch.Models +{ + using System.Linq; + + /// + /// Information about resource association + /// + public partial class ResourceAssociation + { + /// + /// Initializes a new instance of the ResourceAssociation class. + /// + public ResourceAssociation() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the ResourceAssociation class. + /// + + /// Name of the resource association + /// + + /// Access mode of the resource association + /// Possible values include: 'Enforced', 'Learning', 'Audit' + public ResourceAssociation(string name = default(string), string accessMode = default(string)) + + { + this.Name = name; + this.AccessMode = accessMode; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + + /// + /// Gets or sets name of the resource association + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "name")] + public string Name {get; set; } + + /// + /// Gets or sets access mode of the resource association Possible values include: 'Enforced', 'Learning', 'Audit' + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "accessMode")] + public string AccessMode {get; set; } + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/ResourceAssociationAccessMode.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/ResourceAssociationAccessMode.cs new file mode 100644 index 000000000000..e907269f6851 --- /dev/null +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/ResourceAssociationAccessMode.cs @@ -0,0 +1,32 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.Management.Batch.Models +{ + + /// + /// Defines values for ResourceAssociationAccessMode. + /// + + + public static class ResourceAssociationAccessMode + { + /// + /// Enforced access mode - traffic to the resource that failed access checks is + /// blocked + /// + public const string Enforced = "Enforced"; + /// + /// Learning access mode - traffic to the resource is enabled for analysis but + /// not blocked + /// + public const string Learning = "Learning"; + /// + /// Audit access mode - traffic to the resource that fails access checks is + /// logged but not blocked + /// + public const string Audit = "Audit"; + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/RollingUpgradePolicy.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/RollingUpgradePolicy.cs new file mode 100644 index 000000000000..6bb2529b49b0 --- /dev/null +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/RollingUpgradePolicy.cs @@ -0,0 +1,209 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.Management.Batch.Models +{ + using System.Linq; + + /// + /// The configuration parameters used while performing a rolling upgrade. + /// + public partial class RollingUpgradePolicy + { + /// + /// Initializes a new instance of the RollingUpgradePolicy class. + /// + public RollingUpgradePolicy() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the RollingUpgradePolicy class. + /// + + /// Allow VMSS to ignore AZ boundaries when constructing upgrade batches. Take + /// into consideration the Update Domain and maxBatchInstancePercent to + /// determine the batch size. If this field is not set, Azure Azure Batch will + /// not set its default value. The value of enableCrossZoneUpgrade on the + /// created VirtualMachineScaleSet will be decided by the default + /// configurations on VirtualMachineScaleSet. This field is able to be set to + /// true or false only when using NodePlacementConfiguration as Zonal. + /// + + /// The maximum percent of total virtual machine instances that will be + /// upgraded simultaneously by the rolling upgrade in one batch. As this is a + /// maximum, unhealthy instances in previous or future batches can cause the + /// percentage of instances in a batch to decrease to ensure higher + /// reliability. The value of this field should be between 5 and 100, + /// inclusive. If both maxBatchInstancePercent and maxUnhealthyInstancePercent + /// are assigned with value, the value of maxBatchInstancePercent should not be + /// more than maxUnhealthyInstancePercent. + /// + + /// The maximum percentage of the total virtual machine instances in the scale + /// set that can be simultaneously unhealthy, either as a result of being + /// upgraded, or by being found in an unhealthy state by the virtual machine + /// health checks before the rolling upgrade aborts. This constraint will be + /// checked prior to starting any batch. The value of this field should be + /// between 5 and 100, inclusive. If both maxBatchInstancePercent and + /// maxUnhealthyInstancePercent are assigned with value, the value of + /// maxBatchInstancePercent should not be more than + /// maxUnhealthyInstancePercent. + /// + + /// The maximum percentage of upgraded virtual machine instances that can be + /// found to be in an unhealthy state. This check will happen after each batch + /// is upgraded. If this percentage is ever exceeded, the rolling update + /// aborts. The value of this field should be between 0 and 100, inclusive. + /// + + /// The wait time between completing the update for all virtual machines in one + /// batch and starting the next batch. The time duration should be specified in + /// ISO 8601 format. + /// + + /// Upgrade all unhealthy instances in a scale set before any healthy + /// instances. + /// + + /// Rollback failed instances to previous model if the Rolling Upgrade policy + /// is violated. + /// + public RollingUpgradePolicy(bool? enableCrossZoneUpgrade = default(bool?), int? maxBatchInstancePercent = default(int?), int? maxUnhealthyInstancePercent = default(int?), int? maxUnhealthyUpgradedInstancePercent = default(int?), string pauseTimeBetweenBatches = default(string), bool? prioritizeUnhealthyInstances = default(bool?), bool? rollbackFailedInstancesOnPolicyBreach = default(bool?)) + + { + this.EnableCrossZoneUpgrade = enableCrossZoneUpgrade; + this.MaxBatchInstancePercent = maxBatchInstancePercent; + this.MaxUnhealthyInstancePercent = maxUnhealthyInstancePercent; + this.MaxUnhealthyUpgradedInstancePercent = maxUnhealthyUpgradedInstancePercent; + this.PauseTimeBetweenBatches = pauseTimeBetweenBatches; + this.PrioritizeUnhealthyInstances = prioritizeUnhealthyInstances; + this.RollbackFailedInstancesOnPolicyBreach = rollbackFailedInstancesOnPolicyBreach; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + + /// + /// Gets or sets allow VMSS to ignore AZ boundaries when constructing upgrade + /// batches. Take into consideration the Update Domain and + /// maxBatchInstancePercent to determine the batch size. If this field is not + /// set, Azure Azure Batch will not set its default value. The value of + /// enableCrossZoneUpgrade on the created VirtualMachineScaleSet will be + /// decided by the default configurations on VirtualMachineScaleSet. This field + /// is able to be set to true or false only when using + /// NodePlacementConfiguration as Zonal. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "enableCrossZoneUpgrade")] + public bool? EnableCrossZoneUpgrade {get; set; } + + /// + /// Gets or sets the maximum percent of total virtual machine instances that + /// will be upgraded simultaneously by the rolling upgrade in one batch. As + /// this is a maximum, unhealthy instances in previous or future batches can + /// cause the percentage of instances in a batch to decrease to ensure higher + /// reliability. The value of this field should be between 5 and 100, + /// inclusive. If both maxBatchInstancePercent and maxUnhealthyInstancePercent + /// are assigned with value, the value of maxBatchInstancePercent should not be + /// more than maxUnhealthyInstancePercent. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "maxBatchInstancePercent")] + public int? MaxBatchInstancePercent {get; set; } + + /// + /// Gets or sets the maximum percentage of the total virtual machine instances + /// in the scale set that can be simultaneously unhealthy, either as a result + /// of being upgraded, or by being found in an unhealthy state by the virtual + /// machine health checks before the rolling upgrade aborts. This constraint + /// will be checked prior to starting any batch. The value of this field should + /// be between 5 and 100, inclusive. If both maxBatchInstancePercent and + /// maxUnhealthyInstancePercent are assigned with value, the value of + /// maxBatchInstancePercent should not be more than + /// maxUnhealthyInstancePercent. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "maxUnhealthyInstancePercent")] + public int? MaxUnhealthyInstancePercent {get; set; } + + /// + /// Gets or sets the maximum percentage of upgraded virtual machine instances + /// that can be found to be in an unhealthy state. This check will happen after + /// each batch is upgraded. If this percentage is ever exceeded, the rolling + /// update aborts. The value of this field should be between 0 and 100, + /// inclusive. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "maxUnhealthyUpgradedInstancePercent")] + public int? MaxUnhealthyUpgradedInstancePercent {get; set; } + + /// + /// Gets or sets the wait time between completing the update for all virtual + /// machines in one batch and starting the next batch. The time duration should + /// be specified in ISO 8601 format. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "pauseTimeBetweenBatches")] + public string PauseTimeBetweenBatches {get; set; } + + /// + /// Gets or sets upgrade all unhealthy instances in a scale set before any + /// healthy instances. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "prioritizeUnhealthyInstances")] + public bool? PrioritizeUnhealthyInstances {get; set; } + + /// + /// Gets or sets rollback failed instances to previous model if the Rolling + /// Upgrade policy is violated. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "rollbackFailedInstancesOnPolicyBreach")] + public bool? RollbackFailedInstancesOnPolicyBreach {get; set; } + /// + /// Validate the object. + /// + /// + /// Thrown if validation fails + /// + public virtual void Validate() + { + if (this.MaxBatchInstancePercent != null) + { + if (this.MaxBatchInstancePercent > 100) + { + throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.InclusiveMaximum, "MaxBatchInstancePercent", 100); + } + if (this.MaxBatchInstancePercent < 5) + { + throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.InclusiveMinimum, "MaxBatchInstancePercent", 5); + } + } + if (this.MaxUnhealthyInstancePercent != null) + { + if (this.MaxUnhealthyInstancePercent > 100) + { + throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.InclusiveMaximum, "MaxUnhealthyInstancePercent", 100); + } + if (this.MaxUnhealthyInstancePercent < 5) + { + throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.InclusiveMinimum, "MaxUnhealthyInstancePercent", 5); + } + } + if (this.MaxUnhealthyUpgradedInstancePercent != null) + { + if (this.MaxUnhealthyUpgradedInstancePercent > 100) + { + throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.InclusiveMaximum, "MaxUnhealthyUpgradedInstancePercent", 100); + } + if (this.MaxUnhealthyUpgradedInstancePercent < 0) + { + throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.InclusiveMinimum, "MaxUnhealthyUpgradedInstancePercent", 0); + } + } + + } + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/SecurityEncryptionTypes.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/SecurityEncryptionTypes.cs new file mode 100644 index 000000000000..f0e77ece1f69 --- /dev/null +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/SecurityEncryptionTypes.cs @@ -0,0 +1,19 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.Management.Batch.Models +{ + + /// + /// Defines values for SecurityEncryptionTypes. + /// + + + public static class SecurityEncryptionTypes + { + public const string NonPersistedTPM = "NonPersistedTPM"; + public const string VMGuestStateOnly = "VMGuestStateOnly"; + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/SecurityProfile.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/SecurityProfile.cs new file mode 100644 index 000000000000..682fb4443df2 --- /dev/null +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/SecurityProfile.cs @@ -0,0 +1,79 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.Management.Batch.Models +{ + using System.Linq; + + /// + /// Specifies the security profile settings for the virtual machine or virtual + /// machine scale set. + /// + public partial class SecurityProfile + { + /// + /// Initializes a new instance of the SecurityProfile class. + /// + public SecurityProfile() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the SecurityProfile class. + /// + + /// Specifies the SecurityType of the virtual machine. It has to be set to any + /// specified value to enable UefiSettings. + /// Possible values include: 'trustedLaunch', 'confidentialVM' + + /// 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. + /// + + /// Specifies the security settings like secure boot and vTPM used while + /// creating the virtual machine. + /// + public SecurityProfile(SecurityTypes? securityType = default(SecurityTypes?), bool? encryptionAtHost = default(bool?), UefiSettings uefiSettings = default(UefiSettings)) + + { + this.SecurityType = securityType; + this.EncryptionAtHost = encryptionAtHost; + this.UefiSettings = uefiSettings; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + + /// + /// Gets or sets specifies the SecurityType of the virtual machine. It has to + /// be set to any specified value to enable UefiSettings. Possible values include: 'trustedLaunch', 'confidentialVM' + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "securityType")] + public SecurityTypes? SecurityType {get; set; } + + /// + /// Gets or sets 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. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "encryptionAtHost")] + public bool? EncryptionAtHost {get; set; } + + /// + /// Gets or sets specifies the security settings like secure boot and vTPM used + /// while creating the virtual machine. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "uefiSettings")] + public UefiSettings UefiSettings {get; set; } + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/SecurityTypes.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/SecurityTypes.cs new file mode 100644 index 000000000000..4e7aad8c9ca1 --- /dev/null +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/SecurityTypes.cs @@ -0,0 +1,61 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.Management.Batch.Models +{ + + /// + /// Defines values for SecurityTypes. + /// + + + [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.StringEnumConverter))] + public enum SecurityTypes + { + /// + /// Trusted launch protects against advanced and persistent attack techniques. + /// + [System.Runtime.Serialization.EnumMember(Value = "trustedLaunch")] + TrustedLaunch, + /// + /// Azure confidential computing offers confidential VMs are for tenants with + /// high security and confidentiality requirements. These VMs provide a strong, + /// hardware-enforced boundary to help meet your security needs. You can use + /// confidential VMs for migrations without making changes to your code, with + /// the platform protecting your VM's state from being read or modified. + /// + [System.Runtime.Serialization.EnumMember(Value = "confidentialVM")] + ConfidentialVM + } + internal static class SecurityTypesEnumExtension + { + internal static string ToSerializedValue(this SecurityTypes? value) + { + return value == null ? null : ((SecurityTypes)value).ToSerializedValue(); + } + internal static string ToSerializedValue(this SecurityTypes value) + { + switch( value ) + { + case SecurityTypes.TrustedLaunch: + return "trustedLaunch"; + case SecurityTypes.ConfidentialVM: + return "confidentialVM"; + } + return null; + } + internal static SecurityTypes? ParseSecurityTypes(this string value) + { + switch( value ) + { + case "trustedLaunch": + return SecurityTypes.TrustedLaunch; + case "confidentialVM": + return SecurityTypes.ConfidentialVM; + } + return null; + } + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/ServiceArtifactReference.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/ServiceArtifactReference.cs new file mode 100644 index 000000000000..f6e8be8b61d1 --- /dev/null +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/ServiceArtifactReference.cs @@ -0,0 +1,66 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.Management.Batch.Models +{ + using System.Linq; + + /// + /// Specifies the service artifact reference id used to set same image version + /// for all virtual machines in the scale set when using 'latest' image + /// version. + /// + public partial class ServiceArtifactReference + { + /// + /// Initializes a new instance of the ServiceArtifactReference class. + /// + public ServiceArtifactReference() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the ServiceArtifactReference class. + /// + + /// The service artifact reference id in the form of + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/galleries/{galleryName}/serviceArtifacts/{serviceArtifactName}/vmArtifactsProfiles/{vmArtifactsProfilesName} + /// + public ServiceArtifactReference(string id) + + { + this.Id = id; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + + /// + /// Gets or sets the service artifact reference id in the form of + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/galleries/{galleryName}/serviceArtifacts/{serviceArtifactName}/vmArtifactsProfiles/{vmArtifactsProfilesName} + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "id")] + public string Id {get; set; } + /// + /// Validate the object. + /// + /// + /// Thrown if validation fails + /// + public virtual void Validate() + { + if (this.Id == null) + { + throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.CannotBeNull, "Id"); + } + + } + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/Severity.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/Severity.cs new file mode 100644 index 000000000000..30e4a7245e63 --- /dev/null +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/Severity.cs @@ -0,0 +1,19 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.Management.Batch.Models +{ + + /// + /// Defines values for Severity. + /// + + + public static class Severity + { + public const string Warning = "Warning"; + public const string Error = "Error"; + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/StartTask.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/StartTask.cs index eaee7172f115..b86056506f62 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/StartTask.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/StartTask.cs @@ -61,7 +61,7 @@ public StartTask() /// if the maximum retry count is 3, Batch tries the task up to 4 times (one /// initial try and 3 retries). If the maximum retry count is 0, the Batch /// service does not retry the task. If the maximum retry count is -1, the - /// Batch service retries the task without limit. + /// Batch service retries the task without limit. Default is 0 /// /// If true and the start task fails on a compute node, the Batch service @@ -138,7 +138,7 @@ public StartTask() /// example, if the maximum retry count is 3, Batch tries the task up to 4 /// times (one initial try and 3 retries). If the maximum retry count is 0, the /// Batch service does not retry the task. If the maximum retry count is -1, - /// the Batch service retries the task without limit. + /// the Batch service retries the task without limit. Default is 0 /// [Newtonsoft.Json.JsonProperty(PropertyName = "maxTaskRetryCount")] public int? MaxTaskRetryCount {get; set; } diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/StorageAccountType.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/StorageAccountType.cs index 599307db3e5e..eca13e513063 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/StorageAccountType.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/StorageAccountType.cs @@ -15,15 +15,20 @@ namespace Microsoft.Azure.Management.Batch.Models public enum StorageAccountType { /// - /// The data disk should use standard locally redundant storage. + /// The data disk / OS disk should use standard locally redundant storage. /// [System.Runtime.Serialization.EnumMember(Value = "Standard_LRS")] StandardLRS, /// - /// The data disk should use premium locally redundant storage. + /// The data disk / OS disk should use premium locally redundant storage. /// [System.Runtime.Serialization.EnumMember(Value = "Premium_LRS")] - PremiumLRS + PremiumLRS, + /// + /// The data disk / OS disk should use standard SSD locally redundant storage. + /// + [System.Runtime.Serialization.EnumMember(Value = "StandardSSD_LRS")] + StandardSSDLRS } internal static class StorageAccountTypeEnumExtension { @@ -39,6 +44,8 @@ internal static string ToSerializedValue(this StorageAccountType value) return "Standard_LRS"; case StorageAccountType.PremiumLRS: return "Premium_LRS"; + case StorageAccountType.StandardSSDLRS: + return "StandardSSD_LRS"; } return null; } @@ -50,6 +57,8 @@ internal static string ToSerializedValue(this StorageAccountType value) return StorageAccountType.StandardLRS; case "Premium_LRS": return StorageAccountType.PremiumLRS; + case "StandardSSD_LRS": + return StorageAccountType.StandardSSDLRS; } return null; } diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/SupportedSku.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/SupportedSku.cs index c93883d4f01f..44d43e001b00 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/SupportedSku.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/SupportedSku.cs @@ -32,12 +32,16 @@ public SupportedSku() /// A collection of capabilities which this SKU supports. /// - public SupportedSku(string name = default(string), string familyName = default(string), System.Collections.Generic.IList capabilities = default(System.Collections.Generic.IList)) + + /// The time when Azure Batch service will retire this SKU. + /// + public SupportedSku(string name = default(string), string familyName = default(string), System.Collections.Generic.IList capabilities = default(System.Collections.Generic.IList), System.DateTime? batchSupportEndOfLife = default(System.DateTime?)) { this.Name = name; this.FamilyName = familyName; this.Capabilities = capabilities; + this.BatchSupportEndOfLife = batchSupportEndOfLife; CustomInit(); } @@ -64,5 +68,11 @@ public SupportedSku() /// [Newtonsoft.Json.JsonProperty(PropertyName = "capabilities")] public System.Collections.Generic.IList Capabilities {get; private set; } + + /// + /// Gets the time when Azure Batch service will retire this SKU. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "batchSupportEndOfLife")] + public System.DateTime? BatchSupportEndOfLife {get; private set; } } } \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/SystemData.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/SystemData.cs new file mode 100644 index 000000000000..abdbf6e3e228 --- /dev/null +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/SystemData.cs @@ -0,0 +1,98 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.Management.Batch.Models +{ + using System.Linq; + + /// + /// Metadata pertaining to creation and last modification of the resource. + /// + public partial class SystemData + { + /// + /// Initializes a new instance of the SystemData class. + /// + public SystemData() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the SystemData class. + /// + + /// The identity that created the resource. + /// + + /// The type of identity that created the resource. + /// Possible values include: 'User', 'Application', 'ManagedIdentity', 'Key' + + /// The timestamp of resource creation (UTC). + /// + + /// The identity that last modified the resource. + /// + + /// The type of identity that last modified the resource. + /// Possible values include: 'User', 'Application', 'ManagedIdentity', 'Key' + + /// The timestamp of resource last modification (UTC) + /// + public SystemData(string createdBy = default(string), string createdByType = default(string), System.DateTime? createdAt = default(System.DateTime?), string lastModifiedBy = default(string), string lastModifiedByType = default(string), System.DateTime? lastModifiedAt = default(System.DateTime?)) + + { + this.CreatedBy = createdBy; + this.CreatedByType = createdByType; + this.CreatedAt = createdAt; + this.LastModifiedBy = lastModifiedBy; + this.LastModifiedByType = lastModifiedByType; + this.LastModifiedAt = lastModifiedAt; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + + /// + /// Gets or sets the identity that created the resource. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "createdBy")] + public string CreatedBy {get; set; } + + /// + /// Gets or sets the type of identity that created the resource. Possible values include: 'User', 'Application', 'ManagedIdentity', 'Key' + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "createdByType")] + public string CreatedByType {get; set; } + + /// + /// Gets or sets the timestamp of resource creation (UTC). + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "createdAt")] + public System.DateTime? CreatedAt {get; set; } + + /// + /// Gets or sets the identity that last modified the resource. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "lastModifiedBy")] + public string LastModifiedBy {get; set; } + + /// + /// Gets or sets the type of identity that last modified the resource. Possible values include: 'User', 'Application', 'ManagedIdentity', 'Key' + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "lastModifiedByType")] + public string LastModifiedByType {get; set; } + + /// + /// Gets or sets the timestamp of resource last modification (UTC) + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "lastModifiedAt")] + public System.DateTime? LastModifiedAt {get; set; } + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/TaskContainerSettings.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/TaskContainerSettings.cs index df502c074326..fd90ddbababa 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/TaskContainerSettings.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/TaskContainerSettings.cs @@ -42,13 +42,19 @@ public TaskContainerSettings() /// A flag to indicate where the container task working directory is. The /// default is 'taskWorkingDirectory'. /// Possible values include: 'TaskWorkingDirectory', 'ContainerImageDefault' - public TaskContainerSettings(string imageName, string containerRunOptions = default(string), ContainerRegistry registry = default(ContainerRegistry), ContainerWorkingDirectory? workingDirectory = default(ContainerWorkingDirectory?)) + + /// If this array is null or be not present, container task will mount entire + /// temporary disk drive in windows (or AZ_BATCH_NODE_ROOT_DIR in Linux). It + /// won't' mount any data paths into container if this array is set as empty. + /// + public TaskContainerSettings(string imageName, string containerRunOptions = default(string), ContainerRegistry registry = default(ContainerRegistry), ContainerWorkingDirectory? workingDirectory = default(ContainerWorkingDirectory?), System.Collections.Generic.IList containerHostBatchBindMounts = default(System.Collections.Generic.IList)) { this.ContainerRunOptions = containerRunOptions; this.ImageName = imageName; this.Registry = registry; this.WorkingDirectory = workingDirectory; + this.ContainerHostBatchBindMounts = containerHostBatchBindMounts; CustomInit(); } @@ -87,6 +93,15 @@ public TaskContainerSettings() /// [Newtonsoft.Json.JsonProperty(PropertyName = "workingDirectory")] public ContainerWorkingDirectory? WorkingDirectory {get; set; } + + /// + /// Gets or sets if this array is null or be not present, container task will + /// mount entire temporary disk drive in windows (or AZ_BATCH_NODE_ROOT_DIR in + /// Linux). It won't' mount any data paths into container if this array is set + /// as empty. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "containerHostBatchBindMounts")] + public System.Collections.Generic.IList ContainerHostBatchBindMounts {get; set; } /// /// Validate the object. /// @@ -103,6 +118,7 @@ public virtual void Validate() + } } } \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/UefiSettings.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/UefiSettings.cs new file mode 100644 index 000000000000..cca25ecf040a --- /dev/null +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/UefiSettings.cs @@ -0,0 +1,61 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.Management.Batch.Models +{ + using System.Linq; + + /// + /// Specifies the security settings like secure boot and vTPM used while + /// creating the virtual machine. + /// + public partial class UefiSettings + { + /// + /// Initializes a new instance of the UefiSettings class. + /// + public UefiSettings() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the UefiSettings class. + /// + + /// Specifies whether secure boot should be enabled on the virtual machine. + /// + + /// Specifies whether vTPM should be enabled on the virtual machine. + /// + public UefiSettings(bool? secureBootEnabled = default(bool?), bool? vTpmEnabled = default(bool?)) + + { + this.SecureBootEnabled = secureBootEnabled; + this.VTpmEnabled = vTpmEnabled; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + + /// + /// Gets or sets specifies whether secure boot should be enabled on the virtual + /// machine. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "secureBootEnabled")] + public bool? SecureBootEnabled {get; set; } + + /// + /// Gets or sets specifies whether vTPM should be enabled on the virtual + /// machine. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "vTpmEnabled")] + public bool? VTpmEnabled {get; set; } + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/UpgradeMode.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/UpgradeMode.cs new file mode 100644 index 000000000000..c1a9ce7f7047 --- /dev/null +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/UpgradeMode.cs @@ -0,0 +1,71 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.Management.Batch.Models +{ + + /// + /// Defines values for UpgradeMode. + /// + + + [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.StringEnumConverter))] + public enum UpgradeMode + { + /// + /// All virtual machines in the scale set are automatically updated at the same + /// time. + /// + [System.Runtime.Serialization.EnumMember(Value = "automatic")] + Automatic, + /// + /// You control the application of updates to virtual machines in the scale + /// set. You do this by using the manualUpgrade action. + /// + [System.Runtime.Serialization.EnumMember(Value = "manual")] + Manual, + /// + /// The existing instances in a scale set are brought down in batches to be + /// upgraded. Once the upgraded batch is complete, the instances will begin + /// taking traffic again and the next batch will begin. This continues until + /// all instances brought up-to-date. + /// + [System.Runtime.Serialization.EnumMember(Value = "rolling")] + Rolling + } + internal static class UpgradeModeEnumExtension + { + internal static string ToSerializedValue(this UpgradeMode? value) + { + return value == null ? null : ((UpgradeMode)value).ToSerializedValue(); + } + internal static string ToSerializedValue(this UpgradeMode value) + { + switch( value ) + { + case UpgradeMode.Automatic: + return "automatic"; + case UpgradeMode.Manual: + return "manual"; + case UpgradeMode.Rolling: + return "rolling"; + } + return null; + } + internal static UpgradeMode? ParseUpgradeMode(this string value) + { + switch( value ) + { + case "automatic": + return UpgradeMode.Automatic; + case "manual": + return UpgradeMode.Manual; + case "rolling": + return UpgradeMode.Rolling; + } + return null; + } + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/UpgradePolicy.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/UpgradePolicy.cs new file mode 100644 index 000000000000..64855c36ccfe --- /dev/null +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/UpgradePolicy.cs @@ -0,0 +1,97 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.Management.Batch.Models +{ + using System.Linq; + + /// + /// Describes an upgrade policy - automatic, manual, or rolling. + /// + public partial class UpgradePolicy + { + /// + /// Initializes a new instance of the UpgradePolicy class. + /// + public UpgradePolicy() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the UpgradePolicy class. + /// + + /// Specifies the mode of an upgrade to virtual machines in the scale set.<br + /// /><br /> Possible values are:<br /><br /> **Manual** - You control the + /// application of updates to virtual machines in the scale set. You do this by + /// using the manualUpgrade action.<br /><br /> **Automatic** - All virtual + /// machines in the scale set are automatically updated at the same time.<br + /// /><br /> **Rolling** - Scale set performs updates in batches with an + /// optional pause time in between. + /// Possible values include: 'automatic', 'manual', 'rolling' + + /// The configuration parameters used for performing automatic OS upgrade. + /// + + /// The configuration parameters used while performing a rolling upgrade. + /// + public UpgradePolicy(UpgradeMode mode, AutomaticOSUpgradePolicy automaticOSUpgradePolicy = default(AutomaticOSUpgradePolicy), RollingUpgradePolicy rollingUpgradePolicy = default(RollingUpgradePolicy)) + + { + this.Mode = mode; + this.AutomaticOSUpgradePolicy = automaticOSUpgradePolicy; + this.RollingUpgradePolicy = rollingUpgradePolicy; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + + /// + /// Gets or sets specifies the mode of an upgrade to virtual machines in the + /// scale set.<br /><br /> Possible values are:<br /><br /> **Manual** - You + /// control the application of updates to virtual machines in the scale set. + /// You do this by using the manualUpgrade action.<br /><br /> **Automatic** - + /// All virtual machines in the scale set are automatically updated at the same + /// time.<br /><br /> **Rolling** - Scale set performs updates in batches with + /// an optional pause time in between. Possible values include: 'automatic', 'manual', 'rolling' + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "mode")] + public UpgradeMode Mode {get; set; } + + /// + /// Gets or sets the configuration parameters used for performing automatic OS + /// upgrade. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "automaticOSUpgradePolicy")] + public AutomaticOSUpgradePolicy AutomaticOSUpgradePolicy {get; set; } + + /// + /// Gets or sets the configuration parameters used while performing a rolling + /// upgrade. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "rollingUpgradePolicy")] + public RollingUpgradePolicy RollingUpgradePolicy {get; set; } + /// + /// Validate the object. + /// + /// + /// Thrown if validation fails + /// + public virtual void Validate() + { + + + if (this.RollingUpgradePolicy != null) + { + this.RollingUpgradePolicy.Validate(); + } + } + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/VMDiskSecurityProfile.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/VMDiskSecurityProfile.cs new file mode 100644 index 000000000000..9fa165f24981 --- /dev/null +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/VMDiskSecurityProfile.cs @@ -0,0 +1,58 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.Management.Batch.Models +{ + using System.Linq; + + /// + /// Specifies the security profile settings for the managed disk. **Note**: It + /// can only be set for Confidential VMs and is required when using + /// Confidential VMs. + /// + public partial class VMDiskSecurityProfile + { + /// + /// Initializes a new instance of the VMDiskSecurityProfile class. + /// + public VMDiskSecurityProfile() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the VMDiskSecurityProfile class. + /// + + /// 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 required when using + /// Confidential VMs. + /// Possible values include: 'NonPersistedTPM', 'VMGuestStateOnly' + public VMDiskSecurityProfile(string securityEncryptionType = default(string)) + + { + this.SecurityEncryptionType = securityEncryptionType; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + + /// + /// Gets or sets 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 required when using + /// Confidential VMs. Possible values include: 'NonPersistedTPM', 'VMGuestStateOnly' + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "securityEncryptionType")] + public string SecurityEncryptionType {get; set; } + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/VMExtension.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/VMExtension.cs index 19bd78635852..2e249a4ba010 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/VMExtension.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/VMExtension.cs @@ -45,6 +45,10 @@ public VMExtension() /// to true. /// + /// Indicates whether the extension should be automatically upgraded by the + /// platform if there is a newer version of the extension available. + /// + /// JSON formatted public settings for the extension. /// @@ -55,7 +59,7 @@ public VMExtension() /// Collection of extension names after which this extension needs to be /// provisioned. /// - public VMExtension(string name, string publisher, string type, string typeHandlerVersion = default(string), bool? autoUpgradeMinorVersion = default(bool?), object settings = default(object), object protectedSettings = default(object), System.Collections.Generic.IList provisionAfterExtensions = default(System.Collections.Generic.IList)) + public VMExtension(string name, string publisher, string type, string typeHandlerVersion = default(string), bool? autoUpgradeMinorVersion = default(bool?), bool? enableAutomaticUpgrade = default(bool?), object settings = default(object), object protectedSettings = default(object), System.Collections.Generic.IList provisionAfterExtensions = default(System.Collections.Generic.IList)) { this.Name = name; @@ -63,6 +67,7 @@ public VMExtension() this.Type = type; this.TypeHandlerVersion = typeHandlerVersion; this.AutoUpgradeMinorVersion = autoUpgradeMinorVersion; + this.EnableAutomaticUpgrade = enableAutomaticUpgrade; this.Settings = settings; this.ProtectedSettings = protectedSettings; this.ProvisionAfterExtensions = provisionAfterExtensions; @@ -108,6 +113,14 @@ public VMExtension() [Newtonsoft.Json.JsonProperty(PropertyName = "autoUpgradeMinorVersion")] public bool? AutoUpgradeMinorVersion {get; set; } + /// + /// Gets or sets indicates whether the extension should be automatically + /// upgraded by the platform if there is a newer version of the extension + /// available. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "enableAutomaticUpgrade")] + public bool? EnableAutomaticUpgrade {get; set; } + /// /// Gets or sets jSON formatted public settings for the extension. /// diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/VirtualMachineConfiguration.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/VirtualMachineConfiguration.cs index 66e5b1cea964..ef646c88d2fc 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/VirtualMachineConfiguration.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/VirtualMachineConfiguration.cs @@ -80,7 +80,15 @@ public VirtualMachineConfiguration() /// Contains configuration for ephemeral OSDisk settings. /// - public VirtualMachineConfiguration(ImageReference imageReference, string nodeAgentSkuId, WindowsConfiguration windowsConfiguration = default(WindowsConfiguration), System.Collections.Generic.IList dataDisks = default(System.Collections.Generic.IList), string licenseType = default(string), ContainerConfiguration containerConfiguration = default(ContainerConfiguration), DiskEncryptionConfiguration diskEncryptionConfiguration = default(DiskEncryptionConfiguration), NodePlacementConfiguration nodePlacementConfiguration = default(NodePlacementConfiguration), System.Collections.Generic.IList extensions = default(System.Collections.Generic.IList), OSDisk osDisk = default(OSDisk)) + + /// Specifies the security profile settings for the virtual machine or virtual + /// machine scale set. + /// + + /// The service artifact reference id in the form of + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/galleries/{galleryName}/serviceArtifacts/{serviceArtifactName}/vmArtifactsProfiles/{vmArtifactsProfilesName} + /// + public VirtualMachineConfiguration(ImageReference imageReference, string nodeAgentSkuId, WindowsConfiguration windowsConfiguration = default(WindowsConfiguration), System.Collections.Generic.IList dataDisks = default(System.Collections.Generic.IList), string licenseType = default(string), ContainerConfiguration containerConfiguration = default(ContainerConfiguration), DiskEncryptionConfiguration diskEncryptionConfiguration = default(DiskEncryptionConfiguration), NodePlacementConfiguration nodePlacementConfiguration = default(NodePlacementConfiguration), System.Collections.Generic.IList extensions = default(System.Collections.Generic.IList), OSDisk osDisk = default(OSDisk), SecurityProfile securityProfile = default(SecurityProfile), ServiceArtifactReference serviceArtifactReference = default(ServiceArtifactReference)) { this.ImageReference = imageReference; @@ -93,6 +101,8 @@ public VirtualMachineConfiguration() this.NodePlacementConfiguration = nodePlacementConfiguration; this.Extensions = extensions; this.OSDisk = osDisk; + this.SecurityProfile = securityProfile; + this.ServiceArtifactReference = serviceArtifactReference; CustomInit(); } @@ -183,6 +193,20 @@ public VirtualMachineConfiguration() /// [Newtonsoft.Json.JsonProperty(PropertyName = "osDisk")] public OSDisk OSDisk {get; set; } + + /// + /// Gets or sets specifies the security profile settings for the virtual + /// machine or virtual machine scale set. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "securityProfile")] + public SecurityProfile SecurityProfile {get; set; } + + /// + /// Gets or sets the service artifact reference id in the form of + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/galleries/{galleryName}/serviceArtifacts/{serviceArtifactName}/vmArtifactsProfiles/{vmArtifactsProfilesName} + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "serviceArtifactReference")] + public ServiceArtifactReference ServiceArtifactReference {get; set; } /// /// Validate the object. /// @@ -213,7 +237,10 @@ public virtual void Validate() } } - + if (this.ContainerConfiguration != null) + { + this.ContainerConfiguration.Validate(); + } if (this.Extensions != null) @@ -227,6 +254,11 @@ public virtual void Validate() } } + + if (this.ServiceArtifactReference != null) + { + this.ServiceArtifactReference.Validate(); + } } } } \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/WindowsUserConfiguration.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/WindowsUserConfiguration.cs index 15971a578e48..a7a4a2fc7c35 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/WindowsUserConfiguration.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/WindowsUserConfiguration.cs @@ -27,9 +27,7 @@ public WindowsUserConfiguration() /// Initializes a new instance of the WindowsUserConfiguration class. /// - /// Specifies login mode for the user. The default value for - /// VirtualMachineConfiguration pools is interactive mode and for - /// CloudServiceConfiguration pools is batch mode. + /// Specifies login mode for the user. The default value is Interactive. /// Possible values include: 'Batch', 'Interactive' public WindowsUserConfiguration(LoginMode? loginMode = default(LoginMode?)) @@ -45,9 +43,8 @@ public WindowsUserConfiguration() /// - /// Gets or sets specifies login mode for the user. The default value for - /// VirtualMachineConfiguration pools is interactive mode and for - /// CloudServiceConfiguration pools is batch mode. Possible values include: 'Batch', 'Interactive' + /// Gets or sets specifies login mode for the user. The default value is + /// Interactive. Possible values include: 'Batch', 'Interactive' /// [Newtonsoft.Json.JsonProperty(PropertyName = "loginMode")] public LoginMode? LoginMode {get; set; } diff --git a/src/Batch/Batch.Management.Sdk/Generated/NetworkSecurityPerimeterOperations.cs b/src/Batch/Batch.Management.Sdk/Generated/NetworkSecurityPerimeterOperations.cs new file mode 100644 index 000000000000..3b6dcd3f218f --- /dev/null +++ b/src/Batch/Batch.Management.Sdk/Generated/NetworkSecurityPerimeterOperations.cs @@ -0,0 +1,949 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.Management.Batch +{ + using System.Linq; + using Microsoft.Rest; + using Microsoft.Rest.Azure; + using Models; + + /// + /// NetworkSecurityPerimeterOperations operations. + /// + internal partial class NetworkSecurityPerimeterOperations : Microsoft.Rest.IServiceOperations, INetworkSecurityPerimeterOperations + { + /// + /// Initializes a new instance of the NetworkSecurityPerimeterOperations class. + /// + /// + /// Reference to the service client. + /// + /// + /// Thrown when a required parameter is null + /// + internal NetworkSecurityPerimeterOperations (BatchManagementClient client) + { + if (client == null) + { + throw new System.ArgumentNullException("client"); + } + this.Client = client; + } + + /// + /// Gets a reference to the BatchManagementClient + /// + public BatchManagementClient Client { get; private set; } + + /// + /// Lists all of the NSP configurations in the specified account. + /// + /// + /// The name of the resource group that contains the Batch account. + /// + /// + /// The name of the Batch account. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async System.Threading.Tasks.Task>> ListConfigurationsWithHttpMessagesAsync(string resourceGroupName, string accountName, System.Collections.Generic.Dictionary> customHeaders = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + { + + + + + if (this.Client.SubscriptionId == null) + { + throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.CannotBeNull, "this.Client.SubscriptionId"); + } + + if (resourceGroupName == null) + { + throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.CannotBeNull, "resourceGroupName"); + } + + if (accountName == null) + { + throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.CannotBeNull, "accountName"); + } + if (accountName != null) + { + if (accountName.Length > 24) + { + throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.MaxLength, "accountName", 24); + } + if (accountName.Length < 3) + { + throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.MinLength, "accountName", 3); + } + if (!System.Text.RegularExpressions.Regex.IsMatch(accountName, "^[a-zA-Z0-9]+$")) + { + throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.Pattern, "accountName", "^[a-zA-Z0-9]+$"); + } + } + if (this.Client.ApiVersion == null) + { + throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.CannotBeNull, "this.Client.ApiVersion"); + } + + // Tracing + bool _shouldTrace = Microsoft.Rest.ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = Microsoft.Rest.ServiceClientTracing.NextInvocationId.ToString(); + System.Collections.Generic.Dictionary tracingParameters = new System.Collections.Generic.Dictionary(); + tracingParameters.Add("resourceGroupName", resourceGroupName); + tracingParameters.Add("accountName", accountName); + + + tracingParameters.Add("cancellationToken", cancellationToken); + Microsoft.Rest.ServiceClientTracing.Enter(_invocationId, this, "ListConfigurations", tracingParameters); + } + // Construct URL + + var _baseUrl = this.Client.BaseUri.AbsoluteUri; + var _url = new System.Uri(new System.Uri(_baseUrl + (_baseUrl.EndsWith("/") ? "" : "/")), "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/networkSecurityPerimeterConfigurations").ToString(); + _url = _url.Replace("{subscriptionId}", System.Uri.EscapeDataString(this.Client.SubscriptionId)); + _url = _url.Replace("{resourceGroupName}", System.Uri.EscapeDataString(resourceGroupName)); + _url = _url.Replace("{accountName}", System.Uri.EscapeDataString(accountName)); + + System.Collections.Generic.List _queryParameters = new System.Collections.Generic.List(); + if (this.Client.ApiVersion != null) + { + _queryParameters.Add(string.Format("api-version={0}", System.Uri.EscapeDataString(this.Client.ApiVersion))); + } + if (_queryParameters.Count > 0) + { + _url += (_url.Contains("?") ? "&" : "?") + string.Join("&", _queryParameters); + } + // Create HTTP transport objects + var _httpRequest = new System.Net.Http.HttpRequestMessage(); + System.Net.Http.HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new System.Net.Http.HttpMethod("GET"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (this.Client.GenerateClientRequestId != null && this.Client.GenerateClientRequestId.Value) + { + _httpRequest.Headers.TryAddWithoutValidation("x-ms-client-request-id", System.Guid.NewGuid().ToString()); + } + if (this.Client.AcceptLanguage != null) + { + if (_httpRequest.Headers.Contains("accept-language")) + { + _httpRequest.Headers.Remove("accept-language"); + } + _httpRequest.Headers.TryAddWithoutValidation("accept-language", this.Client.AcceptLanguage); + } + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + // Serialize Request + string _requestContent = null; + // Set Credentials + if (this.Client.Credentials != null) + { + cancellationToken.ThrowIfCancellationRequested(); + await this.Client.Credentials.ProcessHttpRequestAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + } + // Send Request + if (_shouldTrace) + { + Microsoft.Rest.ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await this.Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + Microsoft.Rest.ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + + System.Net.HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + + if ((int)_statusCode != 200) + { + var ex = new Microsoft.Rest.Azure.CloudException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + CloudError _errorBody = Microsoft.Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, this.Client.DeserializationSettings); + if (_errorBody != null) + { + ex = new Microsoft.Rest.Azure.CloudException(_errorBody.Message); + ex.Body = _errorBody; + } + } + catch (Newtonsoft.Json.JsonException) + { + // Ignore the exception + } + ex.Request = new Microsoft.Rest.HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new Microsoft.Rest.HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_httpResponse.Headers.Contains("x-ms-request-id")) + { + ex.RequestId = _httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault(); + } + if (_shouldTrace) + { + Microsoft.Rest.ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new Microsoft.Rest.Azure.AzureOperationResponse>(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + + if (_httpResponse.Headers.Contains("x-ms-request-id")) + { + _result.RequestId = _httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault(); + } + // Deserialize Response + if ((int)_statusCode == 200) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = Microsoft.Rest.Serialization.SafeJsonConvert.DeserializeObject>(_responseContent, this.Client.DeserializationSettings); + } + catch (Newtonsoft.Json.JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new Microsoft.Rest.SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + if (_shouldTrace) + { + Microsoft.Rest.ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + + + + + + } + /// + /// Gets information about the specified NSP configuration. + /// + /// + /// The name of the resource group that contains the Batch account. + /// + /// + /// The name of the Batch account. + /// + /// + /// The name for Network Security Perimeter configuration + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async System.Threading.Tasks.Task> GetConfigurationWithHttpMessagesAsync(string resourceGroupName, string accountName, string networkSecurityPerimeterConfigurationName, System.Collections.Generic.Dictionary> customHeaders = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + { + + + + + if (this.Client.SubscriptionId == null) + { + throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.CannotBeNull, "this.Client.SubscriptionId"); + } + + if (resourceGroupName == null) + { + throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.CannotBeNull, "resourceGroupName"); + } + + if (accountName == null) + { + throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.CannotBeNull, "accountName"); + } + if (accountName != null) + { + if (accountName.Length > 24) + { + throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.MaxLength, "accountName", 24); + } + if (accountName.Length < 3) + { + throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.MinLength, "accountName", 3); + } + if (!System.Text.RegularExpressions.Regex.IsMatch(accountName, "^[a-zA-Z0-9]+$")) + { + throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.Pattern, "accountName", "^[a-zA-Z0-9]+$"); + } + } + if (networkSecurityPerimeterConfigurationName == null) + { + throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.CannotBeNull, "networkSecurityPerimeterConfigurationName"); + } + if (networkSecurityPerimeterConfigurationName != null) + { + if (!System.Text.RegularExpressions.Regex.IsMatch(networkSecurityPerimeterConfigurationName, "^.*$")) + { + throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.Pattern, "networkSecurityPerimeterConfigurationName", "^.*$"); + } + } + if (this.Client.ApiVersion == null) + { + throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.CannotBeNull, "this.Client.ApiVersion"); + } + + // Tracing + bool _shouldTrace = Microsoft.Rest.ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = Microsoft.Rest.ServiceClientTracing.NextInvocationId.ToString(); + System.Collections.Generic.Dictionary tracingParameters = new System.Collections.Generic.Dictionary(); + tracingParameters.Add("resourceGroupName", resourceGroupName); + tracingParameters.Add("accountName", accountName); + tracingParameters.Add("networkSecurityPerimeterConfigurationName", networkSecurityPerimeterConfigurationName); + + + tracingParameters.Add("cancellationToken", cancellationToken); + Microsoft.Rest.ServiceClientTracing.Enter(_invocationId, this, "GetConfiguration", tracingParameters); + } + // Construct URL + + var _baseUrl = this.Client.BaseUri.AbsoluteUri; + var _url = new System.Uri(new System.Uri(_baseUrl + (_baseUrl.EndsWith("/") ? "" : "/")), "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/networkSecurityPerimeterConfigurations/{networkSecurityPerimeterConfigurationName}").ToString(); + _url = _url.Replace("{subscriptionId}", System.Uri.EscapeDataString(this.Client.SubscriptionId)); + _url = _url.Replace("{resourceGroupName}", System.Uri.EscapeDataString(resourceGroupName)); + _url = _url.Replace("{accountName}", System.Uri.EscapeDataString(accountName)); + _url = _url.Replace("{networkSecurityPerimeterConfigurationName}", System.Uri.EscapeDataString(networkSecurityPerimeterConfigurationName)); + + System.Collections.Generic.List _queryParameters = new System.Collections.Generic.List(); + if (this.Client.ApiVersion != null) + { + _queryParameters.Add(string.Format("api-version={0}", System.Uri.EscapeDataString(this.Client.ApiVersion))); + } + if (_queryParameters.Count > 0) + { + _url += (_url.Contains("?") ? "&" : "?") + string.Join("&", _queryParameters); + } + // Create HTTP transport objects + var _httpRequest = new System.Net.Http.HttpRequestMessage(); + System.Net.Http.HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new System.Net.Http.HttpMethod("GET"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (this.Client.GenerateClientRequestId != null && this.Client.GenerateClientRequestId.Value) + { + _httpRequest.Headers.TryAddWithoutValidation("x-ms-client-request-id", System.Guid.NewGuid().ToString()); + } + if (this.Client.AcceptLanguage != null) + { + if (_httpRequest.Headers.Contains("accept-language")) + { + _httpRequest.Headers.Remove("accept-language"); + } + _httpRequest.Headers.TryAddWithoutValidation("accept-language", this.Client.AcceptLanguage); + } + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + // Serialize Request + string _requestContent = null; + // Set Credentials + if (this.Client.Credentials != null) + { + cancellationToken.ThrowIfCancellationRequested(); + await this.Client.Credentials.ProcessHttpRequestAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + } + // Send Request + if (_shouldTrace) + { + Microsoft.Rest.ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await this.Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + Microsoft.Rest.ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + + System.Net.HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + + if ((int)_statusCode != 200) + { + var ex = new Microsoft.Rest.Azure.CloudException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + CloudError _errorBody = Microsoft.Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, this.Client.DeserializationSettings); + if (_errorBody != null) + { + ex = new Microsoft.Rest.Azure.CloudException(_errorBody.Message); + ex.Body = _errorBody; + } + } + catch (Newtonsoft.Json.JsonException) + { + // Ignore the exception + } + ex.Request = new Microsoft.Rest.HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new Microsoft.Rest.HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_httpResponse.Headers.Contains("x-ms-request-id")) + { + ex.RequestId = _httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault(); + } + if (_shouldTrace) + { + Microsoft.Rest.ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new Microsoft.Rest.Azure.AzureOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + + if (_httpResponse.Headers.Contains("x-ms-request-id")) + { + _result.RequestId = _httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault(); + } + // Deserialize Response + if ((int)_statusCode == 200) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = Microsoft.Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, this.Client.DeserializationSettings); + } + catch (Newtonsoft.Json.JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new Microsoft.Rest.SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + if (_shouldTrace) + { + Microsoft.Rest.ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + + + + + + } + /// + /// Reconciles the specified NSP configuration. + /// + /// + /// The name of the resource group that contains the Batch account. + /// + /// + /// The name of the Batch account. + /// + /// + /// The name for Network Security Perimeter configuration + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + public async System.Threading.Tasks.Task> ReconcileConfigurationWithHttpMessagesAsync(string resourceGroupName, string accountName, string networkSecurityPerimeterConfigurationName, System.Collections.Generic.Dictionary> customHeaders = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + { + // Send Request + Microsoft.Rest.Azure.AzureOperationHeaderResponse _response = await BeginReconcileConfigurationWithHttpMessagesAsync(resourceGroupName, accountName, networkSecurityPerimeterConfigurationName, customHeaders, cancellationToken).ConfigureAwait(false); + return await this.Client.GetPostOrDeleteOperationResultAsync(_response, customHeaders, cancellationToken).ConfigureAwait(false); + } + + /// + /// Reconciles the specified NSP configuration. + /// + /// + /// The name of the resource group that contains the Batch account. + /// + /// + /// The name of the Batch account. + /// + /// + /// The name for Network Security Perimeter configuration + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async System.Threading.Tasks.Task> BeginReconcileConfigurationWithHttpMessagesAsync(string resourceGroupName, string accountName, string networkSecurityPerimeterConfigurationName, System.Collections.Generic.Dictionary> customHeaders = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + { + + + + + if (this.Client.SubscriptionId == null) + { + throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.CannotBeNull, "this.Client.SubscriptionId"); + } + + if (resourceGroupName == null) + { + throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.CannotBeNull, "resourceGroupName"); + } + + if (accountName == null) + { + throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.CannotBeNull, "accountName"); + } + if (accountName != null) + { + if (accountName.Length > 24) + { + throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.MaxLength, "accountName", 24); + } + if (accountName.Length < 3) + { + throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.MinLength, "accountName", 3); + } + if (!System.Text.RegularExpressions.Regex.IsMatch(accountName, "^[a-zA-Z0-9]+$")) + { + throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.Pattern, "accountName", "^[a-zA-Z0-9]+$"); + } + } + if (networkSecurityPerimeterConfigurationName == null) + { + throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.CannotBeNull, "networkSecurityPerimeterConfigurationName"); + } + if (networkSecurityPerimeterConfigurationName != null) + { + if (!System.Text.RegularExpressions.Regex.IsMatch(networkSecurityPerimeterConfigurationName, "^.*$")) + { + throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.Pattern, "networkSecurityPerimeterConfigurationName", "^.*$"); + } + } + if (this.Client.ApiVersion == null) + { + throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.CannotBeNull, "this.Client.ApiVersion"); + } + + // Tracing + bool _shouldTrace = Microsoft.Rest.ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = Microsoft.Rest.ServiceClientTracing.NextInvocationId.ToString(); + System.Collections.Generic.Dictionary tracingParameters = new System.Collections.Generic.Dictionary(); + tracingParameters.Add("resourceGroupName", resourceGroupName); + tracingParameters.Add("accountName", accountName); + tracingParameters.Add("networkSecurityPerimeterConfigurationName", networkSecurityPerimeterConfigurationName); + + + tracingParameters.Add("cancellationToken", cancellationToken); + Microsoft.Rest.ServiceClientTracing.Enter(_invocationId, this, "BeginReconcileConfiguration", tracingParameters); + } + // Construct URL + + var _baseUrl = this.Client.BaseUri.AbsoluteUri; + var _url = new System.Uri(new System.Uri(_baseUrl + (_baseUrl.EndsWith("/") ? "" : "/")), "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/networkSecurityPerimeterConfigurations/{networkSecurityPerimeterConfigurationName}/reconcile").ToString(); + _url = _url.Replace("{subscriptionId}", System.Uri.EscapeDataString(this.Client.SubscriptionId)); + _url = _url.Replace("{resourceGroupName}", System.Uri.EscapeDataString(resourceGroupName)); + _url = _url.Replace("{accountName}", System.Uri.EscapeDataString(accountName)); + _url = _url.Replace("{networkSecurityPerimeterConfigurationName}", System.Uri.EscapeDataString(networkSecurityPerimeterConfigurationName)); + + System.Collections.Generic.List _queryParameters = new System.Collections.Generic.List(); + if (this.Client.ApiVersion != null) + { + _queryParameters.Add(string.Format("api-version={0}", System.Uri.EscapeDataString(this.Client.ApiVersion))); + } + if (_queryParameters.Count > 0) + { + _url += (_url.Contains("?") ? "&" : "?") + string.Join("&", _queryParameters); + } + // Create HTTP transport objects + var _httpRequest = new System.Net.Http.HttpRequestMessage(); + System.Net.Http.HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new System.Net.Http.HttpMethod("POST"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (this.Client.GenerateClientRequestId != null && this.Client.GenerateClientRequestId.Value) + { + _httpRequest.Headers.TryAddWithoutValidation("x-ms-client-request-id", System.Guid.NewGuid().ToString()); + } + if (this.Client.AcceptLanguage != null) + { + if (_httpRequest.Headers.Contains("accept-language")) + { + _httpRequest.Headers.Remove("accept-language"); + } + _httpRequest.Headers.TryAddWithoutValidation("accept-language", this.Client.AcceptLanguage); + } + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + // Serialize Request + string _requestContent = null; + // Set Credentials + if (this.Client.Credentials != null) + { + cancellationToken.ThrowIfCancellationRequested(); + await this.Client.Credentials.ProcessHttpRequestAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + } + // Send Request + if (_shouldTrace) + { + Microsoft.Rest.ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await this.Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + Microsoft.Rest.ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + + System.Net.HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + + if ((int)_statusCode != 202) + { + var ex = new ErrorResponseException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + ErrorResponse _errorBody = Microsoft.Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, this.Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (Newtonsoft.Json.JsonException) + { + // Ignore the exception + } + ex.Request = new Microsoft.Rest.HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new Microsoft.Rest.HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + Microsoft.Rest.ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new Microsoft.Rest.Azure.AzureOperationHeaderResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + + if (_httpResponse.Headers.Contains("x-ms-request-id")) + { + _result.RequestId = _httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault(); + } + try + { + _result.Headers = _httpResponse.GetHeadersAsJson().ToObject(Newtonsoft.Json.JsonSerializer.Create(this.Client.DeserializationSettings)); + } + catch (Newtonsoft.Json.JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new Microsoft.Rest.SerializationException("Unable to deserialize the headers.", _httpResponse.GetHeadersAsJson().ToString(), ex); + } + if (_shouldTrace) + { + Microsoft.Rest.ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + + + + + + } + /// + /// Lists all of the NSP configurations in the specified account. + /// + /// + /// The NextLink from the previous successful call to List operation. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async System.Threading.Tasks.Task>> ListConfigurationsNextWithHttpMessagesAsync(string nextPageLink, System.Collections.Generic.Dictionary> customHeaders = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + { + + if (nextPageLink == null) + { + throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.CannotBeNull, "nextPageLink"); + } + // Tracing + bool _shouldTrace = Microsoft.Rest.ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = Microsoft.Rest.ServiceClientTracing.NextInvocationId.ToString(); + System.Collections.Generic.Dictionary tracingParameters = new System.Collections.Generic.Dictionary(); + tracingParameters.Add("nextPageLink", nextPageLink); + + + tracingParameters.Add("cancellationToken", cancellationToken); + Microsoft.Rest.ServiceClientTracing.Enter(_invocationId, this, "ListConfigurationsNext", tracingParameters); + } + // Construct URL + string _url = "{nextLink}"; + _url = _url.Replace("{nextLink}", nextPageLink); + + System.Collections.Generic.List _queryParameters = new System.Collections.Generic.List(); + if (_queryParameters.Count > 0) + { + _url += (_url.Contains("?") ? "&" : "?") + string.Join("&", _queryParameters); + } + // Create HTTP transport objects + var _httpRequest = new System.Net.Http.HttpRequestMessage(); + System.Net.Http.HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new System.Net.Http.HttpMethod("GET"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (this.Client.GenerateClientRequestId != null && this.Client.GenerateClientRequestId.Value) + { + _httpRequest.Headers.TryAddWithoutValidation("x-ms-client-request-id", System.Guid.NewGuid().ToString()); + } + if (this.Client.AcceptLanguage != null) + { + if (_httpRequest.Headers.Contains("accept-language")) + { + _httpRequest.Headers.Remove("accept-language"); + } + _httpRequest.Headers.TryAddWithoutValidation("accept-language", this.Client.AcceptLanguage); + } + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + // Serialize Request + string _requestContent = null; + // Set Credentials + if (this.Client.Credentials != null) + { + cancellationToken.ThrowIfCancellationRequested(); + await this.Client.Credentials.ProcessHttpRequestAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + } + // Send Request + if (_shouldTrace) + { + Microsoft.Rest.ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await this.Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + Microsoft.Rest.ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + + System.Net.HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + + if ((int)_statusCode != 200) + { + var ex = new Microsoft.Rest.Azure.CloudException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + CloudError _errorBody = Microsoft.Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, this.Client.DeserializationSettings); + if (_errorBody != null) + { + ex = new Microsoft.Rest.Azure.CloudException(_errorBody.Message); + ex.Body = _errorBody; + } + } + catch (Newtonsoft.Json.JsonException) + { + // Ignore the exception + } + ex.Request = new Microsoft.Rest.HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new Microsoft.Rest.HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_httpResponse.Headers.Contains("x-ms-request-id")) + { + ex.RequestId = _httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault(); + } + if (_shouldTrace) + { + Microsoft.Rest.ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new Microsoft.Rest.Azure.AzureOperationResponse>(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + + if (_httpResponse.Headers.Contains("x-ms-request-id")) + { + _result.RequestId = _httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault(); + } + // Deserialize Response + if ((int)_statusCode == 200) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = Microsoft.Rest.Serialization.SafeJsonConvert.DeserializeObject>(_responseContent, this.Client.DeserializationSettings); + } + catch (Newtonsoft.Json.JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new Microsoft.Rest.SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + if (_shouldTrace) + { + Microsoft.Rest.ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + + + + + + } + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/NetworkSecurityPerimeterOperationsExtensions.cs b/src/Batch/Batch.Management.Sdk/Generated/NetworkSecurityPerimeterOperationsExtensions.cs new file mode 100644 index 000000000000..315f03e1344b --- /dev/null +++ b/src/Batch/Batch.Management.Sdk/Generated/NetworkSecurityPerimeterOperationsExtensions.cs @@ -0,0 +1,223 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. +namespace Microsoft.Azure.Management.Batch +{ + using Microsoft.Rest.Azure; + using Models; + + /// + /// Extension methods for NetworkSecurityPerimeterOperations + /// + public static partial class NetworkSecurityPerimeterOperationsExtensions + { + /// + /// Lists all of the NSP configurations in the specified account. + /// + /// + /// The operations group for this extension method. + /// + /// + /// The name of the resource group that contains the Batch account. + /// + /// + /// The name of the Batch account. + /// + public static Microsoft.Rest.Azure.IPage ListConfigurations(this INetworkSecurityPerimeterOperations operations, string resourceGroupName, string accountName) + { + return ((INetworkSecurityPerimeterOperations)operations).ListConfigurationsAsync(resourceGroupName, accountName).GetAwaiter().GetResult(); + } + + /// + /// Lists all of the NSP configurations in the specified account. + /// + /// + /// The operations group for this extension method. + /// + /// + /// The name of the resource group that contains the Batch account. + /// + /// + /// The name of the Batch account. + /// + /// + /// The cancellation token. + /// + public static async System.Threading.Tasks.Task> ListConfigurationsAsync(this INetworkSecurityPerimeterOperations operations, string resourceGroupName, string accountName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + { + using (var _result = await operations.ListConfigurationsWithHttpMessagesAsync(resourceGroupName, accountName, null, cancellationToken).ConfigureAwait(false)) + { + return _result.Body; + } + } + /// + /// Gets information about the specified NSP configuration. + /// + /// + /// The operations group for this extension method. + /// + /// + /// The name of the resource group that contains the Batch account. + /// + /// + /// The name of the Batch account. + /// + /// + /// The name for Network Security Perimeter configuration + /// + public static NetworkSecurityPerimeterConfiguration GetConfiguration(this INetworkSecurityPerimeterOperations operations, string resourceGroupName, string accountName, string networkSecurityPerimeterConfigurationName) + { + return ((INetworkSecurityPerimeterOperations)operations).GetConfigurationAsync(resourceGroupName, accountName, networkSecurityPerimeterConfigurationName).GetAwaiter().GetResult(); + } + + /// + /// Gets information about the specified NSP configuration. + /// + /// + /// The operations group for this extension method. + /// + /// + /// The name of the resource group that contains the Batch account. + /// + /// + /// The name of the Batch account. + /// + /// + /// The name for Network Security Perimeter configuration + /// + /// + /// The cancellation token. + /// + public static async System.Threading.Tasks.Task GetConfigurationAsync(this INetworkSecurityPerimeterOperations operations, string resourceGroupName, string accountName, string networkSecurityPerimeterConfigurationName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + { + using (var _result = await operations.GetConfigurationWithHttpMessagesAsync(resourceGroupName, accountName, networkSecurityPerimeterConfigurationName, null, cancellationToken).ConfigureAwait(false)) + { + return _result.Body; + } + } + /// + /// Reconciles the specified NSP configuration. + /// + /// + /// The operations group for this extension method. + /// + /// + /// The name of the resource group that contains the Batch account. + /// + /// + /// The name of the Batch account. + /// + /// + /// The name for Network Security Perimeter configuration + /// + public static NetworkSecurityPerimeterReconcileConfigurationHeaders ReconcileConfiguration(this INetworkSecurityPerimeterOperations operations, string resourceGroupName, string accountName, string networkSecurityPerimeterConfigurationName) + { + return ((INetworkSecurityPerimeterOperations)operations).ReconcileConfigurationAsync(resourceGroupName, accountName, networkSecurityPerimeterConfigurationName).GetAwaiter().GetResult(); + } + + /// + /// Reconciles the specified NSP configuration. + /// + /// + /// The operations group for this extension method. + /// + /// + /// The name of the resource group that contains the Batch account. + /// + /// + /// The name of the Batch account. + /// + /// + /// The name for Network Security Perimeter configuration + /// + /// + /// The cancellation token. + /// + public static async System.Threading.Tasks.Task ReconcileConfigurationAsync(this INetworkSecurityPerimeterOperations operations, string resourceGroupName, string accountName, string networkSecurityPerimeterConfigurationName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + { + using (var _result = await operations.ReconcileConfigurationWithHttpMessagesAsync(resourceGroupName, accountName, networkSecurityPerimeterConfigurationName, null, cancellationToken).ConfigureAwait(false)) + { + return _result.Headers; + } + } + /// + /// Reconciles the specified NSP configuration. + /// + /// + /// The operations group for this extension method. + /// + /// + /// The name of the resource group that contains the Batch account. + /// + /// + /// The name of the Batch account. + /// + /// + /// The name for Network Security Perimeter configuration + /// + public static NetworkSecurityPerimeterReconcileConfigurationHeaders BeginReconcileConfiguration(this INetworkSecurityPerimeterOperations operations, string resourceGroupName, string accountName, string networkSecurityPerimeterConfigurationName) + { + return ((INetworkSecurityPerimeterOperations)operations).BeginReconcileConfigurationAsync(resourceGroupName, accountName, networkSecurityPerimeterConfigurationName).GetAwaiter().GetResult(); + } + + /// + /// Reconciles the specified NSP configuration. + /// + /// + /// The operations group for this extension method. + /// + /// + /// The name of the resource group that contains the Batch account. + /// + /// + /// The name of the Batch account. + /// + /// + /// The name for Network Security Perimeter configuration + /// + /// + /// The cancellation token. + /// + public static async System.Threading.Tasks.Task BeginReconcileConfigurationAsync(this INetworkSecurityPerimeterOperations operations, string resourceGroupName, string accountName, string networkSecurityPerimeterConfigurationName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + { + using (var _result = await operations.BeginReconcileConfigurationWithHttpMessagesAsync(resourceGroupName, accountName, networkSecurityPerimeterConfigurationName, null, cancellationToken).ConfigureAwait(false)) + { + return _result.Headers; + } + } + /// + /// Lists all of the NSP configurations in the specified account. + /// + /// + /// The operations group for this extension method. + /// + /// + /// The NextLink from the previous successful call to List operation. + /// + public static Microsoft.Rest.Azure.IPage ListConfigurationsNext(this INetworkSecurityPerimeterOperations operations, string nextPageLink) + { + return ((INetworkSecurityPerimeterOperations)operations).ListConfigurationsNextAsync(nextPageLink).GetAwaiter().GetResult(); + } + + /// + /// Lists all of the NSP configurations in the specified account. + /// + /// + /// The operations group for this extension method. + /// + /// + /// The NextLink from the previous successful call to List operation. + /// + /// + /// The cancellation token. + /// + public static async System.Threading.Tasks.Task> ListConfigurationsNextAsync(this INetworkSecurityPerimeterOperations operations, string nextPageLink, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + { + using (var _result = await operations.ListConfigurationsNextWithHttpMessagesAsync(nextPageLink, null, cancellationToken).ConfigureAwait(false)) + { + return _result.Body; + } + } + } +} diff --git a/src/Batch/Batch.Management.Sdk/Generated/PrivateEndpointConnectionOperations.cs b/src/Batch/Batch.Management.Sdk/Generated/PrivateEndpointConnectionOperations.cs index 9b5f9c18a875..8fdf94961de6 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/PrivateEndpointConnectionOperations.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/PrivateEndpointConnectionOperations.cs @@ -543,9 +543,10 @@ internal PrivateEndpointConnectionOperations (BatchManagementClient client) /// The state (ETag) version of the private endpoint connection to update. This /// value can be omitted or set to "*" to apply the operation unconditionally. /// - /// - /// The private link service connection state of the private endpoint - /// connection + /// + /// PrivateEndpointConnection properties that should be updated. Properties + /// that are supplied will be updated, any property not supplied will be + /// unchanged. /// /// /// Headers that will be added to request. @@ -553,10 +554,10 @@ internal PrivateEndpointConnectionOperations (BatchManagementClient client) /// /// The cancellation token. /// - public async System.Threading.Tasks.Task> UpdateWithHttpMessagesAsync(string resourceGroupName, string accountName, string privateEndpointConnectionName, PrivateLinkServiceConnectionState privateLinkServiceConnectionState = default(PrivateLinkServiceConnectionState), string ifMatch = default(string), System.Collections.Generic.Dictionary> customHeaders = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + public async System.Threading.Tasks.Task> UpdateWithHttpMessagesAsync(string resourceGroupName, string accountName, string privateEndpointConnectionName, PrivateEndpointConnection parameters, string ifMatch = default(string), System.Collections.Generic.Dictionary> customHeaders = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { // Send Request - Microsoft.Rest.Azure.AzureOperationResponse _response = await BeginUpdateWithHttpMessagesAsync(resourceGroupName, accountName, privateEndpointConnectionName, privateLinkServiceConnectionState, ifMatch, customHeaders, cancellationToken).ConfigureAwait(false); + Microsoft.Rest.Azure.AzureOperationResponse _response = await BeginUpdateWithHttpMessagesAsync(resourceGroupName, accountName, privateEndpointConnectionName, parameters, ifMatch, customHeaders, cancellationToken).ConfigureAwait(false); return await this.Client.GetPutOrPatchOperationResultAsync(_response, customHeaders, cancellationToken).ConfigureAwait(false); } @@ -603,9 +604,10 @@ internal PrivateEndpointConnectionOperations (BatchManagementClient client) /// The state (ETag) version of the private endpoint connection to update. This /// value can be omitted or set to "*" to apply the operation unconditionally. /// - /// - /// The private link service connection state of the private endpoint - /// connection + /// + /// PrivateEndpointConnection properties that should be updated. Properties + /// that are supplied will be updated, any property not supplied will be + /// unchanged. /// /// /// Headers that will be added to request. @@ -628,12 +630,16 @@ internal PrivateEndpointConnectionOperations (BatchManagementClient client) /// /// A response object containing the response body and response headers. /// - public async System.Threading.Tasks.Task> BeginUpdateWithHttpMessagesAsync(string resourceGroupName, string accountName, string privateEndpointConnectionName, PrivateLinkServiceConnectionState privateLinkServiceConnectionState = default(PrivateLinkServiceConnectionState), string ifMatch = default(string), System.Collections.Generic.Dictionary> customHeaders = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + public async System.Threading.Tasks.Task> BeginUpdateWithHttpMessagesAsync(string resourceGroupName, string accountName, string privateEndpointConnectionName, PrivateEndpointConnection parameters, string ifMatch = default(string), System.Collections.Generic.Dictionary> customHeaders = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { + if (parameters == null) + { + throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.CannotBeNull, "parameters"); + } if (this.Client.SubscriptionId == null) { throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.CannotBeNull, "this.Client.SubscriptionId"); @@ -688,11 +694,6 @@ internal PrivateEndpointConnectionOperations (BatchManagementClient client) } - PrivateEndpointConnection parameters = new PrivateEndpointConnection(); - if(privateLinkServiceConnectionState != null) - { - parameters.PrivateLinkServiceConnectionState = privateLinkServiceConnectionState; - } // Tracing bool _shouldTrace = Microsoft.Rest.ServiceClientTracing.IsEnabled; string _invocationId = null; diff --git a/src/Batch/Batch.Management.Sdk/Generated/PrivateEndpointConnectionOperationsExtensions.cs b/src/Batch/Batch.Management.Sdk/Generated/PrivateEndpointConnectionOperationsExtensions.cs index f899f7b19201..9a28f05d3131 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/PrivateEndpointConnectionOperationsExtensions.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/PrivateEndpointConnectionOperationsExtensions.cs @@ -124,9 +124,9 @@ public static PrivateEndpointConnection Get(this IPrivateEndpointConnectionOpera /// The state (ETag) version of the private endpoint connection to update. This /// value can be omitted or set to "*" to apply the operation unconditionally. /// - public static PrivateEndpointConnection Update(this IPrivateEndpointConnectionOperations operations, string resourceGroupName, string accountName, string privateEndpointConnectionName, PrivateLinkServiceConnectionState privateLinkServiceConnectionState = default(PrivateLinkServiceConnectionState), string ifMatch = default(string)) + public static PrivateEndpointConnection Update(this IPrivateEndpointConnectionOperations operations, string resourceGroupName, string accountName, string privateEndpointConnectionName, PrivateEndpointConnection parameters, string ifMatch = default(string)) { - return ((IPrivateEndpointConnectionOperations)operations).UpdateAsync(resourceGroupName, accountName, privateEndpointConnectionName, privateLinkServiceConnectionState, ifMatch).GetAwaiter().GetResult(); + return ((IPrivateEndpointConnectionOperations)operations).UpdateAsync(resourceGroupName, accountName, privateEndpointConnectionName, parameters, ifMatch).GetAwaiter().GetResult(); } /// @@ -152,9 +152,9 @@ public static PrivateEndpointConnection Get(this IPrivateEndpointConnectionOpera /// /// The cancellation token. /// - public static async System.Threading.Tasks.Task UpdateAsync(this IPrivateEndpointConnectionOperations operations, string resourceGroupName, string accountName, string privateEndpointConnectionName, PrivateLinkServiceConnectionState privateLinkServiceConnectionState = default(PrivateLinkServiceConnectionState), string ifMatch = default(string), System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + public static async System.Threading.Tasks.Task UpdateAsync(this IPrivateEndpointConnectionOperations operations, string resourceGroupName, string accountName, string privateEndpointConnectionName, PrivateEndpointConnection parameters, string ifMatch = default(string), System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { - using (var _result = await operations.UpdateWithHttpMessagesAsync(resourceGroupName, accountName, privateEndpointConnectionName, privateLinkServiceConnectionState, ifMatch, null, cancellationToken).ConfigureAwait(false)) + using (var _result = await operations.UpdateWithHttpMessagesAsync(resourceGroupName, accountName, privateEndpointConnectionName, parameters, ifMatch, null, cancellationToken).ConfigureAwait(false)) { return _result.Body; } @@ -226,9 +226,9 @@ public static PrivateEndpointConnectionDeleteHeaders Delete(this IPrivateEndpoin /// The state (ETag) version of the private endpoint connection to update. This /// value can be omitted or set to "*" to apply the operation unconditionally. /// - public static PrivateEndpointConnection BeginUpdate(this IPrivateEndpointConnectionOperations operations, string resourceGroupName, string accountName, string privateEndpointConnectionName, PrivateLinkServiceConnectionState privateLinkServiceConnectionState = default(PrivateLinkServiceConnectionState), string ifMatch = default(string)) + public static PrivateEndpointConnection BeginUpdate(this IPrivateEndpointConnectionOperations operations, string resourceGroupName, string accountName, string privateEndpointConnectionName, PrivateEndpointConnection parameters, string ifMatch = default(string)) { - return ((IPrivateEndpointConnectionOperations)operations).BeginUpdateAsync(resourceGroupName, accountName, privateEndpointConnectionName, privateLinkServiceConnectionState, ifMatch).GetAwaiter().GetResult(); + return ((IPrivateEndpointConnectionOperations)operations).BeginUpdateAsync(resourceGroupName, accountName, privateEndpointConnectionName, parameters, ifMatch).GetAwaiter().GetResult(); } /// @@ -254,9 +254,9 @@ public static PrivateEndpointConnectionDeleteHeaders Delete(this IPrivateEndpoin /// /// The cancellation token. /// - public static async System.Threading.Tasks.Task BeginUpdateAsync(this IPrivateEndpointConnectionOperations operations, string resourceGroupName, string accountName, string privateEndpointConnectionName, PrivateLinkServiceConnectionState privateLinkServiceConnectionState = default(PrivateLinkServiceConnectionState), string ifMatch = default(string), System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + public static async System.Threading.Tasks.Task BeginUpdateAsync(this IPrivateEndpointConnectionOperations operations, string resourceGroupName, string accountName, string privateEndpointConnectionName, PrivateEndpointConnection parameters, string ifMatch = default(string), System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { - using (var _result = await operations.BeginUpdateWithHttpMessagesAsync(resourceGroupName, accountName, privateEndpointConnectionName, privateLinkServiceConnectionState, ifMatch, null, cancellationToken).ConfigureAwait(false)) + using (var _result = await operations.BeginUpdateWithHttpMessagesAsync(resourceGroupName, accountName, privateEndpointConnectionName, parameters, ifMatch, null, cancellationToken).ConfigureAwait(false)) { return _result.Body; } diff --git a/src/Batch/Batch.Management.Sdk/README.md b/src/Batch/Batch.Management.Sdk/README.md index 698c27486b07..618d9cfb74e2 100644 --- a/src/Batch/Batch.Management.Sdk/README.md +++ b/src/Batch/Batch.Management.Sdk/README.md @@ -21,9 +21,10 @@ license-header: MICROSOFT_MIT_NO_VERSION payload-flattening-threshold: 1 # title: BatchManagementClient -commit: 19aa8ab5d14b22bdeb67eab31c65b47c5380fd06 +commit: f6fabb4294050e991f70aff1cd0392b3b512af8f input-file: - - https://github.com/Azure/azure-rest-api-specs/blob/$(commit)/specification/batch/resource-manager/Microsoft.Batch/stable/2022-10-01/BatchManagement.json + - https://github.com/Azure/azure-rest-api-specs/blob/$(commit)/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/BatchManagement.json + - https://github.com/Azure/azure-rest-api-specs/blob/$(commit)/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/NetworkSecurityPerimeter.json output-folder: Generated From 1f4a9eb9c5ee3b176828046ff311820d92089422 Mon Sep 17 00:00:00 2001 From: "REDMOND\\wiboris" Date: Wed, 6 Aug 2025 16:47:43 -0700 Subject: [PATCH 02/13] 2023-05-01 generation --- .../Generated/ApplicationPackageOperations.cs | 9 +- .../ApplicationPackageOperationsExtensions.cs | 8 +- .../Generated/BatchAccountOperations.cs | 4 +- .../BatchAccountOperationsExtensions.cs | 8 +- .../Generated/BatchManagementClient.cs | 7 +- .../IApplicationPackageOperations.cs | 5 +- .../Generated/IBatchAccountOperations.cs | 8 +- .../Generated/IBatchManagementClient.cs | 5 - .../Generated/ILocationOperations.cs | 56 ++ .../INetworkSecurityPerimeterOperations.cs | 147 --- .../IPrivateEndpointConnectionOperations.cs | 18 +- .../Generated/LocationOperations.cs | 405 ++++++++ .../Generated/LocationOperationsExtensions.cs | 82 ++ .../Generated/Models/AccessRule.cs | 58 -- .../Generated/Models/AccessRuleDirection.cs | 25 - .../Generated/Models/AccessRuleProperties.cs | 108 -- .../AccessRulePropertiesSubscriptionsItem.cs | 50 - .../Generated/Models/Application.cs | 9 +- .../Generated/Models/ApplicationPackage.cs | 9 +- .../Generated/Models/AuthenticationMode.cs | 2 +- .../Models/AutomaticOSUpgradePolicy.cs | 91 -- .../Generated/Models/AzureProxyResource.cs | 88 -- .../Generated/Models/AzureResource.cs | 88 -- .../Generated/Models/BatchAccount.cs | 6 +- .../Models/BatchAccountCreateParameters.cs | 15 +- .../Models/BatchAccountCreateProperties.cs | 15 +- .../Models/BatchAccountProperties.cs | 4 +- .../Models/BatchAccountUpdateParameters.cs | 4 +- .../Models/BatchAccountUpdateProperties.cs | 4 +- .../Generated/Models/Certificate.cs | 9 +- .../CertificateCreateOrUpdateParameters.cs | 9 +- .../Generated/Models/CertificateReference.cs | 48 +- .../Models/CloudServiceConfiguration.cs | 90 ++ .../ContainerHostBatchBindMountEntry.cs | 69 -- .../Generated/Models/ContainerHostDataPath.cs | 41 - .../Generated/Models/CreatedByType.cs | 21 - .../Generated/Models/DataDisk.cs | 4 +- .../Models/DeploymentConfiguration.cs | 30 +- .../Generated/Models/DetectorResponse.cs | 9 +- .../Generated/Models/DiffDiskSettings.cs | 8 +- .../Models/DiskEncryptionConfiguration.cs | 2 +- .../Generated/Models/ErrorAdditionalInfo.cs | 58 -- .../Generated/Models/ErrorDetail.cs | 88 -- .../Generated/Models/ErrorResponse.cs | 55 - .../Models/ErrorResponseException.cs | 55 - .../Generated/Models/ImageReference.cs | 40 +- .../Generated/Models/InboundNatPool.cs | 11 +- .../Generated/Models/IssueType.cs | 39 - .../Generated/Models/ManagedDisk.cs | 60 -- .../Generated/Models/NetworkConfiguration.cs | 35 +- .../Models/NetworkSecurityPerimeter.cs | 68 -- .../NetworkSecurityPerimeterConfiguration.cs | 64 -- ...ecurityPerimeterConfigurationProperties.cs | 91 -- ...PerimeterConfigurationProvisioningState.cs | 24 - ...yPerimeterReconcileConfigurationHeaders.cs | 55 - .../Models/NetworkSecurityProfile.cs | 88 -- .../Generated/Models/OSDisk.cs | 44 +- .../Generated/Models/Pool.cs | 79 +- .../Generated/Models/PoolProperties.cs | 72 +- .../Models/PrivateEndpointConnection.cs | 9 +- .../Generated/Models/PrivateLinkResource.cs | 9 +- .../Generated/Models/ProvisioningIssue.cs | 67 -- .../Models/ProvisioningIssueProperties.cs | 97 -- .../Generated/Models/ProxyResource.cs | 51 +- .../Models/PublicNetworkAccessType.cs | 11 +- .../Generated/Models/Resource.cs | 47 +- .../Generated/Models/ResourceAssociation.cs | 58 -- .../Models/ResourceAssociationAccessMode.cs | 32 - .../Generated/Models/RollingUpgradePolicy.cs | 209 ---- .../Models/SecurityEncryptionTypes.cs | 19 - .../Generated/Models/SecurityProfile.cs | 79 -- .../Generated/Models/SecurityTypes.cs | 61 -- .../Models/ServiceArtifactReference.cs | 66 -- .../Generated/Models/Severity.cs | 19 - .../Generated/Models/StartTask.cs | 4 +- .../Generated/Models/StorageAccountType.cs | 15 +- .../Generated/Models/SupportedSku.cs | 12 +- .../Generated/Models/SystemData.cs | 98 -- .../Generated/Models/TaskContainerSettings.cs | 18 +- .../Generated/Models/UefiSettings.cs | 61 -- .../Generated/Models/UpgradeMode.cs | 71 -- .../Generated/Models/UpgradePolicy.cs | 97 -- .../Generated/Models/VMDiskSecurityProfile.cs | 58 -- .../Models/VirtualMachineConfiguration.cs | 31 +- .../Models/WindowsUserConfiguration.cs | 9 +- .../NetworkSecurityPerimeterOperations.cs | 949 ------------------ ...rkSecurityPerimeterOperationsExtensions.cs | 223 ---- .../PrivateEndpointConnectionOperations.cs | 29 +- ...eEndpointConnectionOperationsExtensions.cs | 16 +- src/Batch/Batch.Management.Sdk/README.md | 5 +- 90 files changed, 960 insertions(+), 4274 deletions(-) delete mode 100644 src/Batch/Batch.Management.Sdk/Generated/INetworkSecurityPerimeterOperations.cs delete mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/AccessRule.cs delete mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/AccessRuleDirection.cs delete mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/AccessRuleProperties.cs delete mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/AccessRulePropertiesSubscriptionsItem.cs delete mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/AutomaticOSUpgradePolicy.cs delete mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/AzureProxyResource.cs delete mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/AzureResource.cs create mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/CloudServiceConfiguration.cs delete mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/ContainerHostBatchBindMountEntry.cs delete mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/ContainerHostDataPath.cs delete mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/CreatedByType.cs delete mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/ErrorAdditionalInfo.cs delete mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/ErrorDetail.cs delete mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/ErrorResponse.cs delete mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/ErrorResponseException.cs delete mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/IssueType.cs delete mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/ManagedDisk.cs delete mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/NetworkSecurityPerimeter.cs delete mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/NetworkSecurityPerimeterConfiguration.cs delete mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/NetworkSecurityPerimeterConfigurationProperties.cs delete mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/NetworkSecurityPerimeterConfigurationProvisioningState.cs delete mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/NetworkSecurityPerimeterReconcileConfigurationHeaders.cs delete mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/NetworkSecurityProfile.cs delete mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/ProvisioningIssue.cs delete mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/ProvisioningIssueProperties.cs delete mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/ResourceAssociation.cs delete mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/ResourceAssociationAccessMode.cs delete mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/RollingUpgradePolicy.cs delete mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/SecurityEncryptionTypes.cs delete mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/SecurityProfile.cs delete mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/SecurityTypes.cs delete mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/ServiceArtifactReference.cs delete mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/Severity.cs delete mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/SystemData.cs delete mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/UefiSettings.cs delete mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/UpgradeMode.cs delete mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/UpgradePolicy.cs delete mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/VMDiskSecurityProfile.cs delete mode 100644 src/Batch/Batch.Management.Sdk/Generated/NetworkSecurityPerimeterOperations.cs delete mode 100644 src/Batch/Batch.Management.Sdk/Generated/NetworkSecurityPerimeterOperationsExtensions.cs diff --git a/src/Batch/Batch.Management.Sdk/Generated/ApplicationPackageOperations.cs b/src/Batch/Batch.Management.Sdk/Generated/ApplicationPackageOperations.cs index 528cccd10319..709c9e26f6b6 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/ApplicationPackageOperations.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/ApplicationPackageOperations.cs @@ -349,9 +349,6 @@ internal ApplicationPackageOperations (BatchManagementClient client) /// /// The version of the application. /// - /// - /// The tags of the resource. - /// /// /// Headers that will be added to request. /// @@ -373,7 +370,7 @@ internal ApplicationPackageOperations (BatchManagementClient client) /// /// A response object containing the response body and response headers. /// - public async System.Threading.Tasks.Task> CreateWithHttpMessagesAsync(string resourceGroupName, string accountName, string applicationName, string versionName, System.Collections.Generic.IDictionary tags = default(System.Collections.Generic.IDictionary), System.Collections.Generic.Dictionary> customHeaders = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + public async System.Threading.Tasks.Task> CreateWithHttpMessagesAsync(string resourceGroupName, string accountName, string applicationName, string versionName, System.Collections.Generic.Dictionary> customHeaders = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { @@ -452,10 +449,6 @@ internal ApplicationPackageOperations (BatchManagementClient client) } ApplicationPackage parameters = new ApplicationPackage(); - if(tags != null) - { - parameters.Tags = tags; - } // Tracing bool _shouldTrace = Microsoft.Rest.ServiceClientTracing.IsEnabled; string _invocationId = null; diff --git a/src/Batch/Batch.Management.Sdk/Generated/ApplicationPackageOperationsExtensions.cs b/src/Batch/Batch.Management.Sdk/Generated/ApplicationPackageOperationsExtensions.cs index 724c4c711e8b..34c9024b3036 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/ApplicationPackageOperationsExtensions.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/ApplicationPackageOperationsExtensions.cs @@ -89,9 +89,9 @@ public static ApplicationPackage Activate(this IApplicationPackageOperations ope /// /// The version of the application. /// - public static ApplicationPackage Create(this IApplicationPackageOperations operations, string resourceGroupName, string accountName, string applicationName, string versionName, System.Collections.Generic.IDictionary tags = default(System.Collections.Generic.IDictionary)) + public static ApplicationPackage Create(this IApplicationPackageOperations operations, string resourceGroupName, string accountName, string applicationName, string versionName) { - return ((IApplicationPackageOperations)operations).CreateAsync(resourceGroupName, accountName, applicationName, versionName, tags).GetAwaiter().GetResult(); + return ((IApplicationPackageOperations)operations).CreateAsync(resourceGroupName, accountName, applicationName, versionName).GetAwaiter().GetResult(); } /// @@ -119,9 +119,9 @@ public static ApplicationPackage Activate(this IApplicationPackageOperations ope /// /// The cancellation token. /// - public static async System.Threading.Tasks.Task CreateAsync(this IApplicationPackageOperations operations, string resourceGroupName, string accountName, string applicationName, string versionName, System.Collections.Generic.IDictionary tags = default(System.Collections.Generic.IDictionary), System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + public static async System.Threading.Tasks.Task CreateAsync(this IApplicationPackageOperations operations, string resourceGroupName, string accountName, string applicationName, string versionName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { - using (var _result = await operations.CreateWithHttpMessagesAsync(resourceGroupName, accountName, applicationName, versionName, tags, null, cancellationToken).ConfigureAwait(false)) + using (var _result = await operations.CreateWithHttpMessagesAsync(resourceGroupName, accountName, applicationName, versionName, null, cancellationToken).ConfigureAwait(false)) { return _result.Body; } diff --git a/src/Batch/Batch.Management.Sdk/Generated/BatchAccountOperations.cs b/src/Batch/Batch.Management.Sdk/Generated/BatchAccountOperations.cs index 40c384cc58db..b470cb9da37c 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/BatchAccountOperations.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/BatchAccountOperations.cs @@ -2111,7 +2111,7 @@ internal BatchAccountOperations (BatchManagementClient client) /// network allows outbound access to these endpoints. Failure to allow access /// to these endpoints may cause Batch to mark the affected nodes as unusable. /// For more information about creating a pool inside of a virtual network, see - /// https://learn.microsoft.com/azure/batch/batch-virtual-network. + /// https://docs.microsoft.com/en-us/azure/batch/batch-virtual-network. /// /// /// The name of the resource group that contains the Batch account. @@ -3375,7 +3375,7 @@ internal BatchAccountOperations (BatchManagementClient client) /// network allows outbound access to these endpoints. Failure to allow access /// to these endpoints may cause Batch to mark the affected nodes as unusable. /// For more information about creating a pool inside of a virtual network, see - /// https://learn.microsoft.com/azure/batch/batch-virtual-network. + /// https://docs.microsoft.com/en-us/azure/batch/batch-virtual-network. /// /// /// The NextLink from the previous successful call to List operation. diff --git a/src/Batch/Batch.Management.Sdk/Generated/BatchAccountOperationsExtensions.cs b/src/Batch/Batch.Management.Sdk/Generated/BatchAccountOperationsExtensions.cs index 1e7f5c1fcf5d..1ceac9aca4ca 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/BatchAccountOperationsExtensions.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/BatchAccountOperationsExtensions.cs @@ -471,7 +471,7 @@ public static DetectorResponse GetDetector(this IBatchAccountOperations operatio /// network allows outbound access to these endpoints. Failure to allow access /// to these endpoints may cause Batch to mark the affected nodes as unusable. /// For more information about creating a pool inside of a virtual network, see - /// https://learn.microsoft.com/azure/batch/batch-virtual-network. + /// https://docs.microsoft.com/en-us/azure/batch/batch-virtual-network. /// /// /// The operations group for this extension method. @@ -494,7 +494,7 @@ public static Microsoft.Rest.Azure.IPage ListOutbou /// network allows outbound access to these endpoints. Failure to allow access /// to these endpoints may cause Batch to mark the affected nodes as unusable. /// For more information about creating a pool inside of a virtual network, see - /// https://learn.microsoft.com/azure/batch/batch-virtual-network. + /// https://docs.microsoft.com/en-us/azure/batch/batch-virtual-network. /// /// /// The operations group for this extension method. @@ -715,7 +715,7 @@ public static Microsoft.Rest.Azure.IPage ListDetectorsNext(thi /// network allows outbound access to these endpoints. Failure to allow access /// to these endpoints may cause Batch to mark the affected nodes as unusable. /// For more information about creating a pool inside of a virtual network, see - /// https://learn.microsoft.com/azure/batch/batch-virtual-network. + /// https://docs.microsoft.com/en-us/azure/batch/batch-virtual-network. /// /// /// The operations group for this extension method. @@ -735,7 +735,7 @@ public static Microsoft.Rest.Azure.IPage ListOutbou /// network allows outbound access to these endpoints. Failure to allow access /// to these endpoints may cause Batch to mark the affected nodes as unusable. /// For more information about creating a pool inside of a virtual network, see - /// https://learn.microsoft.com/azure/batch/batch-virtual-network. + /// https://docs.microsoft.com/en-us/azure/batch/batch-virtual-network. /// /// /// The operations group for this extension method. diff --git a/src/Batch/Batch.Management.Sdk/Generated/BatchManagementClient.cs b/src/Batch/Batch.Management.Sdk/Generated/BatchManagementClient.cs index 80b6eb71a1ce..3d57bf515bd5 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/BatchManagementClient.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/BatchManagementClient.cs @@ -98,10 +98,6 @@ public partial class BatchManagementClient : Microsoft.Rest.ServiceClient public virtual IPoolOperations Pool { get; private set; } /// - /// Gets the INetworkSecurityPerimeterOperations - /// - public virtual INetworkSecurityPerimeterOperations NetworkSecurityPerimeter { get; private set; } - /// /// Initializes a new instance of the BatchManagementClient class. /// /// @@ -348,9 +344,8 @@ private void Initialize() this.PrivateLinkResource = new PrivateLinkResourceOperations(this); this.PrivateEndpointConnection = new PrivateEndpointConnectionOperations(this); this.Pool = new PoolOperations(this); - this.NetworkSecurityPerimeter = new NetworkSecurityPerimeterOperations(this); this.BaseUri = new System.Uri("https://management.azure.com"); - this.ApiVersion = "2024-07-01"; + this.ApiVersion = "2023-05-01"; this.AcceptLanguage = "en-US"; this.LongRunningOperationRetryTimeout = 30; this.GenerateClientRequestId = true; diff --git a/src/Batch/Batch.Management.Sdk/Generated/IApplicationPackageOperations.cs b/src/Batch/Batch.Management.Sdk/Generated/IApplicationPackageOperations.cs index ef9cbb09fac1..85c81fa9f7ca 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/IApplicationPackageOperations.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/IApplicationPackageOperations.cs @@ -78,9 +78,6 @@ public partial interface IApplicationPackageOperations /// /// The version of the application. /// - /// - /// The tags of the resource. - /// /// /// The headers that will be added to request. /// @@ -93,7 +90,7 @@ public partial interface IApplicationPackageOperations /// /// Thrown when unable to deserialize the response /// - System.Threading.Tasks.Task> CreateWithHttpMessagesAsync(string resourceGroupName, string accountName, string applicationName, string versionName, System.Collections.Generic.IDictionary tags = default(System.Collections.Generic.IDictionary), System.Collections.Generic.Dictionary> customHeaders = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task> CreateWithHttpMessagesAsync(string resourceGroupName, string accountName, string applicationName, string versionName, System.Collections.Generic.Dictionary> customHeaders = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); /// /// Deletes an application package record and its associated binary file. diff --git a/src/Batch/Batch.Management.Sdk/Generated/IBatchAccountOperations.cs b/src/Batch/Batch.Management.Sdk/Generated/IBatchAccountOperations.cs index 2139fa6dfcfb..7bbb53b99291 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/IBatchAccountOperations.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/IBatchAccountOperations.cs @@ -336,7 +336,7 @@ public partial interface IBatchAccountOperations /// network allows outbound access to these endpoints. Failure to allow access /// to these endpoints may cause Batch to mark the affected nodes as unusable. /// For more information about creating a pool inside of a virtual network, see - /// https://learn.microsoft.com/azure/batch/batch-virtual-network. + /// https://docs.microsoft.com/en-us/azure/batch/batch-virtual-network. /// /// /// Lists the endpoints that a Batch Compute Node under this Batch Account may @@ -345,7 +345,7 @@ public partial interface IBatchAccountOperations /// network allows outbound access to these endpoints. Failure to allow access /// to these endpoints may cause Batch to mark the affected nodes as unusable. /// For more information about creating a pool inside of a virtual network, see - /// https://learn.microsoft.com/azure/batch/batch-virtual-network. + /// https://docs.microsoft.com/en-us/azure/batch/batch-virtual-network. /// /// /// The name of the resource group that contains the Batch account. @@ -506,7 +506,7 @@ public partial interface IBatchAccountOperations /// network allows outbound access to these endpoints. Failure to allow access /// to these endpoints may cause Batch to mark the affected nodes as unusable. /// For more information about creating a pool inside of a virtual network, see - /// https://learn.microsoft.com/azure/batch/batch-virtual-network. + /// https://docs.microsoft.com/en-us/azure/batch/batch-virtual-network. /// /// /// Lists the endpoints that a Batch Compute Node under this Batch Account may @@ -515,7 +515,7 @@ public partial interface IBatchAccountOperations /// network allows outbound access to these endpoints. Failure to allow access /// to these endpoints may cause Batch to mark the affected nodes as unusable. /// For more information about creating a pool inside of a virtual network, see - /// https://learn.microsoft.com/azure/batch/batch-virtual-network. + /// https://docs.microsoft.com/en-us/azure/batch/batch-virtual-network. /// /// /// The NextLink from the previous successful call to List operation. diff --git a/src/Batch/Batch.Management.Sdk/Generated/IBatchManagementClient.cs b/src/Batch/Batch.Management.Sdk/Generated/IBatchManagementClient.cs index 066fc167d4aa..83562fff68f6 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/IBatchManagementClient.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/IBatchManagementClient.cs @@ -114,10 +114,5 @@ public partial interface IBatchManagementClient : System.IDisposable /// IPoolOperations Pool { get; } - /// - /// Gets the INetworkSecurityPerimeterOperations - /// - INetworkSecurityPerimeterOperations NetworkSecurityPerimeter { get; } - } } \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/ILocationOperations.cs b/src/Batch/Batch.Management.Sdk/Generated/ILocationOperations.cs index 71606ba55c87..d9c71c0a6ca9 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/ILocationOperations.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/ILocationOperations.cs @@ -69,6 +69,37 @@ public partial interface ILocationOperations /// System.Threading.Tasks.Task>> ListSupportedVirtualMachineSkusWithHttpMessagesAsync(string locationName, int? maxresults = default(int?), string filter = default(string), System.Collections.Generic.Dictionary> customHeaders = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + /// + /// Gets the list of Batch supported Cloud Service VM sizes available at the + /// given location. + /// + /// + /// Gets the list of Batch supported Cloud Service VM sizes available at the + /// given location. + /// + /// + /// The region for which to retrieve Batch service supported SKUs. + /// + /// + /// The maximum number of items to return in the response. + /// + /// + /// OData filter expression. Valid properties for filtering are "familyName". + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + System.Threading.Tasks.Task>> ListSupportedCloudServiceSkusWithHttpMessagesAsync(string locationName, int? maxresults = default(int?), string filter = default(string), System.Collections.Generic.Dictionary> customHeaders = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + /// /// Checks whether the Batch account name is available in the specified region. /// @@ -120,5 +151,30 @@ public partial interface ILocationOperations /// System.Threading.Tasks.Task>> ListSupportedVirtualMachineSkusNextWithHttpMessagesAsync(string nextPageLink, System.Collections.Generic.Dictionary> customHeaders = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + /// + /// Gets the list of Batch supported Cloud Service VM sizes available at the + /// given location. + /// + /// + /// Gets the list of Batch supported Cloud Service VM sizes available at the + /// given location. + /// + /// + /// The NextLink from the previous successful call to List operation. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + System.Threading.Tasks.Task>> ListSupportedCloudServiceSkusNextWithHttpMessagesAsync(string nextPageLink, System.Collections.Generic.Dictionary> customHeaders = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + } } \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/INetworkSecurityPerimeterOperations.cs b/src/Batch/Batch.Management.Sdk/Generated/INetworkSecurityPerimeterOperations.cs deleted file mode 100644 index 49871b57073c..000000000000 --- a/src/Batch/Batch.Management.Sdk/Generated/INetworkSecurityPerimeterOperations.cs +++ /dev/null @@ -1,147 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for license information. -// Code generated by Microsoft (R) AutoRest Code Generator. -// Changes may cause incorrect behavior and will be lost if the code is regenerated. - -namespace Microsoft.Azure.Management.Batch -{ - using Microsoft.Rest.Azure; - using Models; - - /// - /// NetworkSecurityPerimeterOperations operations. - /// - public partial interface INetworkSecurityPerimeterOperations - { - /// - /// Lists all of the NSP configurations in the specified account. - /// - /// - /// Lists all of the NSP configurations in the specified account. - /// - /// - /// The name of the resource group that contains the Batch account. - /// - /// - /// The name of the Batch account. - /// - /// - /// The headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when unable to deserialize the response - /// - System.Threading.Tasks.Task>> ListConfigurationsWithHttpMessagesAsync(string resourceGroupName, string accountName, System.Collections.Generic.Dictionary> customHeaders = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - - /// - /// Gets information about the specified NSP configuration. - /// - /// - /// Gets information about the specified NSP configuration. - /// - /// - /// The name of the resource group that contains the Batch account. - /// - /// - /// The name of the Batch account. - /// - /// - /// The name for Network Security Perimeter configuration - /// - /// - /// The headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when unable to deserialize the response - /// - System.Threading.Tasks.Task> GetConfigurationWithHttpMessagesAsync(string resourceGroupName, string accountName, string networkSecurityPerimeterConfigurationName, System.Collections.Generic.Dictionary> customHeaders = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - - /// - /// Reconciles the specified NSP configuration. - /// - /// - /// Reconciles the specified NSP configuration. - /// - /// - /// The name of the resource group that contains the Batch account. - /// - /// - /// The name of the Batch account. - /// - /// - /// The name for Network Security Perimeter configuration - /// - /// - /// The headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - System.Threading.Tasks.Task> ReconcileConfigurationWithHttpMessagesAsync(string resourceGroupName, string accountName, string networkSecurityPerimeterConfigurationName, System.Collections.Generic.Dictionary> customHeaders = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - - /// - /// Reconciles the specified NSP configuration. - /// - /// - /// Reconciles the specified NSP configuration. - /// - /// - /// The name of the resource group that contains the Batch account. - /// - /// - /// The name of the Batch account. - /// - /// - /// The name for Network Security Perimeter configuration - /// - /// - /// The headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - System.Threading.Tasks.Task> BeginReconcileConfigurationWithHttpMessagesAsync(string resourceGroupName, string accountName, string networkSecurityPerimeterConfigurationName, System.Collections.Generic.Dictionary> customHeaders = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - - /// - /// Lists all of the NSP configurations in the specified account. - /// - /// - /// Lists all of the NSP configurations in the specified account. - /// - /// - /// The NextLink from the previous successful call to List operation. - /// - /// - /// The headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when unable to deserialize the response - /// - System.Threading.Tasks.Task>> ListConfigurationsNextWithHttpMessagesAsync(string nextPageLink, System.Collections.Generic.Dictionary> customHeaders = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - - } -} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/IPrivateEndpointConnectionOperations.cs b/src/Batch/Batch.Management.Sdk/Generated/IPrivateEndpointConnectionOperations.cs index 8a5caf1d7593..233a6afc572b 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/IPrivateEndpointConnectionOperations.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/IPrivateEndpointConnectionOperations.cs @@ -92,10 +92,9 @@ public partial interface IPrivateEndpointConnectionOperations /// The state (ETag) version of the private endpoint connection to update. This /// value can be omitted or set to "*" to apply the operation unconditionally. /// - /// - /// PrivateEndpointConnection properties that should be updated. Properties - /// that are supplied will be updated, any property not supplied will be - /// unchanged. + /// + /// The private link service connection state of the private endpoint + /// connection /// /// /// The headers that will be added to request. @@ -109,7 +108,7 @@ public partial interface IPrivateEndpointConnectionOperations /// /// Thrown when unable to deserialize the response /// - System.Threading.Tasks.Task> UpdateWithHttpMessagesAsync(string resourceGroupName, string accountName, string privateEndpointConnectionName, PrivateEndpointConnection parameters, string ifMatch = default(string), System.Collections.Generic.Dictionary> customHeaders = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task> UpdateWithHttpMessagesAsync(string resourceGroupName, string accountName, string privateEndpointConnectionName, PrivateLinkServiceConnectionState privateLinkServiceConnectionState = default(PrivateLinkServiceConnectionState), string ifMatch = default(string), System.Collections.Generic.Dictionary> customHeaders = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); /// /// Deletes the specified private endpoint connection. @@ -158,10 +157,9 @@ public partial interface IPrivateEndpointConnectionOperations /// The state (ETag) version of the private endpoint connection to update. This /// value can be omitted or set to "*" to apply the operation unconditionally. /// - /// - /// PrivateEndpointConnection properties that should be updated. Properties - /// that are supplied will be updated, any property not supplied will be - /// unchanged. + /// + /// The private link service connection state of the private endpoint + /// connection /// /// /// The headers that will be added to request. @@ -175,7 +173,7 @@ public partial interface IPrivateEndpointConnectionOperations /// /// Thrown when unable to deserialize the response /// - System.Threading.Tasks.Task> BeginUpdateWithHttpMessagesAsync(string resourceGroupName, string accountName, string privateEndpointConnectionName, PrivateEndpointConnection parameters, string ifMatch = default(string), System.Collections.Generic.Dictionary> customHeaders = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task> BeginUpdateWithHttpMessagesAsync(string resourceGroupName, string accountName, string privateEndpointConnectionName, PrivateLinkServiceConnectionState privateLinkServiceConnectionState = default(PrivateLinkServiceConnectionState), string ifMatch = default(string), System.Collections.Generic.Dictionary> customHeaders = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); /// /// Deletes the specified private endpoint connection. diff --git a/src/Batch/Batch.Management.Sdk/Generated/LocationOperations.cs b/src/Batch/Batch.Management.Sdk/Generated/LocationOperations.cs index 24fce390fb61..6ccb5b76ea2d 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/LocationOperations.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/LocationOperations.cs @@ -463,6 +463,228 @@ internal LocationOperations (BatchManagementClient client) + } + /// + /// Gets the list of Batch supported Cloud Service VM sizes available at the + /// given location. + /// + /// + /// The region for which to retrieve Batch service supported SKUs. + /// + /// + /// The maximum number of items to return in the response. + /// + /// + /// OData filter expression. Valid properties for filtering are "familyName". + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async System.Threading.Tasks.Task>> ListSupportedCloudServiceSkusWithHttpMessagesAsync(string locationName, int? maxresults = default(int?), string filter = default(string), System.Collections.Generic.Dictionary> customHeaders = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + { + + + + + if (locationName == null) + { + throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.CannotBeNull, "locationName"); + } + + + + if (this.Client.ApiVersion == null) + { + throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.CannotBeNull, "this.Client.ApiVersion"); + } + + if (this.Client.SubscriptionId == null) + { + throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.CannotBeNull, "this.Client.SubscriptionId"); + } + + // Tracing + bool _shouldTrace = Microsoft.Rest.ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = Microsoft.Rest.ServiceClientTracing.NextInvocationId.ToString(); + System.Collections.Generic.Dictionary tracingParameters = new System.Collections.Generic.Dictionary(); + tracingParameters.Add("locationName", locationName); + tracingParameters.Add("maxresults", maxresults); + tracingParameters.Add("filter", filter); + + + tracingParameters.Add("cancellationToken", cancellationToken); + Microsoft.Rest.ServiceClientTracing.Enter(_invocationId, this, "ListSupportedCloudServiceSkus", tracingParameters); + } + // Construct URL + + var _baseUrl = this.Client.BaseUri.AbsoluteUri; + var _url = new System.Uri(new System.Uri(_baseUrl + (_baseUrl.EndsWith("/") ? "" : "/")), "subscriptions/{subscriptionId}/providers/Microsoft.Batch/locations/{locationName}/cloudServiceSkus").ToString(); + _url = _url.Replace("{locationName}", System.Uri.EscapeDataString(locationName)); + _url = _url.Replace("{subscriptionId}", System.Uri.EscapeDataString(this.Client.SubscriptionId)); + + System.Collections.Generic.List _queryParameters = new System.Collections.Generic.List(); + if (maxresults != null) + { + _queryParameters.Add(string.Format("maxresults={0}", System.Uri.EscapeDataString(Microsoft.Rest.Serialization.SafeJsonConvert.SerializeObject(maxresults, this.Client.SerializationSettings).Trim('"')))); + } + if (filter != null) + { + _queryParameters.Add(string.Format("$filter={0}", System.Uri.EscapeDataString(filter))); + } + if (this.Client.ApiVersion != null) + { + _queryParameters.Add(string.Format("api-version={0}", System.Uri.EscapeDataString(this.Client.ApiVersion))); + } + if (_queryParameters.Count > 0) + { + _url += (_url.Contains("?") ? "&" : "?") + string.Join("&", _queryParameters); + } + // Create HTTP transport objects + var _httpRequest = new System.Net.Http.HttpRequestMessage(); + System.Net.Http.HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new System.Net.Http.HttpMethod("GET"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (this.Client.GenerateClientRequestId != null && this.Client.GenerateClientRequestId.Value) + { + _httpRequest.Headers.TryAddWithoutValidation("x-ms-client-request-id", System.Guid.NewGuid().ToString()); + } + if (this.Client.AcceptLanguage != null) + { + if (_httpRequest.Headers.Contains("accept-language")) + { + _httpRequest.Headers.Remove("accept-language"); + } + _httpRequest.Headers.TryAddWithoutValidation("accept-language", this.Client.AcceptLanguage); + } + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + // Serialize Request + string _requestContent = null; + // Set Credentials + if (this.Client.Credentials != null) + { + cancellationToken.ThrowIfCancellationRequested(); + await this.Client.Credentials.ProcessHttpRequestAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + } + // Send Request + if (_shouldTrace) + { + Microsoft.Rest.ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await this.Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + Microsoft.Rest.ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + + System.Net.HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + + if ((int)_statusCode != 200) + { + var ex = new Microsoft.Rest.Azure.CloudException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + CloudError _errorBody = Microsoft.Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, this.Client.DeserializationSettings); + if (_errorBody != null) + { + ex = new Microsoft.Rest.Azure.CloudException(_errorBody.Message); + ex.Body = _errorBody; + } + } + catch (Newtonsoft.Json.JsonException) + { + // Ignore the exception + } + ex.Request = new Microsoft.Rest.HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new Microsoft.Rest.HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_httpResponse.Headers.Contains("x-ms-request-id")) + { + ex.RequestId = _httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault(); + } + if (_shouldTrace) + { + Microsoft.Rest.ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new Microsoft.Rest.Azure.AzureOperationResponse>(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + + if (_httpResponse.Headers.Contains("x-ms-request-id")) + { + _result.RequestId = _httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault(); + } + // Deserialize Response + if ((int)_statusCode == 200) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = Microsoft.Rest.Serialization.SafeJsonConvert.DeserializeObject>(_responseContent, this.Client.DeserializationSettings); + } + catch (Newtonsoft.Json.JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new Microsoft.Rest.SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + if (_shouldTrace) + { + Microsoft.Rest.ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + + + + + } /// /// Checks whether the Batch account name is available in the specified region. @@ -864,6 +1086,189 @@ internal LocationOperations (BatchManagementClient client) + } + /// + /// Gets the list of Batch supported Cloud Service VM sizes available at the + /// given location. + /// + /// + /// The NextLink from the previous successful call to List operation. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async System.Threading.Tasks.Task>> ListSupportedCloudServiceSkusNextWithHttpMessagesAsync(string nextPageLink, System.Collections.Generic.Dictionary> customHeaders = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + { + + if (nextPageLink == null) + { + throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.CannotBeNull, "nextPageLink"); + } + // Tracing + bool _shouldTrace = Microsoft.Rest.ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = Microsoft.Rest.ServiceClientTracing.NextInvocationId.ToString(); + System.Collections.Generic.Dictionary tracingParameters = new System.Collections.Generic.Dictionary(); + tracingParameters.Add("nextPageLink", nextPageLink); + + + tracingParameters.Add("cancellationToken", cancellationToken); + Microsoft.Rest.ServiceClientTracing.Enter(_invocationId, this, "ListSupportedCloudServiceSkusNext", tracingParameters); + } + // Construct URL + string _url = "{nextLink}"; + _url = _url.Replace("{nextLink}", nextPageLink); + + System.Collections.Generic.List _queryParameters = new System.Collections.Generic.List(); + if (_queryParameters.Count > 0) + { + _url += (_url.Contains("?") ? "&" : "?") + string.Join("&", _queryParameters); + } + // Create HTTP transport objects + var _httpRequest = new System.Net.Http.HttpRequestMessage(); + System.Net.Http.HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new System.Net.Http.HttpMethod("GET"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (this.Client.GenerateClientRequestId != null && this.Client.GenerateClientRequestId.Value) + { + _httpRequest.Headers.TryAddWithoutValidation("x-ms-client-request-id", System.Guid.NewGuid().ToString()); + } + if (this.Client.AcceptLanguage != null) + { + if (_httpRequest.Headers.Contains("accept-language")) + { + _httpRequest.Headers.Remove("accept-language"); + } + _httpRequest.Headers.TryAddWithoutValidation("accept-language", this.Client.AcceptLanguage); + } + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + // Serialize Request + string _requestContent = null; + // Set Credentials + if (this.Client.Credentials != null) + { + cancellationToken.ThrowIfCancellationRequested(); + await this.Client.Credentials.ProcessHttpRequestAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + } + // Send Request + if (_shouldTrace) + { + Microsoft.Rest.ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await this.Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + Microsoft.Rest.ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + + System.Net.HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + + if ((int)_statusCode != 200) + { + var ex = new Microsoft.Rest.Azure.CloudException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + CloudError _errorBody = Microsoft.Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, this.Client.DeserializationSettings); + if (_errorBody != null) + { + ex = new Microsoft.Rest.Azure.CloudException(_errorBody.Message); + ex.Body = _errorBody; + } + } + catch (Newtonsoft.Json.JsonException) + { + // Ignore the exception + } + ex.Request = new Microsoft.Rest.HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new Microsoft.Rest.HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_httpResponse.Headers.Contains("x-ms-request-id")) + { + ex.RequestId = _httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault(); + } + if (_shouldTrace) + { + Microsoft.Rest.ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new Microsoft.Rest.Azure.AzureOperationResponse>(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + + if (_httpResponse.Headers.Contains("x-ms-request-id")) + { + _result.RequestId = _httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault(); + } + // Deserialize Response + if ((int)_statusCode == 200) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = Microsoft.Rest.Serialization.SafeJsonConvert.DeserializeObject>(_responseContent, this.Client.DeserializationSettings); + } + catch (Newtonsoft.Json.JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new Microsoft.Rest.SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + if (_shouldTrace) + { + Microsoft.Rest.ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + + + + + } } } \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/LocationOperationsExtensions.cs b/src/Batch/Batch.Management.Sdk/Generated/LocationOperationsExtensions.cs index 34fb2c6e958c..0d664da956bc 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/LocationOperationsExtensions.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/LocationOperationsExtensions.cs @@ -95,6 +95,53 @@ public static BatchLocationQuota GetQuotas(this ILocationOperations operations, } } /// + /// Gets the list of Batch supported Cloud Service VM sizes available at the + /// given location. + /// + /// + /// The operations group for this extension method. + /// + /// + /// The region for which to retrieve Batch service supported SKUs. + /// + /// + /// The maximum number of items to return in the response. + /// + /// + /// OData filter expression. Valid properties for filtering are "familyName". + /// + public static Microsoft.Rest.Azure.IPage ListSupportedCloudServiceSkus(this ILocationOperations operations, string locationName, int? maxresults = default(int?), string filter = default(string)) + { + return ((ILocationOperations)operations).ListSupportedCloudServiceSkusAsync(locationName, maxresults, filter).GetAwaiter().GetResult(); + } + + /// + /// Gets the list of Batch supported Cloud Service VM sizes available at the + /// given location. + /// + /// + /// The operations group for this extension method. + /// + /// + /// The region for which to retrieve Batch service supported SKUs. + /// + /// + /// The maximum number of items to return in the response. + /// + /// + /// OData filter expression. Valid properties for filtering are "familyName". + /// + /// + /// The cancellation token. + /// + public static async System.Threading.Tasks.Task> ListSupportedCloudServiceSkusAsync(this ILocationOperations operations, string locationName, int? maxresults = default(int?), string filter = default(string), System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + { + using (var _result = await operations.ListSupportedCloudServiceSkusWithHttpMessagesAsync(locationName, maxresults, filter, null, cancellationToken).ConfigureAwait(false)) + { + return _result.Body; + } + } + /// /// Checks whether the Batch account name is available in the specified region. /// /// @@ -162,5 +209,40 @@ public static Microsoft.Rest.Azure.IPage ListSupportedVirtualMachi return _result.Body; } } + /// + /// Gets the list of Batch supported Cloud Service VM sizes available at the + /// given location. + /// + /// + /// The operations group for this extension method. + /// + /// + /// The NextLink from the previous successful call to List operation. + /// + public static Microsoft.Rest.Azure.IPage ListSupportedCloudServiceSkusNext(this ILocationOperations operations, string nextPageLink) + { + return ((ILocationOperations)operations).ListSupportedCloudServiceSkusNextAsync(nextPageLink).GetAwaiter().GetResult(); + } + + /// + /// Gets the list of Batch supported Cloud Service VM sizes available at the + /// given location. + /// + /// + /// The operations group for this extension method. + /// + /// + /// The NextLink from the previous successful call to List operation. + /// + /// + /// The cancellation token. + /// + public static async System.Threading.Tasks.Task> ListSupportedCloudServiceSkusNextAsync(this ILocationOperations operations, string nextPageLink, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + { + using (var _result = await operations.ListSupportedCloudServiceSkusNextWithHttpMessagesAsync(nextPageLink, null, cancellationToken).ConfigureAwait(false)) + { + return _result.Body; + } + } } } diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/AccessRule.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/AccessRule.cs deleted file mode 100644 index c20cab9a1ffa..000000000000 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/AccessRule.cs +++ /dev/null @@ -1,58 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for license information. -// Code generated by Microsoft (R) AutoRest Code Generator. -// Changes may cause incorrect behavior and will be lost if the code is regenerated. - -namespace Microsoft.Azure.Management.Batch.Models -{ - using System.Linq; - - /// - /// Access rule in a network security perimeter configuration profile - /// - public partial class AccessRule - { - /// - /// Initializes a new instance of the AccessRule class. - /// - public AccessRule() - { - CustomInit(); - } - - /// - /// Initializes a new instance of the AccessRule class. - /// - - /// Name of the access rule - /// - - /// Properties of Access Rule - /// - public AccessRule(string name = default(string), AccessRuleProperties properties = default(AccessRuleProperties)) - - { - this.Name = name; - this.Properties = properties; - CustomInit(); - } - - /// - /// An initialization method that performs custom operations like setting defaults - /// - partial void CustomInit(); - - - /// - /// Gets or sets name of the access rule - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "name")] - public string Name {get; set; } - - /// - /// Gets or sets properties of Access Rule - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "properties")] - public AccessRuleProperties Properties {get; set; } - } -} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/AccessRuleDirection.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/AccessRuleDirection.cs deleted file mode 100644 index 4b8ae08415fb..000000000000 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/AccessRuleDirection.cs +++ /dev/null @@ -1,25 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for license information. -// Code generated by Microsoft (R) AutoRest Code Generator. -// Changes may cause incorrect behavior and will be lost if the code is regenerated. - -namespace Microsoft.Azure.Management.Batch.Models -{ - - /// - /// Defines values for AccessRuleDirection. - /// - - - public static class AccessRuleDirection - { - /// - /// Applies to inbound network traffic to the secured resources. - /// - public const string Inbound = "Inbound"; - /// - /// Applies to outbound network traffic from the secured resources - /// - public const string Outbound = "Outbound"; - } -} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/AccessRuleProperties.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/AccessRuleProperties.cs deleted file mode 100644 index b3ab0cd63661..000000000000 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/AccessRuleProperties.cs +++ /dev/null @@ -1,108 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for license information. -// Code generated by Microsoft (R) AutoRest Code Generator. -// Changes may cause incorrect behavior and will be lost if the code is regenerated. - -namespace Microsoft.Azure.Management.Batch.Models -{ - using System.Linq; - - /// - /// Properties of Access Rule - /// - public partial class AccessRuleProperties - { - /// - /// Initializes a new instance of the AccessRuleProperties class. - /// - public AccessRuleProperties() - { - CustomInit(); - } - - /// - /// Initializes a new instance of the AccessRuleProperties class. - /// - - /// Direction of Access Rule - /// Possible values include: 'Inbound', 'Outbound' - - /// Address prefixes in the CIDR format for inbound rules - /// - - /// Subscriptions for inbound rules - /// - - /// Network security perimeters for inbound rules - /// - - /// Fully qualified domain names (FQDN) for outbound rules - /// - - /// Email addresses for outbound rules - /// - - /// Phone numbers for outbound rules - /// - public AccessRuleProperties(string direction = default(string), System.Collections.Generic.IList addressPrefixes = default(System.Collections.Generic.IList), System.Collections.Generic.IList subscriptions = default(System.Collections.Generic.IList), System.Collections.Generic.IList networkSecurityPerimeters = default(System.Collections.Generic.IList), System.Collections.Generic.IList fullyQualifiedDomainNames = default(System.Collections.Generic.IList), System.Collections.Generic.IList emailAddresses = default(System.Collections.Generic.IList), System.Collections.Generic.IList phoneNumbers = default(System.Collections.Generic.IList)) - - { - this.Direction = direction; - this.AddressPrefixes = addressPrefixes; - this.Subscriptions = subscriptions; - this.NetworkSecurityPerimeters = networkSecurityPerimeters; - this.FullyQualifiedDomainNames = fullyQualifiedDomainNames; - this.EmailAddresses = emailAddresses; - this.PhoneNumbers = phoneNumbers; - CustomInit(); - } - - /// - /// An initialization method that performs custom operations like setting defaults - /// - partial void CustomInit(); - - - /// - /// Gets or sets direction of Access Rule Possible values include: 'Inbound', 'Outbound' - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "direction")] - public string Direction {get; set; } - - /// - /// Gets or sets address prefixes in the CIDR format for inbound rules - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "addressPrefixes")] - public System.Collections.Generic.IList AddressPrefixes {get; set; } - - /// - /// Gets or sets subscriptions for inbound rules - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "subscriptions")] - public System.Collections.Generic.IList Subscriptions {get; set; } - - /// - /// Gets or sets network security perimeters for inbound rules - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "networkSecurityPerimeters")] - public System.Collections.Generic.IList NetworkSecurityPerimeters {get; set; } - - /// - /// Gets or sets fully qualified domain names (FQDN) for outbound rules - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "fullyQualifiedDomainNames")] - public System.Collections.Generic.IList FullyQualifiedDomainNames {get; set; } - - /// - /// Gets or sets email addresses for outbound rules - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "emailAddresses")] - public System.Collections.Generic.IList EmailAddresses {get; set; } - - /// - /// Gets or sets phone numbers for outbound rules - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "phoneNumbers")] - public System.Collections.Generic.IList PhoneNumbers {get; set; } - } -} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/AccessRulePropertiesSubscriptionsItem.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/AccessRulePropertiesSubscriptionsItem.cs deleted file mode 100644 index eea37adc4545..000000000000 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/AccessRulePropertiesSubscriptionsItem.cs +++ /dev/null @@ -1,50 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for license information. -// Code generated by Microsoft (R) AutoRest Code Generator. -// Changes may cause incorrect behavior and will be lost if the code is regenerated. - -namespace Microsoft.Azure.Management.Batch.Models -{ - using System.Linq; - - /// - /// Subscription identifiers - /// - public partial class AccessRulePropertiesSubscriptionsItem - { - /// - /// Initializes a new instance of the AccessRulePropertiesSubscriptionsItem class. - /// - public AccessRulePropertiesSubscriptionsItem() - { - CustomInit(); - } - - /// - /// Initializes a new instance of the AccessRulePropertiesSubscriptionsItem class. - /// - - /// The fully qualified Azure resource ID of the subscription e.g. - /// ('/subscriptions/00000000-0000-0000-0000-000000000000') - /// - public AccessRulePropertiesSubscriptionsItem(string id = default(string)) - - { - this.Id = id; - CustomInit(); - } - - /// - /// An initialization method that performs custom operations like setting defaults - /// - partial void CustomInit(); - - - /// - /// Gets or sets the fully qualified Azure resource ID of the subscription e.g. - /// ('/subscriptions/00000000-0000-0000-0000-000000000000') - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "id")] - public string Id {get; set; } - } -} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/Application.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/Application.cs index 3bf992b1f1d5..0ce1fc8ab1e7 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/Application.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/Application.cs @@ -11,7 +11,7 @@ namespace Microsoft.Azure.Management.Batch.Models /// Contains information about an application in a Batch account. /// [Microsoft.Rest.Serialization.JsonTransformation] - public partial class Application : AzureProxyResource + public partial class Application : ProxyResource { /// /// Initializes a new instance of the Application class. @@ -37,9 +37,6 @@ public Application() /// The ETag of the resource, used for concurrency statements. /// - /// The tags of the resource. - /// - /// The display name for the application. /// @@ -51,9 +48,9 @@ public Application() /// specify a version. This property can only be set to the name of an existing /// package. /// - public Application(string id = default(string), string name = default(string), string type = default(string), string etag = default(string), System.Collections.Generic.IDictionary tags = default(System.Collections.Generic.IDictionary), string displayName = default(string), bool? allowUpdates = default(bool?), string defaultVersion = default(string)) + public Application(string id = default(string), string name = default(string), string type = default(string), string etag = default(string), string displayName = default(string), bool? allowUpdates = default(bool?), string defaultVersion = default(string)) - : base(id, name, type, etag, tags) + : base(id, name, type, etag) { this.DisplayName = displayName; this.AllowUpdates = allowUpdates; diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/ApplicationPackage.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/ApplicationPackage.cs index b2479702cfd9..4232032b173c 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/ApplicationPackage.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/ApplicationPackage.cs @@ -12,7 +12,7 @@ namespace Microsoft.Azure.Management.Batch.Models /// application. /// [Microsoft.Rest.Serialization.JsonTransformation] - public partial class ApplicationPackage : AzureProxyResource + public partial class ApplicationPackage : ProxyResource { /// /// Initializes a new instance of the ApplicationPackage class. @@ -38,9 +38,6 @@ public ApplicationPackage() /// The ETag of the resource, used for concurrency statements. /// - /// The tags of the resource. - /// - /// The current state of the application package. /// Possible values include: 'Pending', 'Active' @@ -55,9 +52,9 @@ public ApplicationPackage() /// The time at which the package was last activated, if the package is active. /// - public ApplicationPackage(string id = default(string), string name = default(string), string type = default(string), string etag = default(string), System.Collections.Generic.IDictionary tags = default(System.Collections.Generic.IDictionary), PackageState? state = default(PackageState?), string format = default(string), string storageUrl = default(string), System.DateTime? storageUrlExpiry = default(System.DateTime?), System.DateTime? lastActivationTime = default(System.DateTime?)) + public ApplicationPackage(string id = default(string), string name = default(string), string type = default(string), string etag = default(string), PackageState? state = default(PackageState?), string format = default(string), string storageUrl = default(string), System.DateTime? storageUrlExpiry = default(System.DateTime?), System.DateTime? lastActivationTime = default(System.DateTime?)) - : base(id, name, type, etag, tags) + : base(id, name, type, etag) { this.State = state; this.Format = format; diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/AuthenticationMode.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/AuthenticationMode.cs index c58b2c4916f7..558bda075764 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/AuthenticationMode.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/AuthenticationMode.cs @@ -20,7 +20,7 @@ public enum AuthenticationMode [System.Runtime.Serialization.EnumMember(Value = "SharedKey")] SharedKey, /// - /// The authentication mode using Microsoft Entra ID. + /// The authentication mode using Azure Active Directory. /// [System.Runtime.Serialization.EnumMember(Value = "AAD")] AAD, diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/AutomaticOSUpgradePolicy.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/AutomaticOSUpgradePolicy.cs deleted file mode 100644 index 123c638629e5..000000000000 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/AutomaticOSUpgradePolicy.cs +++ /dev/null @@ -1,91 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for license information. -// Code generated by Microsoft (R) AutoRest Code Generator. -// Changes may cause incorrect behavior and will be lost if the code is regenerated. - -namespace Microsoft.Azure.Management.Batch.Models -{ - using System.Linq; - - /// - /// The configuration parameters used for performing automatic OS upgrade. - /// - public partial class AutomaticOSUpgradePolicy - { - /// - /// Initializes a new instance of the AutomaticOSUpgradePolicy class. - /// - public AutomaticOSUpgradePolicy() - { - CustomInit(); - } - - /// - /// Initializes a new instance of the AutomaticOSUpgradePolicy class. - /// - - /// Whether OS image rollback feature should be disabled. - /// - - /// Indicates whether OS upgrades should automatically be applied to scale set - /// instances in a rolling fashion when a newer version of the OS image becomes - /// available. <br /><br /> If this is set to true for Windows based pools, - /// [WindowsConfiguration.enableAutomaticUpdates](https://learn.microsoft.com/rest/api/batchmanagement/pool/create?tabs=HTTP#windowsconfiguration) - /// cannot be set to true. - /// - - /// Indicates whether rolling upgrade policy should be used during Auto OS - /// Upgrade. Auto OS Upgrade will fallback to the default policy if no policy - /// is defined on the VMSS. - /// - - /// Defer OS upgrades on the TVMs if they are running tasks. - /// - public AutomaticOSUpgradePolicy(bool? disableAutomaticRollback = default(bool?), bool? enableAutomaticOSUpgrade = default(bool?), bool? useRollingUpgradePolicy = default(bool?), bool? osRollingUpgradeDeferral = default(bool?)) - - { - this.DisableAutomaticRollback = disableAutomaticRollback; - this.EnableAutomaticOSUpgrade = enableAutomaticOSUpgrade; - this.UseRollingUpgradePolicy = useRollingUpgradePolicy; - this.OSRollingUpgradeDeferral = osRollingUpgradeDeferral; - CustomInit(); - } - - /// - /// An initialization method that performs custom operations like setting defaults - /// - partial void CustomInit(); - - - /// - /// Gets or sets whether OS image rollback feature should be disabled. - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "disableAutomaticRollback")] - public bool? DisableAutomaticRollback {get; set; } - - /// - /// Gets or sets indicates whether OS upgrades should automatically be applied - /// to scale set instances in a rolling fashion when a newer version of the OS - /// image becomes available. <br /><br /> If this is set to true for Windows - /// based pools, - /// [WindowsConfiguration.enableAutomaticUpdates](https://learn.microsoft.com/rest/api/batchmanagement/pool/create?tabs=HTTP#windowsconfiguration) - /// cannot be set to true. - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "enableAutomaticOSUpgrade")] - public bool? EnableAutomaticOSUpgrade {get; set; } - - /// - /// Gets or sets indicates whether rolling upgrade policy should be used during - /// Auto OS Upgrade. Auto OS Upgrade will fallback to the default policy if no - /// policy is defined on the VMSS. - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "useRollingUpgradePolicy")] - public bool? UseRollingUpgradePolicy {get; set; } - - /// - /// Gets or sets defer OS upgrades on the TVMs if they are running tasks. - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "osRollingUpgradeDeferral")] - public bool? OSRollingUpgradeDeferral {get; set; } - } -} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/AzureProxyResource.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/AzureProxyResource.cs deleted file mode 100644 index 0fa2913c89be..000000000000 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/AzureProxyResource.cs +++ /dev/null @@ -1,88 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for license information. -// Code generated by Microsoft (R) AutoRest Code Generator. -// Changes may cause incorrect behavior and will be lost if the code is regenerated. - -namespace Microsoft.Azure.Management.Batch.Models -{ - using System.Linq; - - /// - /// A definition of an Azure resource. - /// - public partial class AzureProxyResource : Microsoft.Rest.Azure.IResource - { - /// - /// Initializes a new instance of the AzureProxyResource class. - /// - public AzureProxyResource() - { - CustomInit(); - } - - /// - /// Initializes a new instance of the AzureProxyResource class. - /// - - /// The ID of the resource. - /// - - /// The name of the resource. - /// - - /// The type of the resource. - /// - - /// The ETag of the resource, used for concurrency statements. - /// - - /// The tags of the resource. - /// - public AzureProxyResource(string id = default(string), string name = default(string), string type = default(string), string etag = default(string), System.Collections.Generic.IDictionary tags = default(System.Collections.Generic.IDictionary)) - - { - this.Id = id; - this.Name = name; - this.Type = type; - this.Etag = etag; - this.Tags = tags; - CustomInit(); - } - - /// - /// An initialization method that performs custom operations like setting defaults - /// - partial void CustomInit(); - - - /// - /// Gets the ID of the resource. - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "id")] - public string Id {get; private set; } - - /// - /// Gets the name of the resource. - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "name")] - public string Name {get; private set; } - - /// - /// Gets the type of the resource. - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "type")] - public string Type {get; private set; } - - /// - /// Gets the ETag of the resource, used for concurrency statements. - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "etag")] - public string Etag {get; private set; } - - /// - /// Gets or sets the tags of the resource. - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "tags")] - public System.Collections.Generic.IDictionary Tags {get; set; } - } -} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/AzureResource.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/AzureResource.cs deleted file mode 100644 index 14d6861ac366..000000000000 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/AzureResource.cs +++ /dev/null @@ -1,88 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for license information. -// Code generated by Microsoft (R) AutoRest Code Generator. -// Changes may cause incorrect behavior and will be lost if the code is regenerated. - -namespace Microsoft.Azure.Management.Batch.Models -{ - using System.Linq; - - /// - /// A definition of an Azure resource. - /// - public partial class AzureResource : Microsoft.Rest.Azure.IResource - { - /// - /// Initializes a new instance of the AzureResource class. - /// - public AzureResource() - { - CustomInit(); - } - - /// - /// Initializes a new instance of the AzureResource class. - /// - - /// The ID of the resource. - /// - - /// The name of the resource. - /// - - /// The type of the resource. - /// - - /// The location of the resource. - /// - - /// The tags of the resource. - /// - public AzureResource(string id = default(string), string name = default(string), string type = default(string), string location = default(string), System.Collections.Generic.IDictionary tags = default(System.Collections.Generic.IDictionary)) - - { - this.Id = id; - this.Name = name; - this.Type = type; - this.Location = location; - this.Tags = tags; - CustomInit(); - } - - /// - /// An initialization method that performs custom operations like setting defaults - /// - partial void CustomInit(); - - - /// - /// Gets the ID of the resource. - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "id")] - public string Id {get; private set; } - - /// - /// Gets the name of the resource. - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "name")] - public string Name {get; private set; } - - /// - /// Gets the type of the resource. - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "type")] - public string Type {get; private set; } - - /// - /// Gets the location of the resource. - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "location")] - public string Location {get; private set; } - - /// - /// Gets the tags of the resource. - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "tags")] - public System.Collections.Generic.IDictionary Tags {get; private set; } - } -} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/BatchAccount.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/BatchAccount.cs index 06c40549dfae..5b7157cd85c4 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/BatchAccount.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/BatchAccount.cs @@ -11,7 +11,7 @@ namespace Microsoft.Azure.Management.Batch.Models /// Contains information about an Azure Batch account. /// [Microsoft.Rest.Serialization.JsonTransformation] - public partial class BatchAccount : AzureResource + public partial class BatchAccount : Resource { /// /// Initializes a new instance of the BatchAccount class. @@ -64,7 +64,7 @@ public BatchAccount() /// /// If not specified, the default value is 'enabled'. - /// Possible values include: 'Enabled', 'Disabled', 'SecuredByPerimeter' + /// Possible values include: 'Enabled', 'Disabled' /// List of private endpoint connections associated with the Batch account /// @@ -184,7 +184,7 @@ public BatchAccount() public KeyVaultReference KeyVaultReference {get; private set; } /// - /// Gets or sets if not specified, the default value is 'enabled'. Possible values include: 'Enabled', 'Disabled', 'SecuredByPerimeter' + /// Gets or sets if not specified, the default value is 'enabled'. Possible values include: 'Enabled', 'Disabled' /// [Newtonsoft.Json.JsonProperty(PropertyName = "properties.publicNetworkAccess")] public PublicNetworkAccessType? PublicNetworkAccess {get; set; } diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/BatchAccountCreateParameters.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/BatchAccountCreateParameters.cs index 98849e001f31..783f56b8fd8d 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/BatchAccountCreateParameters.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/BatchAccountCreateParameters.cs @@ -42,15 +42,16 @@ public BatchAccountCreateParameters() /// The pool allocation mode also affects how clients may authenticate to the /// Batch Service API. If the mode is BatchService, clients may authenticate - /// using access keys or Microsoft Entra ID. If the mode is UserSubscription, - /// clients must use Microsoft Entra ID. The default is BatchService. + /// using access keys or Azure Active Directory. If the mode is + /// UserSubscription, clients must use Azure Active Directory. The default is + /// BatchService. /// Possible values include: 'BatchService', 'UserSubscription' /// A reference to the Azure key vault associated with the Batch account. /// /// If not specified, the default value is 'enabled'. - /// Possible values include: 'Enabled', 'Disabled', 'SecuredByPerimeter' + /// Possible values include: 'Enabled', 'Disabled' /// Configures how customer data is encrypted inside the Batch account. By /// default, accounts are encrypted using a Microsoft managed key. For @@ -117,9 +118,9 @@ public BatchAccountCreateParameters() /// /// Gets or sets the pool allocation mode also affects how clients may /// authenticate to the Batch Service API. If the mode is BatchService, clients - /// may authenticate using access keys or Microsoft Entra ID. If the mode is - /// UserSubscription, clients must use Microsoft Entra ID. The default is - /// BatchService. Possible values include: 'BatchService', 'UserSubscription' + /// may authenticate using access keys or Azure Active Directory. If the mode + /// is UserSubscription, clients must use Azure Active Directory. The default + /// is BatchService. Possible values include: 'BatchService', 'UserSubscription' /// [Newtonsoft.Json.JsonProperty(PropertyName = "properties.poolAllocationMode")] public PoolAllocationMode? PoolAllocationMode {get; set; } @@ -132,7 +133,7 @@ public BatchAccountCreateParameters() public KeyVaultReference KeyVaultReference {get; set; } /// - /// Gets or sets if not specified, the default value is 'enabled'. Possible values include: 'Enabled', 'Disabled', 'SecuredByPerimeter' + /// Gets or sets if not specified, the default value is 'enabled'. Possible values include: 'Enabled', 'Disabled' /// [Newtonsoft.Json.JsonProperty(PropertyName = "properties.publicNetworkAccess")] public PublicNetworkAccessType? PublicNetworkAccess {get; set; } diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/BatchAccountCreateProperties.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/BatchAccountCreateProperties.cs index 69cbdf0e6ce6..df5d35605c39 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/BatchAccountCreateProperties.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/BatchAccountCreateProperties.cs @@ -29,15 +29,16 @@ public BatchAccountCreateProperties() /// The pool allocation mode also affects how clients may authenticate to the /// Batch Service API. If the mode is BatchService, clients may authenticate - /// using access keys or Microsoft Entra ID. If the mode is UserSubscription, - /// clients must use Microsoft Entra ID. The default is BatchService. + /// using access keys or Azure Active Directory. If the mode is + /// UserSubscription, clients must use Azure Active Directory. The default is + /// BatchService. /// Possible values include: 'BatchService', 'UserSubscription' /// A reference to the Azure key vault associated with the Batch account. /// /// If not specified, the default value is 'enabled'. - /// Possible values include: 'Enabled', 'Disabled', 'SecuredByPerimeter' + /// Possible values include: 'Enabled', 'Disabled' /// The network profile only takes effect when publicNetworkAccess is enabled. /// @@ -79,9 +80,9 @@ public BatchAccountCreateProperties() /// /// Gets or sets the pool allocation mode also affects how clients may /// authenticate to the Batch Service API. If the mode is BatchService, clients - /// may authenticate using access keys or Microsoft Entra ID. If the mode is - /// UserSubscription, clients must use Microsoft Entra ID. The default is - /// BatchService. Possible values include: 'BatchService', 'UserSubscription' + /// may authenticate using access keys or Azure Active Directory. If the mode + /// is UserSubscription, clients must use Azure Active Directory. The default + /// is BatchService. Possible values include: 'BatchService', 'UserSubscription' /// [Newtonsoft.Json.JsonProperty(PropertyName = "poolAllocationMode")] public PoolAllocationMode? PoolAllocationMode {get; set; } @@ -94,7 +95,7 @@ public BatchAccountCreateProperties() public KeyVaultReference KeyVaultReference {get; set; } /// - /// Gets or sets if not specified, the default value is 'enabled'. Possible values include: 'Enabled', 'Disabled', 'SecuredByPerimeter' + /// Gets or sets if not specified, the default value is 'enabled'. Possible values include: 'Enabled', 'Disabled' /// [Newtonsoft.Json.JsonProperty(PropertyName = "publicNetworkAccess")] public PublicNetworkAccessType? PublicNetworkAccess {get; set; } diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/BatchAccountProperties.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/BatchAccountProperties.cs index 249e66e4ba98..513e40d74b8b 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/BatchAccountProperties.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/BatchAccountProperties.cs @@ -42,7 +42,7 @@ public BatchAccountProperties() /// /// If not specified, the default value is 'enabled'. - /// Possible values include: 'Enabled', 'Disabled', 'SecuredByPerimeter' + /// Possible values include: 'Enabled', 'Disabled' /// The network profile only takes effect when publicNetworkAccess is enabled. /// @@ -150,7 +150,7 @@ public BatchAccountProperties() public KeyVaultReference KeyVaultReference {get; private set; } /// - /// Gets or sets if not specified, the default value is 'enabled'. Possible values include: 'Enabled', 'Disabled', 'SecuredByPerimeter' + /// Gets or sets if not specified, the default value is 'enabled'. Possible values include: 'Enabled', 'Disabled' /// [Newtonsoft.Json.JsonProperty(PropertyName = "publicNetworkAccess")] public PublicNetworkAccessType? PublicNetworkAccess {get; set; } diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/BatchAccountUpdateParameters.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/BatchAccountUpdateParameters.cs index aa51742f814c..9ee28dbdaa03 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/BatchAccountUpdateParameters.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/BatchAccountUpdateParameters.cs @@ -48,7 +48,7 @@ public BatchAccountUpdateParameters() /// /// If not specified, the default value is 'enabled'. - /// Possible values include: 'Enabled', 'Disabled', 'SecuredByPerimeter' + /// Possible values include: 'Enabled', 'Disabled' public BatchAccountUpdateParameters(System.Collections.Generic.IDictionary tags = default(System.Collections.Generic.IDictionary), BatchAccountIdentity identity = default(BatchAccountIdentity), NetworkProfile networkProfile = default(NetworkProfile), AutoStorageBaseProperties autoStorage = default(AutoStorageBaseProperties), EncryptionProperties encryption = default(EncryptionProperties), System.Collections.Generic.IList allowedAuthenticationModes = default(System.Collections.Generic.IList), PublicNetworkAccessType? publicNetworkAccess = default(PublicNetworkAccessType?)) { @@ -110,7 +110,7 @@ public BatchAccountUpdateParameters() public System.Collections.Generic.IList AllowedAuthenticationModes {get; set; } /// - /// Gets or sets if not specified, the default value is 'enabled'. Possible values include: 'Enabled', 'Disabled', 'SecuredByPerimeter' + /// Gets or sets if not specified, the default value is 'enabled'. Possible values include: 'Enabled', 'Disabled' /// [Newtonsoft.Json.JsonProperty(PropertyName = "properties.publicNetworkAccess")] public PublicNetworkAccessType? PublicNetworkAccess {get; set; } diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/BatchAccountUpdateProperties.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/BatchAccountUpdateProperties.cs index eda5c11df711..9e5f363926dc 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/BatchAccountUpdateProperties.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/BatchAccountUpdateProperties.cs @@ -38,7 +38,7 @@ public BatchAccountUpdateProperties() /// /// If not specified, the default value is 'enabled'. - /// Possible values include: 'Enabled', 'Disabled', 'SecuredByPerimeter' + /// Possible values include: 'Enabled', 'Disabled' /// The network profile only takes effect when publicNetworkAccess is enabled. /// @@ -82,7 +82,7 @@ public BatchAccountUpdateProperties() public System.Collections.Generic.IList AllowedAuthenticationModes {get; set; } /// - /// Gets or sets if not specified, the default value is 'enabled'. Possible values include: 'Enabled', 'Disabled', 'SecuredByPerimeter' + /// Gets or sets if not specified, the default value is 'enabled'. Possible values include: 'Enabled', 'Disabled' /// [Newtonsoft.Json.JsonProperty(PropertyName = "publicNetworkAccess")] public PublicNetworkAccessType? PublicNetworkAccess {get; set; } diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/Certificate.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/Certificate.cs index 3303a3657588..8974dad97b76 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/Certificate.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/Certificate.cs @@ -11,7 +11,7 @@ namespace Microsoft.Azure.Management.Batch.Models /// Contains information about a certificate. /// [Microsoft.Rest.Serialization.JsonTransformation] - public partial class Certificate : AzureProxyResource + public partial class Certificate : ProxyResource { /// /// Initializes a new instance of the Certificate class. @@ -37,9 +37,6 @@ public Certificate() /// The ETag of the resource, used for concurrency statements. /// - /// The tags of the resource. - /// - /// This must match the first portion of the certificate name. Currently /// required to be 'SHA1'. /// @@ -68,9 +65,9 @@ public Certificate() /// This is only returned when the certificate provisioningState is 'Failed'. /// - public Certificate(string id = default(string), string name = default(string), string type = default(string), string etag = default(string), System.Collections.Generic.IDictionary tags = default(System.Collections.Generic.IDictionary), string thumbprintAlgorithm = default(string), string thumbprint = default(string), CertificateFormat format = default(CertificateFormat), CertificateProvisioningState? provisioningState = default(CertificateProvisioningState?), System.DateTime? provisioningStateTransitionTime = default(System.DateTime?), CertificateProvisioningState? previousProvisioningState = default(CertificateProvisioningState?), System.DateTime? previousProvisioningStateTransitionTime = default(System.DateTime?), string publicData = default(string), DeleteCertificateError deleteCertificateError = default(DeleteCertificateError)) + public Certificate(string id = default(string), string name = default(string), string type = default(string), string etag = default(string), string thumbprintAlgorithm = default(string), string thumbprint = default(string), CertificateFormat format = default(CertificateFormat), CertificateProvisioningState? provisioningState = default(CertificateProvisioningState?), System.DateTime? provisioningStateTransitionTime = default(System.DateTime?), CertificateProvisioningState? previousProvisioningState = default(CertificateProvisioningState?), System.DateTime? previousProvisioningStateTransitionTime = default(System.DateTime?), string publicData = default(string), DeleteCertificateError deleteCertificateError = default(DeleteCertificateError)) - : base(id, name, type, etag, tags) + : base(id, name, type, etag) { this.ThumbprintAlgorithm = thumbprintAlgorithm; this.Thumbprint = thumbprint; diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/CertificateCreateOrUpdateParameters.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/CertificateCreateOrUpdateParameters.cs index 2412e603fe41..da14eb6115ed 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/CertificateCreateOrUpdateParameters.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/CertificateCreateOrUpdateParameters.cs @@ -11,7 +11,7 @@ namespace Microsoft.Azure.Management.Batch.Models /// Contains information about a certificate. /// [Microsoft.Rest.Serialization.JsonTransformation] - public partial class CertificateCreateOrUpdateParameters : AzureProxyResource + public partial class CertificateCreateOrUpdateParameters : ProxyResource { /// /// Initializes a new instance of the CertificateCreateOrUpdateParameters class. @@ -37,9 +37,6 @@ public CertificateCreateOrUpdateParameters() /// The ETag of the resource, used for concurrency statements. /// - /// The tags of the resource. - /// - /// This must match the first portion of the certificate name. Currently /// required to be 'SHA1'. /// @@ -56,9 +53,9 @@ public CertificateCreateOrUpdateParameters() /// This must not be specified if the certificate format is Cer. /// - public CertificateCreateOrUpdateParameters(string id = default(string), string name = default(string), string type = default(string), string etag = default(string), System.Collections.Generic.IDictionary tags = default(System.Collections.Generic.IDictionary), string thumbprintAlgorithm = default(string), string thumbprint = default(string), CertificateFormat format = default(CertificateFormat), string data = default(string), string password = default(string)) + public CertificateCreateOrUpdateParameters(string id = default(string), string name = default(string), string type = default(string), string etag = default(string), string thumbprintAlgorithm = default(string), string thumbprint = default(string), CertificateFormat format = default(CertificateFormat), string data = default(string), string password = default(string)) - : base(id, name, type, etag, tags) + : base(id, name, type, etag) { this.ThumbprintAlgorithm = thumbprintAlgorithm; this.Thumbprint = thumbprint; diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/CertificateReference.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/CertificateReference.cs index 13a22682858d..c7a713bb6250 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/CertificateReference.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/CertificateReference.cs @@ -38,19 +38,22 @@ public CertificateReference() /// /// The default value is currentUser. This property is applicable only for - /// pools configured with Windows compute nodes. 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. + /// pools configured with Windows 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 include: 'CurrentUser', 'LocalMachine' - /// This property is applicable only for pools configured with Windows compute - /// nodes. 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. + /// This property is applicable only for pools configured with Windows 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. /// /// Which user accounts on the compute node should have access to the private @@ -81,22 +84,25 @@ public CertificateReference() /// /// Gets or sets the default value is currentUser. This property is applicable - /// only for pools configured with Windows compute nodes. 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 include: 'CurrentUser', 'LocalMachine' + /// only for pools configured with Windows 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 include: 'CurrentUser', 'LocalMachine' /// [Newtonsoft.Json.JsonProperty(PropertyName = "storeLocation")] public CertificateStoreLocation? StoreLocation {get; set; } /// /// Gets or sets this property is applicable only for pools configured with - /// Windows compute nodes. 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. + /// Windows 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. /// [Newtonsoft.Json.JsonProperty(PropertyName = "storeName")] public string StoreName {get; set; } diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/CloudServiceConfiguration.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/CloudServiceConfiguration.cs new file mode 100644 index 000000000000..3d74c82058f7 --- /dev/null +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/CloudServiceConfiguration.cs @@ -0,0 +1,90 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.Management.Batch.Models +{ + using System.Linq; + + /// + /// The configuration for nodes in a pool based on the Azure Cloud Services + /// platform. + /// + /// + /// The configuration for nodes in a pool based on the Azure Cloud Services + /// platform. + /// + public partial class CloudServiceConfiguration + { + /// + /// Initializes a new instance of the CloudServiceConfiguration class. + /// + public CloudServiceConfiguration() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the CloudServiceConfiguration class. + /// + + /// Possible values are: 2 - OS Family 2, equivalent to Windows Server 2008 R2 + /// SP1. 3 - OS Family 3, equivalent to Windows Server 2012. 4 - OS Family 4, + /// equivalent to Windows Server 2012 R2. 5 - OS Family 5, equivalent to + /// Windows Server 2016. 6 - OS Family 6, equivalent to Windows Server 2019. + /// For more information, see Azure Guest OS Releases + /// (https://azure.microsoft.com/documentation/articles/cloud-services-guestos-update-matrix/#releases). + /// + + /// The default value is * which specifies the latest operating system version + /// for the specified OS family. + /// + public CloudServiceConfiguration(string osFamily, string osVersion = default(string)) + + { + this.OSFamily = osFamily; + this.OSVersion = osVersion; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + + /// + /// Gets or sets possible values are: 2 - OS Family 2, equivalent to Windows + /// Server 2008 R2 SP1. 3 - OS Family 3, equivalent to Windows Server 2012. 4 - + /// OS Family 4, equivalent to Windows Server 2012 R2. 5 - OS Family 5, + /// equivalent to Windows Server 2016. 6 - OS Family 6, equivalent to Windows + /// Server 2019. For more information, see Azure Guest OS Releases + /// (https://azure.microsoft.com/documentation/articles/cloud-services-guestos-update-matrix/#releases). + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "osFamily")] + public string OSFamily {get; set; } + + /// + /// Gets or sets the default value is * which specifies the latest operating + /// system version for the specified OS family. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "osVersion")] + public string OSVersion {get; set; } + /// + /// Validate the object. + /// + /// + /// Thrown if validation fails + /// + public virtual void Validate() + { + if (this.OSFamily == null) + { + throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.CannotBeNull, "OSFamily"); + } + + + } + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/ContainerHostBatchBindMountEntry.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/ContainerHostBatchBindMountEntry.cs deleted file mode 100644 index 13232061f856..000000000000 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/ContainerHostBatchBindMountEntry.cs +++ /dev/null @@ -1,69 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for license information. -// Code generated by Microsoft (R) AutoRest Code Generator. -// Changes may cause incorrect behavior and will be lost if the code is regenerated. - -namespace Microsoft.Azure.Management.Batch.Models -{ - using System.Linq; - - /// - /// The entry of path and mount mode you want to mount into task container. - /// - /// - /// The entry of path and mount mode you want to mount into task container. - /// - public partial class ContainerHostBatchBindMountEntry - { - /// - /// Initializes a new instance of the ContainerHostBatchBindMountEntry class. - /// - public ContainerHostBatchBindMountEntry() - { - CustomInit(); - } - - /// - /// Initializes a new instance of the ContainerHostBatchBindMountEntry class. - /// - - /// The paths which will be mounted to container task's container. - /// Possible values include: 'Shared', 'Startup', 'VfsMounts', 'Task', - /// 'JobPrep', 'Applications' - - /// For Linux, if you mount this path as a read/write mode, this does not mean - /// that all users in container have the read/write access for the path, it - /// depends on the access in host VM. If this path is mounted read-only, all - /// users within the container will not be able to modify the path. - /// - public ContainerHostBatchBindMountEntry(string source = default(string), bool? isReadOnly = default(bool?)) - - { - this.Source = source; - this.IsReadOnly = isReadOnly; - CustomInit(); - } - - /// - /// An initialization method that performs custom operations like setting defaults - /// - partial void CustomInit(); - - - /// - /// Gets or sets the paths which will be mounted to container task's container. Possible values include: 'Shared', 'Startup', 'VfsMounts', 'Task', 'JobPrep', 'Applications' - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "source")] - public string Source {get; set; } - - /// - /// Gets or sets for Linux, if you mount this path as a read/write mode, this - /// does not mean that all users in container have the read/write access for - /// the path, it depends on the access in host VM. If this path is mounted - /// read-only, all users within the container will not be able to modify the - /// path. - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "isReadOnly")] - public bool? IsReadOnly {get; set; } - } -} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/ContainerHostDataPath.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/ContainerHostDataPath.cs deleted file mode 100644 index b8f1d77ef4f2..000000000000 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/ContainerHostDataPath.cs +++ /dev/null @@ -1,41 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for license information. -// Code generated by Microsoft (R) AutoRest Code Generator. -// Changes may cause incorrect behavior and will be lost if the code is regenerated. - -namespace Microsoft.Azure.Management.Batch.Models -{ - - /// - /// Defines values for ContainerHostDataPath. - /// - - - public static class ContainerHostDataPath - { - /// - /// The path for multi-instances task to shared their files. - /// - public const string Shared = "Shared"; - /// - /// The path for start task. - /// - public const string Startup = "Startup"; - /// - /// The path contains all virtual file systems are mounted on this node. - /// - public const string VfsMounts = "VfsMounts"; - /// - /// The task path. - /// - public const string Task = "Task"; - /// - /// The job-prep task path. - /// - public const string JobPrep = "JobPrep"; - /// - /// The applications path. - /// - public const string Applications = "Applications"; - } -} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/CreatedByType.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/CreatedByType.cs deleted file mode 100644 index 8f6dd6d3652c..000000000000 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/CreatedByType.cs +++ /dev/null @@ -1,21 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for license information. -// Code generated by Microsoft (R) AutoRest Code Generator. -// Changes may cause incorrect behavior and will be lost if the code is regenerated. - -namespace Microsoft.Azure.Management.Batch.Models -{ - - /// - /// Defines values for CreatedByType. - /// - - - public static class CreatedByType - { - public const string User = "User"; - public const string Application = "Application"; - public const string ManagedIdentity = "ManagedIdentity"; - public const string Key = "Key"; - } -} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/DataDisk.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/DataDisk.cs index 2840798cd47c..231a8a36ddee 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/DataDisk.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/DataDisk.cs @@ -46,7 +46,7 @@ public DataDisk() /// If omitted, the default is "Standard_LRS". Values are: /// Standard_LRS - The data disk should use standard locally redundant storage. /// Premium_LRS - The data disk should use premium locally redundant storage. - /// Possible values include: 'Standard_LRS', 'Premium_LRS', 'StandardSSD_LRS' + /// Possible values include: 'Standard_LRS', 'Premium_LRS' public DataDisk(int lun, int diskSizeGb, CachingType? caching = default(CachingType?), StorageAccountType? storageAccountType = default(StorageAccountType?)) { @@ -92,7 +92,7 @@ public DataDisk() /// /// Gets or sets if omitted, the default is "Standard_LRS". Values are: /// Standard_LRS - The data disk should use standard locally redundant storage. - /// Premium_LRS - The data disk should use premium locally redundant storage. Possible values include: 'Standard_LRS', 'Premium_LRS', 'StandardSSD_LRS' + /// Premium_LRS - The data disk should use premium locally redundant storage. Possible values include: 'Standard_LRS', 'Premium_LRS' /// [Newtonsoft.Json.JsonProperty(PropertyName = "storageAccountType")] public StorageAccountType? StorageAccountType {get; set; } diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/DeploymentConfiguration.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/DeploymentConfiguration.cs index 8914f2b9eef5..1f9b22e7fa58 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/DeploymentConfiguration.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/DeploymentConfiguration.cs @@ -27,12 +27,19 @@ public DeploymentConfiguration() /// Initializes a new instance of the DeploymentConfiguration class. /// - /// The configuration for compute nodes in a pool based on the Azure Virtual - /// Machines infrastructure. + /// This property and virtualMachineConfiguration are mutually exclusive and + /// one of the properties must be specified. This property cannot be specified + /// if the Batch account was created with its poolAllocationMode property set + /// to 'UserSubscription'. /// - public DeploymentConfiguration(VirtualMachineConfiguration virtualMachineConfiguration = default(VirtualMachineConfiguration)) + + /// This property and cloudServiceConfiguration are mutually exclusive and one + /// of the properties must be specified. + /// + public DeploymentConfiguration(CloudServiceConfiguration cloudServiceConfiguration = default(CloudServiceConfiguration), VirtualMachineConfiguration virtualMachineConfiguration = default(VirtualMachineConfiguration)) { + this.CloudServiceConfiguration = cloudServiceConfiguration; this.VirtualMachineConfiguration = virtualMachineConfiguration; CustomInit(); } @@ -44,8 +51,17 @@ public DeploymentConfiguration() /// - /// Gets or sets the configuration for compute nodes in a pool based on the - /// Azure Virtual Machines infrastructure. + /// Gets or sets this property and virtualMachineConfiguration are mutually + /// exclusive and one of the properties must be specified. This property cannot + /// be specified if the Batch account was created with its poolAllocationMode + /// property set to 'UserSubscription'. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "cloudServiceConfiguration")] + public CloudServiceConfiguration CloudServiceConfiguration {get; set; } + + /// + /// Gets or sets this property and cloudServiceConfiguration are mutually + /// exclusive and one of the properties must be specified. /// [Newtonsoft.Json.JsonProperty(PropertyName = "virtualMachineConfiguration")] public VirtualMachineConfiguration VirtualMachineConfiguration {get; set; } @@ -57,6 +73,10 @@ public DeploymentConfiguration() /// public virtual void Validate() { + if (this.CloudServiceConfiguration != null) + { + this.CloudServiceConfiguration.Validate(); + } if (this.VirtualMachineConfiguration != null) { this.VirtualMachineConfiguration.Validate(); diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/DetectorResponse.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/DetectorResponse.cs index 92616c0abf5c..6772c6ea28ca 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/DetectorResponse.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/DetectorResponse.cs @@ -11,7 +11,7 @@ namespace Microsoft.Azure.Management.Batch.Models /// Contains the information for a detector. /// [Microsoft.Rest.Serialization.JsonTransformation] - public partial class DetectorResponse : AzureProxyResource + public partial class DetectorResponse : ProxyResource { /// /// Initializes a new instance of the DetectorResponse class. @@ -37,14 +37,11 @@ public DetectorResponse() /// The ETag of the resource, used for concurrency statements. /// - /// The tags of the resource. - /// - /// A base64 encoded string that represents the content of a detector. /// - public DetectorResponse(string id = default(string), string name = default(string), string type = default(string), string etag = default(string), System.Collections.Generic.IDictionary tags = default(System.Collections.Generic.IDictionary), string value = default(string)) + public DetectorResponse(string id = default(string), string name = default(string), string type = default(string), string etag = default(string), string value = default(string)) - : base(id, name, type, etag, tags) + : base(id, name, type, etag) { this.Value = value; CustomInit(); diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/DiffDiskSettings.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/DiffDiskSettings.cs index 99a23ebec160..3251404abfc8 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/DiffDiskSettings.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/DiffDiskSettings.cs @@ -34,9 +34,9 @@ public DiffDiskSettings() /// disk provisioning. For more information on Ephemeral OS disk size /// requirements, please refer to Ephemeral OS disk size requirements for /// Windows VMs at - /// https://learn.microsoft.com/azure/virtual-machines/windows/ephemeral-os-disks#size-requirements + /// https://docs.microsoft.com/en-us/azure/virtual-machines/windows/ephemeral-os-disks#size-requirements /// and Linux VMs at - /// https://learn.microsoft.com/azure/virtual-machines/linux/ephemeral-os-disks#size-requirements. + /// https://docs.microsoft.com/en-us/azure/virtual-machines/linux/ephemeral-os-disks#size-requirements. /// Possible values include: 'CacheDisk' public DiffDiskSettings(DiffDiskPlacement? placement = default(DiffDiskPlacement?)) @@ -57,9 +57,9 @@ public DiffDiskSettings() /// for Ephemeral OS disk provisioning. For more information on Ephemeral OS /// disk size requirements, please refer to Ephemeral OS disk size requirements /// for Windows VMs at - /// https://learn.microsoft.com/azure/virtual-machines/windows/ephemeral-os-disks#size-requirements + /// https://docs.microsoft.com/en-us/azure/virtual-machines/windows/ephemeral-os-disks#size-requirements /// and Linux VMs at - /// https://learn.microsoft.com/azure/virtual-machines/linux/ephemeral-os-disks#size-requirements. Possible values include: 'CacheDisk' + /// https://docs.microsoft.com/en-us/azure/virtual-machines/linux/ephemeral-os-disks#size-requirements. Possible values include: 'CacheDisk' /// [Newtonsoft.Json.JsonProperty(PropertyName = "placement")] public DiffDiskPlacement? Placement {get; set; } diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/DiskEncryptionConfiguration.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/DiskEncryptionConfiguration.cs index 921c0887ea41..3b48b428f459 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/DiskEncryptionConfiguration.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/DiskEncryptionConfiguration.cs @@ -10,7 +10,7 @@ namespace Microsoft.Azure.Management.Batch.Models /// /// The disk encryption configuration applied on compute nodes in the pool. /// Disk encryption configuration is not supported on Linux pool created with - /// Virtual Machine Image or Azure Compute Gallery Image. + /// Virtual Machine Image or Shared Image Gallery Image. /// public partial class DiskEncryptionConfiguration { diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/ErrorAdditionalInfo.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/ErrorAdditionalInfo.cs deleted file mode 100644 index c03d84b6f03e..000000000000 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/ErrorAdditionalInfo.cs +++ /dev/null @@ -1,58 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for license information. -// Code generated by Microsoft (R) AutoRest Code Generator. -// Changes may cause incorrect behavior and will be lost if the code is regenerated. - -namespace Microsoft.Azure.Management.Batch.Models -{ - using System.Linq; - - /// - /// The resource management error additional info. - /// - public partial class ErrorAdditionalInfo - { - /// - /// Initializes a new instance of the ErrorAdditionalInfo class. - /// - public ErrorAdditionalInfo() - { - CustomInit(); - } - - /// - /// Initializes a new instance of the ErrorAdditionalInfo class. - /// - - /// The additional info type. - /// - - /// The additional info. - /// - public ErrorAdditionalInfo(string type = default(string), object info = default(object)) - - { - this.Type = type; - this.Info = info; - CustomInit(); - } - - /// - /// An initialization method that performs custom operations like setting defaults - /// - partial void CustomInit(); - - - /// - /// Gets the additional info type. - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "type")] - public string Type {get; private set; } - - /// - /// Gets the additional info. - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "info")] - public object Info {get; private set; } - } -} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/ErrorDetail.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/ErrorDetail.cs deleted file mode 100644 index 1e1e859e86f5..000000000000 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/ErrorDetail.cs +++ /dev/null @@ -1,88 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for license information. -// Code generated by Microsoft (R) AutoRest Code Generator. -// Changes may cause incorrect behavior and will be lost if the code is regenerated. - -namespace Microsoft.Azure.Management.Batch.Models -{ - using System.Linq; - - /// - /// The error detail. - /// - public partial class ErrorDetail - { - /// - /// Initializes a new instance of the ErrorDetail class. - /// - public ErrorDetail() - { - CustomInit(); - } - - /// - /// Initializes a new instance of the ErrorDetail class. - /// - - /// The error code. - /// - - /// The error message. - /// - - /// The error target. - /// - - /// The error details. - /// - - /// The error additional info. - /// - public ErrorDetail(string code = default(string), string message = default(string), string target = default(string), System.Collections.Generic.IList details = default(System.Collections.Generic.IList), System.Collections.Generic.IList additionalInfo = default(System.Collections.Generic.IList)) - - { - this.Code = code; - this.Message = message; - this.Target = target; - this.Details = details; - this.AdditionalInfo = additionalInfo; - CustomInit(); - } - - /// - /// An initialization method that performs custom operations like setting defaults - /// - partial void CustomInit(); - - - /// - /// Gets the error code. - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "code")] - public string Code {get; private set; } - - /// - /// Gets the error message. - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "message")] - public string Message {get; private set; } - - /// - /// Gets the error target. - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "target")] - public string Target {get; private set; } - - /// - /// Gets the error details. - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "details")] - public System.Collections.Generic.IList Details {get; private set; } - - /// - /// Gets the error additional info. - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "additionalInfo")] - public System.Collections.Generic.IList AdditionalInfo {get; private set; } - } -} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/ErrorResponse.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/ErrorResponse.cs deleted file mode 100644 index d052775e919c..000000000000 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/ErrorResponse.cs +++ /dev/null @@ -1,55 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for license information. -// Code generated by Microsoft (R) AutoRest Code Generator. -// Changes may cause incorrect behavior and will be lost if the code is regenerated. - -namespace Microsoft.Azure.Management.Batch.Models -{ - using System.Linq; - - /// - /// Common error response for all Azure Resource Manager APIs to return error - /// details for failed operations. (This also follows the OData error response - /// format.). - /// - /// - /// Common error response for all Azure Resource Manager APIs to return error - /// details for failed operations. (This also follows the OData error response - /// format.). - /// - public partial class ErrorResponse - { - /// - /// Initializes a new instance of the ErrorResponse class. - /// - public ErrorResponse() - { - CustomInit(); - } - - /// - /// Initializes a new instance of the ErrorResponse class. - /// - - /// The error object. - /// - public ErrorResponse(ErrorDetail error = default(ErrorDetail)) - - { - this.Error = error; - CustomInit(); - } - - /// - /// An initialization method that performs custom operations like setting defaults - /// - partial void CustomInit(); - - - /// - /// Gets or sets the error object. - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "error")] - public ErrorDetail Error {get; set; } - } -} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/ErrorResponseException.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/ErrorResponseException.cs deleted file mode 100644 index 7d1319007228..000000000000 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/ErrorResponseException.cs +++ /dev/null @@ -1,55 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for license information. -// Code generated by Microsoft (R) AutoRest Code Generator. -// Changes may cause incorrect behavior and will be lost if the code is regenerated. - -namespace Microsoft.Azure.Management.Batch.Models -{ - - /// - /// Exception thrown for an invalid response with ErrorResponse information. - /// - public partial class ErrorResponseException : Microsoft.Rest.RestException - { - /// - /// Gets information about the associated HTTP request. - /// - public Microsoft.Rest.HttpRequestMessageWrapper Request { get; set; } - - /// - /// Gets information about the associated HTTP response. - /// - public Microsoft.Rest.HttpResponseMessageWrapper Response { get; set; } - - /// - /// Gets or sets the body object. - /// - public ErrorResponse Body { get; set; } - - /// - /// Initializes a new instance of the ErrorResponseException class. - /// - public ErrorResponseException() - { - } - - /// - /// Initializes a new instance of the ErrorResponse class. - /// - /// The exception message. - public ErrorResponseException(string message) - : this(message, null) - { - } - - /// - /// Initializes a new instance of the ErrorResponse class. - /// - /// The exception message. - /// Inner exception. - public ErrorResponseException(string message, System.Exception innerException) - : base(message, innerException) - { - } - } -} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/ImageReference.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/ImageReference.cs index 3b796bea11be..e4a5704db903 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/ImageReference.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/ImageReference.cs @@ -46,21 +46,13 @@ public ImageReference() /// image. If omitted, the default is 'latest'. /// - /// This property is mutually exclusive with other properties. The Azure - /// Compute Gallery Image must have replicas in the same region as the Azure - /// Batch account. For information about the firewall settings for the Batch - /// node agent to communicate with the Batch service see - /// https://learn.microsoft.com/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration. + /// This property is mutually exclusive with other properties. The Shared Image + /// Gallery image must have replicas in the same region as the Azure Batch + /// account. For information about the firewall settings for the Batch node + /// agent to communicate with the Batch service see + /// https://docs.microsoft.com/en-us/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration. /// - - /// This property is mutually exclusive with other properties and can be - /// fetched from shared gallery image GET call. - /// - - /// This property is mutually exclusive with other properties and can be - /// fetched from community gallery image GET call. - /// - public ImageReference(string publisher = default(string), string offer = default(string), string sku = default(string), string version = default(string), string id = default(string), string sharedGalleryImageId = default(string), string communityGalleryImageId = default(string)) + public ImageReference(string publisher = default(string), string offer = default(string), string sku = default(string), string version = default(string), string id = default(string)) { this.Publisher = publisher; @@ -68,8 +60,6 @@ public ImageReference() this.Sku = sku; this.Version = version; this.Id = id; - this.SharedGalleryImageId = sharedGalleryImageId; - this.CommunityGalleryImageId = communityGalleryImageId; CustomInit(); } @@ -106,26 +96,12 @@ public ImageReference() /// /// Gets or sets this property is mutually exclusive with other properties. The - /// Azure Compute Gallery Image must have replicas in the same region as the + /// Shared Image Gallery image must have replicas in the same region as the /// Azure Batch account. For information about the firewall settings for the /// Batch node agent to communicate with the Batch service see - /// https://learn.microsoft.com/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration. + /// https://docs.microsoft.com/en-us/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration. /// [Newtonsoft.Json.JsonProperty(PropertyName = "id")] public string Id {get; set; } - - /// - /// Gets or sets this property is mutually exclusive with other properties and - /// can be fetched from shared gallery image GET call. - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "sharedGalleryImageId")] - public string SharedGalleryImageId {get; set; } - - /// - /// Gets or sets this property is mutually exclusive with other properties and - /// can be fetched from community gallery image GET call. - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "communityGalleryImageId")] - public string CommunityGalleryImageId {get; set; } } } \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/InboundNatPool.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/InboundNatPool.cs index 4523d48c9f21..34d0340ab5bd 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/InboundNatPool.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/InboundNatPool.cs @@ -40,8 +40,9 @@ public InboundNatPool() /// Possible values include: 'TCP', 'UDP' /// This must be unique within a Batch pool. Acceptable values are between 1 - /// and 65535 except for 29876 and 29877 as these are reserved. If any reserved - /// values are provided the request fails with HTTP status code 400. + /// and 65535 except for 22, 3389, 29876 and 29877 as these are reserved. If + /// any reserved values are provided the request fails with HTTP status code + /// 400. /// /// Acceptable values range between 1 and 65534 except ports from 50000 to @@ -98,9 +99,9 @@ public InboundNatPool() /// /// Gets or sets this must be unique within a Batch pool. Acceptable values are - /// between 1 and 65535 except for 29876 and 29877 as these are reserved. If - /// any reserved values are provided the request fails with HTTP status code - /// 400. + /// between 1 and 65535 except for 22, 3389, 29876 and 29877 as these are + /// reserved. If any reserved values are provided the request fails with HTTP + /// status code 400. /// [Newtonsoft.Json.JsonProperty(PropertyName = "backendPort")] public int BackendPort {get; set; } diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/IssueType.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/IssueType.cs deleted file mode 100644 index 877cc16ddc5c..000000000000 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/IssueType.cs +++ /dev/null @@ -1,39 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for license information. -// Code generated by Microsoft (R) AutoRest Code Generator. -// Changes may cause incorrect behavior and will be lost if the code is regenerated. - -namespace Microsoft.Azure.Management.Batch.Models -{ - - /// - /// Defines values for IssueType. - /// - - - public static class IssueType - { - /// - /// Unknown issue type - /// - public const string Unknown = "Unknown"; - /// - /// An error occurred while applying the network security perimeter (NSP) - /// configuration. - /// - public const string ConfigurationPropagationFailure = "ConfigurationPropagationFailure"; - /// - /// A network connectivity issue is happening on the resource which could be - /// addressed either by adding new resources to the network security perimeter - /// (NSP) or by modifying access rules. - /// - public const string MissingPerimeterConfiguration = "MissingPerimeterConfiguration"; - /// - /// An managed identity hasn't been associated with the resource. The resource - /// will still be able to validate inbound traffic from the network security - /// perimeter (NSP) or matching inbound access rules, but it won't be able to - /// perform outbound access as a member of the NSP. - /// - public const string MissingIdentityConfiguration = "MissingIdentityConfiguration"; - } -} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/ManagedDisk.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/ManagedDisk.cs deleted file mode 100644 index c124fafb28a5..000000000000 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/ManagedDisk.cs +++ /dev/null @@ -1,60 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for license information. -// Code generated by Microsoft (R) AutoRest Code Generator. -// Changes may cause incorrect behavior and will be lost if the code is regenerated. - -namespace Microsoft.Azure.Management.Batch.Models -{ - using System.Linq; - - public partial class ManagedDisk - { - /// - /// Initializes a new instance of the ManagedDisk class. - /// - public ManagedDisk() - { - CustomInit(); - } - - /// - /// Initializes a new instance of the ManagedDisk class. - /// - - /// The storage account type for use in creating data disks or OS disk. - /// Possible values include: 'Standard_LRS', 'Premium_LRS', 'StandardSSD_LRS' - - /// Specifies the security profile settings for the managed disk. **Note**: It - /// can only be set for Confidential VMs and is required when using - /// Confidential VMs. - /// - public ManagedDisk(StorageAccountType? storageAccountType = default(StorageAccountType?), VMDiskSecurityProfile securityProfile = default(VMDiskSecurityProfile)) - - { - this.StorageAccountType = storageAccountType; - this.SecurityProfile = securityProfile; - CustomInit(); - } - - /// - /// An initialization method that performs custom operations like setting defaults - /// - partial void CustomInit(); - - - /// - /// Gets or sets the storage account type for use in creating data disks or OS - /// disk. Possible values include: 'Standard_LRS', 'Premium_LRS', 'StandardSSD_LRS' - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "storageAccountType")] - public StorageAccountType? StorageAccountType {get; set; } - - /// - /// Gets or sets specifies the security profile settings for the managed disk. - /// **Note**: It can only be set for Confidential VMs and is required when - /// using Confidential VMs. - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "securityProfile")] - public VMDiskSecurityProfile SecurityProfile {get; set; } - } -} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/NetworkConfiguration.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/NetworkConfiguration.cs index 7e91a6718fc8..b0a5216e2835 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/NetworkConfiguration.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/NetworkConfiguration.cs @@ -38,19 +38,24 @@ public NetworkConfiguration() /// NSG, then the Batch service will set the state of the compute nodes to /// unusable. If the specified VNet has any associated Network Security Groups /// (NSG), then a few reserved system ports must be enabled for inbound - /// communication,including ports 29876 and 29877. Also enable outbound - /// connections to Azure Storage on port 443. For more details see: - /// https://learn.microsoft.com/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration + /// communication. For pools created with a virtual machine configuration, + /// enable ports 29876 and 29877, as well as port 22 for Linux and port 3389 + /// for Windows. For pools created with a cloud service configuration, enable + /// ports 10100, 20100, and 30100. Also enable outbound connections to Azure + /// Storage on port 443. For cloudServiceConfiguration pools, only 'classic' + /// VNETs are supported. For more details see: + /// https://docs.microsoft.com/en-us/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration /// /// The scope of dynamic vnet assignment. /// Possible values include: 'none', 'job' - /// The endpoint configuration for a pool. + /// Pool endpoint configuration is only supported on pools with the + /// virtualMachineConfiguration property. /// - /// The public IP Address configuration of the networking configuration of a - /// Pool. + /// This property is only supported on Pools with the + /// virtualMachineConfiguration property. /// /// Accelerated networking enables single root I/O virtualization (SR-IOV) to a @@ -90,10 +95,13 @@ public NetworkConfiguration() /// specified subnet is denied by an NSG, then the Batch service will set the /// state of the compute nodes to unusable. If the specified VNet has any /// associated Network Security Groups (NSG), then a few reserved system ports - /// must be enabled for inbound communication,including ports 29876 and 29877. - /// Also enable outbound connections to Azure Storage on port 443. For more - /// details see: - /// https://learn.microsoft.com/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration + /// must be enabled for inbound communication. For pools created with a virtual + /// machine configuration, enable ports 29876 and 29877, as well as port 22 for + /// Linux and port 3389 for Windows. For pools created with a cloud service + /// configuration, enable ports 10100, 20100, and 30100. Also enable outbound + /// connections to Azure Storage on port 443. For cloudServiceConfiguration + /// pools, only 'classic' VNETs are supported. For more details see: + /// https://docs.microsoft.com/en-us/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration /// [Newtonsoft.Json.JsonProperty(PropertyName = "subnetId")] public string SubnetId {get; set; } @@ -105,14 +113,15 @@ public NetworkConfiguration() public DynamicVNetAssignmentScope? DynamicVnetAssignmentScope {get; set; } /// - /// Gets or sets the endpoint configuration for a pool. + /// Gets or sets pool endpoint configuration is only supported on pools with + /// the virtualMachineConfiguration property. /// [Newtonsoft.Json.JsonProperty(PropertyName = "endpointConfiguration")] public PoolEndpointConfiguration EndpointConfiguration {get; set; } /// - /// Gets or sets the public IP Address configuration of the networking - /// configuration of a Pool. + /// Gets or sets this property is only supported on Pools with the + /// virtualMachineConfiguration property. /// [Newtonsoft.Json.JsonProperty(PropertyName = "publicIPAddressConfiguration")] public PublicIPAddressConfiguration PublicIPAddressConfiguration {get; set; } diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/NetworkSecurityPerimeter.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/NetworkSecurityPerimeter.cs deleted file mode 100644 index df9f421ebaa8..000000000000 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/NetworkSecurityPerimeter.cs +++ /dev/null @@ -1,68 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for license information. -// Code generated by Microsoft (R) AutoRest Code Generator. -// Changes may cause incorrect behavior and will be lost if the code is regenerated. - -namespace Microsoft.Azure.Management.Batch.Models -{ - using System.Linq; - - /// - /// Information about a network security perimeter (NSP) - /// - public partial class NetworkSecurityPerimeter - { - /// - /// Initializes a new instance of the NetworkSecurityPerimeter class. - /// - public NetworkSecurityPerimeter() - { - CustomInit(); - } - - /// - /// Initializes a new instance of the NetworkSecurityPerimeter class. - /// - - /// Fully qualified Azure resource ID of the NSP resource - /// - - /// Universal unique ID (UUID) of the network security perimeter - /// - - /// Location of the network security perimeter - /// - public NetworkSecurityPerimeter(string id = default(string), System.Guid? perimeterGuid = default(System.Guid?), string location = default(string)) - - { - this.Id = id; - this.PerimeterGuid = perimeterGuid; - this.Location = location; - CustomInit(); - } - - /// - /// An initialization method that performs custom operations like setting defaults - /// - partial void CustomInit(); - - - /// - /// Gets or sets fully qualified Azure resource ID of the NSP resource - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "id")] - public string Id {get; set; } - - /// - /// Gets or sets universal unique ID (UUID) of the network security perimeter - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "perimeterGuid")] - public System.Guid? PerimeterGuid {get; set; } - - /// - /// Gets or sets location of the network security perimeter - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "location")] - public string Location {get; set; } - } -} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/NetworkSecurityPerimeterConfiguration.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/NetworkSecurityPerimeterConfiguration.cs deleted file mode 100644 index 65ca39f79a9b..000000000000 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/NetworkSecurityPerimeterConfiguration.cs +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for license information. -// Code generated by Microsoft (R) AutoRest Code Generator. -// Changes may cause incorrect behavior and will be lost if the code is regenerated. - -namespace Microsoft.Azure.Management.Batch.Models -{ - using System.Linq; - - /// - /// Network security perimeter (NSP) configuration resource - /// - public partial class NetworkSecurityPerimeterConfiguration : ProxyResource - { - /// - /// Initializes a new instance of the NetworkSecurityPerimeterConfiguration class. - /// - public NetworkSecurityPerimeterConfiguration() - { - CustomInit(); - } - - /// - /// Initializes a new instance of the NetworkSecurityPerimeterConfiguration class. - /// - - /// Fully qualified resource ID for the resource. E.g. - /// "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}" - /// - - /// The name of the resource - /// - - /// The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or - /// "Microsoft.Storage/storageAccounts" - /// - - /// Azure Resource Manager metadata containing createdBy and modifiedBy - /// information. - /// - - /// Network security configuration properties. - /// - public NetworkSecurityPerimeterConfiguration(string id = default(string), string name = default(string), string type = default(string), SystemData systemData = default(SystemData), NetworkSecurityPerimeterConfigurationProperties properties = default(NetworkSecurityPerimeterConfigurationProperties)) - - : base(id, name, type, systemData) - { - this.Properties = properties; - CustomInit(); - } - - /// - /// An initialization method that performs custom operations like setting defaults - /// - partial void CustomInit(); - - - /// - /// Gets or sets network security configuration properties. - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "properties")] - public NetworkSecurityPerimeterConfigurationProperties Properties {get; set; } - } -} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/NetworkSecurityPerimeterConfigurationProperties.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/NetworkSecurityPerimeterConfigurationProperties.cs deleted file mode 100644 index cbe57291b0b8..000000000000 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/NetworkSecurityPerimeterConfigurationProperties.cs +++ /dev/null @@ -1,91 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for license information. -// Code generated by Microsoft (R) AutoRest Code Generator. -// Changes may cause incorrect behavior and will be lost if the code is regenerated. - -namespace Microsoft.Azure.Management.Batch.Models -{ - using System.Linq; - - /// - /// Network security configuration properties. - /// - public partial class NetworkSecurityPerimeterConfigurationProperties - { - /// - /// Initializes a new instance of the NetworkSecurityPerimeterConfigurationProperties class. - /// - public NetworkSecurityPerimeterConfigurationProperties() - { - CustomInit(); - } - - /// - /// Initializes a new instance of the NetworkSecurityPerimeterConfigurationProperties class. - /// - - /// Provisioning state of a network security perimeter configuration that is - /// being created or updated. - /// Possible values include: 'Succeeded', 'Creating', 'Updating', 'Deleting', - /// 'Accepted', 'Failed', 'Canceled' - - /// List of provisioning issues, if any - /// - - /// Information about a network security perimeter (NSP) - /// - - /// Information about resource association - /// - - /// Network security perimeter configuration profile - /// - public NetworkSecurityPerimeterConfigurationProperties(string provisioningState = default(string), System.Collections.Generic.IList provisioningIssues = default(System.Collections.Generic.IList), NetworkSecurityPerimeter networkSecurityPerimeter = default(NetworkSecurityPerimeter), ResourceAssociation resourceAssociation = default(ResourceAssociation), NetworkSecurityProfile profile = default(NetworkSecurityProfile)) - - { - this.ProvisioningState = provisioningState; - this.ProvisioningIssues = provisioningIssues; - this.NetworkSecurityPerimeter = networkSecurityPerimeter; - this.ResourceAssociation = resourceAssociation; - this.Profile = profile; - CustomInit(); - } - - /// - /// An initialization method that performs custom operations like setting defaults - /// - partial void CustomInit(); - - - /// - /// Gets provisioning state of a network security perimeter configuration that - /// is being created or updated. Possible values include: 'Succeeded', 'Creating', 'Updating', 'Deleting', 'Accepted', 'Failed', 'Canceled' - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "provisioningState")] - public string ProvisioningState {get; private set; } - - /// - /// Gets list of provisioning issues, if any - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "provisioningIssues")] - public System.Collections.Generic.IList ProvisioningIssues {get; private set; } - - /// - /// Gets or sets information about a network security perimeter (NSP) - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "networkSecurityPerimeter")] - public NetworkSecurityPerimeter NetworkSecurityPerimeter {get; set; } - - /// - /// Gets or sets information about resource association - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "resourceAssociation")] - public ResourceAssociation ResourceAssociation {get; set; } - - /// - /// Gets or sets network security perimeter configuration profile - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "profile")] - public NetworkSecurityProfile Profile {get; set; } - } -} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/NetworkSecurityPerimeterConfigurationProvisioningState.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/NetworkSecurityPerimeterConfigurationProvisioningState.cs deleted file mode 100644 index 983ab2758ba9..000000000000 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/NetworkSecurityPerimeterConfigurationProvisioningState.cs +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for license information. -// Code generated by Microsoft (R) AutoRest Code Generator. -// Changes may cause incorrect behavior and will be lost if the code is regenerated. - -namespace Microsoft.Azure.Management.Batch.Models -{ - - /// - /// Defines values for NetworkSecurityPerimeterConfigurationProvisioningState. - /// - - - public static class NetworkSecurityPerimeterConfigurationProvisioningState - { - public const string Succeeded = "Succeeded"; - public const string Creating = "Creating"; - public const string Updating = "Updating"; - public const string Deleting = "Deleting"; - public const string Accepted = "Accepted"; - public const string Failed = "Failed"; - public const string Canceled = "Canceled"; - } -} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/NetworkSecurityPerimeterReconcileConfigurationHeaders.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/NetworkSecurityPerimeterReconcileConfigurationHeaders.cs deleted file mode 100644 index 460063e8e070..000000000000 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/NetworkSecurityPerimeterReconcileConfigurationHeaders.cs +++ /dev/null @@ -1,55 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for license information. -// Code generated by Microsoft (R) AutoRest Code Generator. -// Changes may cause incorrect behavior and will be lost if the code is regenerated. - -namespace Microsoft.Azure.Management.Batch.Models -{ - using System.Linq; - - public partial class NetworkSecurityPerimeterReconcileConfigurationHeaders - { - /// - /// Initializes a new instance of the NetworkSecurityPerimeterReconcileConfigurationHeaders class. - /// - public NetworkSecurityPerimeterReconcileConfigurationHeaders() - { - CustomInit(); - } - - /// - /// Initializes a new instance of the NetworkSecurityPerimeterReconcileConfigurationHeaders class. - /// - - /// - /// - - /// - /// - public NetworkSecurityPerimeterReconcileConfigurationHeaders(string location = default(string), int? retryAfter = default(int?)) - - { - this.Location = location; - this.RetryAfter = retryAfter; - CustomInit(); - } - - /// - /// An initialization method that performs custom operations like setting defaults - /// - partial void CustomInit(); - - - /// - /// Gets or sets - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "Location")] - public string Location {get; set; } - - /// - /// Gets or sets - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "Retry-After")] - public int? RetryAfter {get; set; } - } -} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/NetworkSecurityProfile.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/NetworkSecurityProfile.cs deleted file mode 100644 index ef326f14f54e..000000000000 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/NetworkSecurityProfile.cs +++ /dev/null @@ -1,88 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for license information. -// Code generated by Microsoft (R) AutoRest Code Generator. -// Changes may cause incorrect behavior and will be lost if the code is regenerated. - -namespace Microsoft.Azure.Management.Batch.Models -{ - using System.Linq; - - /// - /// Network security perimeter configuration profile - /// - public partial class NetworkSecurityProfile - { - /// - /// Initializes a new instance of the NetworkSecurityProfile class. - /// - public NetworkSecurityProfile() - { - CustomInit(); - } - - /// - /// Initializes a new instance of the NetworkSecurityProfile class. - /// - - /// Name of the profile - /// - - /// Current access rules version - /// - - /// List of Access Rules - /// - - /// Current diagnostic settings version - /// - - /// List of log categories that are enabled - /// - public NetworkSecurityProfile(string name = default(string), int? accessRulesVersion = default(int?), System.Collections.Generic.IList accessRules = default(System.Collections.Generic.IList), int? diagnosticSettingsVersion = default(int?), System.Collections.Generic.IList enabledLogCategories = default(System.Collections.Generic.IList)) - - { - this.Name = name; - this.AccessRulesVersion = accessRulesVersion; - this.AccessRules = accessRules; - this.DiagnosticSettingsVersion = diagnosticSettingsVersion; - this.EnabledLogCategories = enabledLogCategories; - CustomInit(); - } - - /// - /// An initialization method that performs custom operations like setting defaults - /// - partial void CustomInit(); - - - /// - /// Gets or sets name of the profile - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "name")] - public string Name {get; set; } - - /// - /// Gets or sets current access rules version - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "accessRulesVersion")] - public int? AccessRulesVersion {get; set; } - - /// - /// Gets or sets list of Access Rules - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "accessRules")] - public System.Collections.Generic.IList AccessRules {get; set; } - - /// - /// Gets or sets current diagnostic settings version - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "diagnosticSettingsVersion")] - public int? DiagnosticSettingsVersion {get; set; } - - /// - /// Gets or sets list of log categories that are enabled - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "enabledLogCategories")] - public System.Collections.Generic.IList EnabledLogCategories {get; set; } - } -} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/OSDisk.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/OSDisk.cs index db610851e614..f55a582a9387 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/OSDisk.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/OSDisk.cs @@ -30,27 +30,10 @@ public OSDisk() /// Specifies the ephemeral Disk Settings for the operating system disk used by /// the virtual machine. /// - - /// The type of caching to enable for the disk. - /// Possible values include: 'None', 'ReadOnly', 'ReadWrite' - - /// - /// - - /// The initial disk size in GB when creating new OS disk. - /// - - /// Specifies whether writeAccelerator should be enabled or disabled on the - /// disk. - /// - public OSDisk(DiffDiskSettings ephemeralOSDiskSettings = default(DiffDiskSettings), CachingType? caching = default(CachingType?), ManagedDisk managedDisk = default(ManagedDisk), int? diskSizeGb = default(int?), bool? writeAcceleratorEnabled = default(bool?)) + public OSDisk(DiffDiskSettings ephemeralOSDiskSettings = default(DiffDiskSettings)) { this.EphemeralOSDiskSettings = ephemeralOSDiskSettings; - this.Caching = caching; - this.ManagedDisk = managedDisk; - this.DiskSizeGb = diskSizeGb; - this.WriteAcceleratorEnabled = writeAcceleratorEnabled; CustomInit(); } @@ -66,30 +49,5 @@ public OSDisk() /// [Newtonsoft.Json.JsonProperty(PropertyName = "ephemeralOSDiskSettings")] public DiffDiskSettings EphemeralOSDiskSettings {get; set; } - - /// - /// Gets or sets the type of caching to enable for the disk. Possible values include: 'None', 'ReadOnly', 'ReadWrite' - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "caching")] - public CachingType? Caching {get; set; } - - /// - /// Gets or sets - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "managedDisk")] - public ManagedDisk ManagedDisk {get; set; } - - /// - /// Gets or sets the initial disk size in GB when creating new OS disk. - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "diskSizeGB")] - public int? DiskSizeGb {get; set; } - - /// - /// Gets or sets specifies whether writeAccelerator should be enabled or - /// disabled on the disk. - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "writeAcceleratorEnabled")] - public bool? WriteAcceleratorEnabled {get; set; } } } \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/Pool.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/Pool.cs index 883dd30c61af..c2b8172b2761 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/Pool.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/Pool.cs @@ -11,7 +11,7 @@ namespace Microsoft.Azure.Management.Batch.Models /// Contains information about a pool. /// [Microsoft.Rest.Serialization.JsonTransformation] - public partial class Pool : AzureProxyResource + public partial class Pool : ProxyResource { /// /// Initializes a new instance of the Pool class. @@ -37,16 +37,15 @@ public Pool() /// The ETag of the resource, used for concurrency statements. /// - /// The tags of the resource. - /// - /// The type of identity used for the Batch Pool. /// /// Whether the pool is resizing. /// Possible values include: 'Steady', 'Resizing', 'Stopping' - /// Deployment configuration properties. + /// Using CloudServiceConfiguration specifies that the nodes should be creating + /// using Azure Cloud Services (PaaS), while VirtualMachineConfiguration uses + /// Azure Virtual Machines (IaaS). /// /// Defines the desired size of the pool. This can either be 'fixedScale' where @@ -63,9 +62,6 @@ public Pool() /// to remove the start task from the pool. /// - /// Describes an upgrade policy - automatic, manual, or rolling. - /// - /// The display name need not be unique and can contain any Unicode characters /// up to a maximum length of 1024. /// @@ -87,8 +83,17 @@ public Pool() /// The time at which the pool entered its current allocation state. /// - /// For information about available VM sizes, see Sizes for Virtual Machines in - /// Azure (https://learn.microsoft.com/azure/virtual-machines/sizes/overview). + /// For information about available sizes of virtual machines for Cloud + /// Services pools (pools created with cloudServiceConfiguration), see Sizes + /// for Cloud Services + /// (https://azure.microsoft.com/documentation/articles/cloud-services-sizes-specs/). + /// Batch supports all Cloud Services VM sizes except ExtraSmall. For + /// information about available VM sizes for pools using images from the + /// Virtual Machines Marketplace (pools created with + /// virtualMachineConfiguration) see Sizes for Virtual Machines (Linux) + /// (https://azure.microsoft.com/documentation/articles/virtual-machines-linux-sizes/) + /// or Sizes for Virtual Machines (Windows) + /// (https://azure.microsoft.com/documentation/articles/virtual-machines-windows-sizes/). /// Batch supports all Azure VM sizes except STANDARD_A0 and those with premium /// storage (STANDARD_GS, STANDARD_DS, and STANDARD_DSV2 series). /// @@ -161,16 +166,9 @@ public Pool() /// Determines how a pool communicates with the Batch service. /// Possible values include: 'Default', 'Classic', 'Simplified' + public Pool(string id = default(string), string name = default(string), string type = default(string), string etag = default(string), BatchPoolIdentity identity = default(BatchPoolIdentity), AllocationState? allocationState = default(AllocationState?), DeploymentConfiguration deploymentConfiguration = default(DeploymentConfiguration), ScaleSettings scaleSettings = default(ScaleSettings), NetworkConfiguration networkConfiguration = default(NetworkConfiguration), StartTask startTask = default(StartTask), string displayName = default(string), System.DateTime? lastModified = default(System.DateTime?), System.DateTime? creationTime = default(System.DateTime?), PoolProvisioningState? provisioningState = default(PoolProvisioningState?), System.DateTime? provisioningStateTransitionTime = default(System.DateTime?), System.DateTime? allocationStateTransitionTime = default(System.DateTime?), string vmSize = default(string), int? currentDedicatedNodes = default(int?), int? currentLowPriorityNodes = default(int?), AutoScaleRun autoScaleRun = default(AutoScaleRun), InterNodeCommunicationState? interNodeCommunication = default(InterNodeCommunicationState?), int? taskSlotsPerNode = default(int?), TaskSchedulingPolicy taskSchedulingPolicy = default(TaskSchedulingPolicy), System.Collections.Generic.IList userAccounts = default(System.Collections.Generic.IList), System.Collections.Generic.IList metadata = default(System.Collections.Generic.IList), System.Collections.Generic.IList certificates = default(System.Collections.Generic.IList), System.Collections.Generic.IList applicationPackages = default(System.Collections.Generic.IList), System.Collections.Generic.IList applicationLicenses = default(System.Collections.Generic.IList), ResizeOperationStatus resizeOperationStatus = default(ResizeOperationStatus), System.Collections.Generic.IList mountConfiguration = default(System.Collections.Generic.IList), NodeCommunicationMode? targetNodeCommunicationMode = default(NodeCommunicationMode?), NodeCommunicationMode? currentNodeCommunicationMode = default(NodeCommunicationMode?)) - /// 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'. - /// - public Pool(string id = default(string), string name = default(string), string type = default(string), string etag = default(string), System.Collections.Generic.IDictionary tags = default(System.Collections.Generic.IDictionary), BatchPoolIdentity identity = default(BatchPoolIdentity), AllocationState? allocationState = default(AllocationState?), DeploymentConfiguration deploymentConfiguration = default(DeploymentConfiguration), ScaleSettings scaleSettings = default(ScaleSettings), NetworkConfiguration networkConfiguration = default(NetworkConfiguration), StartTask startTask = default(StartTask), UpgradePolicy upgradePolicy = default(UpgradePolicy), string displayName = default(string), System.DateTime? lastModified = default(System.DateTime?), System.DateTime? creationTime = default(System.DateTime?), PoolProvisioningState? provisioningState = default(PoolProvisioningState?), System.DateTime? provisioningStateTransitionTime = default(System.DateTime?), System.DateTime? allocationStateTransitionTime = default(System.DateTime?), string vmSize = default(string), int? currentDedicatedNodes = default(int?), int? currentLowPriorityNodes = default(int?), AutoScaleRun autoScaleRun = default(AutoScaleRun), InterNodeCommunicationState? interNodeCommunication = default(InterNodeCommunicationState?), int? taskSlotsPerNode = default(int?), TaskSchedulingPolicy taskSchedulingPolicy = default(TaskSchedulingPolicy), System.Collections.Generic.IList userAccounts = default(System.Collections.Generic.IList), System.Collections.Generic.IList metadata = default(System.Collections.Generic.IList), System.Collections.Generic.IList certificates = default(System.Collections.Generic.IList), System.Collections.Generic.IList applicationPackages = default(System.Collections.Generic.IList), System.Collections.Generic.IList applicationLicenses = default(System.Collections.Generic.IList), ResizeOperationStatus resizeOperationStatus = default(ResizeOperationStatus), System.Collections.Generic.IList mountConfiguration = default(System.Collections.Generic.IList), NodeCommunicationMode? targetNodeCommunicationMode = default(NodeCommunicationMode?), NodeCommunicationMode? currentNodeCommunicationMode = default(NodeCommunicationMode?), System.Collections.Generic.IDictionary resourceTags = default(System.Collections.Generic.IDictionary)) - - : base(id, name, type, etag, tags) + : base(id, name, type, etag) { this.Identity = identity; this.AllocationState = allocationState; @@ -178,7 +176,6 @@ public Pool() this.ScaleSettings = scaleSettings; this.NetworkConfiguration = networkConfiguration; this.StartTask = startTask; - this.UpgradePolicy = upgradePolicy; this.DisplayName = displayName; this.LastModified = lastModified; this.CreationTime = creationTime; @@ -201,7 +198,6 @@ public Pool() this.MountConfiguration = mountConfiguration; this.TargetNodeCommunicationMode = targetNodeCommunicationMode; this.CurrentNodeCommunicationMode = currentNodeCommunicationMode; - this.ResourceTags = resourceTags; CustomInit(); } @@ -224,7 +220,9 @@ public Pool() public AllocationState? AllocationState {get; private set; } /// - /// Gets or sets deployment configuration properties. + /// Gets or sets using CloudServiceConfiguration specifies that the nodes + /// should be creating using Azure Cloud Services (PaaS), while + /// VirtualMachineConfiguration uses Azure Virtual Machines (IaaS). /// [Newtonsoft.Json.JsonProperty(PropertyName = "properties.deploymentConfiguration")] public DeploymentConfiguration DeploymentConfiguration {get; set; } @@ -252,12 +250,6 @@ public Pool() [Newtonsoft.Json.JsonProperty(PropertyName = "properties.startTask")] public StartTask StartTask {get; set; } - /// - /// Gets or sets describes an upgrade policy - automatic, manual, or rolling. - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "properties.upgradePolicy")] - public UpgradePolicy UpgradePolicy {get; set; } - /// /// Gets or sets the display name need not be unique and can contain any /// Unicode characters up to a maximum length of 1024. @@ -298,10 +290,18 @@ public Pool() public System.DateTime? AllocationStateTransitionTime {get; private set; } /// - /// Gets or sets 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 + /// Gets or sets for information about available sizes of virtual machines for + /// Cloud Services pools (pools created with cloudServiceConfiguration), see + /// Sizes for Cloud Services + /// (https://azure.microsoft.com/documentation/articles/cloud-services-sizes-specs/). + /// Batch supports all Cloud Services VM sizes except ExtraSmall. For + /// information about available VM sizes for pools using images from the + /// Virtual Machines Marketplace (pools created with + /// virtualMachineConfiguration) see Sizes for Virtual Machines (Linux) + /// (https://azure.microsoft.com/documentation/articles/virtual-machines-linux-sizes/) + /// or Sizes for Virtual Machines (Windows) + /// (https://azure.microsoft.com/documentation/articles/virtual-machines-windows-sizes/). + /// Batch supports all Azure VM sizes except STANDARD_A0 and those with premium /// storage (STANDARD_GS, STANDARD_DS, and STANDARD_DSV2 series). /// [Newtonsoft.Json.JsonProperty(PropertyName = "properties.vmSize")] @@ -421,16 +421,6 @@ public Pool() /// [Newtonsoft.Json.JsonProperty(PropertyName = "properties.currentNodeCommunicationMode")] public NodeCommunicationMode? CurrentNodeCommunicationMode {get; private set; } - - /// - /// Gets or sets 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'. - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "properties.resourceTags")] - public System.Collections.Generic.IDictionary ResourceTags {get; set; } /// /// Validate the object. /// @@ -460,10 +450,6 @@ public virtual void Validate() { this.StartTask.Validate(); } - if (this.UpgradePolicy != null) - { - this.UpgradePolicy.Validate(); - } @@ -530,7 +516,6 @@ public virtual void Validate() } - } } } \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/PoolProperties.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/PoolProperties.cs index 7d21554e9bc7..ca5e18f1baa5 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/PoolProperties.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/PoolProperties.cs @@ -48,13 +48,24 @@ public PoolProperties() /// The time at which the pool entered its current allocation state. /// - /// For information about available VM sizes, see Sizes for Virtual Machines in - /// Azure (https://learn.microsoft.com/azure/virtual-machines/sizes/overview). + /// For information about available sizes of virtual machines for Cloud + /// Services pools (pools created with cloudServiceConfiguration), see Sizes + /// for Cloud Services + /// (https://azure.microsoft.com/documentation/articles/cloud-services-sizes-specs/). + /// Batch supports all Cloud Services VM sizes except ExtraSmall. For + /// information about available VM sizes for pools using images from the + /// Virtual Machines Marketplace (pools created with + /// virtualMachineConfiguration) see Sizes for Virtual Machines (Linux) + /// (https://azure.microsoft.com/documentation/articles/virtual-machines-linux-sizes/) + /// or Sizes for Virtual Machines (Windows) + /// (https://azure.microsoft.com/documentation/articles/virtual-machines-windows-sizes/). /// Batch supports all Azure VM sizes except STANDARD_A0 and those with premium /// storage (STANDARD_GS, STANDARD_DS, and STANDARD_DSV2 series). /// - /// Deployment configuration properties. + /// Using CloudServiceConfiguration specifies that the nodes should be creating + /// using Azure Cloud Services (PaaS), while VirtualMachineConfiguration uses + /// Azure Virtual Machines (IaaS). /// /// The number of dedicated compute nodes currently in the pool. @@ -139,17 +150,7 @@ public PoolProperties() /// Determines how a pool communicates with the Batch service. /// Possible values include: 'Default', 'Classic', 'Simplified' - - /// Describes an upgrade policy - automatic, manual, or rolling. - /// - - /// 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'. - /// - public PoolProperties(string displayName = default(string), System.DateTime? lastModified = default(System.DateTime?), System.DateTime? creationTime = default(System.DateTime?), PoolProvisioningState? provisioningState = default(PoolProvisioningState?), System.DateTime? provisioningStateTransitionTime = default(System.DateTime?), AllocationState? allocationState = default(AllocationState?), System.DateTime? allocationStateTransitionTime = default(System.DateTime?), string vmSize = default(string), DeploymentConfiguration deploymentConfiguration = default(DeploymentConfiguration), int? currentDedicatedNodes = default(int?), int? currentLowPriorityNodes = default(int?), ScaleSettings scaleSettings = default(ScaleSettings), AutoScaleRun autoScaleRun = default(AutoScaleRun), InterNodeCommunicationState? interNodeCommunication = default(InterNodeCommunicationState?), NetworkConfiguration networkConfiguration = default(NetworkConfiguration), int? taskSlotsPerNode = default(int?), TaskSchedulingPolicy taskSchedulingPolicy = default(TaskSchedulingPolicy), System.Collections.Generic.IList userAccounts = default(System.Collections.Generic.IList), System.Collections.Generic.IList metadata = default(System.Collections.Generic.IList), StartTask startTask = default(StartTask), System.Collections.Generic.IList certificates = default(System.Collections.Generic.IList), System.Collections.Generic.IList applicationPackages = default(System.Collections.Generic.IList), System.Collections.Generic.IList applicationLicenses = default(System.Collections.Generic.IList), ResizeOperationStatus resizeOperationStatus = default(ResizeOperationStatus), System.Collections.Generic.IList mountConfiguration = default(System.Collections.Generic.IList), NodeCommunicationMode? targetNodeCommunicationMode = default(NodeCommunicationMode?), NodeCommunicationMode? currentNodeCommunicationMode = default(NodeCommunicationMode?), UpgradePolicy upgradePolicy = default(UpgradePolicy), System.Collections.Generic.IDictionary resourceTags = default(System.Collections.Generic.IDictionary)) + public PoolProperties(string displayName = default(string), System.DateTime? lastModified = default(System.DateTime?), System.DateTime? creationTime = default(System.DateTime?), PoolProvisioningState? provisioningState = default(PoolProvisioningState?), System.DateTime? provisioningStateTransitionTime = default(System.DateTime?), AllocationState? allocationState = default(AllocationState?), System.DateTime? allocationStateTransitionTime = default(System.DateTime?), string vmSize = default(string), DeploymentConfiguration deploymentConfiguration = default(DeploymentConfiguration), int? currentDedicatedNodes = default(int?), int? currentLowPriorityNodes = default(int?), ScaleSettings scaleSettings = default(ScaleSettings), AutoScaleRun autoScaleRun = default(AutoScaleRun), InterNodeCommunicationState? interNodeCommunication = default(InterNodeCommunicationState?), NetworkConfiguration networkConfiguration = default(NetworkConfiguration), int? taskSlotsPerNode = default(int?), TaskSchedulingPolicy taskSchedulingPolicy = default(TaskSchedulingPolicy), System.Collections.Generic.IList userAccounts = default(System.Collections.Generic.IList), System.Collections.Generic.IList metadata = default(System.Collections.Generic.IList), StartTask startTask = default(StartTask), System.Collections.Generic.IList certificates = default(System.Collections.Generic.IList), System.Collections.Generic.IList applicationPackages = default(System.Collections.Generic.IList), System.Collections.Generic.IList applicationLicenses = default(System.Collections.Generic.IList), ResizeOperationStatus resizeOperationStatus = default(ResizeOperationStatus), System.Collections.Generic.IList mountConfiguration = default(System.Collections.Generic.IList), NodeCommunicationMode? targetNodeCommunicationMode = default(NodeCommunicationMode?), NodeCommunicationMode? currentNodeCommunicationMode = default(NodeCommunicationMode?)) { this.DisplayName = displayName; @@ -179,8 +180,6 @@ public PoolProperties() this.MountConfiguration = mountConfiguration; this.TargetNodeCommunicationMode = targetNodeCommunicationMode; this.CurrentNodeCommunicationMode = currentNodeCommunicationMode; - this.UpgradePolicy = upgradePolicy; - this.ResourceTags = resourceTags; CustomInit(); } @@ -236,17 +235,27 @@ public PoolProperties() public System.DateTime? AllocationStateTransitionTime {get; private set; } /// - /// Gets or sets 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 + /// Gets or sets for information about available sizes of virtual machines for + /// Cloud Services pools (pools created with cloudServiceConfiguration), see + /// Sizes for Cloud Services + /// (https://azure.microsoft.com/documentation/articles/cloud-services-sizes-specs/). + /// Batch supports all Cloud Services VM sizes except ExtraSmall. For + /// information about available VM sizes for pools using images from the + /// Virtual Machines Marketplace (pools created with + /// virtualMachineConfiguration) see Sizes for Virtual Machines (Linux) + /// (https://azure.microsoft.com/documentation/articles/virtual-machines-linux-sizes/) + /// or Sizes for Virtual Machines (Windows) + /// (https://azure.microsoft.com/documentation/articles/virtual-machines-windows-sizes/). + /// Batch supports all Azure VM sizes except STANDARD_A0 and those with premium /// storage (STANDARD_GS, STANDARD_DS, and STANDARD_DSV2 series). /// [Newtonsoft.Json.JsonProperty(PropertyName = "vmSize")] public string VMSize {get; set; } /// - /// Gets or sets deployment configuration properties. + /// Gets or sets using CloudServiceConfiguration specifies that the nodes + /// should be creating using Azure Cloud Services (PaaS), while + /// VirtualMachineConfiguration uses Azure Virtual Machines (IaaS). /// [Newtonsoft.Json.JsonProperty(PropertyName = "deploymentConfiguration")] public DeploymentConfiguration DeploymentConfiguration {get; set; } @@ -388,22 +397,6 @@ public PoolProperties() /// [Newtonsoft.Json.JsonProperty(PropertyName = "currentNodeCommunicationMode")] public NodeCommunicationMode? CurrentNodeCommunicationMode {get; private set; } - - /// - /// Gets or sets describes an upgrade policy - automatic, manual, or rolling. - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "upgradePolicy")] - public UpgradePolicy UpgradePolicy {get; set; } - - /// - /// Gets or sets 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'. - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "resourceTags")] - public System.Collections.Generic.IDictionary ResourceTags {get; set; } /// /// Validate the object. /// @@ -495,11 +488,6 @@ public virtual void Validate() } - if (this.UpgradePolicy != null) - { - this.UpgradePolicy.Validate(); - } - } } } \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/PrivateEndpointConnection.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/PrivateEndpointConnection.cs index 5577ba145701..4d64a0b175fd 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/PrivateEndpointConnection.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/PrivateEndpointConnection.cs @@ -11,7 +11,7 @@ namespace Microsoft.Azure.Management.Batch.Models /// Contains information about a private link resource. /// [Microsoft.Rest.Serialization.JsonTransformation] - public partial class PrivateEndpointConnection : AzureProxyResource + public partial class PrivateEndpointConnection : ProxyResource { /// /// Initializes a new instance of the PrivateEndpointConnection class. @@ -37,9 +37,6 @@ public PrivateEndpointConnection() /// The ETag of the resource, used for concurrency statements. /// - /// The tags of the resource. - /// - /// The private endpoint of the private endpoint connection. /// @@ -53,9 +50,9 @@ public PrivateEndpointConnection() /// The private link service connection state of the private endpoint /// connection /// - public PrivateEndpointConnection(string id = default(string), string name = default(string), string type = default(string), string etag = default(string), System.Collections.Generic.IDictionary tags = default(System.Collections.Generic.IDictionary), PrivateEndpoint privateEndpoint = default(PrivateEndpoint), PrivateEndpointConnectionProvisioningState provisioningState = default(PrivateEndpointConnectionProvisioningState), System.Collections.Generic.IList groupIds = default(System.Collections.Generic.IList), PrivateLinkServiceConnectionState privateLinkServiceConnectionState = default(PrivateLinkServiceConnectionState)) + public PrivateEndpointConnection(string id = default(string), string name = default(string), string type = default(string), string etag = default(string), PrivateEndpoint privateEndpoint = default(PrivateEndpoint), PrivateEndpointConnectionProvisioningState provisioningState = default(PrivateEndpointConnectionProvisioningState), System.Collections.Generic.IList groupIds = default(System.Collections.Generic.IList), PrivateLinkServiceConnectionState privateLinkServiceConnectionState = default(PrivateLinkServiceConnectionState)) - : base(id, name, type, etag, tags) + : base(id, name, type, etag) { this.PrivateEndpoint = privateEndpoint; this.ProvisioningState = provisioningState; diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/PrivateLinkResource.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/PrivateLinkResource.cs index 4a98efcdd566..d4a5fd1a64fc 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/PrivateLinkResource.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/PrivateLinkResource.cs @@ -11,7 +11,7 @@ namespace Microsoft.Azure.Management.Batch.Models /// Contains information about a private link resource. /// [Microsoft.Rest.Serialization.JsonTransformation] - public partial class PrivateLinkResource : AzureProxyResource + public partial class PrivateLinkResource : ProxyResource { /// /// Initializes a new instance of the PrivateLinkResource class. @@ -37,9 +37,6 @@ public PrivateLinkResource() /// The ETag of the resource, used for concurrency statements. /// - /// The tags of the resource. - /// - /// The group id is used to establish the private link connection. /// @@ -49,9 +46,9 @@ public PrivateLinkResource() /// The list of required zone names for the private DNS resource name /// - public PrivateLinkResource(string id = default(string), string name = default(string), string type = default(string), string etag = default(string), System.Collections.Generic.IDictionary tags = default(System.Collections.Generic.IDictionary), string groupId = default(string), System.Collections.Generic.IList requiredMembers = default(System.Collections.Generic.IList), System.Collections.Generic.IList requiredZoneNames = default(System.Collections.Generic.IList)) + public PrivateLinkResource(string id = default(string), string name = default(string), string type = default(string), string etag = default(string), string groupId = default(string), System.Collections.Generic.IList requiredMembers = default(System.Collections.Generic.IList), System.Collections.Generic.IList requiredZoneNames = default(System.Collections.Generic.IList)) - : base(id, name, type, etag, tags) + : base(id, name, type, etag) { this.GroupId = groupId; this.RequiredMembers = requiredMembers; diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/ProvisioningIssue.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/ProvisioningIssue.cs deleted file mode 100644 index 6b2df0c005d2..000000000000 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/ProvisioningIssue.cs +++ /dev/null @@ -1,67 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for license information. -// Code generated by Microsoft (R) AutoRest Code Generator. -// Changes may cause incorrect behavior and will be lost if the code is regenerated. - -namespace Microsoft.Azure.Management.Batch.Models -{ - using System.Linq; - - /// - /// Describes a provisioning issue for a network security perimeter - /// configuration - /// - public partial class ProvisioningIssue - { - /// - /// Initializes a new instance of the ProvisioningIssue class. - /// - public ProvisioningIssue() - { - CustomInit(); - } - - /// - /// Initializes a new instance of the ProvisioningIssue class. - /// - - /// Name of the issue - /// - - /// Details of a provisioning issue for a network security perimeter (NSP) - /// configuration. Resource providers should generate separate provisioning - /// issue elements for each separate issue detected, and include a meaningful - /// and distinctive description, as well as any appropriate - /// suggestedResourceIds and suggestedAccessRules - /// - public ProvisioningIssue(string name = default(string), ProvisioningIssueProperties properties = default(ProvisioningIssueProperties)) - - { - this.Name = name; - this.Properties = properties; - CustomInit(); - } - - /// - /// An initialization method that performs custom operations like setting defaults - /// - partial void CustomInit(); - - - /// - /// Gets name of the issue - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "name")] - public string Name {get; private set; } - - /// - /// Gets details of a provisioning issue for a network security perimeter (NSP) - /// configuration. Resource providers should generate separate provisioning - /// issue elements for each separate issue detected, and include a meaningful - /// and distinctive description, as well as any appropriate - /// suggestedResourceIds and suggestedAccessRules - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "properties")] - public ProvisioningIssueProperties Properties {get; private set; } - } -} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/ProvisioningIssueProperties.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/ProvisioningIssueProperties.cs deleted file mode 100644 index f488d64e66f7..000000000000 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/ProvisioningIssueProperties.cs +++ /dev/null @@ -1,97 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for license information. -// Code generated by Microsoft (R) AutoRest Code Generator. -// Changes may cause incorrect behavior and will be lost if the code is regenerated. - -namespace Microsoft.Azure.Management.Batch.Models -{ - using System.Linq; - - /// - /// Details of a provisioning issue for a network security perimeter (NSP) - /// configuration. Resource providers should generate separate provisioning - /// issue elements for each separate issue detected, and include a meaningful - /// and distinctive description, as well as any appropriate - /// suggestedResourceIds and suggestedAccessRules - /// - public partial class ProvisioningIssueProperties - { - /// - /// Initializes a new instance of the ProvisioningIssueProperties class. - /// - public ProvisioningIssueProperties() - { - CustomInit(); - } - - /// - /// Initializes a new instance of the ProvisioningIssueProperties class. - /// - - /// Type of issue - /// Possible values include: 'Unknown', 'ConfigurationPropagationFailure', - /// 'MissingPerimeterConfiguration', 'MissingIdentityConfiguration' - - /// Severity of the issue. - /// Possible values include: 'Warning', 'Error' - - /// Description of the issue - /// - - /// Fully qualified resource IDs of suggested resources that can be associated - /// to the network security perimeter (NSP) to remediate the issue. - /// - - /// Access rules that can be added to the network security profile (NSP) to - /// remediate the issue. - /// - public ProvisioningIssueProperties(string issueType = default(string), string severity = default(string), string description = default(string), System.Collections.Generic.IList suggestedResourceIds = default(System.Collections.Generic.IList), System.Collections.Generic.IList suggestedAccessRules = default(System.Collections.Generic.IList)) - - { - this.IssueType = issueType; - this.Severity = severity; - this.Description = description; - this.SuggestedResourceIds = suggestedResourceIds; - this.SuggestedAccessRules = suggestedAccessRules; - CustomInit(); - } - - /// - /// An initialization method that performs custom operations like setting defaults - /// - partial void CustomInit(); - - - /// - /// Gets type of issue Possible values include: 'Unknown', 'ConfigurationPropagationFailure', 'MissingPerimeterConfiguration', 'MissingIdentityConfiguration' - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "issueType")] - public string IssueType {get; private set; } - - /// - /// Gets severity of the issue. Possible values include: 'Warning', 'Error' - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "severity")] - public string Severity {get; private set; } - - /// - /// Gets description of the issue - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "description")] - public string Description {get; private set; } - - /// - /// Gets fully qualified resource IDs of suggested resources that can be - /// associated to the network security perimeter (NSP) to remediate the issue. - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "suggestedResourceIds")] - public System.Collections.Generic.IList SuggestedResourceIds {get; private set; } - - /// - /// Gets access rules that can be added to the network security profile (NSP) - /// to remediate the issue. - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "suggestedAccessRules")] - public System.Collections.Generic.IList SuggestedAccessRules {get; private set; } - } -} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/ProxyResource.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/ProxyResource.cs index ab83fa5d6336..e7f09870da88 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/ProxyResource.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/ProxyResource.cs @@ -8,14 +8,9 @@ namespace Microsoft.Azure.Management.Batch.Models using System.Linq; /// - /// The resource model definition for a Azure Resource Manager proxy resource. - /// It will not have tags and a location + /// A definition of an Azure resource. /// - /// - /// The resource model definition for a Azure Resource Manager proxy resource. - /// It will not have tags and a location - /// - public partial class ProxyResource : Resource + public partial class ProxyResource : Microsoft.Rest.Azure.IResource { /// /// Initializes a new instance of the ProxyResource class. @@ -29,24 +24,24 @@ public ProxyResource() /// Initializes a new instance of the ProxyResource class. /// - /// Fully qualified resource ID for the resource. E.g. - /// "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}" + /// The ID of the resource. /// - /// The name of the resource + /// The name of the resource. /// - /// The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or - /// "Microsoft.Storage/storageAccounts" + /// The type of the resource. /// - /// Azure Resource Manager metadata containing createdBy and modifiedBy - /// information. + /// The ETag of the resource, used for concurrency statements. /// - public ProxyResource(string id = default(string), string name = default(string), string type = default(string), SystemData systemData = default(SystemData)) + public ProxyResource(string id = default(string), string name = default(string), string type = default(string), string etag = default(string)) - : base(id, name, type, systemData) { + this.Id = id; + this.Name = name; + this.Type = type; + this.Etag = etag; CustomInit(); } @@ -55,5 +50,29 @@ public ProxyResource() /// partial void CustomInit(); + + /// + /// Gets the ID of the resource. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "id")] + public string Id {get; private set; } + + /// + /// Gets the name of the resource. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "name")] + public string Name {get; private set; } + + /// + /// Gets the type of the resource. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "type")] + public string Type {get; private set; } + + /// + /// Gets the ETag of the resource, used for concurrency statements. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "etag")] + public string Etag {get; private set; } } } \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/PublicNetworkAccessType.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/PublicNetworkAccessType.cs index 6a9b3b1839c8..b5ad2a4843e6 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/PublicNetworkAccessType.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/PublicNetworkAccessType.cs @@ -24,12 +24,7 @@ public enum PublicNetworkAccessType /// Batch Service through private endpoint resource. /// [System.Runtime.Serialization.EnumMember(Value = "Disabled")] - Disabled, - /// - /// Secures connectivity to Azure Batch through NSP configuration. - /// - [System.Runtime.Serialization.EnumMember(Value = "SecuredByPerimeter")] - SecuredByPerimeter + Disabled } internal static class PublicNetworkAccessTypeEnumExtension { @@ -45,8 +40,6 @@ internal static string ToSerializedValue(this PublicNetworkAccessType value) return "Enabled"; case PublicNetworkAccessType.Disabled: return "Disabled"; - case PublicNetworkAccessType.SecuredByPerimeter: - return "SecuredByPerimeter"; } return null; } @@ -58,8 +51,6 @@ internal static string ToSerializedValue(this PublicNetworkAccessType value) return PublicNetworkAccessType.Enabled; case "Disabled": return PublicNetworkAccessType.Disabled; - case "SecuredByPerimeter": - return PublicNetworkAccessType.SecuredByPerimeter; } return null; } diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/Resource.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/Resource.cs index 180289d8e4f4..25175ff79f3c 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/Resource.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/Resource.cs @@ -8,13 +8,8 @@ namespace Microsoft.Azure.Management.Batch.Models using System.Linq; /// - /// Common fields that are returned in the response for all Azure Resource - /// Manager resources + /// A definition of an Azure resource. /// - /// - /// Common fields that are returned in the response for all Azure Resource - /// Manager resources - /// public partial class Resource : Microsoft.Rest.Azure.IResource { /// @@ -29,27 +24,28 @@ public Resource() /// Initializes a new instance of the Resource class. /// - /// Fully qualified resource ID for the resource. E.g. - /// "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}" + /// The ID of the resource. /// - /// The name of the resource + /// The name of the resource. /// - /// The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or - /// "Microsoft.Storage/storageAccounts" + /// The type of the resource. /// - /// Azure Resource Manager metadata containing createdBy and modifiedBy - /// information. + /// The location of the resource. /// - public Resource(string id = default(string), string name = default(string), string type = default(string), SystemData systemData = default(SystemData)) + + /// The tags of the resource. + /// + public Resource(string id = default(string), string name = default(string), string type = default(string), string location = default(string), System.Collections.Generic.IDictionary tags = default(System.Collections.Generic.IDictionary)) { this.Id = id; this.Name = name; this.Type = type; - this.SystemData = systemData; + this.Location = location; + this.Tags = tags; CustomInit(); } @@ -60,30 +56,33 @@ public Resource() /// - /// Gets fully qualified resource ID for the resource. E.g. - /// "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}" + /// Gets the ID of the resource. /// [Newtonsoft.Json.JsonProperty(PropertyName = "id")] public string Id {get; private set; } /// - /// Gets the name of the resource + /// Gets the name of the resource. /// [Newtonsoft.Json.JsonProperty(PropertyName = "name")] public string Name {get; private set; } /// - /// Gets the type of the resource. E.g. "Microsoft.Compute/virtualMachines" or - /// "Microsoft.Storage/storageAccounts" + /// Gets the type of the resource. /// [Newtonsoft.Json.JsonProperty(PropertyName = "type")] public string Type {get; private set; } /// - /// Gets azure Resource Manager metadata containing createdBy and modifiedBy - /// information. + /// Gets the location of the resource. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "location")] + public string Location {get; private set; } + + /// + /// Gets the tags of the resource. /// - [Newtonsoft.Json.JsonProperty(PropertyName = "systemData")] - public SystemData SystemData {get; private set; } + [Newtonsoft.Json.JsonProperty(PropertyName = "tags")] + public System.Collections.Generic.IDictionary Tags {get; private set; } } } \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/ResourceAssociation.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/ResourceAssociation.cs deleted file mode 100644 index 4d4f84be10e9..000000000000 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/ResourceAssociation.cs +++ /dev/null @@ -1,58 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for license information. -// Code generated by Microsoft (R) AutoRest Code Generator. -// Changes may cause incorrect behavior and will be lost if the code is regenerated. - -namespace Microsoft.Azure.Management.Batch.Models -{ - using System.Linq; - - /// - /// Information about resource association - /// - public partial class ResourceAssociation - { - /// - /// Initializes a new instance of the ResourceAssociation class. - /// - public ResourceAssociation() - { - CustomInit(); - } - - /// - /// Initializes a new instance of the ResourceAssociation class. - /// - - /// Name of the resource association - /// - - /// Access mode of the resource association - /// Possible values include: 'Enforced', 'Learning', 'Audit' - public ResourceAssociation(string name = default(string), string accessMode = default(string)) - - { - this.Name = name; - this.AccessMode = accessMode; - CustomInit(); - } - - /// - /// An initialization method that performs custom operations like setting defaults - /// - partial void CustomInit(); - - - /// - /// Gets or sets name of the resource association - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "name")] - public string Name {get; set; } - - /// - /// Gets or sets access mode of the resource association Possible values include: 'Enforced', 'Learning', 'Audit' - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "accessMode")] - public string AccessMode {get; set; } - } -} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/ResourceAssociationAccessMode.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/ResourceAssociationAccessMode.cs deleted file mode 100644 index e907269f6851..000000000000 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/ResourceAssociationAccessMode.cs +++ /dev/null @@ -1,32 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for license information. -// Code generated by Microsoft (R) AutoRest Code Generator. -// Changes may cause incorrect behavior and will be lost if the code is regenerated. - -namespace Microsoft.Azure.Management.Batch.Models -{ - - /// - /// Defines values for ResourceAssociationAccessMode. - /// - - - public static class ResourceAssociationAccessMode - { - /// - /// Enforced access mode - traffic to the resource that failed access checks is - /// blocked - /// - public const string Enforced = "Enforced"; - /// - /// Learning access mode - traffic to the resource is enabled for analysis but - /// not blocked - /// - public const string Learning = "Learning"; - /// - /// Audit access mode - traffic to the resource that fails access checks is - /// logged but not blocked - /// - public const string Audit = "Audit"; - } -} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/RollingUpgradePolicy.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/RollingUpgradePolicy.cs deleted file mode 100644 index 6bb2529b49b0..000000000000 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/RollingUpgradePolicy.cs +++ /dev/null @@ -1,209 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for license information. -// Code generated by Microsoft (R) AutoRest Code Generator. -// Changes may cause incorrect behavior and will be lost if the code is regenerated. - -namespace Microsoft.Azure.Management.Batch.Models -{ - using System.Linq; - - /// - /// The configuration parameters used while performing a rolling upgrade. - /// - public partial class RollingUpgradePolicy - { - /// - /// Initializes a new instance of the RollingUpgradePolicy class. - /// - public RollingUpgradePolicy() - { - CustomInit(); - } - - /// - /// Initializes a new instance of the RollingUpgradePolicy class. - /// - - /// Allow VMSS to ignore AZ boundaries when constructing upgrade batches. Take - /// into consideration the Update Domain and maxBatchInstancePercent to - /// determine the batch size. If this field is not set, Azure Azure Batch will - /// not set its default value. The value of enableCrossZoneUpgrade on the - /// created VirtualMachineScaleSet will be decided by the default - /// configurations on VirtualMachineScaleSet. This field is able to be set to - /// true or false only when using NodePlacementConfiguration as Zonal. - /// - - /// The maximum percent of total virtual machine instances that will be - /// upgraded simultaneously by the rolling upgrade in one batch. As this is a - /// maximum, unhealthy instances in previous or future batches can cause the - /// percentage of instances in a batch to decrease to ensure higher - /// reliability. The value of this field should be between 5 and 100, - /// inclusive. If both maxBatchInstancePercent and maxUnhealthyInstancePercent - /// are assigned with value, the value of maxBatchInstancePercent should not be - /// more than maxUnhealthyInstancePercent. - /// - - /// The maximum percentage of the total virtual machine instances in the scale - /// set that can be simultaneously unhealthy, either as a result of being - /// upgraded, or by being found in an unhealthy state by the virtual machine - /// health checks before the rolling upgrade aborts. This constraint will be - /// checked prior to starting any batch. The value of this field should be - /// between 5 and 100, inclusive. If both maxBatchInstancePercent and - /// maxUnhealthyInstancePercent are assigned with value, the value of - /// maxBatchInstancePercent should not be more than - /// maxUnhealthyInstancePercent. - /// - - /// The maximum percentage of upgraded virtual machine instances that can be - /// found to be in an unhealthy state. This check will happen after each batch - /// is upgraded. If this percentage is ever exceeded, the rolling update - /// aborts. The value of this field should be between 0 and 100, inclusive. - /// - - /// The wait time between completing the update for all virtual machines in one - /// batch and starting the next batch. The time duration should be specified in - /// ISO 8601 format. - /// - - /// Upgrade all unhealthy instances in a scale set before any healthy - /// instances. - /// - - /// Rollback failed instances to previous model if the Rolling Upgrade policy - /// is violated. - /// - public RollingUpgradePolicy(bool? enableCrossZoneUpgrade = default(bool?), int? maxBatchInstancePercent = default(int?), int? maxUnhealthyInstancePercent = default(int?), int? maxUnhealthyUpgradedInstancePercent = default(int?), string pauseTimeBetweenBatches = default(string), bool? prioritizeUnhealthyInstances = default(bool?), bool? rollbackFailedInstancesOnPolicyBreach = default(bool?)) - - { - this.EnableCrossZoneUpgrade = enableCrossZoneUpgrade; - this.MaxBatchInstancePercent = maxBatchInstancePercent; - this.MaxUnhealthyInstancePercent = maxUnhealthyInstancePercent; - this.MaxUnhealthyUpgradedInstancePercent = maxUnhealthyUpgradedInstancePercent; - this.PauseTimeBetweenBatches = pauseTimeBetweenBatches; - this.PrioritizeUnhealthyInstances = prioritizeUnhealthyInstances; - this.RollbackFailedInstancesOnPolicyBreach = rollbackFailedInstancesOnPolicyBreach; - CustomInit(); - } - - /// - /// An initialization method that performs custom operations like setting defaults - /// - partial void CustomInit(); - - - /// - /// Gets or sets allow VMSS to ignore AZ boundaries when constructing upgrade - /// batches. Take into consideration the Update Domain and - /// maxBatchInstancePercent to determine the batch size. If this field is not - /// set, Azure Azure Batch will not set its default value. The value of - /// enableCrossZoneUpgrade on the created VirtualMachineScaleSet will be - /// decided by the default configurations on VirtualMachineScaleSet. This field - /// is able to be set to true or false only when using - /// NodePlacementConfiguration as Zonal. - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "enableCrossZoneUpgrade")] - public bool? EnableCrossZoneUpgrade {get; set; } - - /// - /// Gets or sets the maximum percent of total virtual machine instances that - /// will be upgraded simultaneously by the rolling upgrade in one batch. As - /// this is a maximum, unhealthy instances in previous or future batches can - /// cause the percentage of instances in a batch to decrease to ensure higher - /// reliability. The value of this field should be between 5 and 100, - /// inclusive. If both maxBatchInstancePercent and maxUnhealthyInstancePercent - /// are assigned with value, the value of maxBatchInstancePercent should not be - /// more than maxUnhealthyInstancePercent. - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "maxBatchInstancePercent")] - public int? MaxBatchInstancePercent {get; set; } - - /// - /// Gets or sets the maximum percentage of the total virtual machine instances - /// in the scale set that can be simultaneously unhealthy, either as a result - /// of being upgraded, or by being found in an unhealthy state by the virtual - /// machine health checks before the rolling upgrade aborts. This constraint - /// will be checked prior to starting any batch. The value of this field should - /// be between 5 and 100, inclusive. If both maxBatchInstancePercent and - /// maxUnhealthyInstancePercent are assigned with value, the value of - /// maxBatchInstancePercent should not be more than - /// maxUnhealthyInstancePercent. - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "maxUnhealthyInstancePercent")] - public int? MaxUnhealthyInstancePercent {get; set; } - - /// - /// Gets or sets the maximum percentage of upgraded virtual machine instances - /// that can be found to be in an unhealthy state. This check will happen after - /// each batch is upgraded. If this percentage is ever exceeded, the rolling - /// update aborts. The value of this field should be between 0 and 100, - /// inclusive. - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "maxUnhealthyUpgradedInstancePercent")] - public int? MaxUnhealthyUpgradedInstancePercent {get; set; } - - /// - /// Gets or sets the wait time between completing the update for all virtual - /// machines in one batch and starting the next batch. The time duration should - /// be specified in ISO 8601 format. - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "pauseTimeBetweenBatches")] - public string PauseTimeBetweenBatches {get; set; } - - /// - /// Gets or sets upgrade all unhealthy instances in a scale set before any - /// healthy instances. - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "prioritizeUnhealthyInstances")] - public bool? PrioritizeUnhealthyInstances {get; set; } - - /// - /// Gets or sets rollback failed instances to previous model if the Rolling - /// Upgrade policy is violated. - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "rollbackFailedInstancesOnPolicyBreach")] - public bool? RollbackFailedInstancesOnPolicyBreach {get; set; } - /// - /// Validate the object. - /// - /// - /// Thrown if validation fails - /// - public virtual void Validate() - { - if (this.MaxBatchInstancePercent != null) - { - if (this.MaxBatchInstancePercent > 100) - { - throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.InclusiveMaximum, "MaxBatchInstancePercent", 100); - } - if (this.MaxBatchInstancePercent < 5) - { - throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.InclusiveMinimum, "MaxBatchInstancePercent", 5); - } - } - if (this.MaxUnhealthyInstancePercent != null) - { - if (this.MaxUnhealthyInstancePercent > 100) - { - throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.InclusiveMaximum, "MaxUnhealthyInstancePercent", 100); - } - if (this.MaxUnhealthyInstancePercent < 5) - { - throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.InclusiveMinimum, "MaxUnhealthyInstancePercent", 5); - } - } - if (this.MaxUnhealthyUpgradedInstancePercent != null) - { - if (this.MaxUnhealthyUpgradedInstancePercent > 100) - { - throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.InclusiveMaximum, "MaxUnhealthyUpgradedInstancePercent", 100); - } - if (this.MaxUnhealthyUpgradedInstancePercent < 0) - { - throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.InclusiveMinimum, "MaxUnhealthyUpgradedInstancePercent", 0); - } - } - - } - } -} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/SecurityEncryptionTypes.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/SecurityEncryptionTypes.cs deleted file mode 100644 index f0e77ece1f69..000000000000 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/SecurityEncryptionTypes.cs +++ /dev/null @@ -1,19 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for license information. -// Code generated by Microsoft (R) AutoRest Code Generator. -// Changes may cause incorrect behavior and will be lost if the code is regenerated. - -namespace Microsoft.Azure.Management.Batch.Models -{ - - /// - /// Defines values for SecurityEncryptionTypes. - /// - - - public static class SecurityEncryptionTypes - { - public const string NonPersistedTPM = "NonPersistedTPM"; - public const string VMGuestStateOnly = "VMGuestStateOnly"; - } -} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/SecurityProfile.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/SecurityProfile.cs deleted file mode 100644 index 682fb4443df2..000000000000 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/SecurityProfile.cs +++ /dev/null @@ -1,79 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for license information. -// Code generated by Microsoft (R) AutoRest Code Generator. -// Changes may cause incorrect behavior and will be lost if the code is regenerated. - -namespace Microsoft.Azure.Management.Batch.Models -{ - using System.Linq; - - /// - /// Specifies the security profile settings for the virtual machine or virtual - /// machine scale set. - /// - public partial class SecurityProfile - { - /// - /// Initializes a new instance of the SecurityProfile class. - /// - public SecurityProfile() - { - CustomInit(); - } - - /// - /// Initializes a new instance of the SecurityProfile class. - /// - - /// Specifies the SecurityType of the virtual machine. It has to be set to any - /// specified value to enable UefiSettings. - /// Possible values include: 'trustedLaunch', 'confidentialVM' - - /// 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. - /// - - /// Specifies the security settings like secure boot and vTPM used while - /// creating the virtual machine. - /// - public SecurityProfile(SecurityTypes? securityType = default(SecurityTypes?), bool? encryptionAtHost = default(bool?), UefiSettings uefiSettings = default(UefiSettings)) - - { - this.SecurityType = securityType; - this.EncryptionAtHost = encryptionAtHost; - this.UefiSettings = uefiSettings; - CustomInit(); - } - - /// - /// An initialization method that performs custom operations like setting defaults - /// - partial void CustomInit(); - - - /// - /// Gets or sets specifies the SecurityType of the virtual machine. It has to - /// be set to any specified value to enable UefiSettings. Possible values include: 'trustedLaunch', 'confidentialVM' - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "securityType")] - public SecurityTypes? SecurityType {get; set; } - - /// - /// Gets or sets 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. - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "encryptionAtHost")] - public bool? EncryptionAtHost {get; set; } - - /// - /// Gets or sets specifies the security settings like secure boot and vTPM used - /// while creating the virtual machine. - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "uefiSettings")] - public UefiSettings UefiSettings {get; set; } - } -} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/SecurityTypes.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/SecurityTypes.cs deleted file mode 100644 index 4e7aad8c9ca1..000000000000 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/SecurityTypes.cs +++ /dev/null @@ -1,61 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for license information. -// Code generated by Microsoft (R) AutoRest Code Generator. -// Changes may cause incorrect behavior and will be lost if the code is regenerated. - -namespace Microsoft.Azure.Management.Batch.Models -{ - - /// - /// Defines values for SecurityTypes. - /// - - - [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.StringEnumConverter))] - public enum SecurityTypes - { - /// - /// Trusted launch protects against advanced and persistent attack techniques. - /// - [System.Runtime.Serialization.EnumMember(Value = "trustedLaunch")] - TrustedLaunch, - /// - /// Azure confidential computing offers confidential VMs are for tenants with - /// high security and confidentiality requirements. These VMs provide a strong, - /// hardware-enforced boundary to help meet your security needs. You can use - /// confidential VMs for migrations without making changes to your code, with - /// the platform protecting your VM's state from being read or modified. - /// - [System.Runtime.Serialization.EnumMember(Value = "confidentialVM")] - ConfidentialVM - } - internal static class SecurityTypesEnumExtension - { - internal static string ToSerializedValue(this SecurityTypes? value) - { - return value == null ? null : ((SecurityTypes)value).ToSerializedValue(); - } - internal static string ToSerializedValue(this SecurityTypes value) - { - switch( value ) - { - case SecurityTypes.TrustedLaunch: - return "trustedLaunch"; - case SecurityTypes.ConfidentialVM: - return "confidentialVM"; - } - return null; - } - internal static SecurityTypes? ParseSecurityTypes(this string value) - { - switch( value ) - { - case "trustedLaunch": - return SecurityTypes.TrustedLaunch; - case "confidentialVM": - return SecurityTypes.ConfidentialVM; - } - return null; - } - } -} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/ServiceArtifactReference.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/ServiceArtifactReference.cs deleted file mode 100644 index f6e8be8b61d1..000000000000 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/ServiceArtifactReference.cs +++ /dev/null @@ -1,66 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for license information. -// Code generated by Microsoft (R) AutoRest Code Generator. -// Changes may cause incorrect behavior and will be lost if the code is regenerated. - -namespace Microsoft.Azure.Management.Batch.Models -{ - using System.Linq; - - /// - /// Specifies the service artifact reference id used to set same image version - /// for all virtual machines in the scale set when using 'latest' image - /// version. - /// - public partial class ServiceArtifactReference - { - /// - /// Initializes a new instance of the ServiceArtifactReference class. - /// - public ServiceArtifactReference() - { - CustomInit(); - } - - /// - /// Initializes a new instance of the ServiceArtifactReference class. - /// - - /// The service artifact reference id in the form of - /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/galleries/{galleryName}/serviceArtifacts/{serviceArtifactName}/vmArtifactsProfiles/{vmArtifactsProfilesName} - /// - public ServiceArtifactReference(string id) - - { - this.Id = id; - CustomInit(); - } - - /// - /// An initialization method that performs custom operations like setting defaults - /// - partial void CustomInit(); - - - /// - /// Gets or sets the service artifact reference id in the form of - /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/galleries/{galleryName}/serviceArtifacts/{serviceArtifactName}/vmArtifactsProfiles/{vmArtifactsProfilesName} - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "id")] - public string Id {get; set; } - /// - /// Validate the object. - /// - /// - /// Thrown if validation fails - /// - public virtual void Validate() - { - if (this.Id == null) - { - throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.CannotBeNull, "Id"); - } - - } - } -} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/Severity.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/Severity.cs deleted file mode 100644 index 30e4a7245e63..000000000000 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/Severity.cs +++ /dev/null @@ -1,19 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for license information. -// Code generated by Microsoft (R) AutoRest Code Generator. -// Changes may cause incorrect behavior and will be lost if the code is regenerated. - -namespace Microsoft.Azure.Management.Batch.Models -{ - - /// - /// Defines values for Severity. - /// - - - public static class Severity - { - public const string Warning = "Warning"; - public const string Error = "Error"; - } -} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/StartTask.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/StartTask.cs index b86056506f62..5190ea77f6c3 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/StartTask.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/StartTask.cs @@ -61,7 +61,7 @@ public StartTask() /// if the maximum retry count is 3, Batch tries the task up to 4 times (one /// initial try and 3 retries). If the maximum retry count is 0, the Batch /// service does not retry the task. If the maximum retry count is -1, the - /// Batch service retries the task without limit. Default is 0 + /// Batch service retries the task without limit. Default is 0. /// /// If true and the start task fails on a compute node, the Batch service @@ -138,7 +138,7 @@ public StartTask() /// example, if the maximum retry count is 3, Batch tries the task up to 4 /// times (one initial try and 3 retries). If the maximum retry count is 0, the /// Batch service does not retry the task. If the maximum retry count is -1, - /// the Batch service retries the task without limit. Default is 0 + /// the Batch service retries the task without limit. Default is 0. /// [Newtonsoft.Json.JsonProperty(PropertyName = "maxTaskRetryCount")] public int? MaxTaskRetryCount {get; set; } diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/StorageAccountType.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/StorageAccountType.cs index eca13e513063..599307db3e5e 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/StorageAccountType.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/StorageAccountType.cs @@ -15,20 +15,15 @@ namespace Microsoft.Azure.Management.Batch.Models public enum StorageAccountType { /// - /// The data disk / OS disk should use standard locally redundant storage. + /// The data disk should use standard locally redundant storage. /// [System.Runtime.Serialization.EnumMember(Value = "Standard_LRS")] StandardLRS, /// - /// The data disk / OS disk should use premium locally redundant storage. + /// The data disk should use premium locally redundant storage. /// [System.Runtime.Serialization.EnumMember(Value = "Premium_LRS")] - PremiumLRS, - /// - /// The data disk / OS disk should use standard SSD locally redundant storage. - /// - [System.Runtime.Serialization.EnumMember(Value = "StandardSSD_LRS")] - StandardSSDLRS + PremiumLRS } internal static class StorageAccountTypeEnumExtension { @@ -44,8 +39,6 @@ internal static string ToSerializedValue(this StorageAccountType value) return "Standard_LRS"; case StorageAccountType.PremiumLRS: return "Premium_LRS"; - case StorageAccountType.StandardSSDLRS: - return "StandardSSD_LRS"; } return null; } @@ -57,8 +50,6 @@ internal static string ToSerializedValue(this StorageAccountType value) return StorageAccountType.StandardLRS; case "Premium_LRS": return StorageAccountType.PremiumLRS; - case "StandardSSD_LRS": - return StorageAccountType.StandardSSDLRS; } return null; } diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/SupportedSku.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/SupportedSku.cs index 44d43e001b00..c93883d4f01f 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/SupportedSku.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/SupportedSku.cs @@ -32,16 +32,12 @@ public SupportedSku() /// A collection of capabilities which this SKU supports. /// - - /// The time when Azure Batch service will retire this SKU. - /// - public SupportedSku(string name = default(string), string familyName = default(string), System.Collections.Generic.IList capabilities = default(System.Collections.Generic.IList), System.DateTime? batchSupportEndOfLife = default(System.DateTime?)) + public SupportedSku(string name = default(string), string familyName = default(string), System.Collections.Generic.IList capabilities = default(System.Collections.Generic.IList)) { this.Name = name; this.FamilyName = familyName; this.Capabilities = capabilities; - this.BatchSupportEndOfLife = batchSupportEndOfLife; CustomInit(); } @@ -68,11 +64,5 @@ public SupportedSku() /// [Newtonsoft.Json.JsonProperty(PropertyName = "capabilities")] public System.Collections.Generic.IList Capabilities {get; private set; } - - /// - /// Gets the time when Azure Batch service will retire this SKU. - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "batchSupportEndOfLife")] - public System.DateTime? BatchSupportEndOfLife {get; private set; } } } \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/SystemData.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/SystemData.cs deleted file mode 100644 index abdbf6e3e228..000000000000 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/SystemData.cs +++ /dev/null @@ -1,98 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for license information. -// Code generated by Microsoft (R) AutoRest Code Generator. -// Changes may cause incorrect behavior and will be lost if the code is regenerated. - -namespace Microsoft.Azure.Management.Batch.Models -{ - using System.Linq; - - /// - /// Metadata pertaining to creation and last modification of the resource. - /// - public partial class SystemData - { - /// - /// Initializes a new instance of the SystemData class. - /// - public SystemData() - { - CustomInit(); - } - - /// - /// Initializes a new instance of the SystemData class. - /// - - /// The identity that created the resource. - /// - - /// The type of identity that created the resource. - /// Possible values include: 'User', 'Application', 'ManagedIdentity', 'Key' - - /// The timestamp of resource creation (UTC). - /// - - /// The identity that last modified the resource. - /// - - /// The type of identity that last modified the resource. - /// Possible values include: 'User', 'Application', 'ManagedIdentity', 'Key' - - /// The timestamp of resource last modification (UTC) - /// - public SystemData(string createdBy = default(string), string createdByType = default(string), System.DateTime? createdAt = default(System.DateTime?), string lastModifiedBy = default(string), string lastModifiedByType = default(string), System.DateTime? lastModifiedAt = default(System.DateTime?)) - - { - this.CreatedBy = createdBy; - this.CreatedByType = createdByType; - this.CreatedAt = createdAt; - this.LastModifiedBy = lastModifiedBy; - this.LastModifiedByType = lastModifiedByType; - this.LastModifiedAt = lastModifiedAt; - CustomInit(); - } - - /// - /// An initialization method that performs custom operations like setting defaults - /// - partial void CustomInit(); - - - /// - /// Gets or sets the identity that created the resource. - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "createdBy")] - public string CreatedBy {get; set; } - - /// - /// Gets or sets the type of identity that created the resource. Possible values include: 'User', 'Application', 'ManagedIdentity', 'Key' - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "createdByType")] - public string CreatedByType {get; set; } - - /// - /// Gets or sets the timestamp of resource creation (UTC). - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "createdAt")] - public System.DateTime? CreatedAt {get; set; } - - /// - /// Gets or sets the identity that last modified the resource. - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "lastModifiedBy")] - public string LastModifiedBy {get; set; } - - /// - /// Gets or sets the type of identity that last modified the resource. Possible values include: 'User', 'Application', 'ManagedIdentity', 'Key' - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "lastModifiedByType")] - public string LastModifiedByType {get; set; } - - /// - /// Gets or sets the timestamp of resource last modification (UTC) - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "lastModifiedAt")] - public System.DateTime? LastModifiedAt {get; set; } - } -} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/TaskContainerSettings.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/TaskContainerSettings.cs index fd90ddbababa..df502c074326 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/TaskContainerSettings.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/TaskContainerSettings.cs @@ -42,19 +42,13 @@ public TaskContainerSettings() /// A flag to indicate where the container task working directory is. The /// default is 'taskWorkingDirectory'. /// Possible values include: 'TaskWorkingDirectory', 'ContainerImageDefault' - - /// If this array is null or be not present, container task will mount entire - /// temporary disk drive in windows (or AZ_BATCH_NODE_ROOT_DIR in Linux). It - /// won't' mount any data paths into container if this array is set as empty. - /// - public TaskContainerSettings(string imageName, string containerRunOptions = default(string), ContainerRegistry registry = default(ContainerRegistry), ContainerWorkingDirectory? workingDirectory = default(ContainerWorkingDirectory?), System.Collections.Generic.IList containerHostBatchBindMounts = default(System.Collections.Generic.IList)) + public TaskContainerSettings(string imageName, string containerRunOptions = default(string), ContainerRegistry registry = default(ContainerRegistry), ContainerWorkingDirectory? workingDirectory = default(ContainerWorkingDirectory?)) { this.ContainerRunOptions = containerRunOptions; this.ImageName = imageName; this.Registry = registry; this.WorkingDirectory = workingDirectory; - this.ContainerHostBatchBindMounts = containerHostBatchBindMounts; CustomInit(); } @@ -93,15 +87,6 @@ public TaskContainerSettings() /// [Newtonsoft.Json.JsonProperty(PropertyName = "workingDirectory")] public ContainerWorkingDirectory? WorkingDirectory {get; set; } - - /// - /// Gets or sets if this array is null or be not present, container task will - /// mount entire temporary disk drive in windows (or AZ_BATCH_NODE_ROOT_DIR in - /// Linux). It won't' mount any data paths into container if this array is set - /// as empty. - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "containerHostBatchBindMounts")] - public System.Collections.Generic.IList ContainerHostBatchBindMounts {get; set; } /// /// Validate the object. /// @@ -118,7 +103,6 @@ public virtual void Validate() - } } } \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/UefiSettings.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/UefiSettings.cs deleted file mode 100644 index cca25ecf040a..000000000000 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/UefiSettings.cs +++ /dev/null @@ -1,61 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for license information. -// Code generated by Microsoft (R) AutoRest Code Generator. -// Changes may cause incorrect behavior and will be lost if the code is regenerated. - -namespace Microsoft.Azure.Management.Batch.Models -{ - using System.Linq; - - /// - /// Specifies the security settings like secure boot and vTPM used while - /// creating the virtual machine. - /// - public partial class UefiSettings - { - /// - /// Initializes a new instance of the UefiSettings class. - /// - public UefiSettings() - { - CustomInit(); - } - - /// - /// Initializes a new instance of the UefiSettings class. - /// - - /// Specifies whether secure boot should be enabled on the virtual machine. - /// - - /// Specifies whether vTPM should be enabled on the virtual machine. - /// - public UefiSettings(bool? secureBootEnabled = default(bool?), bool? vTpmEnabled = default(bool?)) - - { - this.SecureBootEnabled = secureBootEnabled; - this.VTpmEnabled = vTpmEnabled; - CustomInit(); - } - - /// - /// An initialization method that performs custom operations like setting defaults - /// - partial void CustomInit(); - - - /// - /// Gets or sets specifies whether secure boot should be enabled on the virtual - /// machine. - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "secureBootEnabled")] - public bool? SecureBootEnabled {get; set; } - - /// - /// Gets or sets specifies whether vTPM should be enabled on the virtual - /// machine. - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "vTpmEnabled")] - public bool? VTpmEnabled {get; set; } - } -} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/UpgradeMode.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/UpgradeMode.cs deleted file mode 100644 index c1a9ce7f7047..000000000000 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/UpgradeMode.cs +++ /dev/null @@ -1,71 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for license information. -// Code generated by Microsoft (R) AutoRest Code Generator. -// Changes may cause incorrect behavior and will be lost if the code is regenerated. - -namespace Microsoft.Azure.Management.Batch.Models -{ - - /// - /// Defines values for UpgradeMode. - /// - - - [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.StringEnumConverter))] - public enum UpgradeMode - { - /// - /// All virtual machines in the scale set are automatically updated at the same - /// time. - /// - [System.Runtime.Serialization.EnumMember(Value = "automatic")] - Automatic, - /// - /// You control the application of updates to virtual machines in the scale - /// set. You do this by using the manualUpgrade action. - /// - [System.Runtime.Serialization.EnumMember(Value = "manual")] - Manual, - /// - /// The existing instances in a scale set are brought down in batches to be - /// upgraded. Once the upgraded batch is complete, the instances will begin - /// taking traffic again and the next batch will begin. This continues until - /// all instances brought up-to-date. - /// - [System.Runtime.Serialization.EnumMember(Value = "rolling")] - Rolling - } - internal static class UpgradeModeEnumExtension - { - internal static string ToSerializedValue(this UpgradeMode? value) - { - return value == null ? null : ((UpgradeMode)value).ToSerializedValue(); - } - internal static string ToSerializedValue(this UpgradeMode value) - { - switch( value ) - { - case UpgradeMode.Automatic: - return "automatic"; - case UpgradeMode.Manual: - return "manual"; - case UpgradeMode.Rolling: - return "rolling"; - } - return null; - } - internal static UpgradeMode? ParseUpgradeMode(this string value) - { - switch( value ) - { - case "automatic": - return UpgradeMode.Automatic; - case "manual": - return UpgradeMode.Manual; - case "rolling": - return UpgradeMode.Rolling; - } - return null; - } - } -} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/UpgradePolicy.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/UpgradePolicy.cs deleted file mode 100644 index 64855c36ccfe..000000000000 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/UpgradePolicy.cs +++ /dev/null @@ -1,97 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for license information. -// Code generated by Microsoft (R) AutoRest Code Generator. -// Changes may cause incorrect behavior and will be lost if the code is regenerated. - -namespace Microsoft.Azure.Management.Batch.Models -{ - using System.Linq; - - /// - /// Describes an upgrade policy - automatic, manual, or rolling. - /// - public partial class UpgradePolicy - { - /// - /// Initializes a new instance of the UpgradePolicy class. - /// - public UpgradePolicy() - { - CustomInit(); - } - - /// - /// Initializes a new instance of the UpgradePolicy class. - /// - - /// Specifies the mode of an upgrade to virtual machines in the scale set.<br - /// /><br /> Possible values are:<br /><br /> **Manual** - You control the - /// application of updates to virtual machines in the scale set. You do this by - /// using the manualUpgrade action.<br /><br /> **Automatic** - All virtual - /// machines in the scale set are automatically updated at the same time.<br - /// /><br /> **Rolling** - Scale set performs updates in batches with an - /// optional pause time in between. - /// Possible values include: 'automatic', 'manual', 'rolling' - - /// The configuration parameters used for performing automatic OS upgrade. - /// - - /// The configuration parameters used while performing a rolling upgrade. - /// - public UpgradePolicy(UpgradeMode mode, AutomaticOSUpgradePolicy automaticOSUpgradePolicy = default(AutomaticOSUpgradePolicy), RollingUpgradePolicy rollingUpgradePolicy = default(RollingUpgradePolicy)) - - { - this.Mode = mode; - this.AutomaticOSUpgradePolicy = automaticOSUpgradePolicy; - this.RollingUpgradePolicy = rollingUpgradePolicy; - CustomInit(); - } - - /// - /// An initialization method that performs custom operations like setting defaults - /// - partial void CustomInit(); - - - /// - /// Gets or sets specifies the mode of an upgrade to virtual machines in the - /// scale set.<br /><br /> Possible values are:<br /><br /> **Manual** - You - /// control the application of updates to virtual machines in the scale set. - /// You do this by using the manualUpgrade action.<br /><br /> **Automatic** - - /// All virtual machines in the scale set are automatically updated at the same - /// time.<br /><br /> **Rolling** - Scale set performs updates in batches with - /// an optional pause time in between. Possible values include: 'automatic', 'manual', 'rolling' - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "mode")] - public UpgradeMode Mode {get; set; } - - /// - /// Gets or sets the configuration parameters used for performing automatic OS - /// upgrade. - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "automaticOSUpgradePolicy")] - public AutomaticOSUpgradePolicy AutomaticOSUpgradePolicy {get; set; } - - /// - /// Gets or sets the configuration parameters used while performing a rolling - /// upgrade. - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "rollingUpgradePolicy")] - public RollingUpgradePolicy RollingUpgradePolicy {get; set; } - /// - /// Validate the object. - /// - /// - /// Thrown if validation fails - /// - public virtual void Validate() - { - - - if (this.RollingUpgradePolicy != null) - { - this.RollingUpgradePolicy.Validate(); - } - } - } -} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/VMDiskSecurityProfile.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/VMDiskSecurityProfile.cs deleted file mode 100644 index 9fa165f24981..000000000000 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/VMDiskSecurityProfile.cs +++ /dev/null @@ -1,58 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for license information. -// Code generated by Microsoft (R) AutoRest Code Generator. -// Changes may cause incorrect behavior and will be lost if the code is regenerated. - -namespace Microsoft.Azure.Management.Batch.Models -{ - using System.Linq; - - /// - /// Specifies the security profile settings for the managed disk. **Note**: It - /// can only be set for Confidential VMs and is required when using - /// Confidential VMs. - /// - public partial class VMDiskSecurityProfile - { - /// - /// Initializes a new instance of the VMDiskSecurityProfile class. - /// - public VMDiskSecurityProfile() - { - CustomInit(); - } - - /// - /// Initializes a new instance of the VMDiskSecurityProfile class. - /// - - /// 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 required when using - /// Confidential VMs. - /// Possible values include: 'NonPersistedTPM', 'VMGuestStateOnly' - public VMDiskSecurityProfile(string securityEncryptionType = default(string)) - - { - this.SecurityEncryptionType = securityEncryptionType; - CustomInit(); - } - - /// - /// An initialization method that performs custom operations like setting defaults - /// - partial void CustomInit(); - - - /// - /// Gets or sets 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 required when using - /// Confidential VMs. Possible values include: 'NonPersistedTPM', 'VMGuestStateOnly' - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "securityEncryptionType")] - public string SecurityEncryptionType {get; set; } - } -} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/VirtualMachineConfiguration.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/VirtualMachineConfiguration.cs index ef646c88d2fc..4edf1bfde857 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/VirtualMachineConfiguration.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/VirtualMachineConfiguration.cs @@ -80,15 +80,7 @@ public VirtualMachineConfiguration() /// Contains configuration for ephemeral OSDisk settings. /// - - /// Specifies the security profile settings for the virtual machine or virtual - /// machine scale set. - /// - - /// The service artifact reference id in the form of - /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/galleries/{galleryName}/serviceArtifacts/{serviceArtifactName}/vmArtifactsProfiles/{vmArtifactsProfilesName} - /// - public VirtualMachineConfiguration(ImageReference imageReference, string nodeAgentSkuId, WindowsConfiguration windowsConfiguration = default(WindowsConfiguration), System.Collections.Generic.IList dataDisks = default(System.Collections.Generic.IList), string licenseType = default(string), ContainerConfiguration containerConfiguration = default(ContainerConfiguration), DiskEncryptionConfiguration diskEncryptionConfiguration = default(DiskEncryptionConfiguration), NodePlacementConfiguration nodePlacementConfiguration = default(NodePlacementConfiguration), System.Collections.Generic.IList extensions = default(System.Collections.Generic.IList), OSDisk osDisk = default(OSDisk), SecurityProfile securityProfile = default(SecurityProfile), ServiceArtifactReference serviceArtifactReference = default(ServiceArtifactReference)) + public VirtualMachineConfiguration(ImageReference imageReference, string nodeAgentSkuId, WindowsConfiguration windowsConfiguration = default(WindowsConfiguration), System.Collections.Generic.IList dataDisks = default(System.Collections.Generic.IList), string licenseType = default(string), ContainerConfiguration containerConfiguration = default(ContainerConfiguration), DiskEncryptionConfiguration diskEncryptionConfiguration = default(DiskEncryptionConfiguration), NodePlacementConfiguration nodePlacementConfiguration = default(NodePlacementConfiguration), System.Collections.Generic.IList extensions = default(System.Collections.Generic.IList), OSDisk osDisk = default(OSDisk)) { this.ImageReference = imageReference; @@ -101,8 +93,6 @@ public VirtualMachineConfiguration() this.NodePlacementConfiguration = nodePlacementConfiguration; this.Extensions = extensions; this.OSDisk = osDisk; - this.SecurityProfile = securityProfile; - this.ServiceArtifactReference = serviceArtifactReference; CustomInit(); } @@ -193,20 +183,6 @@ public VirtualMachineConfiguration() /// [Newtonsoft.Json.JsonProperty(PropertyName = "osDisk")] public OSDisk OSDisk {get; set; } - - /// - /// Gets or sets specifies the security profile settings for the virtual - /// machine or virtual machine scale set. - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "securityProfile")] - public SecurityProfile SecurityProfile {get; set; } - - /// - /// Gets or sets the service artifact reference id in the form of - /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/galleries/{galleryName}/serviceArtifacts/{serviceArtifactName}/vmArtifactsProfiles/{vmArtifactsProfilesName} - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "serviceArtifactReference")] - public ServiceArtifactReference ServiceArtifactReference {get; set; } /// /// Validate the object. /// @@ -254,11 +230,6 @@ public virtual void Validate() } } - - if (this.ServiceArtifactReference != null) - { - this.ServiceArtifactReference.Validate(); - } } } } \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/WindowsUserConfiguration.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/WindowsUserConfiguration.cs index a7a4a2fc7c35..15971a578e48 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/WindowsUserConfiguration.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/WindowsUserConfiguration.cs @@ -27,7 +27,9 @@ public WindowsUserConfiguration() /// Initializes a new instance of the WindowsUserConfiguration class. /// - /// Specifies login mode for the user. The default value is Interactive. + /// Specifies login mode for the user. The default value for + /// VirtualMachineConfiguration pools is interactive mode and for + /// CloudServiceConfiguration pools is batch mode. /// Possible values include: 'Batch', 'Interactive' public WindowsUserConfiguration(LoginMode? loginMode = default(LoginMode?)) @@ -43,8 +45,9 @@ public WindowsUserConfiguration() /// - /// Gets or sets specifies login mode for the user. The default value is - /// Interactive. Possible values include: 'Batch', 'Interactive' + /// Gets or sets specifies login mode for the user. The default value for + /// VirtualMachineConfiguration pools is interactive mode and for + /// CloudServiceConfiguration pools is batch mode. Possible values include: 'Batch', 'Interactive' /// [Newtonsoft.Json.JsonProperty(PropertyName = "loginMode")] public LoginMode? LoginMode {get; set; } diff --git a/src/Batch/Batch.Management.Sdk/Generated/NetworkSecurityPerimeterOperations.cs b/src/Batch/Batch.Management.Sdk/Generated/NetworkSecurityPerimeterOperations.cs deleted file mode 100644 index 3b6dcd3f218f..000000000000 --- a/src/Batch/Batch.Management.Sdk/Generated/NetworkSecurityPerimeterOperations.cs +++ /dev/null @@ -1,949 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for license information. -// Code generated by Microsoft (R) AutoRest Code Generator. -// Changes may cause incorrect behavior and will be lost if the code is regenerated. - -namespace Microsoft.Azure.Management.Batch -{ - using System.Linq; - using Microsoft.Rest; - using Microsoft.Rest.Azure; - using Models; - - /// - /// NetworkSecurityPerimeterOperations operations. - /// - internal partial class NetworkSecurityPerimeterOperations : Microsoft.Rest.IServiceOperations, INetworkSecurityPerimeterOperations - { - /// - /// Initializes a new instance of the NetworkSecurityPerimeterOperations class. - /// - /// - /// Reference to the service client. - /// - /// - /// Thrown when a required parameter is null - /// - internal NetworkSecurityPerimeterOperations (BatchManagementClient client) - { - if (client == null) - { - throw new System.ArgumentNullException("client"); - } - this.Client = client; - } - - /// - /// Gets a reference to the BatchManagementClient - /// - public BatchManagementClient Client { get; private set; } - - /// - /// Lists all of the NSP configurations in the specified account. - /// - /// - /// The name of the resource group that contains the Batch account. - /// - /// - /// The name of the Batch account. - /// - /// - /// Headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when unable to deserialize the response - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// A response object containing the response body and response headers. - /// - public async System.Threading.Tasks.Task>> ListConfigurationsWithHttpMessagesAsync(string resourceGroupName, string accountName, System.Collections.Generic.Dictionary> customHeaders = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) - { - - - - - if (this.Client.SubscriptionId == null) - { - throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.CannotBeNull, "this.Client.SubscriptionId"); - } - - if (resourceGroupName == null) - { - throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.CannotBeNull, "resourceGroupName"); - } - - if (accountName == null) - { - throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.CannotBeNull, "accountName"); - } - if (accountName != null) - { - if (accountName.Length > 24) - { - throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.MaxLength, "accountName", 24); - } - if (accountName.Length < 3) - { - throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.MinLength, "accountName", 3); - } - if (!System.Text.RegularExpressions.Regex.IsMatch(accountName, "^[a-zA-Z0-9]+$")) - { - throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.Pattern, "accountName", "^[a-zA-Z0-9]+$"); - } - } - if (this.Client.ApiVersion == null) - { - throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.CannotBeNull, "this.Client.ApiVersion"); - } - - // Tracing - bool _shouldTrace = Microsoft.Rest.ServiceClientTracing.IsEnabled; - string _invocationId = null; - if (_shouldTrace) - { - _invocationId = Microsoft.Rest.ServiceClientTracing.NextInvocationId.ToString(); - System.Collections.Generic.Dictionary tracingParameters = new System.Collections.Generic.Dictionary(); - tracingParameters.Add("resourceGroupName", resourceGroupName); - tracingParameters.Add("accountName", accountName); - - - tracingParameters.Add("cancellationToken", cancellationToken); - Microsoft.Rest.ServiceClientTracing.Enter(_invocationId, this, "ListConfigurations", tracingParameters); - } - // Construct URL - - var _baseUrl = this.Client.BaseUri.AbsoluteUri; - var _url = new System.Uri(new System.Uri(_baseUrl + (_baseUrl.EndsWith("/") ? "" : "/")), "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/networkSecurityPerimeterConfigurations").ToString(); - _url = _url.Replace("{subscriptionId}", System.Uri.EscapeDataString(this.Client.SubscriptionId)); - _url = _url.Replace("{resourceGroupName}", System.Uri.EscapeDataString(resourceGroupName)); - _url = _url.Replace("{accountName}", System.Uri.EscapeDataString(accountName)); - - System.Collections.Generic.List _queryParameters = new System.Collections.Generic.List(); - if (this.Client.ApiVersion != null) - { - _queryParameters.Add(string.Format("api-version={0}", System.Uri.EscapeDataString(this.Client.ApiVersion))); - } - if (_queryParameters.Count > 0) - { - _url += (_url.Contains("?") ? "&" : "?") + string.Join("&", _queryParameters); - } - // Create HTTP transport objects - var _httpRequest = new System.Net.Http.HttpRequestMessage(); - System.Net.Http.HttpResponseMessage _httpResponse = null; - _httpRequest.Method = new System.Net.Http.HttpMethod("GET"); - _httpRequest.RequestUri = new System.Uri(_url); - // Set Headers - if (this.Client.GenerateClientRequestId != null && this.Client.GenerateClientRequestId.Value) - { - _httpRequest.Headers.TryAddWithoutValidation("x-ms-client-request-id", System.Guid.NewGuid().ToString()); - } - if (this.Client.AcceptLanguage != null) - { - if (_httpRequest.Headers.Contains("accept-language")) - { - _httpRequest.Headers.Remove("accept-language"); - } - _httpRequest.Headers.TryAddWithoutValidation("accept-language", this.Client.AcceptLanguage); - } - - if (customHeaders != null) - { - foreach(var _header in customHeaders) - { - if (_httpRequest.Headers.Contains(_header.Key)) - { - _httpRequest.Headers.Remove(_header.Key); - } - _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); - } - } - // Serialize Request - string _requestContent = null; - // Set Credentials - if (this.Client.Credentials != null) - { - cancellationToken.ThrowIfCancellationRequested(); - await this.Client.Credentials.ProcessHttpRequestAsync(_httpRequest, cancellationToken).ConfigureAwait(false); - } - // Send Request - if (_shouldTrace) - { - Microsoft.Rest.ServiceClientTracing.SendRequest(_invocationId, _httpRequest); - } - cancellationToken.ThrowIfCancellationRequested(); - _httpResponse = await this.Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); - if (_shouldTrace) - { - Microsoft.Rest.ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); - } - - System.Net.HttpStatusCode _statusCode = _httpResponse.StatusCode; - cancellationToken.ThrowIfCancellationRequested(); - string _responseContent = null; - - if ((int)_statusCode != 200) - { - var ex = new Microsoft.Rest.Azure.CloudException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); - try - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - CloudError _errorBody = Microsoft.Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, this.Client.DeserializationSettings); - if (_errorBody != null) - { - ex = new Microsoft.Rest.Azure.CloudException(_errorBody.Message); - ex.Body = _errorBody; - } - } - catch (Newtonsoft.Json.JsonException) - { - // Ignore the exception - } - ex.Request = new Microsoft.Rest.HttpRequestMessageWrapper(_httpRequest, _requestContent); - ex.Response = new Microsoft.Rest.HttpResponseMessageWrapper(_httpResponse, _responseContent); - if (_httpResponse.Headers.Contains("x-ms-request-id")) - { - ex.RequestId = _httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault(); - } - if (_shouldTrace) - { - Microsoft.Rest.ServiceClientTracing.Error(_invocationId, ex); - } - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw ex; - } - // Create Result - var _result = new Microsoft.Rest.Azure.AzureOperationResponse>(); - _result.Request = _httpRequest; - _result.Response = _httpResponse; - - if (_httpResponse.Headers.Contains("x-ms-request-id")) - { - _result.RequestId = _httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault(); - } - // Deserialize Response - if ((int)_statusCode == 200) - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - try - { - _result.Body = Microsoft.Rest.Serialization.SafeJsonConvert.DeserializeObject>(_responseContent, this.Client.DeserializationSettings); - } - catch (Newtonsoft.Json.JsonException ex) - { - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw new Microsoft.Rest.SerializationException("Unable to deserialize the response.", _responseContent, ex); - } - } - if (_shouldTrace) - { - Microsoft.Rest.ServiceClientTracing.Exit(_invocationId, _result); - } - return _result; - - - - - - } - /// - /// Gets information about the specified NSP configuration. - /// - /// - /// The name of the resource group that contains the Batch account. - /// - /// - /// The name of the Batch account. - /// - /// - /// The name for Network Security Perimeter configuration - /// - /// - /// Headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when unable to deserialize the response - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// A response object containing the response body and response headers. - /// - public async System.Threading.Tasks.Task> GetConfigurationWithHttpMessagesAsync(string resourceGroupName, string accountName, string networkSecurityPerimeterConfigurationName, System.Collections.Generic.Dictionary> customHeaders = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) - { - - - - - if (this.Client.SubscriptionId == null) - { - throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.CannotBeNull, "this.Client.SubscriptionId"); - } - - if (resourceGroupName == null) - { - throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.CannotBeNull, "resourceGroupName"); - } - - if (accountName == null) - { - throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.CannotBeNull, "accountName"); - } - if (accountName != null) - { - if (accountName.Length > 24) - { - throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.MaxLength, "accountName", 24); - } - if (accountName.Length < 3) - { - throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.MinLength, "accountName", 3); - } - if (!System.Text.RegularExpressions.Regex.IsMatch(accountName, "^[a-zA-Z0-9]+$")) - { - throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.Pattern, "accountName", "^[a-zA-Z0-9]+$"); - } - } - if (networkSecurityPerimeterConfigurationName == null) - { - throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.CannotBeNull, "networkSecurityPerimeterConfigurationName"); - } - if (networkSecurityPerimeterConfigurationName != null) - { - if (!System.Text.RegularExpressions.Regex.IsMatch(networkSecurityPerimeterConfigurationName, "^.*$")) - { - throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.Pattern, "networkSecurityPerimeterConfigurationName", "^.*$"); - } - } - if (this.Client.ApiVersion == null) - { - throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.CannotBeNull, "this.Client.ApiVersion"); - } - - // Tracing - bool _shouldTrace = Microsoft.Rest.ServiceClientTracing.IsEnabled; - string _invocationId = null; - if (_shouldTrace) - { - _invocationId = Microsoft.Rest.ServiceClientTracing.NextInvocationId.ToString(); - System.Collections.Generic.Dictionary tracingParameters = new System.Collections.Generic.Dictionary(); - tracingParameters.Add("resourceGroupName", resourceGroupName); - tracingParameters.Add("accountName", accountName); - tracingParameters.Add("networkSecurityPerimeterConfigurationName", networkSecurityPerimeterConfigurationName); - - - tracingParameters.Add("cancellationToken", cancellationToken); - Microsoft.Rest.ServiceClientTracing.Enter(_invocationId, this, "GetConfiguration", tracingParameters); - } - // Construct URL - - var _baseUrl = this.Client.BaseUri.AbsoluteUri; - var _url = new System.Uri(new System.Uri(_baseUrl + (_baseUrl.EndsWith("/") ? "" : "/")), "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/networkSecurityPerimeterConfigurations/{networkSecurityPerimeterConfigurationName}").ToString(); - _url = _url.Replace("{subscriptionId}", System.Uri.EscapeDataString(this.Client.SubscriptionId)); - _url = _url.Replace("{resourceGroupName}", System.Uri.EscapeDataString(resourceGroupName)); - _url = _url.Replace("{accountName}", System.Uri.EscapeDataString(accountName)); - _url = _url.Replace("{networkSecurityPerimeterConfigurationName}", System.Uri.EscapeDataString(networkSecurityPerimeterConfigurationName)); - - System.Collections.Generic.List _queryParameters = new System.Collections.Generic.List(); - if (this.Client.ApiVersion != null) - { - _queryParameters.Add(string.Format("api-version={0}", System.Uri.EscapeDataString(this.Client.ApiVersion))); - } - if (_queryParameters.Count > 0) - { - _url += (_url.Contains("?") ? "&" : "?") + string.Join("&", _queryParameters); - } - // Create HTTP transport objects - var _httpRequest = new System.Net.Http.HttpRequestMessage(); - System.Net.Http.HttpResponseMessage _httpResponse = null; - _httpRequest.Method = new System.Net.Http.HttpMethod("GET"); - _httpRequest.RequestUri = new System.Uri(_url); - // Set Headers - if (this.Client.GenerateClientRequestId != null && this.Client.GenerateClientRequestId.Value) - { - _httpRequest.Headers.TryAddWithoutValidation("x-ms-client-request-id", System.Guid.NewGuid().ToString()); - } - if (this.Client.AcceptLanguage != null) - { - if (_httpRequest.Headers.Contains("accept-language")) - { - _httpRequest.Headers.Remove("accept-language"); - } - _httpRequest.Headers.TryAddWithoutValidation("accept-language", this.Client.AcceptLanguage); - } - - if (customHeaders != null) - { - foreach(var _header in customHeaders) - { - if (_httpRequest.Headers.Contains(_header.Key)) - { - _httpRequest.Headers.Remove(_header.Key); - } - _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); - } - } - // Serialize Request - string _requestContent = null; - // Set Credentials - if (this.Client.Credentials != null) - { - cancellationToken.ThrowIfCancellationRequested(); - await this.Client.Credentials.ProcessHttpRequestAsync(_httpRequest, cancellationToken).ConfigureAwait(false); - } - // Send Request - if (_shouldTrace) - { - Microsoft.Rest.ServiceClientTracing.SendRequest(_invocationId, _httpRequest); - } - cancellationToken.ThrowIfCancellationRequested(); - _httpResponse = await this.Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); - if (_shouldTrace) - { - Microsoft.Rest.ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); - } - - System.Net.HttpStatusCode _statusCode = _httpResponse.StatusCode; - cancellationToken.ThrowIfCancellationRequested(); - string _responseContent = null; - - if ((int)_statusCode != 200) - { - var ex = new Microsoft.Rest.Azure.CloudException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); - try - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - CloudError _errorBody = Microsoft.Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, this.Client.DeserializationSettings); - if (_errorBody != null) - { - ex = new Microsoft.Rest.Azure.CloudException(_errorBody.Message); - ex.Body = _errorBody; - } - } - catch (Newtonsoft.Json.JsonException) - { - // Ignore the exception - } - ex.Request = new Microsoft.Rest.HttpRequestMessageWrapper(_httpRequest, _requestContent); - ex.Response = new Microsoft.Rest.HttpResponseMessageWrapper(_httpResponse, _responseContent); - if (_httpResponse.Headers.Contains("x-ms-request-id")) - { - ex.RequestId = _httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault(); - } - if (_shouldTrace) - { - Microsoft.Rest.ServiceClientTracing.Error(_invocationId, ex); - } - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw ex; - } - // Create Result - var _result = new Microsoft.Rest.Azure.AzureOperationResponse(); - _result.Request = _httpRequest; - _result.Response = _httpResponse; - - if (_httpResponse.Headers.Contains("x-ms-request-id")) - { - _result.RequestId = _httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault(); - } - // Deserialize Response - if ((int)_statusCode == 200) - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - try - { - _result.Body = Microsoft.Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, this.Client.DeserializationSettings); - } - catch (Newtonsoft.Json.JsonException ex) - { - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw new Microsoft.Rest.SerializationException("Unable to deserialize the response.", _responseContent, ex); - } - } - if (_shouldTrace) - { - Microsoft.Rest.ServiceClientTracing.Exit(_invocationId, _result); - } - return _result; - - - - - - } - /// - /// Reconciles the specified NSP configuration. - /// - /// - /// The name of the resource group that contains the Batch account. - /// - /// - /// The name of the Batch account. - /// - /// - /// The name for Network Security Perimeter configuration - /// - /// - /// Headers that will be added to request. - /// - /// - /// The cancellation token. - /// - public async System.Threading.Tasks.Task> ReconcileConfigurationWithHttpMessagesAsync(string resourceGroupName, string accountName, string networkSecurityPerimeterConfigurationName, System.Collections.Generic.Dictionary> customHeaders = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) - { - // Send Request - Microsoft.Rest.Azure.AzureOperationHeaderResponse _response = await BeginReconcileConfigurationWithHttpMessagesAsync(resourceGroupName, accountName, networkSecurityPerimeterConfigurationName, customHeaders, cancellationToken).ConfigureAwait(false); - return await this.Client.GetPostOrDeleteOperationResultAsync(_response, customHeaders, cancellationToken).ConfigureAwait(false); - } - - /// - /// Reconciles the specified NSP configuration. - /// - /// - /// The name of the resource group that contains the Batch account. - /// - /// - /// The name of the Batch account. - /// - /// - /// The name for Network Security Perimeter configuration - /// - /// - /// Headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// A response object containing the response body and response headers. - /// - public async System.Threading.Tasks.Task> BeginReconcileConfigurationWithHttpMessagesAsync(string resourceGroupName, string accountName, string networkSecurityPerimeterConfigurationName, System.Collections.Generic.Dictionary> customHeaders = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) - { - - - - - if (this.Client.SubscriptionId == null) - { - throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.CannotBeNull, "this.Client.SubscriptionId"); - } - - if (resourceGroupName == null) - { - throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.CannotBeNull, "resourceGroupName"); - } - - if (accountName == null) - { - throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.CannotBeNull, "accountName"); - } - if (accountName != null) - { - if (accountName.Length > 24) - { - throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.MaxLength, "accountName", 24); - } - if (accountName.Length < 3) - { - throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.MinLength, "accountName", 3); - } - if (!System.Text.RegularExpressions.Regex.IsMatch(accountName, "^[a-zA-Z0-9]+$")) - { - throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.Pattern, "accountName", "^[a-zA-Z0-9]+$"); - } - } - if (networkSecurityPerimeterConfigurationName == null) - { - throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.CannotBeNull, "networkSecurityPerimeterConfigurationName"); - } - if (networkSecurityPerimeterConfigurationName != null) - { - if (!System.Text.RegularExpressions.Regex.IsMatch(networkSecurityPerimeterConfigurationName, "^.*$")) - { - throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.Pattern, "networkSecurityPerimeterConfigurationName", "^.*$"); - } - } - if (this.Client.ApiVersion == null) - { - throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.CannotBeNull, "this.Client.ApiVersion"); - } - - // Tracing - bool _shouldTrace = Microsoft.Rest.ServiceClientTracing.IsEnabled; - string _invocationId = null; - if (_shouldTrace) - { - _invocationId = Microsoft.Rest.ServiceClientTracing.NextInvocationId.ToString(); - System.Collections.Generic.Dictionary tracingParameters = new System.Collections.Generic.Dictionary(); - tracingParameters.Add("resourceGroupName", resourceGroupName); - tracingParameters.Add("accountName", accountName); - tracingParameters.Add("networkSecurityPerimeterConfigurationName", networkSecurityPerimeterConfigurationName); - - - tracingParameters.Add("cancellationToken", cancellationToken); - Microsoft.Rest.ServiceClientTracing.Enter(_invocationId, this, "BeginReconcileConfiguration", tracingParameters); - } - // Construct URL - - var _baseUrl = this.Client.BaseUri.AbsoluteUri; - var _url = new System.Uri(new System.Uri(_baseUrl + (_baseUrl.EndsWith("/") ? "" : "/")), "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/networkSecurityPerimeterConfigurations/{networkSecurityPerimeterConfigurationName}/reconcile").ToString(); - _url = _url.Replace("{subscriptionId}", System.Uri.EscapeDataString(this.Client.SubscriptionId)); - _url = _url.Replace("{resourceGroupName}", System.Uri.EscapeDataString(resourceGroupName)); - _url = _url.Replace("{accountName}", System.Uri.EscapeDataString(accountName)); - _url = _url.Replace("{networkSecurityPerimeterConfigurationName}", System.Uri.EscapeDataString(networkSecurityPerimeterConfigurationName)); - - System.Collections.Generic.List _queryParameters = new System.Collections.Generic.List(); - if (this.Client.ApiVersion != null) - { - _queryParameters.Add(string.Format("api-version={0}", System.Uri.EscapeDataString(this.Client.ApiVersion))); - } - if (_queryParameters.Count > 0) - { - _url += (_url.Contains("?") ? "&" : "?") + string.Join("&", _queryParameters); - } - // Create HTTP transport objects - var _httpRequest = new System.Net.Http.HttpRequestMessage(); - System.Net.Http.HttpResponseMessage _httpResponse = null; - _httpRequest.Method = new System.Net.Http.HttpMethod("POST"); - _httpRequest.RequestUri = new System.Uri(_url); - // Set Headers - if (this.Client.GenerateClientRequestId != null && this.Client.GenerateClientRequestId.Value) - { - _httpRequest.Headers.TryAddWithoutValidation("x-ms-client-request-id", System.Guid.NewGuid().ToString()); - } - if (this.Client.AcceptLanguage != null) - { - if (_httpRequest.Headers.Contains("accept-language")) - { - _httpRequest.Headers.Remove("accept-language"); - } - _httpRequest.Headers.TryAddWithoutValidation("accept-language", this.Client.AcceptLanguage); - } - - if (customHeaders != null) - { - foreach(var _header in customHeaders) - { - if (_httpRequest.Headers.Contains(_header.Key)) - { - _httpRequest.Headers.Remove(_header.Key); - } - _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); - } - } - // Serialize Request - string _requestContent = null; - // Set Credentials - if (this.Client.Credentials != null) - { - cancellationToken.ThrowIfCancellationRequested(); - await this.Client.Credentials.ProcessHttpRequestAsync(_httpRequest, cancellationToken).ConfigureAwait(false); - } - // Send Request - if (_shouldTrace) - { - Microsoft.Rest.ServiceClientTracing.SendRequest(_invocationId, _httpRequest); - } - cancellationToken.ThrowIfCancellationRequested(); - _httpResponse = await this.Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); - if (_shouldTrace) - { - Microsoft.Rest.ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); - } - - System.Net.HttpStatusCode _statusCode = _httpResponse.StatusCode; - cancellationToken.ThrowIfCancellationRequested(); - string _responseContent = null; - - if ((int)_statusCode != 202) - { - var ex = new ErrorResponseException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); - try - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - ErrorResponse _errorBody = Microsoft.Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, this.Client.DeserializationSettings); - if (_errorBody != null) - { - ex.Body = _errorBody; - } - } - catch (Newtonsoft.Json.JsonException) - { - // Ignore the exception - } - ex.Request = new Microsoft.Rest.HttpRequestMessageWrapper(_httpRequest, _requestContent); - ex.Response = new Microsoft.Rest.HttpResponseMessageWrapper(_httpResponse, _responseContent); - if (_shouldTrace) - { - Microsoft.Rest.ServiceClientTracing.Error(_invocationId, ex); - } - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw ex; - } - // Create Result - var _result = new Microsoft.Rest.Azure.AzureOperationHeaderResponse(); - _result.Request = _httpRequest; - _result.Response = _httpResponse; - - if (_httpResponse.Headers.Contains("x-ms-request-id")) - { - _result.RequestId = _httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault(); - } - try - { - _result.Headers = _httpResponse.GetHeadersAsJson().ToObject(Newtonsoft.Json.JsonSerializer.Create(this.Client.DeserializationSettings)); - } - catch (Newtonsoft.Json.JsonException ex) - { - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw new Microsoft.Rest.SerializationException("Unable to deserialize the headers.", _httpResponse.GetHeadersAsJson().ToString(), ex); - } - if (_shouldTrace) - { - Microsoft.Rest.ServiceClientTracing.Exit(_invocationId, _result); - } - return _result; - - - - - - } - /// - /// Lists all of the NSP configurations in the specified account. - /// - /// - /// The NextLink from the previous successful call to List operation. - /// - /// - /// Headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when unable to deserialize the response - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// A response object containing the response body and response headers. - /// - public async System.Threading.Tasks.Task>> ListConfigurationsNextWithHttpMessagesAsync(string nextPageLink, System.Collections.Generic.Dictionary> customHeaders = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) - { - - if (nextPageLink == null) - { - throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.CannotBeNull, "nextPageLink"); - } - // Tracing - bool _shouldTrace = Microsoft.Rest.ServiceClientTracing.IsEnabled; - string _invocationId = null; - if (_shouldTrace) - { - _invocationId = Microsoft.Rest.ServiceClientTracing.NextInvocationId.ToString(); - System.Collections.Generic.Dictionary tracingParameters = new System.Collections.Generic.Dictionary(); - tracingParameters.Add("nextPageLink", nextPageLink); - - - tracingParameters.Add("cancellationToken", cancellationToken); - Microsoft.Rest.ServiceClientTracing.Enter(_invocationId, this, "ListConfigurationsNext", tracingParameters); - } - // Construct URL - string _url = "{nextLink}"; - _url = _url.Replace("{nextLink}", nextPageLink); - - System.Collections.Generic.List _queryParameters = new System.Collections.Generic.List(); - if (_queryParameters.Count > 0) - { - _url += (_url.Contains("?") ? "&" : "?") + string.Join("&", _queryParameters); - } - // Create HTTP transport objects - var _httpRequest = new System.Net.Http.HttpRequestMessage(); - System.Net.Http.HttpResponseMessage _httpResponse = null; - _httpRequest.Method = new System.Net.Http.HttpMethod("GET"); - _httpRequest.RequestUri = new System.Uri(_url); - // Set Headers - if (this.Client.GenerateClientRequestId != null && this.Client.GenerateClientRequestId.Value) - { - _httpRequest.Headers.TryAddWithoutValidation("x-ms-client-request-id", System.Guid.NewGuid().ToString()); - } - if (this.Client.AcceptLanguage != null) - { - if (_httpRequest.Headers.Contains("accept-language")) - { - _httpRequest.Headers.Remove("accept-language"); - } - _httpRequest.Headers.TryAddWithoutValidation("accept-language", this.Client.AcceptLanguage); - } - - if (customHeaders != null) - { - foreach(var _header in customHeaders) - { - if (_httpRequest.Headers.Contains(_header.Key)) - { - _httpRequest.Headers.Remove(_header.Key); - } - _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); - } - } - // Serialize Request - string _requestContent = null; - // Set Credentials - if (this.Client.Credentials != null) - { - cancellationToken.ThrowIfCancellationRequested(); - await this.Client.Credentials.ProcessHttpRequestAsync(_httpRequest, cancellationToken).ConfigureAwait(false); - } - // Send Request - if (_shouldTrace) - { - Microsoft.Rest.ServiceClientTracing.SendRequest(_invocationId, _httpRequest); - } - cancellationToken.ThrowIfCancellationRequested(); - _httpResponse = await this.Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); - if (_shouldTrace) - { - Microsoft.Rest.ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); - } - - System.Net.HttpStatusCode _statusCode = _httpResponse.StatusCode; - cancellationToken.ThrowIfCancellationRequested(); - string _responseContent = null; - - if ((int)_statusCode != 200) - { - var ex = new Microsoft.Rest.Azure.CloudException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); - try - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - CloudError _errorBody = Microsoft.Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, this.Client.DeserializationSettings); - if (_errorBody != null) - { - ex = new Microsoft.Rest.Azure.CloudException(_errorBody.Message); - ex.Body = _errorBody; - } - } - catch (Newtonsoft.Json.JsonException) - { - // Ignore the exception - } - ex.Request = new Microsoft.Rest.HttpRequestMessageWrapper(_httpRequest, _requestContent); - ex.Response = new Microsoft.Rest.HttpResponseMessageWrapper(_httpResponse, _responseContent); - if (_httpResponse.Headers.Contains("x-ms-request-id")) - { - ex.RequestId = _httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault(); - } - if (_shouldTrace) - { - Microsoft.Rest.ServiceClientTracing.Error(_invocationId, ex); - } - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw ex; - } - // Create Result - var _result = new Microsoft.Rest.Azure.AzureOperationResponse>(); - _result.Request = _httpRequest; - _result.Response = _httpResponse; - - if (_httpResponse.Headers.Contains("x-ms-request-id")) - { - _result.RequestId = _httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault(); - } - // Deserialize Response - if ((int)_statusCode == 200) - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - try - { - _result.Body = Microsoft.Rest.Serialization.SafeJsonConvert.DeserializeObject>(_responseContent, this.Client.DeserializationSettings); - } - catch (Newtonsoft.Json.JsonException ex) - { - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw new Microsoft.Rest.SerializationException("Unable to deserialize the response.", _responseContent, ex); - } - } - if (_shouldTrace) - { - Microsoft.Rest.ServiceClientTracing.Exit(_invocationId, _result); - } - return _result; - - - - - - } - } -} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/NetworkSecurityPerimeterOperationsExtensions.cs b/src/Batch/Batch.Management.Sdk/Generated/NetworkSecurityPerimeterOperationsExtensions.cs deleted file mode 100644 index 315f03e1344b..000000000000 --- a/src/Batch/Batch.Management.Sdk/Generated/NetworkSecurityPerimeterOperationsExtensions.cs +++ /dev/null @@ -1,223 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for license information. -// Code generated by Microsoft (R) AutoRest Code Generator. -// Changes may cause incorrect behavior and will be lost if the code is regenerated. -namespace Microsoft.Azure.Management.Batch -{ - using Microsoft.Rest.Azure; - using Models; - - /// - /// Extension methods for NetworkSecurityPerimeterOperations - /// - public static partial class NetworkSecurityPerimeterOperationsExtensions - { - /// - /// Lists all of the NSP configurations in the specified account. - /// - /// - /// The operations group for this extension method. - /// - /// - /// The name of the resource group that contains the Batch account. - /// - /// - /// The name of the Batch account. - /// - public static Microsoft.Rest.Azure.IPage ListConfigurations(this INetworkSecurityPerimeterOperations operations, string resourceGroupName, string accountName) - { - return ((INetworkSecurityPerimeterOperations)operations).ListConfigurationsAsync(resourceGroupName, accountName).GetAwaiter().GetResult(); - } - - /// - /// Lists all of the NSP configurations in the specified account. - /// - /// - /// The operations group for this extension method. - /// - /// - /// The name of the resource group that contains the Batch account. - /// - /// - /// The name of the Batch account. - /// - /// - /// The cancellation token. - /// - public static async System.Threading.Tasks.Task> ListConfigurationsAsync(this INetworkSecurityPerimeterOperations operations, string resourceGroupName, string accountName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) - { - using (var _result = await operations.ListConfigurationsWithHttpMessagesAsync(resourceGroupName, accountName, null, cancellationToken).ConfigureAwait(false)) - { - return _result.Body; - } - } - /// - /// Gets information about the specified NSP configuration. - /// - /// - /// The operations group for this extension method. - /// - /// - /// The name of the resource group that contains the Batch account. - /// - /// - /// The name of the Batch account. - /// - /// - /// The name for Network Security Perimeter configuration - /// - public static NetworkSecurityPerimeterConfiguration GetConfiguration(this INetworkSecurityPerimeterOperations operations, string resourceGroupName, string accountName, string networkSecurityPerimeterConfigurationName) - { - return ((INetworkSecurityPerimeterOperations)operations).GetConfigurationAsync(resourceGroupName, accountName, networkSecurityPerimeterConfigurationName).GetAwaiter().GetResult(); - } - - /// - /// Gets information about the specified NSP configuration. - /// - /// - /// The operations group for this extension method. - /// - /// - /// The name of the resource group that contains the Batch account. - /// - /// - /// The name of the Batch account. - /// - /// - /// The name for Network Security Perimeter configuration - /// - /// - /// The cancellation token. - /// - public static async System.Threading.Tasks.Task GetConfigurationAsync(this INetworkSecurityPerimeterOperations operations, string resourceGroupName, string accountName, string networkSecurityPerimeterConfigurationName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) - { - using (var _result = await operations.GetConfigurationWithHttpMessagesAsync(resourceGroupName, accountName, networkSecurityPerimeterConfigurationName, null, cancellationToken).ConfigureAwait(false)) - { - return _result.Body; - } - } - /// - /// Reconciles the specified NSP configuration. - /// - /// - /// The operations group for this extension method. - /// - /// - /// The name of the resource group that contains the Batch account. - /// - /// - /// The name of the Batch account. - /// - /// - /// The name for Network Security Perimeter configuration - /// - public static NetworkSecurityPerimeterReconcileConfigurationHeaders ReconcileConfiguration(this INetworkSecurityPerimeterOperations operations, string resourceGroupName, string accountName, string networkSecurityPerimeterConfigurationName) - { - return ((INetworkSecurityPerimeterOperations)operations).ReconcileConfigurationAsync(resourceGroupName, accountName, networkSecurityPerimeterConfigurationName).GetAwaiter().GetResult(); - } - - /// - /// Reconciles the specified NSP configuration. - /// - /// - /// The operations group for this extension method. - /// - /// - /// The name of the resource group that contains the Batch account. - /// - /// - /// The name of the Batch account. - /// - /// - /// The name for Network Security Perimeter configuration - /// - /// - /// The cancellation token. - /// - public static async System.Threading.Tasks.Task ReconcileConfigurationAsync(this INetworkSecurityPerimeterOperations operations, string resourceGroupName, string accountName, string networkSecurityPerimeterConfigurationName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) - { - using (var _result = await operations.ReconcileConfigurationWithHttpMessagesAsync(resourceGroupName, accountName, networkSecurityPerimeterConfigurationName, null, cancellationToken).ConfigureAwait(false)) - { - return _result.Headers; - } - } - /// - /// Reconciles the specified NSP configuration. - /// - /// - /// The operations group for this extension method. - /// - /// - /// The name of the resource group that contains the Batch account. - /// - /// - /// The name of the Batch account. - /// - /// - /// The name for Network Security Perimeter configuration - /// - public static NetworkSecurityPerimeterReconcileConfigurationHeaders BeginReconcileConfiguration(this INetworkSecurityPerimeterOperations operations, string resourceGroupName, string accountName, string networkSecurityPerimeterConfigurationName) - { - return ((INetworkSecurityPerimeterOperations)operations).BeginReconcileConfigurationAsync(resourceGroupName, accountName, networkSecurityPerimeterConfigurationName).GetAwaiter().GetResult(); - } - - /// - /// Reconciles the specified NSP configuration. - /// - /// - /// The operations group for this extension method. - /// - /// - /// The name of the resource group that contains the Batch account. - /// - /// - /// The name of the Batch account. - /// - /// - /// The name for Network Security Perimeter configuration - /// - /// - /// The cancellation token. - /// - public static async System.Threading.Tasks.Task BeginReconcileConfigurationAsync(this INetworkSecurityPerimeterOperations operations, string resourceGroupName, string accountName, string networkSecurityPerimeterConfigurationName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) - { - using (var _result = await operations.BeginReconcileConfigurationWithHttpMessagesAsync(resourceGroupName, accountName, networkSecurityPerimeterConfigurationName, null, cancellationToken).ConfigureAwait(false)) - { - return _result.Headers; - } - } - /// - /// Lists all of the NSP configurations in the specified account. - /// - /// - /// The operations group for this extension method. - /// - /// - /// The NextLink from the previous successful call to List operation. - /// - public static Microsoft.Rest.Azure.IPage ListConfigurationsNext(this INetworkSecurityPerimeterOperations operations, string nextPageLink) - { - return ((INetworkSecurityPerimeterOperations)operations).ListConfigurationsNextAsync(nextPageLink).GetAwaiter().GetResult(); - } - - /// - /// Lists all of the NSP configurations in the specified account. - /// - /// - /// The operations group for this extension method. - /// - /// - /// The NextLink from the previous successful call to List operation. - /// - /// - /// The cancellation token. - /// - public static async System.Threading.Tasks.Task> ListConfigurationsNextAsync(this INetworkSecurityPerimeterOperations operations, string nextPageLink, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) - { - using (var _result = await operations.ListConfigurationsNextWithHttpMessagesAsync(nextPageLink, null, cancellationToken).ConfigureAwait(false)) - { - return _result.Body; - } - } - } -} diff --git a/src/Batch/Batch.Management.Sdk/Generated/PrivateEndpointConnectionOperations.cs b/src/Batch/Batch.Management.Sdk/Generated/PrivateEndpointConnectionOperations.cs index 8fdf94961de6..9b5f9c18a875 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/PrivateEndpointConnectionOperations.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/PrivateEndpointConnectionOperations.cs @@ -543,10 +543,9 @@ internal PrivateEndpointConnectionOperations (BatchManagementClient client) /// The state (ETag) version of the private endpoint connection to update. This /// value can be omitted or set to "*" to apply the operation unconditionally. /// - /// - /// PrivateEndpointConnection properties that should be updated. Properties - /// that are supplied will be updated, any property not supplied will be - /// unchanged. + /// + /// The private link service connection state of the private endpoint + /// connection /// /// /// Headers that will be added to request. @@ -554,10 +553,10 @@ internal PrivateEndpointConnectionOperations (BatchManagementClient client) /// /// The cancellation token. /// - public async System.Threading.Tasks.Task> UpdateWithHttpMessagesAsync(string resourceGroupName, string accountName, string privateEndpointConnectionName, PrivateEndpointConnection parameters, string ifMatch = default(string), System.Collections.Generic.Dictionary> customHeaders = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + public async System.Threading.Tasks.Task> UpdateWithHttpMessagesAsync(string resourceGroupName, string accountName, string privateEndpointConnectionName, PrivateLinkServiceConnectionState privateLinkServiceConnectionState = default(PrivateLinkServiceConnectionState), string ifMatch = default(string), System.Collections.Generic.Dictionary> customHeaders = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { // Send Request - Microsoft.Rest.Azure.AzureOperationResponse _response = await BeginUpdateWithHttpMessagesAsync(resourceGroupName, accountName, privateEndpointConnectionName, parameters, ifMatch, customHeaders, cancellationToken).ConfigureAwait(false); + Microsoft.Rest.Azure.AzureOperationResponse _response = await BeginUpdateWithHttpMessagesAsync(resourceGroupName, accountName, privateEndpointConnectionName, privateLinkServiceConnectionState, ifMatch, customHeaders, cancellationToken).ConfigureAwait(false); return await this.Client.GetPutOrPatchOperationResultAsync(_response, customHeaders, cancellationToken).ConfigureAwait(false); } @@ -604,10 +603,9 @@ internal PrivateEndpointConnectionOperations (BatchManagementClient client) /// The state (ETag) version of the private endpoint connection to update. This /// value can be omitted or set to "*" to apply the operation unconditionally. /// - /// - /// PrivateEndpointConnection properties that should be updated. Properties - /// that are supplied will be updated, any property not supplied will be - /// unchanged. + /// + /// The private link service connection state of the private endpoint + /// connection /// /// /// Headers that will be added to request. @@ -630,16 +628,12 @@ internal PrivateEndpointConnectionOperations (BatchManagementClient client) /// /// A response object containing the response body and response headers. /// - public async System.Threading.Tasks.Task> BeginUpdateWithHttpMessagesAsync(string resourceGroupName, string accountName, string privateEndpointConnectionName, PrivateEndpointConnection parameters, string ifMatch = default(string), System.Collections.Generic.Dictionary> customHeaders = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + public async System.Threading.Tasks.Task> BeginUpdateWithHttpMessagesAsync(string resourceGroupName, string accountName, string privateEndpointConnectionName, PrivateLinkServiceConnectionState privateLinkServiceConnectionState = default(PrivateLinkServiceConnectionState), string ifMatch = default(string), System.Collections.Generic.Dictionary> customHeaders = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { - if (parameters == null) - { - throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.CannotBeNull, "parameters"); - } if (this.Client.SubscriptionId == null) { throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.CannotBeNull, "this.Client.SubscriptionId"); @@ -694,6 +688,11 @@ internal PrivateEndpointConnectionOperations (BatchManagementClient client) } + PrivateEndpointConnection parameters = new PrivateEndpointConnection(); + if(privateLinkServiceConnectionState != null) + { + parameters.PrivateLinkServiceConnectionState = privateLinkServiceConnectionState; + } // Tracing bool _shouldTrace = Microsoft.Rest.ServiceClientTracing.IsEnabled; string _invocationId = null; diff --git a/src/Batch/Batch.Management.Sdk/Generated/PrivateEndpointConnectionOperationsExtensions.cs b/src/Batch/Batch.Management.Sdk/Generated/PrivateEndpointConnectionOperationsExtensions.cs index 9a28f05d3131..f899f7b19201 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/PrivateEndpointConnectionOperationsExtensions.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/PrivateEndpointConnectionOperationsExtensions.cs @@ -124,9 +124,9 @@ public static PrivateEndpointConnection Get(this IPrivateEndpointConnectionOpera /// The state (ETag) version of the private endpoint connection to update. This /// value can be omitted or set to "*" to apply the operation unconditionally. /// - public static PrivateEndpointConnection Update(this IPrivateEndpointConnectionOperations operations, string resourceGroupName, string accountName, string privateEndpointConnectionName, PrivateEndpointConnection parameters, string ifMatch = default(string)) + public static PrivateEndpointConnection Update(this IPrivateEndpointConnectionOperations operations, string resourceGroupName, string accountName, string privateEndpointConnectionName, PrivateLinkServiceConnectionState privateLinkServiceConnectionState = default(PrivateLinkServiceConnectionState), string ifMatch = default(string)) { - return ((IPrivateEndpointConnectionOperations)operations).UpdateAsync(resourceGroupName, accountName, privateEndpointConnectionName, parameters, ifMatch).GetAwaiter().GetResult(); + return ((IPrivateEndpointConnectionOperations)operations).UpdateAsync(resourceGroupName, accountName, privateEndpointConnectionName, privateLinkServiceConnectionState, ifMatch).GetAwaiter().GetResult(); } /// @@ -152,9 +152,9 @@ public static PrivateEndpointConnection Get(this IPrivateEndpointConnectionOpera /// /// The cancellation token. /// - public static async System.Threading.Tasks.Task UpdateAsync(this IPrivateEndpointConnectionOperations operations, string resourceGroupName, string accountName, string privateEndpointConnectionName, PrivateEndpointConnection parameters, string ifMatch = default(string), System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + public static async System.Threading.Tasks.Task UpdateAsync(this IPrivateEndpointConnectionOperations operations, string resourceGroupName, string accountName, string privateEndpointConnectionName, PrivateLinkServiceConnectionState privateLinkServiceConnectionState = default(PrivateLinkServiceConnectionState), string ifMatch = default(string), System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { - using (var _result = await operations.UpdateWithHttpMessagesAsync(resourceGroupName, accountName, privateEndpointConnectionName, parameters, ifMatch, null, cancellationToken).ConfigureAwait(false)) + using (var _result = await operations.UpdateWithHttpMessagesAsync(resourceGroupName, accountName, privateEndpointConnectionName, privateLinkServiceConnectionState, ifMatch, null, cancellationToken).ConfigureAwait(false)) { return _result.Body; } @@ -226,9 +226,9 @@ public static PrivateEndpointConnectionDeleteHeaders Delete(this IPrivateEndpoin /// The state (ETag) version of the private endpoint connection to update. This /// value can be omitted or set to "*" to apply the operation unconditionally. /// - public static PrivateEndpointConnection BeginUpdate(this IPrivateEndpointConnectionOperations operations, string resourceGroupName, string accountName, string privateEndpointConnectionName, PrivateEndpointConnection parameters, string ifMatch = default(string)) + public static PrivateEndpointConnection BeginUpdate(this IPrivateEndpointConnectionOperations operations, string resourceGroupName, string accountName, string privateEndpointConnectionName, PrivateLinkServiceConnectionState privateLinkServiceConnectionState = default(PrivateLinkServiceConnectionState), string ifMatch = default(string)) { - return ((IPrivateEndpointConnectionOperations)operations).BeginUpdateAsync(resourceGroupName, accountName, privateEndpointConnectionName, parameters, ifMatch).GetAwaiter().GetResult(); + return ((IPrivateEndpointConnectionOperations)operations).BeginUpdateAsync(resourceGroupName, accountName, privateEndpointConnectionName, privateLinkServiceConnectionState, ifMatch).GetAwaiter().GetResult(); } /// @@ -254,9 +254,9 @@ public static PrivateEndpointConnectionDeleteHeaders Delete(this IPrivateEndpoin /// /// The cancellation token. /// - public static async System.Threading.Tasks.Task BeginUpdateAsync(this IPrivateEndpointConnectionOperations operations, string resourceGroupName, string accountName, string privateEndpointConnectionName, PrivateEndpointConnection parameters, string ifMatch = default(string), System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + public static async System.Threading.Tasks.Task BeginUpdateAsync(this IPrivateEndpointConnectionOperations operations, string resourceGroupName, string accountName, string privateEndpointConnectionName, PrivateLinkServiceConnectionState privateLinkServiceConnectionState = default(PrivateLinkServiceConnectionState), string ifMatch = default(string), System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { - using (var _result = await operations.BeginUpdateWithHttpMessagesAsync(resourceGroupName, accountName, privateEndpointConnectionName, parameters, ifMatch, null, cancellationToken).ConfigureAwait(false)) + using (var _result = await operations.BeginUpdateWithHttpMessagesAsync(resourceGroupName, accountName, privateEndpointConnectionName, privateLinkServiceConnectionState, ifMatch, null, cancellationToken).ConfigureAwait(false)) { return _result.Body; } diff --git a/src/Batch/Batch.Management.Sdk/README.md b/src/Batch/Batch.Management.Sdk/README.md index 618d9cfb74e2..3717c53ac3fc 100644 --- a/src/Batch/Batch.Management.Sdk/README.md +++ b/src/Batch/Batch.Management.Sdk/README.md @@ -21,10 +21,9 @@ license-header: MICROSOFT_MIT_NO_VERSION payload-flattening-threshold: 1 # title: BatchManagementClient -commit: f6fabb4294050e991f70aff1cd0392b3b512af8f +commit: d6fcc46341f274b8af42a4cdcfa14e1f8d472619 input-file: - - https://github.com/Azure/azure-rest-api-specs/blob/$(commit)/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/BatchManagement.json - - https://github.com/Azure/azure-rest-api-specs/blob/$(commit)/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/NetworkSecurityPerimeter.json + - https://github.com/Azure/azure-rest-api-specs/blob/$(commit)/specification/batch/resource-manager/Microsoft.Batch/stable/2023-05-01/BatchManagement.json output-folder: Generated From 76d1f0b66c7e2a9680c8b02cf55604ff2cc5b760 Mon Sep 17 00:00:00 2001 From: "REDMOND\\wiboris" Date: Thu, 11 Sep 2025 16:28:36 -0700 Subject: [PATCH 03/13] updating test recordings --- .../ScenarioTests/CertificateTests.cs | 73 - .../ScenarioTests/CertificateTests.ps1 | 69 - .../ScenarioTests/JobScheduleTests.ps1 | 4 +- .../TestBatchAccountEndToEnd.json | 639 +++---- ...stCreateNewBatchAccountWithNoPublicIp.json | 722 ++++---- ...eateNewBatchAccountWithSystemIdentity.json | 280 +-- .../TestGetBatchSupportedImages.json | 28 +- .../TestCreatePoolWithApplicationPackage.json | 219 +-- .../TestUpdateApplicationPackage.json | 276 +-- .../TestUpdatePoolWithApplicationPackage.json | 277 +-- .../TestUploadApplicationPackage.json | 165 +- .../TestAddApplication.json | 111 +- .../TestCancelCertificateDelete.json | 1610 ----------------- .../TestCertificateCrudOperations.json | 240 --- ...DisableAndEnableComputeNodeScheduling.json | 557 +++--- ...TestGetComputeNodeRemoteLoginSettings.json | 310 ++-- .../TestRebootAndReimageComputeNode.json | 1260 +++++++++---- .../TestRemoveComputeNodes.json | 310 ++-- .../TestComputeNodeUserEndToEnd.json | 515 +++--- ...TestDisableEnableTerminateJobSchedule.json | 188 +- .../TestJobScheduleCRUD.json | 1052 ++--------- ...toFailure_ItCompletesWhenAnyTaskFails.json | 496 ++--- .../TestDisableEnableTerminateJob.json | 188 +- .../TestJobCRUD.json | 184 +- .../TestGetLocationQuotas.json | 67 +- .../TestAutoScaleActions.json | 186 +- .../TestPoolCRUD.json | 184 +- .../TestResizeAndStopResizePool.json | 227 +-- .../TestCreateTaskCollection.json | 208 +-- .../TestListAllSubtasks.json | 1204 +++++------- .../TestTaskCRUD.json | 244 +-- .../TestTerminateTask.json | 188 +- 32 files changed, 4993 insertions(+), 7288 deletions(-) delete mode 100644 src/Batch/Batch.Test/ScenarioTests/CertificateTests.cs delete mode 100644 src/Batch/Batch.Test/ScenarioTests/CertificateTests.ps1 delete mode 100644 src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.CertificateTests/TestCancelCertificateDelete.json delete mode 100644 src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.CertificateTests/TestCertificateCrudOperations.json diff --git a/src/Batch/Batch.Test/ScenarioTests/CertificateTests.cs b/src/Batch/Batch.Test/ScenarioTests/CertificateTests.cs deleted file mode 100644 index cd7e79b272a0..000000000000 --- a/src/Batch/Batch.Test/ScenarioTests/CertificateTests.cs +++ /dev/null @@ -1,73 +0,0 @@ -// ---------------------------------------------------------------------------------- -// -// Copyright Microsoft Corporation -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// http://www.apache.org/licenses/LICENSE-2.0 -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// ---------------------------------------------------------------------------------- - -using Microsoft.Azure.Batch; -using Microsoft.Azure.Batch.Common; -using Microsoft.WindowsAzure.Commands.ScenarioTest; -using System; -using System.IO; -using System.Security.Cryptography.X509Certificates; -using Xunit; - -namespace Microsoft.Azure.Commands.Batch.Test.ScenarioTests -{ - public class CertificateTests : BatchTestRunner - { - public CertificateTests(Xunit.Abstractions.ITestOutputHelper output) : base(output) - { - - } - - [Fact] - [Trait(Category.AcceptanceType, Category.CheckIn)] - public void TestCertificateCrudOperations() - { - TestRunner.RunTestScript("Test-CertificateCrudOperations"); - } - - [Fact] - [Trait(Category.AcceptanceType, Category.CheckIn)] - [Obsolete] - public void TestCancelCertificateDelete() - { - BatchAccountContext context = null; - X509Certificate2 cert = new X509Certificate2(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Resources/BatchTestCert01.cer")); - string thumbprint = cert.Thumbprint.ToLowerInvariant(); - string poolId = "certPool"; - TestRunner.RunTestScript( - null, - mockContext => - { - context = new ScenarioTestContext(); - thumbprint = ScenarioTestHelpers.AddTestCertificate(this, context, BatchTestHelpers.TestCertificateFileName).ToLowerInvariant(); - CertificateReference certRef = new CertificateReference(); - certRef.StoreLocation = CertStoreLocation.CurrentUser; - certRef.StoreName = "My"; - certRef.ThumbprintAlgorithm = BatchTestHelpers.TestCertificateAlgorithm; - certRef.Thumbprint = thumbprint; - certRef.Visibility = CertificateVisibility.Task; - ScenarioTestHelpers.CreateTestPoolVirtualMachine(this, context, poolId, targetDedicated: 0, targetLowPriority: 0, certReference: certRef); - ScenarioTestHelpers.DeleteTestCertificate(this, context, BatchTestHelpers.TestCertificateAlgorithm, thumbprint); - ScenarioTestHelpers.WaitForCertificateToFailDeletion(this, context, BatchTestHelpers.TestCertificateAlgorithm, thumbprint); - }, - () => - { - ScenarioTestHelpers.DeletePool(this, context, poolId); - ScenarioTestHelpers.DeleteTestCertificate(this, context, BatchTestHelpers.TestCertificateAlgorithm, thumbprint); - }, - $"Test-TestCancelCertificateDelete '{BatchTestHelpers.TestCertificateAlgorithm}' '{thumbprint}'" - ); - } - } -} diff --git a/src/Batch/Batch.Test/ScenarioTests/CertificateTests.ps1 b/src/Batch/Batch.Test/ScenarioTests/CertificateTests.ps1 deleted file mode 100644 index fed5b0b2de8b..000000000000 --- a/src/Batch/Batch.Test/ScenarioTests/CertificateTests.ps1 +++ /dev/null @@ -1,69 +0,0 @@ -# ---------------------------------------------------------------------------------- -# -# Copyright Microsoft Corporation -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# http://www.apache.org/licenses/LICENSE-2.0 -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# ---------------------------------------------------------------------------------- - -<# -.SYNOPSIS -Tests basic CRUD operations on certificates -#> -function Test-CertificateCrudOperations -{ - $context = New-Object Microsoft.Azure.Commands.Batch.Test.ScenarioTests.ScenarioTestContext - $thumbprintAlgorithm = "sha1" - - $localDir = ($pwd).Path # Use $pwd to get the local directory. If $pwd is not used, paths are relative to [Environment]::CurrentDirectory, which can be different - - $certPathVs = $localDir + "/Resources/BatchTestCert01.cer" - $x509cert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2 -ArgumentList $certPathVs - - # Add the cert - $x509cert | New-AzBatchCertificate -Kind "Cer" -BatchContext $context - - # Get the cert and ensure its properties match expectations - $addedCert = Get-AzBatchCertificate $thumbprintAlgorithm $x509cert.Thumbprint -BatchContext $context - Assert-AreEqual $x509cert.Thumbprint $addedCert.Thumbprint - Assert-AreEqual $thumbprintAlgorithm $addedCert.ThumbprintAlgorithm - - # Delete the cert via pipelining - $addedCert | Remove-AzBatchCertificate -BatchContext $context - - # Ensure that our delete call was successful. Use a list operation to avoid the 404 that a get will return. - $allCerts = Get-AzBatchCertificate -BatchContext $context - foreach ($c in $allCerts) - { - Assert-True { ($c.Thumbprint -ne $x509cert.Thumbprint) -or ($c.State.ToString().ToLower() -eq 'deleting') } - } -} - -<# -.SYNOPSIS -Tests canceling a cert deletion -#> -function Test-TestCancelCertificateDelete -{ - param([string]$thumbprintAlgorithm, [string]$thumbprint) - - $context = New-Object Microsoft.Azure.Commands.Batch.Test.ScenarioTests.ScenarioTestContext - - # Verify the cert is in the deletefailed state - $cert = Get-AzBatchCertificate $thumbprintAlgorithm $thumbprint -BatchContext $context - Assert-AreEqual 'deletefailed' $cert.State.ToString().ToLower() - - Get-AzBatchCertificate $thumbprintAlgorithm $thumbprint -BatchContext $context | Stop-AzBatchCertificateDeletion -BatchContext $context - - # Verify the cert went back to the active state - $filter = "state eq 'active'"; - $cert = Get-AzBatchCertificate -Filter $filter -BatchContext $context - - Assert-ContainsItem $cert.Thumbprint.ToLowerInvariant() $thumbprint -} \ No newline at end of file diff --git a/src/Batch/Batch.Test/ScenarioTests/JobScheduleTests.ps1 b/src/Batch/Batch.Test/ScenarioTests/JobScheduleTests.ps1 index c770e3e1da21..e5ff31344065 100644 --- a/src/Batch/Batch.Test/ScenarioTests/JobScheduleTests.ps1 +++ b/src/Batch/Batch.Test/ScenarioTests/JobScheduleTests.ps1 @@ -36,7 +36,7 @@ function Test-JobScheduleCRUD $jobSpec2.PoolInformation = New-Object Microsoft.Azure.Commands.Batch.Models.PSPoolInformation $jobSpec2.PoolInformation.PoolId = "testPool2" $schedule2 = New-Object Microsoft.Azure.Commands.Batch.Models.PSSchedule - $schedule2.DoNotRunUntil = New-Object System.DateTime -ArgumentList @(2024, 12, 01, 12, 30, 0) + $schedule2.DoNotRunUntil = New-Object System.DateTime -ArgumentList @(2025, 12, 01, 12, 30, 0) New-AzBatchJobSchedule -Id $jsId2 -JobSpecification $jobSpec2 -Schedule $schedule2 -BatchContext $context # List the job schedules to ensure they were created @@ -47,7 +47,7 @@ function Test-JobScheduleCRUD Assert-NotNull $jobSchedule2 # Update a job schedule - $jobSchedule2.Schedule.DoNotRunUntil = $newDoNotRunUntil = New-Object System.DateTime -ArgumentList @(2025, 01, 01, 12, 30, 0) + $jobSchedule2.Schedule.DoNotRunUntil = $newDoNotRunUntil = New-Object System.DateTime -ArgumentList @(2026, 01, 01, 12, 30, 0) $jobSchedule2 | Set-AzBatchJobSchedule -BatchContext $context $updatedJobSchedule = Get-AzBatchJobSchedule -Id $jsId2 -BatchContext $context Assert-AreEqual $newDoNotRunUntil $updatedJobSchedule.Schedule.DoNotRunUntil diff --git a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchAccountTests/TestBatchAccountEndToEnd.json b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchAccountTests/TestBatchAccountEndToEnd.json index caccad28ba92..0143ba53df5e 100644 --- a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchAccountTests/TestBatchAccountEndToEnd.json +++ b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchAccountTests/TestBatchAccountEndToEnd.json @@ -1,21 +1,21 @@ { "Entries": [ { - "RequestUri": "/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/providers/Microsoft.Batch?api-version=2016-09-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjFhYmQ2NzgtMThjNS00NjYwLTlmZGQtOGM1YmE2YjZmZTFmL3Byb3ZpZGVycy9NaWNyb3NvZnQuQmF0Y2g/YXBpLXZlcnNpb249MjAxNi0wOS0wMQ==", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/providers/Microsoft.Batch?api-version=2016-09-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Byb3ZpZGVycy9NaWNyb3NvZnQuQmF0Y2g/YXBpLXZlcnNpb249MjAxNi0wOS0wMQ==", "RequestMethod": "GET", "RequestHeaders": { "x-ms-client-request-id": [ - "1e13e4e4-eafc-4fb5-9097-7b5f5adbeb3c" + "a4b523a0-4b2b-4021-a42e-0333b5188cda" ], "Accept-Language": [ "en-US" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.102" + "OSVersion/Microsoft.Windows.10.0.26100", + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.109" ] }, "RequestBody": "", @@ -33,13 +33,13 @@ "16499" ], "x-ms-request-id": [ - "e5dbe400-ae8c-4086-a810-f6744b719580" + "49ffb008-7613-4915-9d93-14b0a947c97e" ], "x-ms-correlation-request-id": [ - "e5dbe400-ae8c-4086-a810-f6744b719580" + "49ffb008-7613-4915-9d93-14b0a947c97e" ], "x-ms-routing-request-id": [ - "EASTUS:20241113T213305Z:e5dbe400-ae8c-4086-a810-f6744b719580" + "WESTUS2:20250911T201138Z:49ffb008-7613-4915-9d93-14b0a947c97e" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -51,13 +51,13 @@ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: C13A548E48034D89A0072B56F7A957C5 Ref B: MNZ221060618033 Ref C: 2024-11-13T21:33:05Z" + "Ref A: D3A4FD17B8C646709AA9C866AF58DEE4 Ref B: CO6AA3150219035 Ref C: 2025-09-11T20:11:37Z" ], "Date": [ - "Wed, 13 Nov 2024 21:33:05 GMT" + "Thu, 11 Sep 2025 20:11:38 GMT" ], "Content-Length": [ - "18599" + "19143" ], "Content-Type": [ "application/json; charset=utf-8" @@ -66,25 +66,25 @@ "-1" ] }, - "ResponseBody": "{\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/providers/Microsoft.Batch\",\r\n \"namespace\": \"Microsoft.Batch\",\r\n \"authorization\": {\r\n \"applicationId\": \"ddbf3205-c6bd-46ae-8127-60eb93363864\",\r\n \"roleDefinitionId\": \"b7f84953-1d03-4eab-9ea4-45f065258ff8\"\r\n },\r\n \"resourceTypes\": [\r\n {\r\n \"resourceType\": \"batchAccounts\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\",\r\n \"East US\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\",\r\n \"2021-01-01\",\r\n \"2020-09-01\",\r\n \"2020-05-01\",\r\n \"2020-03-01-preview\",\r\n \"2020-03-01\",\r\n \"2019-08-01\",\r\n \"2019-04-01\",\r\n \"2018-12-01\",\r\n \"2017-09-01\",\r\n \"2017-05-01\",\r\n \"2017-01-01\",\r\n \"2015-12-01\",\r\n \"2015-09-01\",\r\n \"2015-07-01\",\r\n \"2014-05-01-privatepreview\"\r\n ],\r\n \"capabilities\": \"CrossResourceGroupResourceMove, CrossSubscriptionResourceMove, SystemAssignedResourceIdentity\"\r\n },\r\n {\r\n \"resourceType\": \"batchAccounts/pools\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\",\r\n \"East US\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\",\r\n \"2021-01-01\",\r\n \"2020-09-01\",\r\n \"2020-05-01\",\r\n \"2020-03-01-preview\",\r\n \"2020-03-01\",\r\n \"2019-08-01\",\r\n \"2019-04-01\",\r\n \"2018-12-01\",\r\n \"2017-09-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"batchAccounts/detectors\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\",\r\n \"East US\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"batchAccounts/certificates\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\",\r\n \"East US\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\",\r\n \"2021-01-01\",\r\n \"2020-09-01\",\r\n \"2020-05-01\",\r\n \"2020-03-01-preview\",\r\n \"2020-03-01\",\r\n \"2019-08-01\",\r\n \"2019-04-01\",\r\n \"2018-12-01\",\r\n \"2017-09-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"batchAccounts/operationResults\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\",\r\n \"East US\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\",\r\n \"2021-01-01\",\r\n \"2020-09-01\",\r\n \"2020-05-01\",\r\n \"2020-03-01-preview\",\r\n \"2020-03-01\",\r\n \"2019-08-01\",\r\n \"2019-04-01\",\r\n \"2018-12-01\",\r\n \"2017-09-01\",\r\n \"2017-05-01\",\r\n \"2017-01-01\",\r\n \"2015-12-01\",\r\n \"2015-09-01\",\r\n \"2015-07-01\",\r\n \"2014-05-01-privatepreview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"batchAccounts/poolOperationResults\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\",\r\n \"East US\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\",\r\n \"2021-01-01\",\r\n \"2020-09-01\",\r\n \"2020-05-01\",\r\n \"2020-03-01-preview\",\r\n \"2020-03-01\",\r\n \"2019-08-01\",\r\n \"2019-04-01\",\r\n \"2018-12-01\",\r\n \"2017-09-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"batchAccounts/certificateOperationResults\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\",\r\n \"East US\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\",\r\n \"2021-01-01\",\r\n \"2020-09-01\",\r\n \"2020-05-01\",\r\n \"2020-03-01-preview\",\r\n \"2020-03-01\",\r\n \"2019-08-01\",\r\n \"2019-04-01\",\r\n \"2018-12-01\",\r\n \"2017-09-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"batchAccounts/privateEndpointConnectionProxyResults\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\",\r\n \"East US\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\",\r\n \"2021-01-01\",\r\n \"2020-09-01\",\r\n \"2020-05-01\",\r\n \"2020-03-01-preview\",\r\n \"2020-03-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"batchAccounts/privateEndpointConnectionResults\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\",\r\n \"East US\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\",\r\n \"2021-01-01\",\r\n \"2020-09-01\",\r\n \"2020-05-01\",\r\n \"2020-03-01-preview\",\r\n \"2020-03-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"batchAccounts/networkSecurityPerimeterConfigurationOperationResults\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\",\r\n \"East US\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"operations\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\",\r\n \"East US\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\",\r\n \"2021-01-01\",\r\n \"2020-09-01\",\r\n \"2020-05-01\",\r\n \"2020-03-01-preview\",\r\n \"2020-03-01\",\r\n \"2019-08-01\",\r\n \"2019-04-01\",\r\n \"2018-12-01\",\r\n \"2017-09-01\",\r\n \"2017-05-01\",\r\n \"2017-01-01\",\r\n \"2015-12-01\",\r\n \"2015-09-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations\",\r\n \"locations\": [],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\",\r\n \"2021-01-01\",\r\n \"2020-09-01\",\r\n \"2020-05-01\",\r\n \"2020-03-01-preview\",\r\n \"2020-03-01\",\r\n \"2019-08-01\",\r\n \"2019-04-01\",\r\n \"2018-12-01\",\r\n \"2017-09-01\",\r\n \"2017-05-01\",\r\n \"2017-01-01\",\r\n \"2015-12-01\",\r\n \"2015-09-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/quotas\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\",\r\n \"East US\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\",\r\n \"2021-01-01\",\r\n \"2020-09-01\",\r\n \"2020-05-01\",\r\n \"2020-03-01-preview\",\r\n \"2020-03-01\",\r\n \"2019-08-01\",\r\n \"2019-04-01\",\r\n \"2018-12-01\",\r\n \"2017-09-01\",\r\n \"2017-05-01\",\r\n \"2017-01-01\",\r\n \"2015-12-01\",\r\n \"2015-09-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/checkNameAvailability\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\",\r\n \"East US\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\",\r\n \"2021-01-01\",\r\n \"2020-09-01\",\r\n \"2020-05-01\",\r\n \"2020-03-01-preview\",\r\n \"2020-03-01\",\r\n \"2019-08-01\",\r\n \"2019-04-01\",\r\n \"2018-12-01\",\r\n \"2017-09-01\",\r\n \"2017-05-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/accountOperationResults\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\",\r\n \"East US\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\",\r\n \"2021-01-01\",\r\n \"2020-09-01\",\r\n \"2020-05-01\",\r\n \"2020-03-01-preview\",\r\n \"2020-03-01\",\r\n \"2019-08-01\",\r\n \"2019-04-01\",\r\n \"2018-12-01\",\r\n \"2017-09-01\",\r\n \"2017-05-01\",\r\n \"2017-01-01\",\r\n \"2015-12-01\",\r\n \"2015-09-01\",\r\n \"2015-07-01\",\r\n \"2014-05-01-privatepreview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/virtualMachineSkus\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\",\r\n \"East US\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/cloudServiceSkus\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\",\r\n \"East US\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/notifyNetworkSecurityPerimeterUpdatesAvailable\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\",\r\n \"East US\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\"\r\n ]\r\n }\r\n ],\r\n \"registrationState\": \"Registered\"\r\n}", + "ResponseBody": "{\r\n \"id\": \"/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/providers/Microsoft.Batch\",\r\n \"namespace\": \"Microsoft.Batch\",\r\n \"authorization\": {\r\n \"applicationId\": \"ddbf3205-c6bd-46ae-8127-60eb93363864\",\r\n \"roleDefinitionId\": \"b7f84953-1d03-4eab-9ea4-45f065258ff8\"\r\n },\r\n \"resourceTypes\": [\r\n {\r\n \"resourceType\": \"batchAccounts\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\",\r\n \"2021-01-01\",\r\n \"2020-09-01\",\r\n \"2020-05-01\",\r\n \"2020-03-01-preview\",\r\n \"2020-03-01\",\r\n \"2019-08-01\",\r\n \"2019-04-01\",\r\n \"2018-12-01\",\r\n \"2017-09-01\",\r\n \"2017-05-01\",\r\n \"2017-01-01\",\r\n \"2015-12-01\",\r\n \"2015-09-01\",\r\n \"2015-07-01\",\r\n \"2014-05-01-privatepreview\"\r\n ],\r\n \"capabilities\": \"CrossResourceGroupResourceMove, CrossSubscriptionResourceMove, SystemAssignedResourceIdentity\"\r\n },\r\n {\r\n \"resourceType\": \"batchAccounts/pools\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\",\r\n \"2021-01-01\",\r\n \"2020-09-01\",\r\n \"2020-05-01\",\r\n \"2020-03-01-preview\",\r\n \"2020-03-01\",\r\n \"2019-08-01\",\r\n \"2019-04-01\",\r\n \"2018-12-01\",\r\n \"2017-09-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"batchAccounts/detectors\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"batchAccounts/certificates\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\",\r\n \"2021-01-01\",\r\n \"2020-09-01\",\r\n \"2020-05-01\",\r\n \"2020-03-01-preview\",\r\n \"2020-03-01\",\r\n \"2019-08-01\",\r\n \"2019-04-01\",\r\n \"2018-12-01\",\r\n \"2017-09-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"batchAccounts/operationResults\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\",\r\n \"2021-01-01\",\r\n \"2020-09-01\",\r\n \"2020-05-01\",\r\n \"2020-03-01-preview\",\r\n \"2020-03-01\",\r\n \"2019-08-01\",\r\n \"2019-04-01\",\r\n \"2018-12-01\",\r\n \"2017-09-01\",\r\n \"2017-05-01\",\r\n \"2017-01-01\",\r\n \"2015-12-01\",\r\n \"2015-09-01\",\r\n \"2015-07-01\",\r\n \"2014-05-01-privatepreview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"batchAccounts/poolOperationResults\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\",\r\n \"2021-01-01\",\r\n \"2020-09-01\",\r\n \"2020-05-01\",\r\n \"2020-03-01-preview\",\r\n \"2020-03-01\",\r\n \"2019-08-01\",\r\n \"2019-04-01\",\r\n \"2018-12-01\",\r\n \"2017-09-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"batchAccounts/certificateOperationResults\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\",\r\n \"2021-01-01\",\r\n \"2020-09-01\",\r\n \"2020-05-01\",\r\n \"2020-03-01-preview\",\r\n \"2020-03-01\",\r\n \"2019-08-01\",\r\n \"2019-04-01\",\r\n \"2018-12-01\",\r\n \"2017-09-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"batchAccounts/privateEndpointConnectionProxyResults\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\",\r\n \"2021-01-01\",\r\n \"2020-09-01\",\r\n \"2020-05-01\",\r\n \"2020-03-01-preview\",\r\n \"2020-03-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"batchAccounts/privateEndpointConnectionResults\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\",\r\n \"2021-01-01\",\r\n \"2020-09-01\",\r\n \"2020-05-01\",\r\n \"2020-03-01-preview\",\r\n \"2020-03-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"batchAccounts/networkSecurityPerimeterConfigurationOperationResults\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"operations\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\",\r\n \"2021-01-01\",\r\n \"2020-09-01\",\r\n \"2020-05-01\",\r\n \"2020-03-01-preview\",\r\n \"2020-03-01\",\r\n \"2019-08-01\",\r\n \"2019-04-01\",\r\n \"2018-12-01\",\r\n \"2017-09-01\",\r\n \"2017-05-01\",\r\n \"2017-01-01\",\r\n \"2015-12-01\",\r\n \"2015-09-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations\",\r\n \"locations\": [],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\",\r\n \"2021-01-01\",\r\n \"2020-09-01\",\r\n \"2020-05-01\",\r\n \"2020-03-01-preview\",\r\n \"2020-03-01\",\r\n \"2019-08-01\",\r\n \"2019-04-01\",\r\n \"2018-12-01\",\r\n \"2017-09-01\",\r\n \"2017-05-01\",\r\n \"2017-01-01\",\r\n \"2015-12-01\",\r\n \"2015-09-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/quotas\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\",\r\n \"2021-01-01\",\r\n \"2020-09-01\",\r\n \"2020-05-01\",\r\n \"2020-03-01-preview\",\r\n \"2020-03-01\",\r\n \"2019-08-01\",\r\n \"2019-04-01\",\r\n \"2018-12-01\",\r\n \"2017-09-01\",\r\n \"2017-05-01\",\r\n \"2017-01-01\",\r\n \"2015-12-01\",\r\n \"2015-09-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/checkNameAvailability\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\",\r\n \"2021-01-01\",\r\n \"2020-09-01\",\r\n \"2020-05-01\",\r\n \"2020-03-01-preview\",\r\n \"2020-03-01\",\r\n \"2019-08-01\",\r\n \"2019-04-01\",\r\n \"2018-12-01\",\r\n \"2017-09-01\",\r\n \"2017-05-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/accountOperationResults\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\",\r\n \"2021-01-01\",\r\n \"2020-09-01\",\r\n \"2020-05-01\",\r\n \"2020-03-01-preview\",\r\n \"2020-03-01\",\r\n \"2019-08-01\",\r\n \"2019-04-01\",\r\n \"2018-12-01\",\r\n \"2017-09-01\",\r\n \"2017-05-01\",\r\n \"2017-01-01\",\r\n \"2015-12-01\",\r\n \"2015-09-01\",\r\n \"2015-07-01\",\r\n \"2014-05-01-privatepreview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/virtualMachineSkus\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/cloudServiceSkus\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/notifyNetworkSecurityPerimeterUpdatesAvailable\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\"\r\n ]\r\n }\r\n ],\r\n \"registrationState\": \"Registered\"\r\n}", "StatusCode": 200 }, { - "RequestUri": "/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourcegroups/ps85?api-version=2016-09-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjFhYmQ2NzgtMThjNS00NjYwLTlmZGQtOGM1YmE2YjZmZTFmL3Jlc291cmNlZ3JvdXBzL3BzODU/YXBpLXZlcnNpb249MjAxNi0wOS0wMQ==", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourcegroups/ps3698?api-version=2016-09-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlZ3JvdXBzL3BzMzY5OD9hcGktdmVyc2lvbj0yMDE2LTA5LTAx", "RequestMethod": "PUT", "RequestHeaders": { "x-ms-client-request-id": [ - "0f8f8c72-b12f-4eb0-b3b2-8a9aeb0ecc96" + "c4999e19-2464-419b-a10c-678493d0857d" ], "Accept-Language": [ "en-US" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.102" + "OSVersion/Microsoft.Windows.10.0.26100", + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.109" ], "Content-Type": [ "application/json; charset=utf-8" @@ -108,13 +108,13 @@ "11999" ], "x-ms-request-id": [ - "c015aae7-8f61-48bd-b4b6-5f73efbe26c6" + "62b48328-6371-48b2-97bf-2427acdf25fd" ], "x-ms-correlation-request-id": [ - "c015aae7-8f61-48bd-b4b6-5f73efbe26c6" + "62b48328-6371-48b2-97bf-2427acdf25fd" ], "x-ms-routing-request-id": [ - "EASTUS:20241113T213307Z:c015aae7-8f61-48bd-b4b6-5f73efbe26c6" + "WESTUS2:20250911T201139Z:62b48328-6371-48b2-97bf-2427acdf25fd" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -126,13 +126,13 @@ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: 15C593DE18C741ACA05C8B8BBEA5943B Ref B: MNZ221060618033 Ref C: 2024-11-13T21:33:05Z" + "Ref A: 18143FA111B541C7999E824AEFD97399 Ref B: CO6AA3150219035 Ref C: 2025-09-11T20:11:38Z" ], "Date": [ - "Wed, 13 Nov 2024 21:33:07 GMT" + "Thu, 11 Sep 2025 20:11:39 GMT" ], "Content-Length": [ - "162" + "166" ], "Content-Type": [ "application/json; charset=utf-8" @@ -141,25 +141,25 @@ "-1" ] }, - "ResponseBody": "{\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/ps85\",\r\n \"name\": \"ps85\",\r\n \"location\": \"westus2\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\"\r\n }\r\n}", + "ResponseBody": "{\r\n \"id\": \"/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698\",\r\n \"name\": \"ps3698\",\r\n \"location\": \"westus2\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\"\r\n }\r\n}", "StatusCode": 201 }, { - "RequestUri": "/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/ps85/providers/Microsoft.Batch/batchAccounts/ps7905?api-version=2022-10-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjFhYmQ2NzgtMThjNS00NjYwLTlmZGQtOGM1YmE2YjZmZTFmL3Jlc291cmNlR3JvdXBzL3BzODUvcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL3BzNzkwNT9hcGktdmVyc2lvbj0yMDIyLTEwLTAx", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437?api-version=2023-05-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL3BzMzY5OC9wcm92aWRlcnMvTWljcm9zb2Z0LkJhdGNoL2JhdGNoQWNjb3VudHMvcHM4NDM3P2FwaS12ZXJzaW9uPTIwMjMtMDUtMDE=", "RequestMethod": "PUT", "RequestHeaders": { - "x-ms-client-request-id": [ - "c71c3e29-6d83-4930-b373-12cc4fb741a1" - ], "Accept-Language": [ "en-US" ], + "x-ms-client-request-id": [ + "696ce114-29af-432c-9c70-d6c5dda20d7e" + ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Management.Batch.BatchManagementClient/3.6.4" + "OSVersion/Microsoft.Windows.10.0.26100", + "Microsoft.Azure.Management.Batch.BatchManagementClient/3.7.0" ], "Content-Type": [ "application/json; charset=utf-8" @@ -177,13 +177,13 @@ "no-cache" ], "Location": [ - "https://management.azure.com/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/ps85/providers/Microsoft.Batch/batchAccounts/ps7905/operationResults/c8b7af1b-d2d5-436f-b949-9bfe738db1a0?api-version=2022-10-01&t=638671303891546107&c=MIIHhzCCBm-gAwIBAgITHgVqhF9GOoUjuyqQWAAABWqEXzANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDYwHhcNMjQwOTIwMjMxMTQxWhcNMjUwMzE5MjMxMTQxWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKRtcYDBXS7zz5tRtvVyhrUAjudYhej1E2D3dp6XWuPdbVMbQZwMlye8vdT-kDhFD7T2mrdWqsoGnTGk0_xOHBfLGnW-0QRUqpeoTNIhu8vc2CfTUtm2t2s_-fzvFtRyhDA4mfCH1cz92EVj0vd3FD4ikW6bdOp1NkYFqUVBhKlbvJk6y-TbLFBLP5Zx4m0Ua-_P7aMzbgvOJgMOTC2jLs5w_lFDJWeP3IKUOiJmrfLpf4ey5Ov94oCE6YncDBSHJZKWcrSxDHgSz9AXrxarL4HLajGbF3MRvfkMN2gNXCoiJXBEqCLDnyQZ0BgXIvuK7vG8Rj0TyhJNj-QPr8taY6UCAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAyLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA2LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MB0GA1UdDgQWBBRKlJQpFyyZKSchkTlshetYOUX7xzAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBTxRmjG8cPwKy19i2rhsvm-NfzRQTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAG0WbzLPsmSSMI7aTe2npixmkdCmwcdZHGd43tUnB8JKrLNJEFcBsQmbcIH0adpnQNrDgRkNBBOTZ4s1LIBlRQapZpPsRItAMUguVpGVRH08T0i43w9xrp_clNbAJrrfRbmYroF0WJKMJ0nwW2rPjxdevSRygGK_nEfywwFi-p1RhHnkiEGL4GnP7PpQcRvAYMdH9LO5MRY7iLbBmosKatS_eWtSJD1CvzglNwy_vQzx81Vnk0CgndqXcVq-loGu7R4U7mkQ2NNqLbp447STxkpP-6Mdyv8J4bdnf1s3vFBNpgvJWKogWcNLlo8jnkbEf6RPNGe1W5lma7JwMKAcPzY&s=TmNe78FZZTcaxMFCsg6EMIIG2tCKvekJcX4FNnAgjuJ1mVvUgKtir7YPXzrAoKIcMGpo62maP9zSMnLmXtDaDVrdZF40OlwSW7c9Ibp4UJvgXU9ELuN9Oa7ATMBoKMvJ627Li4bb6c2ZFf-5Z4QKSGlxrjyLC8-58jc1uNJigCocGhLMizM_MuOVBhLDVUO9eODIrOiNkerZYB8-GcI6gzH3tBZPh5njNFemiiUIYJB7dlhmRbt-kna7CHPyJ08fSBbbjZZVNVKif_0iXdY3W0piVivCXFcDnezjEh0IID8QIlKDiczqdajWbj4UU4dZcvZQmteEZzyUI4xETst2mA&h=eJBcUwWz-hnm2n4j9tY-6tJRY47nXOZxPpq5BLVAHE0" + "https://management.azure.com/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437/operationResults/f591e7a1-746e-4f19-9fd5-aa0142592be4?api-version=2023-05-01&t=638932183004851134&c=MIIIpTCCBo2gAwIBAgITFgGsmnj73LBE7PaBtQABAayaeDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDMwHhcNMjUwNzE4MTIwNDI4WhcNMjYwMTE0MTIwNDI4WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKYwXiklImL5-WfPWj2FX3_Y-JxCd3XXEOuNXx5ggHubZZamujLTqEBSFsFYiH_9NCaqKTiATXu6fBpzW3ghgYhwr0PL071fQT15KnnNUFjd5hFXB7SYti9IwWu1lxSAz-De7HivujKdlsgcmfoV6upRQ0eva9e74EwLV9pCn4WQAhs-6T8p0CytQsi81qHMWybAbNvfom0ox78IEWdS_6g_d4Jl_I4ccYLMyRTOV2NioM96cRECWCZhbpLl1zwoYGSbU5H0MZaiCBjPlhXN40BqagpamZfP98sPYSBfreh6-iMGU5tNTRkh8RiJqzjhzIUpEv3PqLtWTyPUB8JS7aUCAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9BTTNQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAzKDEpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MB0GA1UdDgQWBBTxzPCXgPzIUiTz94us0y0CCMf8BzAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBRIo61gdWpv7GDzaVXRALEyV_xs5DAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggIBAAqNK9Ejzdnb9L4TyakCpJByRYVTN_6nCGbtUd2E2sELjuJGRGiRmujp_jqNyIofO_ghSaP_tqH-3WRTRUbnt5xM8aBYoYJSOgKgTsNrB6clspdhCCmzhJy6EQuOqfUDm3C7hDru1_bN3DwXt3VpDqfuYtM3MAabKg0oCYVWgFwnAKYmZLZMWMQh7k_hZxy1gOCQmE9U08tf_pU21aI0El6n5A5uG2FT0placwchheFmXAtoPjT7nU53HVmRissxUR_vRCDj_ZCFo3K3nZNXCQOKPAMc9-LC0prb9Slg6siKtSHB3iGjNQlT9-nbSnDgifI8zC1cvT8CdaNLOmUywRIB4wvRn1z123NuyfJaIz95igW9P189vBTJEZREF-MgJEboWKdlGNn6bbBtu0waqAmUU7WVLeZKdtUI6EEKF7wRGYuY_BhZx1ipyXnBHZpsufuH4AwgOO289QKmqg8QAy7HFD9c8H8fNCtR7sTZ4YNP2AhEaES0rkMSQUCNVEz42YEBi2GgrSpnI94SPdb3J3PkCMZ4OgFRjztLO7nrgbPtflhSOo_VOE0_7Y74km43WAMQPKL3-44vQrEQ61Hd_24IcFh_ChNXvUDqp39GzYlO3D0zlau4ozll8BeLUZrJwHTQWZS8XR-EifCl4MW5Y3Y1SxOLrIxnukCzQxL7aGmc&s=SPR_g8AydHAx2fRbsISNByRsbJGhJLU6-JUt3D1bzIt6yWDz76_77_MQpuUYZDqcBHaHYnieVy7BTQbdojj0-BnLt4w3o-3Ul0i16Rq0zaHreZkfbQchwflOTzx-g3kWK3WYg2yyZJrhd66aWzfffKVB1SPfxNWeb8cEvc3WaWw1sUy9OhEt3Sn75jwsn6xtz0FuT_DdyAHimQ-2mU7-shV8A0-y8V4rYc4dGgA6jlym1CrcafhQTwSnlwu0vR9q_P7wTn_zJB4FVh-Eocokah_ZbHWdLyKwhfNaHbokXvup8A5Q0XcbdlJ63LvspRj244TD4xo9hQ0aORw8InShVQ&h=NhZWEsIi8Cy5R1wXWXcLTn-B44Mq4vZHPaf5F7W8dQw" ], "Retry-After": [ "15" ], "x-ms-request-id": [ - "c8b7af1b-d2d5-436f-b949-9bfe738db1a0" + "f591e7a1-746e-4f19-9fd5-aa0142592be4" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -191,6 +191,9 @@ "X-Content-Type-Options": [ "nosniff" ], + "x-ms-operation-identifier": [ + "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=ac839cc2-33ee-4879-a5b5-2895202ccb29/westus2/f03b05a6-5650-4ed0-93c2-914e6d09a44a" + ], "x-ms-ratelimit-remaining-subscription-writes": [ "799" ], @@ -198,19 +201,19 @@ "11999" ], "x-ms-correlation-request-id": [ - "9bd81b11-a445-4d8d-ae33-c9573998c4c0" + "32605037-6654-4ba1-9cd6-dc1eec3dfd6e" ], "x-ms-routing-request-id": [ - "EASTUS:20241113T213309Z:9bd81b11-a445-4d8d-ae33-c9573998c4c0" + "WESTUS2:20250911T201140Z:32605037-6654-4ba1-9cd6-dc1eec3dfd6e" ], "X-Cache": [ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: B16AC6880FEF4B52BAD5567528655001 Ref B: MNZ221060618023 Ref C: 2024-11-13T21:33:07Z" + "Ref A: 364CFBBA767B4E1D80E32E4522BCD734 Ref B: CO6AA3150217025 Ref C: 2025-09-11T20:11:39Z" ], "Date": [ - "Wed, 13 Nov 2024 21:33:08 GMT" + "Thu, 11 Sep 2025 20:11:40 GMT" ], "Expires": [ "-1" @@ -223,21 +226,21 @@ "StatusCode": 202 }, { - "RequestUri": "/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/ps85/providers/Microsoft.Batch/batchAccounts/ps7905?api-version=2022-10-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjFhYmQ2NzgtMThjNS00NjYwLTlmZGQtOGM1YmE2YjZmZTFmL3Jlc291cmNlR3JvdXBzL3BzODUvcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL3BzNzkwNT9hcGktdmVyc2lvbj0yMDIyLTEwLTAx", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437?api-version=2023-05-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL3BzMzY5OC9wcm92aWRlcnMvTWljcm9zb2Z0LkJhdGNoL2JhdGNoQWNjb3VudHMvcHM4NDM3P2FwaS12ZXJzaW9uPTIwMjMtMDUtMDE=", "RequestMethod": "PUT", "RequestHeaders": { - "x-ms-client-request-id": [ - "14031886-ff58-476e-bb6e-03c578a83b24" - ], "Accept-Language": [ "en-US" ], + "x-ms-client-request-id": [ + "16f37d88-0e75-4a4e-a801-809a1d18de0c" + ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Management.Batch.BatchManagementClient/3.6.4" + "OSVersion/Microsoft.Windows.10.0.26100", + "Microsoft.Azure.Management.Batch.BatchManagementClient/3.7.0" ], "Content-Type": [ "application/json; charset=utf-8" @@ -255,10 +258,10 @@ "no-cache" ], "ETag": [ - "\"0x8DD042ACEE645E8\"" + "\"0x8DDF16F758B0122\"" ], "x-ms-request-id": [ - "2c5af362-748a-4d86-be77-04f67bbd4568" + "2c645818-793a-4fc6-ba71-98f94396db1b" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -266,6 +269,9 @@ "X-Content-Type-Options": [ "nosniff" ], + "x-ms-operation-identifier": [ + "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=ac839cc2-33ee-4879-a5b5-2895202ccb29/westus2/6f3638dd-4cf6-4d50-aebd-475b5d061ed3" + ], "x-ms-ratelimit-remaining-subscription-writes": [ "799" ], @@ -273,22 +279,22 @@ "11999" ], "x-ms-correlation-request-id": [ - "a909bef8-ec29-4a54-b7db-68d09994b5dc" + "ba2ed37a-e1b0-4dc8-98be-e78a07dae7f9" ], "x-ms-routing-request-id": [ - "EASTUS:20241113T213327Z:a909bef8-ec29-4a54-b7db-68d09994b5dc" + "WESTUS2:20250911T201157Z:ba2ed37a-e1b0-4dc8-98be-e78a07dae7f9" ], "X-Cache": [ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: 56B20A1523614A02868B421FC6ADE223 Ref B: MNZ221060618023 Ref C: 2024-11-13T21:33:24Z" + "Ref A: C604102A326048C4A13ED7BA25A7181C Ref B: CO6AA3150217025 Ref C: 2025-09-11T20:11:56Z" ], "Date": [ - "Wed, 13 Nov 2024 21:33:26 GMT" + "Thu, 11 Sep 2025 20:11:57 GMT" ], "Content-Length": [ - "4134" + "4815" ], "Content-Type": [ "application/json; charset=utf-8" @@ -297,25 +303,25 @@ "-1" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:33:26 GMT" + "Thu, 11 Sep 2025 20:11:57 GMT" ] }, - "ResponseBody": "{\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/ps85/providers/Microsoft.Batch/batchAccounts/ps7905\",\r\n \"name\": \"ps7905\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"westus2\",\r\n \"properties\": {\r\n \"accountEndpoint\": \"ps7905.westus2.batch.azure.com\",\r\n \"nodeManagementEndpoint\": \"d7f011df-eef8-4ee4-bf80-e443512db5d1.westus2.service.batch.azure.com\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"dedicatedCoreQuota\": 0,\r\n \"dedicatedCoreQuotaPerVMFamily\": [\r\n {\r\n \"name\": \"standardAv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardESv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardA0_A7Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardA8_A11Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardGFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"basicAFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVPromoFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCPromoFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHPromoFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardMSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardGSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNDSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHCSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBrsv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDAv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDASv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEAv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEASv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardMSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEIv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"Standard NCASv3_T4 Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardXEIDSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"Standard NDASv4_A100 Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standard NDAMSv4_A100Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDCSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNPSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFXMDVSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCADSA100v4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDADSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEADSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardNVADSA10v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEBDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHXFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLASv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCADSH100v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNGADSV620v1Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNDMI300Xv5IBFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCCadsH100v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardECasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardECadsv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDCasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDCadsv5Family\",\r\n \"coreQuota\": 0\r\n }\r\n ],\r\n \"dedicatedCoreQuotaPerVMFamilyEnforced\": true,\r\n \"lowPriorityCoreQuota\": 0,\r\n \"poolQuota\": 100,\r\n \"activeJobAndJobScheduleQuota\": 300,\r\n \"poolAllocationMode\": \"BatchService\",\r\n \"publicNetworkAccess\": \"Enabled\",\r\n \"privateEndpointConnections\": [],\r\n \"encryption\": {\r\n \"keySource\": \"Microsoft.Batch\"\r\n },\r\n \"allowedAuthenticationModes\": [\r\n \"SharedKey\",\r\n \"AAD\",\r\n \"TaskAuthenticationToken\"\r\n ]\r\n },\r\n \"tags\": {\r\n \"tag2\": \"tagValue2\"\r\n },\r\n \"identity\": {\r\n \"type\": \"None\"\r\n }\r\n}", + "ResponseBody": "{\r\n \"id\": \"/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437\",\r\n \"name\": \"ps8437\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"westus2\",\r\n \"properties\": {\r\n \"accountEndpoint\": \"ps8437.westus2.batch.azure.com\",\r\n \"nodeManagementEndpoint\": \"4963f5e0-8504-4d02-afd7-90d37a155977.westus2.service.batch.azure.com\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"dedicatedCoreQuota\": 0,\r\n \"dedicatedCoreQuotaPerVMFamily\": [\r\n {\r\n \"name\": \"standardAv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardESv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardA0_A7Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardA8_A11Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardGFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"basicAFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVPromoFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCPromoFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHPromoFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardMSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardGSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNDSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHCSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBrsv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDAv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDASv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEAv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEASv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardMSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEIv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"Standard NCASv3_T4 Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardXEIDSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"Standard NDASv4_A100 Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standard NDAMSv4_A100Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDCSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNPSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFXMDVSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCADSA100v4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDADSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEADSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardNVADSA10v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEBDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHXFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLASv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCADSH100v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNGADSV620v1Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNDMI300Xv5IBFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCCadsH100v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardECasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardECadsv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDCasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDCadsv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVadsV710v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDlsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardDasv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardDalsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardEsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEav6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardFasv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardFalsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardFamsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEiasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDasv5Family\",\r\n \"coreQuota\": 0\r\n }\r\n ],\r\n \"dedicatedCoreQuotaPerVMFamilyEnforced\": true,\r\n \"lowPriorityCoreQuota\": 0,\r\n \"poolQuota\": 100,\r\n \"activeJobAndJobScheduleQuota\": 300,\r\n \"poolAllocationMode\": \"BatchService\",\r\n \"publicNetworkAccess\": \"Enabled\",\r\n \"privateEndpointConnections\": [],\r\n \"encryption\": {\r\n \"keySource\": \"Microsoft.Batch\"\r\n },\r\n \"allowedAuthenticationModes\": [\r\n \"SharedKey\",\r\n \"AAD\",\r\n \"TaskAuthenticationToken\"\r\n ]\r\n },\r\n \"tags\": {\r\n \"tag2\": \"tagValue2\"\r\n },\r\n \"identity\": {\r\n \"type\": \"None\"\r\n }\r\n}", "StatusCode": 200 }, { - "RequestUri": "/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/ps85/providers/Microsoft.Batch/batchAccounts/ps7905/operationResults/c8b7af1b-d2d5-436f-b949-9bfe738db1a0?api-version=2022-10-01&t=638671303891546107&c=MIIHhzCCBm-gAwIBAgITHgVqhF9GOoUjuyqQWAAABWqEXzANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDYwHhcNMjQwOTIwMjMxMTQxWhcNMjUwMzE5MjMxMTQxWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKRtcYDBXS7zz5tRtvVyhrUAjudYhej1E2D3dp6XWuPdbVMbQZwMlye8vdT-kDhFD7T2mrdWqsoGnTGk0_xOHBfLGnW-0QRUqpeoTNIhu8vc2CfTUtm2t2s_-fzvFtRyhDA4mfCH1cz92EVj0vd3FD4ikW6bdOp1NkYFqUVBhKlbvJk6y-TbLFBLP5Zx4m0Ua-_P7aMzbgvOJgMOTC2jLs5w_lFDJWeP3IKUOiJmrfLpf4ey5Ov94oCE6YncDBSHJZKWcrSxDHgSz9AXrxarL4HLajGbF3MRvfkMN2gNXCoiJXBEqCLDnyQZ0BgXIvuK7vG8Rj0TyhJNj-QPr8taY6UCAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAyLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA2LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MB0GA1UdDgQWBBRKlJQpFyyZKSchkTlshetYOUX7xzAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBTxRmjG8cPwKy19i2rhsvm-NfzRQTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAG0WbzLPsmSSMI7aTe2npixmkdCmwcdZHGd43tUnB8JKrLNJEFcBsQmbcIH0adpnQNrDgRkNBBOTZ4s1LIBlRQapZpPsRItAMUguVpGVRH08T0i43w9xrp_clNbAJrrfRbmYroF0WJKMJ0nwW2rPjxdevSRygGK_nEfywwFi-p1RhHnkiEGL4GnP7PpQcRvAYMdH9LO5MRY7iLbBmosKatS_eWtSJD1CvzglNwy_vQzx81Vnk0CgndqXcVq-loGu7R4U7mkQ2NNqLbp447STxkpP-6Mdyv8J4bdnf1s3vFBNpgvJWKogWcNLlo8jnkbEf6RPNGe1W5lma7JwMKAcPzY&s=TmNe78FZZTcaxMFCsg6EMIIG2tCKvekJcX4FNnAgjuJ1mVvUgKtir7YPXzrAoKIcMGpo62maP9zSMnLmXtDaDVrdZF40OlwSW7c9Ibp4UJvgXU9ELuN9Oa7ATMBoKMvJ627Li4bb6c2ZFf-5Z4QKSGlxrjyLC8-58jc1uNJigCocGhLMizM_MuOVBhLDVUO9eODIrOiNkerZYB8-GcI6gzH3tBZPh5njNFemiiUIYJB7dlhmRbt-kna7CHPyJ08fSBbbjZZVNVKif_0iXdY3W0piVivCXFcDnezjEh0IID8QIlKDiczqdajWbj4UU4dZcvZQmteEZzyUI4xETst2mA&h=eJBcUwWz-hnm2n4j9tY-6tJRY47nXOZxPpq5BLVAHE0", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjFhYmQ2NzgtMThjNS00NjYwLTlmZGQtOGM1YmE2YjZmZTFmL3Jlc291cmNlR3JvdXBzL3BzODUvcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL3BzNzkwNS9vcGVyYXRpb25SZXN1bHRzL2M4YjdhZjFiLWQyZDUtNDM2Zi1iOTQ5LTliZmU3MzhkYjFhMD9hcGktdmVyc2lvbj0yMDIyLTEwLTAxJnQ9NjM4NjcxMzAzODkxNTQ2MTA3JmM9TUlJSGh6Q0NCbS1nQXdJQkFnSVRIZ1ZxaEY5R09vVWp1eXFRV0FBQUJXcUVYekFOQmdrcWhraUc5dzBCQVFzRkFEQkVNUk13RVFZS0NaSW1pWlB5TEdRQkdSWURSMEpNTVJNd0VRWUtDWkltaVpQeUxHUUJHUllEUVUxRk1SZ3dGZ1lEVlFRREV3OUJUVVVnU1c1bWNtRWdRMEVnTURZd0hoY05NalF3T1RJd01qTXhNVFF4V2hjTk1qVXdNekU1TWpNeE1UUXhXakJBTVQ0d1BBWURWUVFERXpWaGMzbHVZMjl3WlhKaGRHbHZibk5wWjI1cGJtZGpaWEowYVdacFkyRjBaUzV0WVc1aFoyVnRaVzUwTG1GNmRYSmxMbU52YlRDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBS1J0Y1lEQlhTN3p6NXRSdHZWeWhyVUFqdWRZaGVqMUUyRDNkcDZYV3VQZGJWTWJRWndNbHllOHZkVC1rRGhGRDdUMm1yZFdxc29HblRHazBfeE9IQmZMR25XLTBRUlVxcGVvVE5JaHU4dmMyQ2ZUVXRtMnQyc18tZnp2RnRSeWhEQTRtZkNIMWN6OTJFVmowdmQzRkQ0aWtXNmJkT3AxTmtZRnFVVkJoS2xidkprNnktVGJMRkJMUDVaeDRtMFVhLV9QN2FNemJndk9KZ01PVEMyakxzNXdfbEZESldlUDNJS1VPaUptcmZMcGY0ZXk1T3Y5NG9DRTZZbmNEQlNISlpLV2NyU3hESGdTejlBWHJ4YXJMNEhMYWpHYkYzTVJ2ZmtNTjJnTlhDb2lKWEJFcUNMRG55UVowQmdYSXZ1Szd2RzhSajBUeWhKTmotUVByOHRhWTZVQ0F3RUFBYU9DQkhRd2dnUndNQ2NHQ1NzR0FRUUJnamNWQ2dRYU1CZ3dDZ1lJS3dZQkJRVUhBd0V3Q2dZSUt3WUJCUVVIQXdJd1BRWUpLd1lCQkFHQ054VUhCREF3TGdZbUt3WUJCQUdDTnhVSWhwRGpEWVRWdEhpRThZcy1oWnZkRnM2ZEVvRmdoZm1SUzRXc21UUUNBV1FDQVFjd2dnSExCZ2dyQmdFRkJRY0JBUVNDQWIwd2dnRzVNR01HQ0NzR0FRVUZCekFDaGxkb2RIUndPaTh2WTNKc0xtMXBZM0p2YzI5bWRDNWpiMjB2Y0d0cGFXNW1jbUV2UTJWeWRITXZRa3d5VUV0SlNVNVVRMEV3TWk1QlRVVXVSMEpNWDBGTlJTVXlNRWx1Wm5KaEpUSXdRMEVsTWpBd05pNWpjblF3VXdZSUt3WUJCUVVITUFLR1IyaDBkSEE2THk5amNtd3hMbUZ0WlM1blltd3ZZV2xoTDBKTU1sQkxTVWxPVkVOQk1ESXVRVTFGTGtkQ1RGOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFl1WTNKME1GTUdDQ3NHQVFVRkJ6QUNoa2RvZEhSd09pOHZZM0pzTWk1aGJXVXVaMkpzTDJGcFlTOUNUREpRUzBsSlRsUkRRVEF5TGtGTlJTNUhRa3hmUVUxRkpUSXdTVzVtY21FbE1qQkRRU1V5TURBMkxtTnlkREJUQmdnckJnRUZCUWN3QW9aSGFIUjBjRG92TDJOeWJETXVZVzFsTG1kaWJDOWhhV0V2UWt3eVVFdEpTVTVVUTBFd01pNUJUVVV1UjBKTVgwRk5SU1V5TUVsdVpuSmhKVEl3UTBFbE1qQXdOaTVqY25Rd1V3WUlLd1lCQlFVSE1BS0dSMmgwZEhBNkx5OWpjbXcwTG1GdFpTNW5ZbXd2WVdsaEwwSk1NbEJMU1VsT1ZFTkJNREl1UVUxRkxrZENURjlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURZdVkzSjBNQjBHQTFVZERnUVdCQlJLbEpRcEZ5eVpLU2Noa1Rsc2hldFlPVVg3eHpBT0JnTlZIUThCQWY4RUJBTUNCYUF3Z2dFbUJnTlZIUjhFZ2dFZE1JSUJHVENDQVJXZ2dnRVJvSUlCRFlZX2FIUjBjRG92TDJOeWJDNXRhV055YjNOdlpuUXVZMjl0TDNCcmFXbHVabkpoTDBOU1RDOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFl1WTNKc2hqRm9kSFJ3T2k4dlkzSnNNUzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01EWXVZM0pzaGpGb2RIUndPaTh2WTNKc01pNWhiV1V1WjJKc0wyTnliQzlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURZdVkzSnNoakZvZEhSd09pOHZZM0pzTXk1aGJXVXVaMkpzTDJOeWJDOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFl1WTNKc2hqRm9kSFJ3T2k4dlkzSnNOQzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01EWXVZM0pzTUlHZEJnTlZIU0FFZ1pVd2daSXdEQVlLS3dZQkJBR0NOM3NCQVRCbUJnb3JCZ0VFQVlJM2V3SUNNRmd3VmdZSUt3WUJCUVVIQWdJd1NoNUlBRE1BTXdCbEFEQUFNUUE1QURJQU1RQXRBRFFBWkFBMkFEUUFMUUEwQUdZQU9BQmpBQzBBWVFBd0FEVUFOUUF0QURVQVlnQmtBR0VBWmdCbUFHUUFOUUJsQURNQU13QmtNQXdHQ2lzR0FRUUJnamQ3QXdFd0RBWUtLd1lCQkFHQ04zc0VBakFmQmdOVkhTTUVHREFXZ0JUeFJtakc4Y1B3S3kxOWkycmhzdm0tTmZ6UlFUQWRCZ05WSFNVRUZqQVVCZ2dyQmdFRkJRY0RBUVlJS3dZQkJRVUhBd0l3RFFZSktvWklodmNOQVFFTEJRQURnZ0VCQUcwV2J6TFBzbVNTTUk3YVRlMm5waXhta2RDbXdjZFpIR2Q0M3RVbkI4SktyTE5KRUZjQnNRbWJjSUgwYWRwblFOckRnUmtOQkJPVFo0czFMSUJsUlFhcFpwUHNSSXRBTVVndVZwR1ZSSDA4VDBpNDN3OXhycF9jbE5iQUpycmZSYm1Zcm9GMFdKS01KMG53VzJyUGp4ZGV2U1J5Z0dLX25FZnl3d0ZpLXAxUmhIbmtpRUdMNEduUDdQcFFjUnZBWU1kSDlMTzVNUlk3aUxiQm1vc0thdFNfZVd0U0pEMUN2emdsTnd5X3ZReng4MVZuazBDZ25kcVhjVnEtbG9HdTdSNFU3bWtRMk5OcUxicDQ0N1NUeGtwUC02TWR5djhKNGJkbmYxczN2RkJOcGd2SldLb2dXY05MbG84am5rYkVmNlJQTkdlMVc1bG1hN0p3TUtBY1B6WSZzPVRtTmU3OEZaWlRjYXhNRkNzZzZFTUlJRzJ0Q0t2ZWtKY1g0Rk5uQWdqdUoxbVZ2VWdLdGlyN1lQWHpyQW9LSWNNR3BvNjJtYVA5elNNbkxtWHREYURWcmRaRjQwT2x3U1c3YzlJYnA0VUp2Z1hVOUVMdU45T2E3QVRNQm9LTXZKNjI3TGk0YmI2YzJaRmYtNVo0UUtTR2x4cmp5TEM4LTU4amMxdU5KaWdDb2NHaExNaXpNX011T1ZCaExEVlVPOWVPRElyT2lOa2VyWllCOC1HY0k2Z3pIM3RCWlBoNW5qTkZlbWlpVUlZSkI3ZGxobVJidC1rbmE3Q0hQeUowOGZTQmJialpaVk5WS2lmXzBpWGRZM1cwcGlWaXZDWEZjRG5lempFaDBJSUQ4UUlsS0RpY3pxZGFqV2JqNFVVNGRaY3ZaUW10ZUVaenlVSTR4RVRzdDJtQSZoPWVKQmNVd1d6LWhubTJuNGo5dFktNnRKUlk0N25YT1p4UHBxNUJMVkFIRTA=", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437/operationResults/f591e7a1-746e-4f19-9fd5-aa0142592be4?api-version=2023-05-01&t=638932183004851134&c=MIIIpTCCBo2gAwIBAgITFgGsmnj73LBE7PaBtQABAayaeDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDMwHhcNMjUwNzE4MTIwNDI4WhcNMjYwMTE0MTIwNDI4WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKYwXiklImL5-WfPWj2FX3_Y-JxCd3XXEOuNXx5ggHubZZamujLTqEBSFsFYiH_9NCaqKTiATXu6fBpzW3ghgYhwr0PL071fQT15KnnNUFjd5hFXB7SYti9IwWu1lxSAz-De7HivujKdlsgcmfoV6upRQ0eva9e74EwLV9pCn4WQAhs-6T8p0CytQsi81qHMWybAbNvfom0ox78IEWdS_6g_d4Jl_I4ccYLMyRTOV2NioM96cRECWCZhbpLl1zwoYGSbU5H0MZaiCBjPlhXN40BqagpamZfP98sPYSBfreh6-iMGU5tNTRkh8RiJqzjhzIUpEv3PqLtWTyPUB8JS7aUCAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9BTTNQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAzKDEpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MB0GA1UdDgQWBBTxzPCXgPzIUiTz94us0y0CCMf8BzAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBRIo61gdWpv7GDzaVXRALEyV_xs5DAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggIBAAqNK9Ejzdnb9L4TyakCpJByRYVTN_6nCGbtUd2E2sELjuJGRGiRmujp_jqNyIofO_ghSaP_tqH-3WRTRUbnt5xM8aBYoYJSOgKgTsNrB6clspdhCCmzhJy6EQuOqfUDm3C7hDru1_bN3DwXt3VpDqfuYtM3MAabKg0oCYVWgFwnAKYmZLZMWMQh7k_hZxy1gOCQmE9U08tf_pU21aI0El6n5A5uG2FT0placwchheFmXAtoPjT7nU53HVmRissxUR_vRCDj_ZCFo3K3nZNXCQOKPAMc9-LC0prb9Slg6siKtSHB3iGjNQlT9-nbSnDgifI8zC1cvT8CdaNLOmUywRIB4wvRn1z123NuyfJaIz95igW9P189vBTJEZREF-MgJEboWKdlGNn6bbBtu0waqAmUU7WVLeZKdtUI6EEKF7wRGYuY_BhZx1ipyXnBHZpsufuH4AwgOO289QKmqg8QAy7HFD9c8H8fNCtR7sTZ4YNP2AhEaES0rkMSQUCNVEz42YEBi2GgrSpnI94SPdb3J3PkCMZ4OgFRjztLO7nrgbPtflhSOo_VOE0_7Y74km43WAMQPKL3-44vQrEQ61Hd_24IcFh_ChNXvUDqp39GzYlO3D0zlau4ozll8BeLUZrJwHTQWZS8XR-EifCl4MW5Y3Y1SxOLrIxnukCzQxL7aGmc&s=SPR_g8AydHAx2fRbsISNByRsbJGhJLU6-JUt3D1bzIt6yWDz76_77_MQpuUYZDqcBHaHYnieVy7BTQbdojj0-BnLt4w3o-3Ul0i16Rq0zaHreZkfbQchwflOTzx-g3kWK3WYg2yyZJrhd66aWzfffKVB1SPfxNWeb8cEvc3WaWw1sUy9OhEt3Sn75jwsn6xtz0FuT_DdyAHimQ-2mU7-shV8A0-y8V4rYc4dGgA6jlym1CrcafhQTwSnlwu0vR9q_P7wTn_zJB4FVh-Eocokah_ZbHWdLyKwhfNaHbokXvup8A5Q0XcbdlJ63LvspRj244TD4xo9hQ0aORw8InShVQ&h=NhZWEsIi8Cy5R1wXWXcLTn-B44Mq4vZHPaf5F7W8dQw", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL3BzMzY5OC9wcm92aWRlcnMvTWljcm9zb2Z0LkJhdGNoL2JhdGNoQWNjb3VudHMvcHM4NDM3L29wZXJhdGlvblJlc3VsdHMvZjU5MWU3YTEtNzQ2ZS00ZjE5LTlmZDUtYWEwMTQyNTkyYmU0P2FwaS12ZXJzaW9uPTIwMjMtMDUtMDEmdD02Mzg5MzIxODMwMDQ4NTExMzQmYz1NSUlJcFRDQ0JvMmdBd0lCQWdJVEZnR3Ntbmo3M0xCRTdQYUJ0UUFCQWF5YWVEQU5CZ2txaGtpRzl3MEJBUXNGQURCRU1STXdFUVlLQ1pJbWlaUHlMR1FCR1JZRFIwSk1NUk13RVFZS0NaSW1pWlB5TEdRQkdSWURRVTFGTVJnd0ZnWURWUVFERXc5QlRVVWdTVzVtY21FZ1EwRWdNRE13SGhjTk1qVXdOekU0TVRJd05ESTRXaGNOTWpZd01URTBNVEl3TkRJNFdqQkFNVDR3UEFZRFZRUURFelZoYzNsdVkyOXdaWEpoZEdsdmJuTnBaMjVwYm1kalpYSjBhV1pwWTJGMFpTNXRZVzVoWjJWdFpXNTBMbUY2ZFhKbExtTnZiVENDQVNJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dFUEFEQ0NBUW9DZ2dFQkFLWXdYaWtsSW1MNS1XZlBXajJGWDNfWS1KeENkM1hYRU91Tlh4NWdnSHViWlphbXVqTFRxRUJTRnNGWWlIXzlOQ2FxS1RpQVRYdTZmQnB6VzNnaGdZaHdyMFBMMDcxZlFUMTVLbm5OVUZqZDVoRlhCN1NZdGk5SXdXdTFseFNBei1EZTdIaXZ1aktkbHNnY21mb1Y2dXBSUTBldmE5ZTc0RXdMVjlwQ240V1FBaHMtNlQ4cDBDeXRRc2k4MXFITVd5YkFiTnZmb20wb3g3OElFV2RTXzZnX2Q0SmxfSTRjY1lMTXlSVE9WMk5pb005NmNSRUNXQ1poYnBMbDF6d29ZR1NiVTVIME1aYWlDQmpQbGhYTjQwQnFhZ3BhbVpmUDk4c1BZU0JmcmVoNi1pTUdVNXROVFJraDhSaUpxempoeklVcEV2M1BxTHRXVHlQVUI4SlM3YVVDQXdFQUFhT0NCSkl3Z2dTT01DY0dDU3NHQVFRQmdqY1ZDZ1FhTUJnd0NnWUlLd1lCQlFVSEF3RXdDZ1lJS3dZQkJRVUhBd0l3UFFZSkt3WUJCQUdDTnhVSEJEQXdMZ1ltS3dZQkJBR0NOeFVJaHBEakRZVFZ0SGlFOFlzLWhadmRGczZkRW9GZ2hmbVJTNFdzbVRRQ0FXUUNBUWN3Z2dIYUJnZ3JCZ0VGQlFjQkFRU0NBY3d3Z2dISU1HWUdDQ3NHQVFVRkJ6QUNobHBvZEhSd09pOHZZM0pzTG0xcFkzSnZjMjltZEM1amIyMHZjR3RwYVc1bWNtRXZRMlZ5ZEhNdlFVMHpVRXRKU1U1VVEwRXdNUzVCVFVVdVIwSk1YMEZOUlNVeU1FbHVabkpoSlRJd1EwRWxNakF3TXlneEtTNWpjblF3VmdZSUt3WUJCUVVITUFLR1NtaDBkSEE2THk5amNtd3hMbUZ0WlM1blltd3ZZV2xoTDBGTk0xQkxTVWxPVkVOQk1ERXVRVTFGTGtkQ1RGOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRE1vTVNrdVkzSjBNRllHQ0NzR0FRVUZCekFDaGtwb2RIUndPaTh2WTNKc01pNWhiV1V1WjJKc0wyRnBZUzlCVFROUVMwbEpUbFJEUVRBeExrRk5SUzVIUWt4ZlFVMUZKVEl3U1c1bWNtRWxNakJEUVNVeU1EQXpLREVwTG1OeWREQldCZ2dyQmdFRkJRY3dBb1pLYUhSMGNEb3ZMMk55YkRNdVlXMWxMbWRpYkM5aGFXRXZRVTB6VUV0SlNVNVVRMEV3TVM1QlRVVXVSMEpNWDBGTlJTVXlNRWx1Wm5KaEpUSXdRMEVsTWpBd015Z3hLUzVqY25Rd1ZnWUlLd1lCQlFVSE1BS0dTbWgwZEhBNkx5OWpjbXcwTG1GdFpTNW5ZbXd2WVdsaEwwRk5NMUJMU1VsT1ZFTkJNREV1UVUxRkxrZENURjlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURNb01Ta3VZM0owTUIwR0ExVWREZ1FXQkJUeHpQQ1hnUHpJVWlUejk0dXMweTBDQ01mOEJ6QU9CZ05WSFE4QkFmOEVCQU1DQmFBd2dnRTFCZ05WSFI4RWdnRXNNSUlCS0RDQ0FTU2dnZ0Vnb0lJQkhJWkNhSFIwY0RvdkwyTnliQzV0YVdOeWIzTnZablF1WTI5dEwzQnJhV2x1Wm5KaEwwTlNUQzlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURNb01Ta3VZM0pzaGpSb2RIUndPaTh2WTNKc01TNWhiV1V1WjJKc0wyTnliQzlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURNb01Ta3VZM0pzaGpSb2RIUndPaTh2WTNKc01pNWhiV1V1WjJKc0wyTnliQzlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURNb01Ta3VZM0pzaGpSb2RIUndPaTh2WTNKc015NWhiV1V1WjJKc0wyTnliQzlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURNb01Ta3VZM0pzaGpSb2RIUndPaTh2WTNKc05DNWhiV1V1WjJKc0wyTnliQzlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURNb01Ta3VZM0pzTUlHZEJnTlZIU0FFZ1pVd2daSXdEQVlLS3dZQkJBR0NOM3NCQVRCbUJnb3JCZ0VFQVlJM2V3SUNNRmd3VmdZSUt3WUJCUVVIQWdJd1NoNUlBRE1BTXdCbEFEQUFNUUE1QURJQU1RQXRBRFFBWkFBMkFEUUFMUUEwQUdZQU9BQmpBQzBBWVFBd0FEVUFOUUF0QURVQVlnQmtBR0VBWmdCbUFHUUFOUUJsQURNQU13QmtNQXdHQ2lzR0FRUUJnamQ3QXdJd0RBWUtLd1lCQkFHQ04zc0VBakFmQmdOVkhTTUVHREFXZ0JSSW82MWdkV3B2N0dEemFWWFJBTEV5Vl94czVEQWRCZ05WSFNVRUZqQVVCZ2dyQmdFRkJRY0RBUVlJS3dZQkJRVUhBd0l3RFFZSktvWklodmNOQVFFTEJRQURnZ0lCQUFxTks5RWp6ZG5iOUw0VHlha0NwSkJ5UllWVE5fNm5DR2J0VWQyRTJzRUxqdUpHUkdpUm11anBfanFOeUlvZk9fZ2hTYVBfdHFILTNXUlRSVWJudDV4TThhQllvWUpTT2dLZ1RzTnJCNmNsc3BkaENDbXpoSnk2RVF1T3FmVURtM0M3aERydTFfYk4zRHdYdDNWcERxZnVZdE0zTUFhYktnMG9DWVZXZ0Z3bkFLWW1aTFpNV01RaDdrX2haeHkxZ09DUW1FOVUwOHRmX3BVMjFhSTBFbDZuNUE1dUcyRlQwcGxhY3djaGhlRm1YQXRvUGpUN25VNTNIVm1SaXNzeFVSX3ZSQ0RqX1pDRm8zSzNuWk5YQ1FPS1BBTWM5LUxDMHByYjlTbGc2c2lLdFNIQjNpR2pOUWxUOS1uYlNuRGdpZkk4ekMxY3ZUOENkYU5MT21VeXdSSUI0d3ZSbjF6MTIzTnV5ZkphSXo5NWlnVzlQMTg5dkJUSkVaUkVGLU1nSkVib1dLZGxHTm42YmJCdHUwd2FxQW1VVTdXVkxlWktkdFVJNkVFS0Y3d1JHWXVZX0JoWngxaXB5WG5CSFpwc3VmdUg0QXdnT08yODlRS21xZzhRQXk3SEZEOWM4SDhmTkN0UjdzVFo0WU5QMkFoRWFFUzBya01TUVVDTlZFejQyWUVCaTJHZ3JTcG5JOTRTUGRiM0ozUGtDTVo0T2dGUmp6dExPN25yZ2JQdGZsaFNPb19WT0UwXzdZNzRrbTQzV0FNUVBLTDMtNDR2UXJFUTYxSGRfMjRJY0ZoX0NoTlh2VURxcDM5R3pZbE8zRDB6bGF1NG96bGw4QmVMVVpySndIVFFXWlM4WFItRWlmQ2w0TVc1WTNZMVN4T0xySXhudWtDelF4TDdhR21jJnM9U1BSX2c4QXlkSEF4MmZSYnNJU05CeVJzYkpHaEpMVTYtSlV0M0QxYnpJdDZ5V0R6NzZfNzdfTVFwdVVZWkRxY0JIYUhZbmllVnk3QlRRYmRvamowLUJuTHQ0dzNvLTNVbDBpMTZScTB6YUhyZVprZmJRY2h3ZmxPVHp4LWcza1dLM1dZZzJ5eVpKcmhkNjZhV3pmZmZLVkIxU1BmeE5XZWI4Y0V2YzNXYVd3MXNVeTlPaEV0M1NuNzVqd3NuNnh0ejBGdVRfRGR5QUhpbVEtMm1VNy1zaFY4QTAteThWNHJZYzRkR2dBNmpseW0xQ3JjYWZoUVR3U25sd3UwdlI5cV9QN3dUbl96SkI0RlZoLUVvY29rYWhfWmJIV2RMeUt3aGZOYUhib2tYdnVwOEE1UTBYY2JkbEo2M0x2c3BSajI0NFRENHhvOWhRMGFPUnc4SW5TaFZRJmg9TmhaV0VzSWk4Q3k1UjF3WFdYY0xUbi1CNDRNcTR2WkhQYWY1RjdXOGRRdw==", "RequestMethod": "GET", "RequestHeaders": { "x-ms-client-request-id": [ - "c71c3e29-6d83-4930-b373-12cc4fb741a1" + "696ce114-29af-432c-9c70-d6c5dda20d7e" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Management.Batch.BatchManagementClient/3.6.4" + "OSVersion/Microsoft.Windows.10.0.26100", + "Microsoft.Azure.Management.Batch.BatchManagementClient/3.7.0" ] }, "RequestBody": "", @@ -327,10 +333,10 @@ "no-cache" ], "ETag": [ - "\"0x8DD042ACDC9B190\"" + "\"0x8DDF16F749BDCC3\"" ], "x-ms-request-id": [ - "0d47274c-acdf-4de7-9710-6423650cfdf1" + "4541979c-5585-4065-ac63-25c8b7863d46" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -338,6 +344,9 @@ "X-Content-Type-Options": [ "nosniff" ], + "x-ms-operation-identifier": [ + "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=ac839cc2-33ee-4879-a5b5-2895202ccb29/westus2/9486ee6b-acdf-4aa4-ad0b-e05d9ccd4e11" + ], "x-ms-ratelimit-remaining-subscription-reads": [ "1099" ], @@ -345,22 +354,22 @@ "16499" ], "x-ms-correlation-request-id": [ - "5e0c3176-2e57-4b53-886b-307738d1a7ed" + "3181d01d-0016-45f2-8b58-b19feb255319" ], "x-ms-routing-request-id": [ - "EASTUS:20241113T213324Z:5e0c3176-2e57-4b53-886b-307738d1a7ed" + "WESTUS2:20250911T201155Z:3181d01d-0016-45f2-8b58-b19feb255319" ], "X-Cache": [ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: 16B4415E73024D2E9CE27B2CAADA3D8D Ref B: MNZ221060618023 Ref C: 2024-11-13T21:33:24Z" + "Ref A: 2454AD5E15C04CB8A405D78A10E72DAD Ref B: CO6AA3150217025 Ref C: 2025-09-11T20:11:55Z" ], "Date": [ - "Wed, 13 Nov 2024 21:33:23 GMT" + "Thu, 11 Sep 2025 20:11:55 GMT" ], "Content-Length": [ - "4134" + "4815" ], "Content-Type": [ "application/json; charset=utf-8" @@ -369,28 +378,28 @@ "-1" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:33:24 GMT" + "Thu, 11 Sep 2025 20:11:55 GMT" ] }, - "ResponseBody": "{\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/ps85/providers/Microsoft.Batch/batchAccounts/ps7905\",\r\n \"name\": \"ps7905\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"westus2\",\r\n \"properties\": {\r\n \"accountEndpoint\": \"ps7905.westus2.batch.azure.com\",\r\n \"nodeManagementEndpoint\": \"d7f011df-eef8-4ee4-bf80-e443512db5d1.westus2.service.batch.azure.com\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"dedicatedCoreQuota\": 0,\r\n \"dedicatedCoreQuotaPerVMFamily\": [\r\n {\r\n \"name\": \"standardAv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardESv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardA0_A7Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardA8_A11Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardGFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"basicAFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVPromoFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCPromoFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHPromoFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardMSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardGSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNDSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHCSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBrsv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDAv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDASv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEAv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEASv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardMSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEIv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"Standard NCASv3_T4 Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardXEIDSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"Standard NDASv4_A100 Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standard NDAMSv4_A100Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDCSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNPSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFXMDVSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCADSA100v4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDADSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEADSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardNVADSA10v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEBDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHXFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLASv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCADSH100v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNGADSV620v1Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNDMI300Xv5IBFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCCadsH100v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardECasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardECadsv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDCasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDCadsv5Family\",\r\n \"coreQuota\": 0\r\n }\r\n ],\r\n \"dedicatedCoreQuotaPerVMFamilyEnforced\": true,\r\n \"lowPriorityCoreQuota\": 0,\r\n \"poolQuota\": 100,\r\n \"activeJobAndJobScheduleQuota\": 300,\r\n \"poolAllocationMode\": \"BatchService\",\r\n \"publicNetworkAccess\": \"Enabled\",\r\n \"privateEndpointConnections\": [],\r\n \"encryption\": {\r\n \"keySource\": \"Microsoft.Batch\"\r\n },\r\n \"allowedAuthenticationModes\": [\r\n \"SharedKey\",\r\n \"AAD\",\r\n \"TaskAuthenticationToken\"\r\n ]\r\n },\r\n \"tags\": {\r\n \"tag1\": \"tagValue1\"\r\n },\r\n \"identity\": {\r\n \"type\": \"None\"\r\n }\r\n}", + "ResponseBody": "{\r\n \"id\": \"/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437\",\r\n \"name\": \"ps8437\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"westus2\",\r\n \"properties\": {\r\n \"accountEndpoint\": \"ps8437.westus2.batch.azure.com\",\r\n \"nodeManagementEndpoint\": \"4963f5e0-8504-4d02-afd7-90d37a155977.westus2.service.batch.azure.com\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"dedicatedCoreQuota\": 0,\r\n \"dedicatedCoreQuotaPerVMFamily\": [\r\n {\r\n \"name\": \"standardAv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardESv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardA0_A7Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardA8_A11Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardGFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"basicAFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVPromoFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCPromoFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHPromoFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardMSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardGSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNDSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHCSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBrsv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDAv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDASv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEAv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEASv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardMSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEIv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"Standard NCASv3_T4 Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardXEIDSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"Standard NDASv4_A100 Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standard NDAMSv4_A100Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDCSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNPSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFXMDVSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCADSA100v4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDADSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEADSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardNVADSA10v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEBDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHXFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLASv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCADSH100v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNGADSV620v1Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNDMI300Xv5IBFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCCadsH100v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardECasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardECadsv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDCasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDCadsv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVadsV710v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDlsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardDasv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardDalsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardEsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEav6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardFasv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardFalsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardFamsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEiasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDasv5Family\",\r\n \"coreQuota\": 0\r\n }\r\n ],\r\n \"dedicatedCoreQuotaPerVMFamilyEnforced\": true,\r\n \"lowPriorityCoreQuota\": 0,\r\n \"poolQuota\": 100,\r\n \"activeJobAndJobScheduleQuota\": 300,\r\n \"poolAllocationMode\": \"BatchService\",\r\n \"publicNetworkAccess\": \"Enabled\",\r\n \"privateEndpointConnections\": [],\r\n \"encryption\": {\r\n \"keySource\": \"Microsoft.Batch\"\r\n },\r\n \"allowedAuthenticationModes\": [\r\n \"SharedKey\",\r\n \"AAD\",\r\n \"TaskAuthenticationToken\"\r\n ]\r\n },\r\n \"tags\": {\r\n \"tag1\": \"tagValue1\"\r\n },\r\n \"identity\": {\r\n \"type\": \"None\"\r\n }\r\n}", "StatusCode": 200 }, { - "RequestUri": "/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/ps85/providers/Microsoft.Batch/batchAccounts/ps7905?api-version=2022-10-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjFhYmQ2NzgtMThjNS00NjYwLTlmZGQtOGM1YmE2YjZmZTFmL3Jlc291cmNlR3JvdXBzL3BzODUvcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL3BzNzkwNT9hcGktdmVyc2lvbj0yMDIyLTEwLTAx", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437?api-version=2023-05-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL3BzMzY5OC9wcm92aWRlcnMvTWljcm9zb2Z0LkJhdGNoL2JhdGNoQWNjb3VudHMvcHM4NDM3P2FwaS12ZXJzaW9uPTIwMjMtMDUtMDE=", "RequestMethod": "GET", "RequestHeaders": { - "x-ms-client-request-id": [ - "14031886-ff58-476e-bb6e-03c578a83b24" - ], "Accept-Language": [ "en-US" ], + "x-ms-client-request-id": [ + "16f37d88-0e75-4a4e-a801-809a1d18de0c" + ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Management.Batch.BatchManagementClient/3.6.4" + "OSVersion/Microsoft.Windows.10.0.26100", + "Microsoft.Azure.Management.Batch.BatchManagementClient/3.7.0" ] }, "RequestBody": "", @@ -402,10 +411,10 @@ "no-cache" ], "ETag": [ - "\"0x8DD042AC95E784D\"" + "\"0x8DDF16F703E477D\"" ], "x-ms-request-id": [ - "b3db4614-cab5-4ae9-9dd2-514528d26ea5" + "dde9108c-886f-4efb-8f4b-25afb36f9b46" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -414,28 +423,28 @@ "nosniff" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "1098" + "1099" ], "x-ms-ratelimit-remaining-subscription-global-reads": [ - "16498" + "16499" ], "x-ms-correlation-request-id": [ - "21ee491b-c9bd-40b2-82cf-c3754d5e823f" + "5aa0375b-61a5-4465-b760-b2df219baaa6" ], "x-ms-routing-request-id": [ - "EASTUS:20241113T213324Z:21ee491b-c9bd-40b2-82cf-c3754d5e823f" + "WESTUS2:20250911T201156Z:5aa0375b-61a5-4465-b760-b2df219baaa6" ], "X-Cache": [ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: 1F6B8DFB79D24E6D86650DC02CBC4D34 Ref B: MNZ221060618023 Ref C: 2024-11-13T21:33:24Z" + "Ref A: E5B2E167185E41BD910032825606ED7C Ref B: CO6AA3150217025 Ref C: 2025-09-11T20:11:56Z" ], "Date": [ - "Wed, 13 Nov 2024 21:33:24 GMT" + "Thu, 11 Sep 2025 20:11:56 GMT" ], "Content-Length": [ - "4134" + "4815" ], "Content-Type": [ "application/json; charset=utf-8" @@ -444,28 +453,28 @@ "-1" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:33:17 GMT" + "Thu, 11 Sep 2025 20:11:48 GMT" ] }, - "ResponseBody": "{\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/ps85/providers/Microsoft.Batch/batchAccounts/ps7905\",\r\n \"name\": \"ps7905\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"westus2\",\r\n \"properties\": {\r\n \"accountEndpoint\": \"ps7905.westus2.batch.azure.com\",\r\n \"nodeManagementEndpoint\": \"d7f011df-eef8-4ee4-bf80-e443512db5d1.westus2.service.batch.azure.com\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"dedicatedCoreQuota\": 0,\r\n \"dedicatedCoreQuotaPerVMFamily\": [\r\n {\r\n \"name\": \"standardAv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardESv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardA0_A7Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardA8_A11Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardGFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"basicAFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVPromoFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCPromoFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHPromoFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardMSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardGSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNDSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHCSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBrsv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDAv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDASv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEAv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEASv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardMSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEIv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"Standard NCASv3_T4 Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardXEIDSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"Standard NDASv4_A100 Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standard NDAMSv4_A100Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDCSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNPSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFXMDVSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCADSA100v4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDADSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEADSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardNVADSA10v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEBDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHXFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLASv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCADSH100v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNGADSV620v1Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNDMI300Xv5IBFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCCadsH100v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardECasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardECadsv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDCasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDCadsv5Family\",\r\n \"coreQuota\": 0\r\n }\r\n ],\r\n \"dedicatedCoreQuotaPerVMFamilyEnforced\": true,\r\n \"lowPriorityCoreQuota\": 0,\r\n \"poolQuota\": 100,\r\n \"activeJobAndJobScheduleQuota\": 300,\r\n \"poolAllocationMode\": \"BatchService\",\r\n \"publicNetworkAccess\": \"Enabled\",\r\n \"privateEndpointConnections\": [],\r\n \"encryption\": {\r\n \"keySource\": \"Microsoft.Batch\"\r\n },\r\n \"allowedAuthenticationModes\": [\r\n \"SharedKey\",\r\n \"AAD\",\r\n \"TaskAuthenticationToken\"\r\n ]\r\n },\r\n \"tags\": {\r\n \"tag1\": \"tagValue1\"\r\n },\r\n \"identity\": {\r\n \"type\": \"None\"\r\n }\r\n}", + "ResponseBody": "{\r\n \"id\": \"/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437\",\r\n \"name\": \"ps8437\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"westus2\",\r\n \"properties\": {\r\n \"accountEndpoint\": \"ps8437.westus2.batch.azure.com\",\r\n \"nodeManagementEndpoint\": \"4963f5e0-8504-4d02-afd7-90d37a155977.westus2.service.batch.azure.com\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"dedicatedCoreQuota\": 0,\r\n \"dedicatedCoreQuotaPerVMFamily\": [\r\n {\r\n \"name\": \"standardAv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardESv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardA0_A7Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardA8_A11Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardGFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"basicAFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVPromoFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCPromoFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHPromoFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardMSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardGSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNDSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHCSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBrsv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDAv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDASv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEAv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEASv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardMSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEIv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"Standard NCASv3_T4 Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardXEIDSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"Standard NDASv4_A100 Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standard NDAMSv4_A100Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDCSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNPSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFXMDVSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCADSA100v4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDADSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEADSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardNVADSA10v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEBDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHXFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLASv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCADSH100v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNGADSV620v1Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNDMI300Xv5IBFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCCadsH100v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardECasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardECadsv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDCasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDCadsv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVadsV710v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDlsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardDasv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardDalsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardEsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEav6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardFasv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardFalsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardFamsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEiasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDasv5Family\",\r\n \"coreQuota\": 0\r\n }\r\n ],\r\n \"dedicatedCoreQuotaPerVMFamilyEnforced\": true,\r\n \"lowPriorityCoreQuota\": 0,\r\n \"poolQuota\": 100,\r\n \"activeJobAndJobScheduleQuota\": 300,\r\n \"poolAllocationMode\": \"BatchService\",\r\n \"publicNetworkAccess\": \"Enabled\",\r\n \"privateEndpointConnections\": [],\r\n \"encryption\": {\r\n \"keySource\": \"Microsoft.Batch\"\r\n },\r\n \"allowedAuthenticationModes\": [\r\n \"SharedKey\",\r\n \"AAD\",\r\n \"TaskAuthenticationToken\"\r\n ]\r\n },\r\n \"tags\": {\r\n \"tag1\": \"tagValue1\"\r\n },\r\n \"identity\": {\r\n \"type\": \"None\"\r\n }\r\n}", "StatusCode": 200 }, { - "RequestUri": "/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/ps85/providers/Microsoft.Batch/batchAccounts/ps7905?api-version=2022-10-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjFhYmQ2NzgtMThjNS00NjYwLTlmZGQtOGM1YmE2YjZmZTFmL3Jlc291cmNlR3JvdXBzL3BzODUvcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL3BzNzkwNT9hcGktdmVyc2lvbj0yMDIyLTEwLTAx", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437?api-version=2023-05-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL3BzMzY5OC9wcm92aWRlcnMvTWljcm9zb2Z0LkJhdGNoL2JhdGNoQWNjb3VudHMvcHM4NDM3P2FwaS12ZXJzaW9uPTIwMjMtMDUtMDE=", "RequestMethod": "GET", "RequestHeaders": { - "x-ms-client-request-id": [ - "c42381e0-abd2-4567-a72f-3aea71786183" - ], "Accept-Language": [ "en-US" ], + "x-ms-client-request-id": [ + "b2b55042-661c-40d5-956f-1783af394332" + ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Management.Batch.BatchManagementClient/3.6.4" + "OSVersion/Microsoft.Windows.10.0.26100", + "Microsoft.Azure.Management.Batch.BatchManagementClient/3.7.0" ] }, "RequestBody": "", @@ -477,10 +486,10 @@ "no-cache" ], "ETag": [ - "\"0x8DD042ACEE0F3CE\"" + "\"0x8DDF16F758694BA\"" ], "x-ms-request-id": [ - "769a9859-4f92-417c-9458-3f9b3a075c6c" + "fecdc009-84a0-4dd6-ba50-989219262d85" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -495,22 +504,22 @@ "16499" ], "x-ms-correlation-request-id": [ - "62230bed-bacb-46fb-9735-20b9dddc86fe" + "7268ea84-50e9-4075-ae7c-d7259512d468" ], "x-ms-routing-request-id": [ - "EASTUS:20241113T213327Z:62230bed-bacb-46fb-9735-20b9dddc86fe" + "WESTUS2:20250911T201157Z:7268ea84-50e9-4075-ae7c-d7259512d468" ], "X-Cache": [ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: AE556F7C7B7C4E67829F4765DD301934 Ref B: MNZ221060618023 Ref C: 2024-11-13T21:33:27Z" + "Ref A: CB19196F938E47C98C2504669750D06C Ref B: CO6AA3150217025 Ref C: 2025-09-11T20:11:57Z" ], "Date": [ - "Wed, 13 Nov 2024 21:33:26 GMT" + "Thu, 11 Sep 2025 20:11:57 GMT" ], "Content-Length": [ - "4134" + "4815" ], "Content-Type": [ "application/json; charset=utf-8" @@ -519,28 +528,28 @@ "-1" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:33:26 GMT" + "Thu, 11 Sep 2025 20:11:57 GMT" ] }, - "ResponseBody": "{\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/ps85/providers/Microsoft.Batch/batchAccounts/ps7905\",\r\n \"name\": \"ps7905\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"westus2\",\r\n \"properties\": {\r\n \"accountEndpoint\": \"ps7905.westus2.batch.azure.com\",\r\n \"nodeManagementEndpoint\": \"d7f011df-eef8-4ee4-bf80-e443512db5d1.westus2.service.batch.azure.com\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"dedicatedCoreQuota\": 0,\r\n \"dedicatedCoreQuotaPerVMFamily\": [\r\n {\r\n \"name\": \"standardAv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardESv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardA0_A7Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardA8_A11Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardGFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"basicAFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVPromoFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCPromoFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHPromoFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardMSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardGSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNDSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHCSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBrsv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDAv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDASv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEAv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEASv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardMSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEIv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"Standard NCASv3_T4 Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardXEIDSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"Standard NDASv4_A100 Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standard NDAMSv4_A100Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDCSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNPSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFXMDVSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCADSA100v4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDADSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEADSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardNVADSA10v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEBDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHXFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLASv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCADSH100v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNGADSV620v1Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNDMI300Xv5IBFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCCadsH100v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardECasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardECadsv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDCasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDCadsv5Family\",\r\n \"coreQuota\": 0\r\n }\r\n ],\r\n \"dedicatedCoreQuotaPerVMFamilyEnforced\": true,\r\n \"lowPriorityCoreQuota\": 0,\r\n \"poolQuota\": 100,\r\n \"activeJobAndJobScheduleQuota\": 300,\r\n \"poolAllocationMode\": \"BatchService\",\r\n \"publicNetworkAccess\": \"Enabled\",\r\n \"privateEndpointConnections\": [],\r\n \"encryption\": {\r\n \"keySource\": \"Microsoft.Batch\"\r\n },\r\n \"allowedAuthenticationModes\": [\r\n \"SharedKey\",\r\n \"AAD\",\r\n \"TaskAuthenticationToken\"\r\n ]\r\n },\r\n \"tags\": {\r\n \"tag2\": \"tagValue2\"\r\n },\r\n \"identity\": {\r\n \"type\": \"None\"\r\n }\r\n}", + "ResponseBody": "{\r\n \"id\": \"/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437\",\r\n \"name\": \"ps8437\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"westus2\",\r\n \"properties\": {\r\n \"accountEndpoint\": \"ps8437.westus2.batch.azure.com\",\r\n \"nodeManagementEndpoint\": \"4963f5e0-8504-4d02-afd7-90d37a155977.westus2.service.batch.azure.com\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"dedicatedCoreQuota\": 0,\r\n \"dedicatedCoreQuotaPerVMFamily\": [\r\n {\r\n \"name\": \"standardAv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardESv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardA0_A7Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardA8_A11Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardGFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"basicAFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVPromoFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCPromoFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHPromoFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardMSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardGSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNDSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHCSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBrsv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDAv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDASv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEAv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEASv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardMSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEIv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"Standard NCASv3_T4 Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardXEIDSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"Standard NDASv4_A100 Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standard NDAMSv4_A100Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDCSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNPSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFXMDVSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCADSA100v4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDADSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEADSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardNVADSA10v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEBDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHXFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLASv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCADSH100v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNGADSV620v1Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNDMI300Xv5IBFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCCadsH100v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardECasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardECadsv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDCasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDCadsv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVadsV710v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDlsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardDasv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardDalsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardEsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEav6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardFasv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardFalsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardFamsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEiasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDasv5Family\",\r\n \"coreQuota\": 0\r\n }\r\n ],\r\n \"dedicatedCoreQuotaPerVMFamilyEnforced\": true,\r\n \"lowPriorityCoreQuota\": 0,\r\n \"poolQuota\": 100,\r\n \"activeJobAndJobScheduleQuota\": 300,\r\n \"poolAllocationMode\": \"BatchService\",\r\n \"publicNetworkAccess\": \"Enabled\",\r\n \"privateEndpointConnections\": [],\r\n \"encryption\": {\r\n \"keySource\": \"Microsoft.Batch\"\r\n },\r\n \"allowedAuthenticationModes\": [\r\n \"SharedKey\",\r\n \"AAD\",\r\n \"TaskAuthenticationToken\"\r\n ]\r\n },\r\n \"tags\": {\r\n \"tag2\": \"tagValue2\"\r\n },\r\n \"identity\": {\r\n \"type\": \"None\"\r\n }\r\n}", "StatusCode": 200 }, { - "RequestUri": "/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/ps85/providers/Microsoft.Batch/batchAccounts/ps7905?api-version=2022-10-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjFhYmQ2NzgtMThjNS00NjYwLTlmZGQtOGM1YmE2YjZmZTFmL3Jlc291cmNlR3JvdXBzL3BzODUvcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL3BzNzkwNT9hcGktdmVyc2lvbj0yMDIyLTEwLTAx", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437?api-version=2023-05-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL3BzMzY5OC9wcm92aWRlcnMvTWljcm9zb2Z0LkJhdGNoL2JhdGNoQWNjb3VudHMvcHM4NDM3P2FwaS12ZXJzaW9uPTIwMjMtMDUtMDE=", "RequestMethod": "GET", "RequestHeaders": { - "x-ms-client-request-id": [ - "ad7f7b9b-e990-4cb9-936c-1112ec7c6f6f" - ], "Accept-Language": [ "en-US" ], + "x-ms-client-request-id": [ + "a3a31097-908b-4387-977a-4ac220575229" + ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Management.Batch.BatchManagementClient/3.6.4" + "OSVersion/Microsoft.Windows.10.0.26100", + "Microsoft.Azure.Management.Batch.BatchManagementClient/3.7.0" ] }, "RequestBody": "", @@ -552,10 +561,10 @@ "no-cache" ], "ETag": [ - "\"0x8DD042ACEE0F3CE\"" + "\"0x8DDF16F758694BA\"" ], "x-ms-request-id": [ - "9601468d-9958-405e-87db-6b1f606e1577" + "c89c5b0a-8261-43d7-8207-b7d4c3736ea5" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -570,22 +579,22 @@ "16499" ], "x-ms-correlation-request-id": [ - "d5058925-f5c7-4de8-8797-f480c2785284" + "8a7229b7-0b69-4b02-b610-0bed83f70fe6" ], "x-ms-routing-request-id": [ - "EASTUS:20241113T213328Z:d5058925-f5c7-4de8-8797-f480c2785284" + "WESTUS2:20250911T201157Z:8a7229b7-0b69-4b02-b610-0bed83f70fe6" ], "X-Cache": [ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: 4EF060AE35BB4B229094EC704FA65083 Ref B: MNZ221060618023 Ref C: 2024-11-13T21:33:27Z" + "Ref A: FD2CE00B6B57498582A408F1CB2CAFF6 Ref B: CO6AA3150217025 Ref C: 2025-09-11T20:11:57Z" ], "Date": [ - "Wed, 13 Nov 2024 21:33:27 GMT" + "Thu, 11 Sep 2025 20:11:57 GMT" ], "Content-Length": [ - "4134" + "4815" ], "Content-Type": [ "application/json; charset=utf-8" @@ -594,28 +603,28 @@ "-1" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:33:26 GMT" + "Thu, 11 Sep 2025 20:11:57 GMT" ] }, - "ResponseBody": "{\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/ps85/providers/Microsoft.Batch/batchAccounts/ps7905\",\r\n \"name\": \"ps7905\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"westus2\",\r\n \"properties\": {\r\n \"accountEndpoint\": \"ps7905.westus2.batch.azure.com\",\r\n \"nodeManagementEndpoint\": \"d7f011df-eef8-4ee4-bf80-e443512db5d1.westus2.service.batch.azure.com\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"dedicatedCoreQuota\": 0,\r\n \"dedicatedCoreQuotaPerVMFamily\": [\r\n {\r\n \"name\": \"standardAv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardESv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardA0_A7Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardA8_A11Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardGFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"basicAFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVPromoFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCPromoFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHPromoFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardMSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardGSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNDSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHCSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBrsv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDAv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDASv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEAv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEASv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardMSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEIv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"Standard NCASv3_T4 Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardXEIDSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"Standard NDASv4_A100 Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standard NDAMSv4_A100Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDCSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNPSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFXMDVSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCADSA100v4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDADSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEADSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardNVADSA10v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEBDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHXFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLASv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCADSH100v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNGADSV620v1Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNDMI300Xv5IBFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCCadsH100v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardECasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardECadsv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDCasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDCadsv5Family\",\r\n \"coreQuota\": 0\r\n }\r\n ],\r\n \"dedicatedCoreQuotaPerVMFamilyEnforced\": true,\r\n \"lowPriorityCoreQuota\": 0,\r\n \"poolQuota\": 100,\r\n \"activeJobAndJobScheduleQuota\": 300,\r\n \"poolAllocationMode\": \"BatchService\",\r\n \"publicNetworkAccess\": \"Enabled\",\r\n \"privateEndpointConnections\": [],\r\n \"encryption\": {\r\n \"keySource\": \"Microsoft.Batch\"\r\n },\r\n \"allowedAuthenticationModes\": [\r\n \"SharedKey\",\r\n \"AAD\",\r\n \"TaskAuthenticationToken\"\r\n ]\r\n },\r\n \"tags\": {\r\n \"tag2\": \"tagValue2\"\r\n },\r\n \"identity\": {\r\n \"type\": \"None\"\r\n }\r\n}", + "ResponseBody": "{\r\n \"id\": \"/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437\",\r\n \"name\": \"ps8437\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"westus2\",\r\n \"properties\": {\r\n \"accountEndpoint\": \"ps8437.westus2.batch.azure.com\",\r\n \"nodeManagementEndpoint\": \"4963f5e0-8504-4d02-afd7-90d37a155977.westus2.service.batch.azure.com\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"dedicatedCoreQuota\": 0,\r\n \"dedicatedCoreQuotaPerVMFamily\": [\r\n {\r\n \"name\": \"standardAv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardESv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardA0_A7Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardA8_A11Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardGFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"basicAFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVPromoFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCPromoFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHPromoFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardMSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardGSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNDSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHCSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBrsv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDAv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDASv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEAv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEASv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardMSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEIv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"Standard NCASv3_T4 Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardXEIDSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"Standard NDASv4_A100 Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standard NDAMSv4_A100Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDCSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNPSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFXMDVSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCADSA100v4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDADSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEADSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardNVADSA10v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEBDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHXFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLASv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCADSH100v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNGADSV620v1Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNDMI300Xv5IBFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCCadsH100v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardECasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardECadsv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDCasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDCadsv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVadsV710v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDlsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardDasv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardDalsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardEsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEav6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardFasv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardFalsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardFamsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEiasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDasv5Family\",\r\n \"coreQuota\": 0\r\n }\r\n ],\r\n \"dedicatedCoreQuotaPerVMFamilyEnforced\": true,\r\n \"lowPriorityCoreQuota\": 0,\r\n \"poolQuota\": 100,\r\n \"activeJobAndJobScheduleQuota\": 300,\r\n \"poolAllocationMode\": \"BatchService\",\r\n \"publicNetworkAccess\": \"Enabled\",\r\n \"privateEndpointConnections\": [],\r\n \"encryption\": {\r\n \"keySource\": \"Microsoft.Batch\"\r\n },\r\n \"allowedAuthenticationModes\": [\r\n \"SharedKey\",\r\n \"AAD\",\r\n \"TaskAuthenticationToken\"\r\n ]\r\n },\r\n \"tags\": {\r\n \"tag2\": \"tagValue2\"\r\n },\r\n \"identity\": {\r\n \"type\": \"None\"\r\n }\r\n}", "StatusCode": 200 }, { - "RequestUri": "/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/ps85/providers/Microsoft.Batch/batchAccounts/ps7905?api-version=2022-10-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjFhYmQ2NzgtMThjNS00NjYwLTlmZGQtOGM1YmE2YjZmZTFmL3Jlc291cmNlR3JvdXBzL3BzODUvcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL3BzNzkwNT9hcGktdmVyc2lvbj0yMDIyLTEwLTAx", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437?api-version=2023-05-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL3BzMzY5OC9wcm92aWRlcnMvTWljcm9zb2Z0LkJhdGNoL2JhdGNoQWNjb3VudHMvcHM4NDM3P2FwaS12ZXJzaW9uPTIwMjMtMDUtMDE=", "RequestMethod": "GET", "RequestHeaders": { - "x-ms-client-request-id": [ - "97e13db1-9026-4ec8-8327-c9e32a437943" - ], "Accept-Language": [ "en-US" ], + "x-ms-client-request-id": [ + "56540c4b-4e6d-4b19-ae91-9b677b12df0a" + ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Management.Batch.BatchManagementClient/3.6.4" + "OSVersion/Microsoft.Windows.10.0.26100", + "Microsoft.Azure.Management.Batch.BatchManagementClient/3.7.0" ] }, "RequestBody": "", @@ -627,10 +636,10 @@ "no-cache" ], "ETag": [ - "\"0x8DD042ACEE0F3CE\"" + "\"0x8DDF16F758694BA\"" ], "x-ms-request-id": [ - "86c05c6a-4df2-4c94-ab6a-db164a8e2b76" + "2735a0d6-e13c-4987-8148-8f6639e9f38f" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -645,22 +654,22 @@ "16499" ], "x-ms-correlation-request-id": [ - "8315ac87-9086-41f4-b018-5c39e4b38dce" + "6689e271-c4d9-403c-b238-7bb2f743a75b" ], "x-ms-routing-request-id": [ - "EASTUS:20241113T213329Z:8315ac87-9086-41f4-b018-5c39e4b38dce" + "WESTUS2:20250911T201157Z:6689e271-c4d9-403c-b238-7bb2f743a75b" ], "X-Cache": [ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: 3F9ACF3A345C40BF9215AA20A0D3DBC6 Ref B: MNZ221060618023 Ref C: 2024-11-13T21:33:28Z" + "Ref A: 361B4E3B4F304652962FDDD8988289D1 Ref B: CO6AA3150217025 Ref C: 2025-09-11T20:11:57Z" ], "Date": [ - "Wed, 13 Nov 2024 21:33:28 GMT" + "Thu, 11 Sep 2025 20:11:57 GMT" ], "Content-Length": [ - "4134" + "4815" ], "Content-Type": [ "application/json; charset=utf-8" @@ -669,28 +678,28 @@ "-1" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:33:26 GMT" + "Thu, 11 Sep 2025 20:11:57 GMT" ] }, - "ResponseBody": "{\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/ps85/providers/Microsoft.Batch/batchAccounts/ps7905\",\r\n \"name\": \"ps7905\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"westus2\",\r\n \"properties\": {\r\n \"accountEndpoint\": \"ps7905.westus2.batch.azure.com\",\r\n \"nodeManagementEndpoint\": \"d7f011df-eef8-4ee4-bf80-e443512db5d1.westus2.service.batch.azure.com\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"dedicatedCoreQuota\": 0,\r\n \"dedicatedCoreQuotaPerVMFamily\": [\r\n {\r\n \"name\": \"standardAv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardESv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardA0_A7Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardA8_A11Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardGFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"basicAFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVPromoFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCPromoFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHPromoFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardMSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardGSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNDSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHCSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBrsv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDAv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDASv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEAv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEASv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardMSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEIv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"Standard NCASv3_T4 Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardXEIDSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"Standard NDASv4_A100 Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standard NDAMSv4_A100Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDCSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNPSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFXMDVSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCADSA100v4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDADSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEADSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardNVADSA10v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEBDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHXFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLASv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCADSH100v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNGADSV620v1Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNDMI300Xv5IBFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCCadsH100v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardECasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardECadsv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDCasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDCadsv5Family\",\r\n \"coreQuota\": 0\r\n }\r\n ],\r\n \"dedicatedCoreQuotaPerVMFamilyEnforced\": true,\r\n \"lowPriorityCoreQuota\": 0,\r\n \"poolQuota\": 100,\r\n \"activeJobAndJobScheduleQuota\": 300,\r\n \"poolAllocationMode\": \"BatchService\",\r\n \"publicNetworkAccess\": \"Enabled\",\r\n \"privateEndpointConnections\": [],\r\n \"encryption\": {\r\n \"keySource\": \"Microsoft.Batch\"\r\n },\r\n \"allowedAuthenticationModes\": [\r\n \"SharedKey\",\r\n \"AAD\",\r\n \"TaskAuthenticationToken\"\r\n ]\r\n },\r\n \"tags\": {\r\n \"tag2\": \"tagValue2\"\r\n },\r\n \"identity\": {\r\n \"type\": \"None\"\r\n }\r\n}", + "ResponseBody": "{\r\n \"id\": \"/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437\",\r\n \"name\": \"ps8437\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"westus2\",\r\n \"properties\": {\r\n \"accountEndpoint\": \"ps8437.westus2.batch.azure.com\",\r\n \"nodeManagementEndpoint\": \"4963f5e0-8504-4d02-afd7-90d37a155977.westus2.service.batch.azure.com\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"dedicatedCoreQuota\": 0,\r\n \"dedicatedCoreQuotaPerVMFamily\": [\r\n {\r\n \"name\": \"standardAv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardESv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardA0_A7Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardA8_A11Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardGFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"basicAFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVPromoFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCPromoFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHPromoFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardMSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardGSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNDSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHCSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBrsv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDAv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDASv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEAv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEASv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardMSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEIv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"Standard NCASv3_T4 Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardXEIDSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"Standard NDASv4_A100 Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standard NDAMSv4_A100Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDCSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNPSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFXMDVSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCADSA100v4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDADSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEADSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardNVADSA10v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEBDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHXFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLASv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCADSH100v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNGADSV620v1Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNDMI300Xv5IBFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCCadsH100v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardECasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardECadsv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDCasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDCadsv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVadsV710v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDlsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardDasv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardDalsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardEsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEav6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardFasv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardFalsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardFamsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEiasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDasv5Family\",\r\n \"coreQuota\": 0\r\n }\r\n ],\r\n \"dedicatedCoreQuotaPerVMFamilyEnforced\": true,\r\n \"lowPriorityCoreQuota\": 0,\r\n \"poolQuota\": 100,\r\n \"activeJobAndJobScheduleQuota\": 300,\r\n \"poolAllocationMode\": \"BatchService\",\r\n \"publicNetworkAccess\": \"Enabled\",\r\n \"privateEndpointConnections\": [],\r\n \"encryption\": {\r\n \"keySource\": \"Microsoft.Batch\"\r\n },\r\n \"allowedAuthenticationModes\": [\r\n \"SharedKey\",\r\n \"AAD\",\r\n \"TaskAuthenticationToken\"\r\n ]\r\n },\r\n \"tags\": {\r\n \"tag2\": \"tagValue2\"\r\n },\r\n \"identity\": {\r\n \"type\": \"None\"\r\n }\r\n}", "StatusCode": 200 }, { - "RequestUri": "/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/ps85/providers/Microsoft.Batch/batchAccounts/ps7905?api-version=2022-10-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjFhYmQ2NzgtMThjNS00NjYwLTlmZGQtOGM1YmE2YjZmZTFmL3Jlc291cmNlR3JvdXBzL3BzODUvcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL3BzNzkwNT9hcGktdmVyc2lvbj0yMDIyLTEwLTAx", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437?api-version=2023-05-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL3BzMzY5OC9wcm92aWRlcnMvTWljcm9zb2Z0LkJhdGNoL2JhdGNoQWNjb3VudHMvcHM4NDM3P2FwaS12ZXJzaW9uPTIwMjMtMDUtMDE=", "RequestMethod": "GET", "RequestHeaders": { - "x-ms-client-request-id": [ - "b5aeb594-f6af-46c4-b420-b08d87b29e83" - ], "Accept-Language": [ "en-US" ], + "x-ms-client-request-id": [ + "14210daf-0b00-4333-b4c8-f3ba6bf44198" + ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Management.Batch.BatchManagementClient/3.6.4" + "OSVersion/Microsoft.Windows.10.0.26100", + "Microsoft.Azure.Management.Batch.BatchManagementClient/3.7.0" ] }, "RequestBody": "", @@ -702,10 +711,10 @@ "no-cache" ], "ETag": [ - "\"0x8DD042AD0F90182\"" + "\"0x8DDF16F76261216\"" ], "x-ms-request-id": [ - "bcdf70cc-079e-48b0-b78f-01d733ba0876" + "2a3bd4c5-46a3-4a83-862b-e80aa9fa17e0" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -720,22 +729,22 @@ "16499" ], "x-ms-correlation-request-id": [ - "48fc6bc8-14e0-4779-9a71-3a390a793dd8" + "d8903f6b-0812-45c8-8337-dacd7c4671fc" ], "x-ms-routing-request-id": [ - "EASTUS:20241113T213330Z:48fc6bc8-14e0-4779-9a71-3a390a793dd8" + "WESTUS2:20250911T201158Z:d8903f6b-0812-45c8-8337-dacd7c4671fc" ], "X-Cache": [ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: 094E1BC975F149E5BD54FB2612595724 Ref B: MNZ221060618023 Ref C: 2024-11-13T21:33:29Z" + "Ref A: 1BE6CA2199E047739FE9659134D1F1A5 Ref B: CO6AA3150217025 Ref C: 2025-09-11T20:11:58Z" ], "Date": [ - "Wed, 13 Nov 2024 21:33:29 GMT" + "Thu, 11 Sep 2025 20:11:58 GMT" ], "Content-Length": [ - "4134" + "4815" ], "Content-Type": [ "application/json; charset=utf-8" @@ -744,28 +753,28 @@ "-1" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:33:29 GMT" + "Thu, 11 Sep 2025 20:11:58 GMT" ] }, - "ResponseBody": "{\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/ps85/providers/Microsoft.Batch/batchAccounts/ps7905\",\r\n \"name\": \"ps7905\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"westus2\",\r\n \"properties\": {\r\n \"accountEndpoint\": \"ps7905.westus2.batch.azure.com\",\r\n \"nodeManagementEndpoint\": \"d7f011df-eef8-4ee4-bf80-e443512db5d1.westus2.service.batch.azure.com\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"dedicatedCoreQuota\": 0,\r\n \"dedicatedCoreQuotaPerVMFamily\": [\r\n {\r\n \"name\": \"standardAv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardESv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardA0_A7Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardA8_A11Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardGFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"basicAFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVPromoFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCPromoFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHPromoFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardMSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardGSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNDSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHCSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBrsv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDAv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDASv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEAv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEASv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardMSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEIv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"Standard NCASv3_T4 Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardXEIDSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"Standard NDASv4_A100 Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standard NDAMSv4_A100Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDCSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNPSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFXMDVSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCADSA100v4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDADSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEADSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardNVADSA10v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEBDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHXFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLASv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCADSH100v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNGADSV620v1Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNDMI300Xv5IBFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCCadsH100v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardECasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardECadsv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDCasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDCadsv5Family\",\r\n \"coreQuota\": 0\r\n }\r\n ],\r\n \"dedicatedCoreQuotaPerVMFamilyEnforced\": true,\r\n \"lowPriorityCoreQuota\": 0,\r\n \"poolQuota\": 100,\r\n \"activeJobAndJobScheduleQuota\": 300,\r\n \"poolAllocationMode\": \"BatchService\",\r\n \"publicNetworkAccess\": \"Enabled\",\r\n \"privateEndpointConnections\": [],\r\n \"encryption\": {\r\n \"keySource\": \"Microsoft.Batch\"\r\n },\r\n \"allowedAuthenticationModes\": [\r\n \"SharedKey\",\r\n \"AAD\",\r\n \"TaskAuthenticationToken\"\r\n ]\r\n },\r\n \"tags\": {\r\n \"tag2\": \"tagValue2\"\r\n },\r\n \"identity\": {\r\n \"type\": \"None\"\r\n }\r\n}", + "ResponseBody": "{\r\n \"id\": \"/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437\",\r\n \"name\": \"ps8437\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"westus2\",\r\n \"properties\": {\r\n \"accountEndpoint\": \"ps8437.westus2.batch.azure.com\",\r\n \"nodeManagementEndpoint\": \"4963f5e0-8504-4d02-afd7-90d37a155977.westus2.service.batch.azure.com\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"dedicatedCoreQuota\": 0,\r\n \"dedicatedCoreQuotaPerVMFamily\": [\r\n {\r\n \"name\": \"standardAv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardESv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardA0_A7Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardA8_A11Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardGFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"basicAFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVPromoFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCPromoFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHPromoFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardMSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardGSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNDSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHCSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBrsv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDAv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDASv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEAv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEASv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardMSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEIv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"Standard NCASv3_T4 Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardXEIDSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"Standard NDASv4_A100 Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standard NDAMSv4_A100Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDCSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNPSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFXMDVSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCADSA100v4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDADSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEADSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardNVADSA10v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEBDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHXFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLASv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCADSH100v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNGADSV620v1Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNDMI300Xv5IBFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCCadsH100v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardECasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardECadsv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDCasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDCadsv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVadsV710v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDlsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardDasv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardDalsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardEsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEav6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardFasv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardFalsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardFamsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEiasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDasv5Family\",\r\n \"coreQuota\": 0\r\n }\r\n ],\r\n \"dedicatedCoreQuotaPerVMFamilyEnforced\": true,\r\n \"lowPriorityCoreQuota\": 0,\r\n \"poolQuota\": 100,\r\n \"activeJobAndJobScheduleQuota\": 300,\r\n \"poolAllocationMode\": \"BatchService\",\r\n \"publicNetworkAccess\": \"Enabled\",\r\n \"privateEndpointConnections\": [],\r\n \"encryption\": {\r\n \"keySource\": \"Microsoft.Batch\"\r\n },\r\n \"allowedAuthenticationModes\": [\r\n \"SharedKey\",\r\n \"AAD\",\r\n \"TaskAuthenticationToken\"\r\n ]\r\n },\r\n \"tags\": {\r\n \"tag2\": \"tagValue2\"\r\n },\r\n \"identity\": {\r\n \"type\": \"None\"\r\n }\r\n}", "StatusCode": 200 }, { - "RequestUri": "/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/ps85/providers/Microsoft.Batch/batchAccounts/ps7905?api-version=2022-10-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjFhYmQ2NzgtMThjNS00NjYwLTlmZGQtOGM1YmE2YjZmZTFmL3Jlc291cmNlR3JvdXBzL3BzODUvcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL3BzNzkwNT9hcGktdmVyc2lvbj0yMDIyLTEwLTAx", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437?api-version=2023-05-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL3BzMzY5OC9wcm92aWRlcnMvTWljcm9zb2Z0LkJhdGNoL2JhdGNoQWNjb3VudHMvcHM4NDM3P2FwaS12ZXJzaW9uPTIwMjMtMDUtMDE=", "RequestMethod": "GET", "RequestHeaders": { - "x-ms-client-request-id": [ - "1824c633-2c94-4a76-b553-7c8abe11b1a8" - ], "Accept-Language": [ "en-US" ], + "x-ms-client-request-id": [ + "e7011253-88e8-444d-8a04-3eb6134f314b" + ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Management.Batch.BatchManagementClient/3.6.4" + "OSVersion/Microsoft.Windows.10.0.26100", + "Microsoft.Azure.Management.Batch.BatchManagementClient/3.7.0" ] }, "RequestBody": "", @@ -780,7 +789,7 @@ "1099" ], "x-ms-request-id": [ - "42091cc3-ab12-4af4-b616-df44a8417e15" + "c8b0e226-1a8e-4a97-aaa6-74dd9611a071" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -792,19 +801,19 @@ "16499" ], "x-ms-correlation-request-id": [ - "df41d888-404d-40b8-8c4b-06cbbfdde55d" + "443917ef-97ae-4a3b-98b2-fe198dc71581" ], "x-ms-routing-request-id": [ - "EASTUS:20241113T213347Z:df41d888-404d-40b8-8c4b-06cbbfdde55d" + "WESTUS2:20250911T201214Z:443917ef-97ae-4a3b-98b2-fe198dc71581" ], "X-Cache": [ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: 138F8F8BBF4E470BBBA1B5EC780358C7 Ref B: MNZ221060618023 Ref C: 2024-11-13T21:33:46Z" + "Ref A: 46C6A9B63A4C4F4BA5226FC8A5BC6444 Ref B: CO6AA3150217025 Ref C: 2025-09-11T20:12:14Z" ], "Date": [ - "Wed, 13 Nov 2024 21:33:46 GMT" + "Thu, 11 Sep 2025 20:12:14 GMT" ], "Content-Length": [ "193" @@ -816,25 +825,25 @@ "-1" ] }, - "ResponseBody": "{\r\n \"error\": {\r\n \"code\": \"AccountNotFound\",\r\n \"message\": \"The specified account does not exist.\\nRequestId:42091cc3-ab12-4af4-b616-df44a8417e15\\nTime:2024-11-13T21:33:46.9723225Z\",\r\n \"target\": \"BatchAccount\"\r\n }\r\n}", + "ResponseBody": "{\r\n \"error\": {\r\n \"code\": \"AccountNotFound\",\r\n \"message\": \"The specified account does not exist.\\nRequestId:c8b0e226-1a8e-4a97-aaa6-74dd9611a071\\nTime:2025-09-11T20:12:14.1250984Z\",\r\n \"target\": \"BatchAccount\"\r\n }\r\n}", "StatusCode": 404 }, { - "RequestUri": "/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resources?$filter=resourceType%20eq%20'Microsoft.Batch%2FbatchAccounts'&api-version=2016-09-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjFhYmQ2NzgtMThjNS00NjYwLTlmZGQtOGM1YmE2YjZmZTFmL3Jlc291cmNlcz8kZmlsdGVyPXJlc291cmNlVHlwZSUyMGVxJTIwJ01pY3Jvc29mdC5CYXRjaCUyRmJhdGNoQWNjb3VudHMnJmFwaS12ZXJzaW9uPTIwMTYtMDktMDE=", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resources?$filter=resourceType%20eq%20'Microsoft.Batch%2FbatchAccounts'&api-version=2016-09-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlcz8kZmlsdGVyPXJlc291cmNlVHlwZSUyMGVxJTIwJ01pY3Jvc29mdC5CYXRjaCUyRmJhdGNoQWNjb3VudHMnJmFwaS12ZXJzaW9uPTIwMTYtMDktMDE=", "RequestMethod": "GET", "RequestHeaders": { - "x-ms-client-request-id": [ - "ad7f7b9b-e990-4cb9-936c-1112ec7c6f6f" - ], "Accept-Language": [ "en-US" ], + "x-ms-client-request-id": [ + "a3a31097-908b-4387-977a-4ac220575229" + ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.102" + "OSVersion/Microsoft.Windows.10.0.26100", + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.109" ] }, "RequestBody": "", @@ -852,13 +861,13 @@ "16499" ], "x-ms-request-id": [ - "882a9412-0fe6-4738-8289-5d884e763b19" + "c6151e1e-e751-497c-b7c8-1a4fc1f52235" ], "x-ms-correlation-request-id": [ - "882a9412-0fe6-4738-8289-5d884e763b19" + "c6151e1e-e751-497c-b7c8-1a4fc1f52235" ], "x-ms-routing-request-id": [ - "EASTUS:20241113T213327Z:882a9412-0fe6-4738-8289-5d884e763b19" + "WESTUS2:20250911T201157Z:c6151e1e-e751-497c-b7c8-1a4fc1f52235" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -870,13 +879,13 @@ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: 30C87CBDDA5F4D42B148DDE82FA8BDCF Ref B: MNZ221060618033 Ref C: 2024-11-13T21:33:27Z" + "Ref A: 5C42901D62BD43359B4E2A8B06DA87B0 Ref B: CO6AA3150219035 Ref C: 2025-09-11T20:11:57Z" ], "Date": [ - "Wed, 13 Nov 2024 21:33:27 GMT" + "Thu, 11 Sep 2025 20:11:57 GMT" ], "Content-Length": [ - "34246" + "487" ], "Content-Type": [ "application/json; charset=utf-8" @@ -885,25 +894,25 @@ "-1" ] }, - "ResponseBody": "{\r\n \"value\": [\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/123/providers/Microsoft.Batch/batchAccounts/zfengcmkbyos1\",\r\n \"name\": \"zfengcmkbyos1\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"westus\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/123/providers/Microsoft.Batch/batchAccounts/zzzfff\",\r\n \"name\": \"zzzfff\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"westus\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/123/providers/Microsoft.Batch/batchAccounts/zfengbyosrbackv\",\r\n \"name\": \"zfengbyosrbackv\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"australiacentral\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/123/providers/Microsoft.Batch/batchAccounts/zfengcmk5\",\r\n \"name\": \"zfengcmk5\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"westus\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/123/providers/Microsoft.Batch/batchAccounts/zfght\",\r\n \"name\": \"zfght\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"westus\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/123/providers/Microsoft.Batch/batchAccounts/zfengtest\",\r\n \"name\": \"zfengtest\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"westus\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/123/providers/Microsoft.Batch/batchAccounts/zfengtest1\",\r\n \"name\": \"zfengtest1\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"westus\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/123/providers/Microsoft.Batch/batchAccounts/zfengapppkg\",\r\n \"name\": \"zfengapppkg\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"westus\",\r\n \"identity\": {\r\n \"principalId\": \"7afbf2f9-2917-4d5f-b825-a458684bab21\",\r\n \"tenantId\": \"72f988bf-86f1-41af-91ab-2d7cd011db47\",\r\n \"type\": \"SystemAssigned\"\r\n }\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/123/providers/Microsoft.Batch/batchAccounts/zfengcmk6\",\r\n \"name\": \"zfengcmk6\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"westus\",\r\n \"identity\": {\r\n \"principalId\": \"9e06a541-7a54-4f43-99cb-1486eb85f9d0\",\r\n \"tenantId\": \"72f988bf-86f1-41af-91ab-2d7cd011db47\",\r\n \"type\": \"SystemAssigned\"\r\n }\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/123/providers/Microsoft.Batch/batchAccounts/hoppeuser\",\r\n \"name\": \"hoppeuser\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"centralus\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/123/providers/Microsoft.Batch/batchAccounts/zzzzffff\",\r\n \"name\": \"zzzzffff\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"westus\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/123/providers/Microsoft.Batch/batchAccounts/zfengkorencentral\",\r\n \"name\": \"zfengkorencentral\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"koreacentral\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/123/providers/Microsoft.Batch/batchAccounts/zfplinkv2k\",\r\n \"name\": \"zfplinkv2k\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"eastus\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/123/providers/Microsoft.Batch/batchAccounts/zfengcmk9\",\r\n \"name\": \"zfengcmk9\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"westus\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/123/providers/Microsoft.Batch/batchAccounts/hoppesys\",\r\n \"name\": \"hoppesys\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"westcentralus\",\r\n \"identity\": {\r\n \"principalId\": \"66a43f55-cbb6-4411-8e72-7ff72cb5e4c1\",\r\n \"tenantId\": \"72f988bf-86f1-41af-91ab-2d7cd011db47\",\r\n \"type\": \"SystemAssigned\"\r\n }\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/123/providers/Microsoft.Batch/batchAccounts/zfengcmk3\",\r\n \"name\": \"zfengcmk3\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"westus\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/123/providers/Microsoft.Batch/batchAccounts/zfengvmext\",\r\n \"name\": \"zfengvmext\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"norwayeast\",\r\n \"identity\": {\r\n \"principalId\": \"17b1614c-0806-4fa0-a96e-d0492bffb6eb\",\r\n \"tenantId\": \"72f988bf-86f1-41af-91ab-2d7cd011db47\",\r\n \"type\": \"SystemAssigned\"\r\n }\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/123/providers/Microsoft.Batch/batchAccounts/zfengquotatest\",\r\n \"name\": \"zfengquotatest\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"westus\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/123/providers/Microsoft.Batch/batchAccounts/zfengcmk4\",\r\n \"name\": \"zfengcmk4\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"westus\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/123/providers/Microsoft.Batch/batchAccounts/hoppesdk\",\r\n \"name\": \"hoppesdk\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"westus2\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/test/providers/Microsoft.Batch/batchAccounts/zfengarm\",\r\n \"name\": \"zfengarm\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"westus\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/123/providers/Microsoft.Batch/batchAccounts/zfengmetrics\",\r\n \"name\": \"zfengmetrics\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"westus\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/123/providers/Microsoft.Batch/batchAccounts/zfengeastasia\",\r\n \"name\": \"zfengeastasia\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"eastasia\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/123/providers/Microsoft.Batch/batchAccounts/zfplinkv2kk\",\r\n \"name\": \"zfplinkv2kk\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"eastus\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/123/providers/Microsoft.Batch/batchAccounts/zfengcmk7\",\r\n \"name\": \"zfengcmk7\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"westus\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/123/providers/Microsoft.Batch/batchAccounts/ates\",\r\n \"name\": \"ates\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"westus\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/123/providers/Microsoft.Batch/batchAccounts/zfengkvrbacwu4\",\r\n \"name\": \"zfengkvrbacwu4\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"westus\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/123/providers/Microsoft.Batch/batchAccounts/zfengkvrbac\",\r\n \"name\": \"zfengkvrbac\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"westus\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/123/providers/Microsoft.Batch/batchAccounts/hoppeeastasia\",\r\n \"name\": \"hoppeeastasia\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"eastasia\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/123/providers/Microsoft.Batch/batchAccounts/zfengkvrbacwu5\",\r\n \"name\": \"zfengkvrbacwu5\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"westus\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/123/providers/Microsoft.Batch/batchAccounts/zfengpec\",\r\n \"name\": \"zfengpec\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"westus\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/123/providers/Microsoft.Batch/batchAccounts/zfengpec1\",\r\n \"name\": \"zfengpec1\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"westus\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/123/providers/Microsoft.Batch/batchAccounts/zfengpec3\",\r\n \"name\": \"zfengpec3\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"westus\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/123/providers/Microsoft.Batch/batchAccounts/hoppeendpoint2\",\r\n \"name\": \"hoppeendpoint2\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"brazilsouth\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/123/providers/Microsoft.Batch/batchAccounts/zfengeastus2b\",\r\n \"name\": \"zfengeastus2b\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"eastus2\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/123/providers/Microsoft.Batch/batchAccounts/zfengbyosac\",\r\n \"name\": \"zfengbyosac\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"australiacentral\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/123/providers/Microsoft.Batch/batchAccounts/zfengkvrbacwu\",\r\n \"name\": \"zfengkvrbacwu\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"westus\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/123/providers/Microsoft.Batch/batchAccounts/zfengbyos\",\r\n \"name\": \"zfengbyos\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"westus\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/123/providers/Microsoft.Batch/batchAccounts/zfengwus\",\r\n \"name\": \"zfengwus\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"westus\",\r\n \"identity\": {\r\n \"principalId\": \"0afcee94-2357-4d05-9f31-42a27a040ae5\",\r\n \"tenantId\": \"72f988bf-86f1-41af-91ab-2d7cd011db47\",\r\n \"type\": \"SystemAssigned\"\r\n }\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/test/providers/Microsoft.Batch/batchAccounts/com10\",\r\n \"name\": \"com10\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"westeurope\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/123/providers/Microsoft.Batch/batchAccounts/zfengtest4\",\r\n \"name\": \"zfengtest4\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"westus\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/123/providers/Microsoft.Batch/batchAccounts/zfplinkv2c\",\r\n \"name\": \"zfplinkv2c\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"eastus\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/123/providers/Microsoft.Batch/batchAccounts/zfplinkv2j\",\r\n \"name\": \"zfplinkv2j\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"eastus\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/Accessibility/providers/Microsoft.Batch/batchAccounts/accessbilitytest\",\r\n \"name\": \"accessbilitytest\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"westus\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/mytest/providers/Microsoft.Batch/batchAccounts/mybatchaccount\",\r\n \"name\": \"mybatchaccount\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"westus2\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/Accessibility/providers/Microsoft.Batch/batchAccounts/a11ytest\",\r\n \"name\": \"a11ytest\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"westcentralus\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/prodtest2/providers/Microsoft.Batch/batchAccounts/a100test\",\r\n \"name\": \"a100test\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"eastus\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/prodtest2/providers/Microsoft.Batch/batchAccounts/prodtest6\",\r\n \"name\": \"prodtest6\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"westus2\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/prodtest2/providers/Microsoft.Batch/batchAccounts/testbyovnet\",\r\n \"name\": \"testbyovnet\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"eastus\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/ps85/providers/Microsoft.Batch/batchAccounts/ps7905\",\r\n \"name\": \"ps7905\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"westus2\",\r\n \"tags\": {\r\n \"tag2\": \"tagValue2\"\r\n }\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/prodtest5/providers/Microsoft.Batch/batchAccounts/prodtest5\",\r\n \"name\": \"prodtest5\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"eastus2\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/prodtest1/providers/Microsoft.Batch/batchAccounts/prodtest1\",\r\n \"name\": \"prodtest1\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"brazilsouth\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/abc/providers/Microsoft.Batch/batchAccounts/prodtest6\",\r\n \"name\": \"prodtest6\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"francecentral\",\r\n \"tags\": {\r\n \"test3\": \"true\"\r\n }\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/abc/providers/Microsoft.Batch/batchAccounts/zfengprivatelink\",\r\n \"name\": \"zfengprivatelink\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"westus\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/abc/providers/Microsoft.Batch/batchAccounts/zfengpna1\",\r\n \"name\": \"zfengpna1\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"westus\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/abc/providers/Microsoft.Batch/batchAccounts/zfengcontaineridentity\",\r\n \"name\": \"zfengcontaineridentity\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"westus\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/brkleinpilotprod/providers/Microsoft.Batch/batchAccounts/tippremiumpage\",\r\n \"name\": \"tippremiumpage\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"eastus2euap\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/brkleinpilotprod/providers/Microsoft.Batch/batchAccounts/tippremium\",\r\n \"name\": \"tippremium\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"eastus2euap\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/prodtest3/providers/Microsoft.Batch/batchAccounts/prodtest3\",\r\n \"name\": \"prodtest3\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"southcentralus\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/shpaster-scus/providers/Microsoft.Batch/batchAccounts/shpasterbatch2\",\r\n \"name\": \"shpasterbatch2\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"southcentralus\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/canary/providers/Microsoft.Batch/batchAccounts/com1\",\r\n \"name\": \"com1\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"eastus\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/canary/providers/Microsoft.Batch/batchAccounts/mikebatchcanary\",\r\n \"name\": \"mikebatchcanary\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"eastus2euap\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/twacdmtestRG/providers/Microsoft.Batch/batchAccounts/twacbntest\",\r\n \"name\": \"twacbntest\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"eastus2euap\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/canary/providers/Microsoft.Batch/batchAccounts/testcanary\",\r\n \"name\": \"testcanary\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"centraluseuap\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/twacdmtestrg/providers/Microsoft.Batch/batchAccounts/twacdmbatchacct\",\r\n \"name\": \"twacdmbatchacct\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"centraluseuap\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/canarytest1/providers/Microsoft.Batch/batchAccounts/e80idstest\",\r\n \"name\": \"e80idstest\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"westus2\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/xingwu/providers/Microsoft.Batch/batchAccounts/test1\",\r\n \"name\": \"test1\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"eastus2euap\",\r\n \"identity\": {\r\n \"principalId\": \"a4ae1eb2-521a-49d5-9994-6b17281e95f0\",\r\n \"tenantId\": \"72f988bf-86f1-41af-91ab-2d7cd011db47\",\r\n \"type\": \"SystemAssigned\"\r\n }\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/canarytest1/providers/Microsoft.Batch/batchAccounts/testcentralcanary\",\r\n \"name\": \"testcentralcanary\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"centraluseuap\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/zfeng/providers/Microsoft.Batch/batchAccounts/zfengbyoswu\",\r\n \"name\": \"zfengbyoswu\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"westus\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/zfeng/providers/Microsoft.Batch/batchAccounts/zfengcacentral\",\r\n \"name\": \"zfengcacentral\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"canadacentral\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/rechentest/providers/Microsoft.Batch/batchAccounts/0prodtest\",\r\n \"name\": \"0prodtest\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"westus\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/rechentest/providers/Microsoft.Batch/batchAccounts/testing\",\r\n \"name\": \"testing\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"westus\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/rechentest/providers/Microsoft.Batch/batchAccounts/testunusablenodes\",\r\n \"name\": \"testunusablenodes\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"westus\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/doAzureParallel/providers/Microsoft.Batch/batchAccounts/azurecsstest\",\r\n \"name\": \"azurecsstest\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"ukwest\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/doAzureParallel/providers/Microsoft.Batch/batchAccounts/ndv4testaccount\",\r\n \"name\": \"ndv4testaccount\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"eastus\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/zfeng/providers/Microsoft.Batch/batchAccounts/zfengpilotprod1\",\r\n \"name\": \"zfengpilotprod1\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"eastus2euap\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/BatchDNCrg/providers/Microsoft.Batch/batchAccounts/adfrolling2\",\r\n \"name\": \"adfrolling2\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"eastus\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/zfeng/providers/Microsoft.Batch/batchAccounts/zfengbrazilsoutheast\",\r\n \"name\": \"zfengbrazilsoutheast\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"brazilsoutheast\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/doAzureParallel/providers/Microsoft.Batch/batchAccounts/nvv4\",\r\n \"name\": \"nvv4\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"uksouth\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/zfeng/providers/Microsoft.Batch/batchAccounts/zfengnortheurope\",\r\n \"name\": \"zfengnortheurope\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"northeurope\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/zfeng/providers/Microsoft.Batch/batchAccounts/zfscusumi\",\r\n \"name\": \"zfscusumi\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"southcentralus\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/zfeng/providers/Microsoft.Batch/batchAccounts/zfengscusumi\",\r\n \"name\": \"zfengscusumi\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"southcentralus\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/zfeng/providers/Microsoft.Batch/batchAccounts/zfengnorwayeast\",\r\n \"name\": \"zfengnorwayeast\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"norwayeast\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/rechentest/providers/Microsoft.Batch/batchAccounts/tskapurtest1\",\r\n \"name\": \"tskapurtest1\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"westus\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/zfeng/providers/Microsoft.Batch/batchAccounts/zfengeastus\",\r\n \"name\": \"zfengeastus\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"eastus\",\r\n \"identity\": {\r\n \"principalId\": \"32ec4da8-e86d-4e9d-bc2d-0d854e385d41\",\r\n \"tenantId\": \"72f988bf-86f1-41af-91ab-2d7cd011db47\",\r\n \"type\": \"SystemAssigned\"\r\n }\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/zfeng/providers/Microsoft.Batch/batchAccounts/zfengjapaneast\",\r\n \"name\": \"zfengjapaneast\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"japaneast\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/rechentest/providers/Microsoft.Batch/batchAccounts/azcliexttesting\",\r\n \"name\": \"azcliexttesting\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"eastus\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/zfeng/providers/Microsoft.Batch/batchAccounts/zfwestus2\",\r\n \"name\": \"zfwestus2\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"westus2\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/zfeng/providers/Microsoft.Batch/batchAccounts/zfengeastus2\",\r\n \"name\": \"zfengeastus2\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"eastus\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/zfeng/providers/Microsoft.Batch/batchAccounts/zfengplinkcentralindia\",\r\n \"name\": \"zfengplinkcentralindia\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"centralindia\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/zfeng/providers/Microsoft.Batch/batchAccounts/zfengwestus3\",\r\n \"name\": \"zfengwestus3\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"westus3\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/zfeng/providers/Microsoft.Batch/batchAccounts/zfengjjoindiawest\",\r\n \"name\": \"zfengjjoindiawest\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"jioindiawest\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/zfeng/providers/Microsoft.Batch/batchAccounts/zfplinkgermanwestcentral\",\r\n \"name\": \"zfplinkgermanwestcentral\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"germanywestcentral\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/zfeng/providers/Microsoft.Batch/batchAccounts/zfengbyoseastus\",\r\n \"name\": \"zfengbyoseastus\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"eastus\",\r\n \"identity\": {\r\n \"principalId\": \"dbf81403-66ec-454a-9f4e-a99ccd81b23b\",\r\n \"tenantId\": \"72f988bf-86f1-41af-91ab-2d7cd011db47\",\r\n \"type\": \"SystemAssigned\"\r\n }\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/rechentest/providers/Microsoft.Batch/batchAccounts/random\",\r\n \"name\": \"random\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"westus\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/rechentest/providers/Microsoft.Batch/batchAccounts/potato\",\r\n \"name\": \"potato\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"westus\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/rechentest/providers/Microsoft.Batch/batchAccounts/localaccounttest\",\r\n \"name\": \"localaccounttest\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"westus\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/zfeng/providers/Microsoft.Batch/batchAccounts/zfengcmk\",\r\n \"name\": \"zfengcmk\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"westus\",\r\n \"identity\": {\r\n \"principalId\": \"7022f5db-a2a1-49aa-81eb-12c0405fb2bc\",\r\n \"tenantId\": \"72f988bf-86f1-41af-91ab-2d7cd011db47\",\r\n \"type\": \"SystemAssigned\"\r\n }\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/zfeng/providers/Microsoft.Batch/batchAccounts/zfengcmk1\",\r\n \"name\": \"zfengcmk1\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"westus\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/rechentest/providers/Microsoft.Batch/batchAccounts/randomtestaccount\",\r\n \"name\": \"randomtestaccount\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"westus3\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/zfeng/providers/Microsoft.Batch/batchAccounts/zfengcmk2\",\r\n \"name\": \"zfengcmk2\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"westus\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/zfeng/providers/Microsoft.Batch/batchAccounts/zfengcmkbyos\",\r\n \"name\": \"zfengcmkbyos\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"westus\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/BatchDNCrg/providers/Microsoft.Batch/batchAccounts/adfrolling1\",\r\n \"name\": \"adfrolling1\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"eastus2euap\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/zfeng/providers/Microsoft.Batch/batchAccounts/zfengeastusndma100\",\r\n \"name\": \"zfengeastusndma100\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"eastus\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/zfeng/providers/Microsoft.Batch/batchAccounts/zfengscusbyos\",\r\n \"name\": \"zfengscusbyos\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"southcentralus\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/zfeng/providers/Microsoft.Batch/batchAccounts/zfengkvrbaceastus\",\r\n \"name\": \"zfengkvrbaceastus\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"eastus\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/zfeng/providers/Microsoft.Batch/batchAccounts/poolzfrbac\",\r\n \"name\": \"poolzfrbac\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"eastus\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/zfeng/providers/Microsoft.Batch/batchAccounts/zfengtest2\",\r\n \"name\": \"zfengtest2\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"westus\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/zfeng/providers/Microsoft.Batch/batchAccounts/zfengumi1\",\r\n \"name\": \"zfengumi1\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"centraluseuap\",\r\n \"identity\": {\r\n \"principalId\": \"9611c109-57ad-4cde-9f0c-37dd67edce2b\",\r\n \"tenantId\": \"72f988bf-86f1-41af-91ab-2d7cd011db47\",\r\n \"type\": \"SystemAssigned\"\r\n }\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/zfeng/providers/Microsoft.Batch/batchAccounts/zfengephemeral\",\r\n \"name\": \"zfengephemeral\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"spaincentral\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/prodtest4/providers/Microsoft.Batch/batchAccounts/prodtest4\",\r\n \"name\": \"prodtest4\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"centralus\",\r\n \"tags\": {\r\n \"test\": \"true\",\r\n \"test2\": \"true\"\r\n }\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/npipv2/providers/Microsoft.Batch/batchAccounts/testexample5\",\r\n \"name\": \"testexample5\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"eastus\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/azsmnet137/providers/Microsoft.Batch/batchAccounts/azsmnet9299\",\r\n \"name\": \"azsmnet9299\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"eastus\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/azsmnet7742/providers/Microsoft.Batch/batchAccounts/azsmnet3490\",\r\n \"name\": \"azsmnet3490\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"eastus\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/akjtest/providers/Microsoft.Batch/batchAccounts/akjtestportal\",\r\n \"name\": \"akjtestportal\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"eastus\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/shpaster/providers/Microsoft.Batch/batchAccounts/shpasterbatch1\",\r\n \"name\": \"shpasterbatch1\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"eastus\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/npipv2/providers/Microsoft.Batch/batchAccounts/sanj5324\",\r\n \"name\": \"sanj5324\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"eastus\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/mmtest/providers/Microsoft.Batch/batchAccounts/mmpp2ba\",\r\n \"name\": \"mmpp2ba\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"eastus\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/akjtest/providers/Microsoft.Batch/batchAccounts/akjshoeboxtest\",\r\n \"name\": \"akjshoeboxtest\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"eastus\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/npipv2/providers/Microsoft.Batch/batchAccounts/sktest2\",\r\n \"name\": \"sktest2\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"centralus\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/npipv2/providers/Microsoft.Batch/batchAccounts/testxiyaoagent\",\r\n \"name\": \"testxiyaoagent\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"eastus2euap\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/npipv2/providers/Microsoft.Batch/batchAccounts/wenxiangpilot2account\",\r\n \"name\": \"wenxiangpilot2account\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"eastus\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/zfeng1/providers/Microsoft.Batch/batchAccounts/zfengkvrbacwu1\",\r\n \"name\": \"zfengkvrbacwu1\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"westus\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/npipv2/providers/Microsoft.Batch/batchAccounts/jingjlinsp\",\r\n \"name\": \"jingjlinsp\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"eastus2euap\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/npipv2/providers/Microsoft.Batch/batchAccounts/jialhutest\",\r\n \"name\": \"jialhutest\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"eastus2euap\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/npipv2/providers/Microsoft.Batch/batchAccounts/jingjlinspip\",\r\n \"name\": \"jingjlinspip\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"eastus2euap\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/npipv2/providers/Microsoft.Batch/batchAccounts/wenxiangpilot1account\",\r\n \"name\": \"wenxiangpilot1account\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"eastus2euap\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/zfeng1/providers/Microsoft.Batch/batchAccounts/sqlicm20240530\",\r\n \"name\": \"sqlicm20240530\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"westus2\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/zfeng1/providers/Microsoft.Batch/batchAccounts/sqlicm20240530byos\",\r\n \"name\": \"sqlicm20240530byos\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"westus2\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/npipv2/providers/Microsoft.Batch/batchAccounts/appgwba\",\r\n \"name\": \"appgwba\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"eastus\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/npipv2/providers/Microsoft.Batch/batchAccounts/appgwba1\",\r\n \"name\": \"appgwba1\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"eastus\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/victorli/providers/Microsoft.Batch/batchAccounts/victortestbyoscdm\",\r\n \"name\": \"victortestbyoscdm\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"centraluseuap\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/npipv2/providers/Microsoft.Batch/batchAccounts/wenxiangbyosaccount2\",\r\n \"name\": \"wenxiangbyosaccount2\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"eastus2euap\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/npipv2/providers/Microsoft.Batch/batchAccounts/wenxiangtipwestusbyos\",\r\n \"name\": \"wenxiangtipwestusbyos\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"westus\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/npipv2/providers/Microsoft.Batch/batchAccounts/wenxiangpilot1byosacc\",\r\n \"name\": \"wenxiangpilot1byosacc\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"eastus2euap\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/BatchSynthetics-pilotprod2/providers/Microsoft.Batch/batchAccounts/batchsynpilotprod2\",\r\n \"name\": \"batchsynpilotprod2\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"eastus\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/coltrg/providers/Microsoft.Batch/batchAccounts/coltacctpp\",\r\n \"name\": \"coltacctpp\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"eastus\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/coltrg/providers/Microsoft.Batch/batchAccounts/west2colt\",\r\n \"name\": \"west2colt\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"westus2\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/coltrg/providers/Microsoft.Batch/batchAccounts/cjpusersub1\",\r\n \"name\": \"cjpusersub1\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"eastus\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/BatchSynthetics-pilotprod2/providers/Microsoft.Batch/batchAccounts/batchsynpilotprod2prgrn\",\r\n \"name\": \"batchsynpilotprod2prgrn\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"eastus\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/BatchSynthetics-pilotprod2/providers/Microsoft.Batch/batchAccounts/batchsynpilotprod2byo\",\r\n \"name\": \"batchsynpilotprod2byo\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"eastus\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/npipv2/providers/Microsoft.Batch/batchAccounts/geobatchv2\",\r\n \"name\": \"geobatchv2\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"eastus2euap\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/npipv2/providers/Microsoft.Batch/batchAccounts/wenxiangwestindiaaccount\",\r\n \"name\": \"wenxiangwestindiaaccount\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"westindia\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/npipv2/providers/Microsoft.Batch/batchAccounts/wenxiangaucentralaccount\",\r\n \"name\": \"wenxiangaucentralaccount\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"australiacentral\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/npipv2/providers/Microsoft.Batch/batchAccounts/geo1031\",\r\n \"name\": \"geo1031\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"eastus2euap\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/BatchSynthetics-pilotprod2/providers/Microsoft.Batch/batchAccounts/syn20241113e8aab8081b8f4\",\r\n \"name\": \"syn20241113e8aab8081b8f4\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"eastus\",\r\n \"tags\": {\r\n \"tagKey\": \"tagValue\"\r\n }\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/dawatrou-rg/providers/Microsoft.Batch/batchAccounts/dawatrouhobo\",\r\n \"name\": \"dawatrouhobo\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"eastus2\"\r\n }\r\n ],\r\n \"nextLink\": \"https://management.azure.com/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resources?%24filter=resourceType+eq+%27Microsoft.Batch%2fbatchAccounts%27&api-version=2016-09-01&%24skiptoken=q1bKS60o8cnMyy5WsqpWKk8tLkktLcovSFWyUkqt9CqNisgwCAl3q0w0Cqv0zMrPjMryNfR1ca30c48sicyNyvAPNjCIDMk29gn3yvJ39y3xC8nIjHKJrPKtSjb0dfc19MwzsFWq1UHY4p%2fnkZ%2bTArQLKuibWJSdWgS0DWG1FfUsBgA%3d\"\r\n}", + "ResponseBody": "{\r\n \"value\": [\r\n {\r\n \"id\": \"/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2\",\r\n \"name\": \"dotnotsdkbatchaccount2\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"eastus2\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437\",\r\n \"name\": \"ps8437\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"westus2\",\r\n \"tags\": {\r\n \"tag2\": \"tagValue2\"\r\n }\r\n }\r\n ]\r\n}", "StatusCode": 200 }, { - "RequestUri": "/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/ps85/providers/Microsoft.Batch/batchAccounts/ps7905/listKeys?api-version=2022-10-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjFhYmQ2NzgtMThjNS00NjYwLTlmZGQtOGM1YmE2YjZmZTFmL3Jlc291cmNlR3JvdXBzL3BzODUvcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL3BzNzkwNS9saXN0S2V5cz9hcGktdmVyc2lvbj0yMDIyLTEwLTAx", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437/listKeys?api-version=2023-05-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL3BzMzY5OC9wcm92aWRlcnMvTWljcm9zb2Z0LkJhdGNoL2JhdGNoQWNjb3VudHMvcHM4NDM3L2xpc3RLZXlzP2FwaS12ZXJzaW9uPTIwMjMtMDUtMDE=", "RequestMethod": "POST", "RequestHeaders": { - "x-ms-client-request-id": [ - "ad7f7b9b-e990-4cb9-936c-1112ec7c6f6f" - ], "Accept-Language": [ "en-US" ], + "x-ms-client-request-id": [ + "a3a31097-908b-4387-977a-4ac220575229" + ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Management.Batch.BatchManagementClient/3.6.4" + "OSVersion/Microsoft.Windows.10.0.26100", + "Microsoft.Azure.Management.Batch.BatchManagementClient/3.7.0" ] }, "RequestBody": "", @@ -915,7 +924,7 @@ "no-cache" ], "x-ms-request-id": [ - "97d5ae1d-486d-45d6-ad47-17ff1da73fec" + "980e419d-3be0-472a-b410-7c97b9dece6c" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -923,6 +932,9 @@ "X-Content-Type-Options": [ "nosniff" ], + "x-ms-operation-identifier": [ + "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=ac839cc2-33ee-4879-a5b5-2895202ccb29/westus2/7ad15d83-508f-478b-a33e-a8146c0b7810" + ], "x-ms-ratelimit-remaining-subscription-writes": [ "799" ], @@ -930,19 +942,19 @@ "11999" ], "x-ms-correlation-request-id": [ - "b657691e-792a-4a87-b456-064a376358e5" + "390805ec-b469-4859-8a28-7460f2e12d34" ], "x-ms-routing-request-id": [ - "EASTUS:20241113T213328Z:b657691e-792a-4a87-b456-064a376358e5" + "WESTUS2:20250911T201157Z:390805ec-b469-4859-8a28-7460f2e12d34" ], "X-Cache": [ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: 2D673FD7114D49AA89302D100AB5044A Ref B: MNZ221060618023 Ref C: 2024-11-13T21:33:28Z" + "Ref A: 830006567FAD4512B1A95083F6FBF2C5 Ref B: CO6AA3150217025 Ref C: 2025-09-11T20:11:57Z" ], "Date": [ - "Wed, 13 Nov 2024 21:33:28 GMT" + "Thu, 11 Sep 2025 20:11:57 GMT" ], "Content-Length": [ "228" @@ -954,25 +966,25 @@ "-1" ] }, - "ResponseBody": "{\r\n \"accountName\": \"ps7905\",\r\n \"primary\": \"Sanitized\",\r\n \"secondary\": \"Sanitized\"\r\n}", + "ResponseBody": "{\r\n \"accountName\": \"ps8437\",\r\n \"primary\": \"Sanitized\",\r\n \"secondary\": \"Sanitized\"\r\n}", "StatusCode": 200 }, { - "RequestUri": "/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/ps85/providers/Microsoft.Batch/batchAccounts/ps7905/listKeys?api-version=2022-10-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjFhYmQ2NzgtMThjNS00NjYwLTlmZGQtOGM1YmE2YjZmZTFmL3Jlc291cmNlR3JvdXBzL3BzODUvcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL3BzNzkwNS9saXN0S2V5cz9hcGktdmVyc2lvbj0yMDIyLTEwLTAx", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437/listKeys?api-version=2023-05-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL3BzMzY5OC9wcm92aWRlcnMvTWljcm9zb2Z0LkJhdGNoL2JhdGNoQWNjb3VudHMvcHM4NDM3L2xpc3RLZXlzP2FwaS12ZXJzaW9uPTIwMjMtMDUtMDE=", "RequestMethod": "POST", "RequestHeaders": { - "x-ms-client-request-id": [ - "97e13db1-9026-4ec8-8327-c9e32a437943" - ], "Accept-Language": [ "en-US" ], + "x-ms-client-request-id": [ + "56540c4b-4e6d-4b19-ae91-9b677b12df0a" + ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Management.Batch.BatchManagementClient/3.6.4" + "OSVersion/Microsoft.Windows.10.0.26100", + "Microsoft.Azure.Management.Batch.BatchManagementClient/3.7.0" ] }, "RequestBody": "", @@ -984,7 +996,7 @@ "no-cache" ], "x-ms-request-id": [ - "115cc0c6-5822-46c1-bb1f-50ed664636b7" + "544bcc6f-04a3-495e-9228-76d2d835537d" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -992,6 +1004,9 @@ "X-Content-Type-Options": [ "nosniff" ], + "x-ms-operation-identifier": [ + "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=ac839cc2-33ee-4879-a5b5-2895202ccb29/westus2/42425234-d4a3-4930-a973-ce9fefc45f7f" + ], "x-ms-ratelimit-remaining-subscription-writes": [ "799" ], @@ -999,19 +1014,19 @@ "11999" ], "x-ms-correlation-request-id": [ - "5e5d1e62-e4d3-4a01-b551-4bd81bfdeb66" + "74a3c7c6-0514-4a89-b033-e8fb9c123fed" ], "x-ms-routing-request-id": [ - "EASTUS:20241113T213329Z:5e5d1e62-e4d3-4a01-b551-4bd81bfdeb66" + "WESTUS2:20250911T201158Z:74a3c7c6-0514-4a89-b033-e8fb9c123fed" ], "X-Cache": [ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: 1EBB2CB0B564485C83C67A78CB9E014A Ref B: MNZ221060618023 Ref C: 2024-11-13T21:33:29Z" + "Ref A: 7362027F4D5B43AD9223F7718D1B6667 Ref B: CO6AA3150217025 Ref C: 2025-09-11T20:11:57Z" ], "Date": [ - "Wed, 13 Nov 2024 21:33:28 GMT" + "Thu, 11 Sep 2025 20:11:58 GMT" ], "Content-Length": [ "228" @@ -1023,25 +1038,25 @@ "-1" ] }, - "ResponseBody": "{\r\n \"accountName\": \"ps7905\",\r\n \"primary\": \"Sanitized\",\r\n \"secondary\": \"Sanitized\"\r\n}", + "ResponseBody": "{\r\n \"accountName\": \"ps8437\",\r\n \"primary\": \"Sanitized\",\r\n \"secondary\": \"Sanitized\"\r\n}", "StatusCode": 200 }, { - "RequestUri": "/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/ps85/providers/Microsoft.Batch/batchAccounts/ps7905/regenerateKeys?api-version=2022-10-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjFhYmQ2NzgtMThjNS00NjYwLTlmZGQtOGM1YmE2YjZmZTFmL3Jlc291cmNlR3JvdXBzL3BzODUvcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL3BzNzkwNS9yZWdlbmVyYXRlS2V5cz9hcGktdmVyc2lvbj0yMDIyLTEwLTAx", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437/regenerateKeys?api-version=2023-05-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL3BzMzY5OC9wcm92aWRlcnMvTWljcm9zb2Z0LkJhdGNoL2JhdGNoQWNjb3VudHMvcHM4NDM3L3JlZ2VuZXJhdGVLZXlzP2FwaS12ZXJzaW9uPTIwMjMtMDUtMDE=", "RequestMethod": "POST", "RequestHeaders": { - "x-ms-client-request-id": [ - "b5aeb594-f6af-46c4-b420-b08d87b29e83" - ], "Accept-Language": [ "en-US" ], + "x-ms-client-request-id": [ + "14210daf-0b00-4333-b4c8-f3ba6bf44198" + ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Management.Batch.BatchManagementClient/3.6.4" + "OSVersion/Microsoft.Windows.10.0.26100", + "Microsoft.Azure.Management.Batch.BatchManagementClient/3.7.0" ], "Content-Type": [ "application/json; charset=utf-8" @@ -1059,7 +1074,7 @@ "no-cache" ], "x-ms-request-id": [ - "5797f3ce-c18c-484a-9ddc-881de1717685" + "82f7be1f-d5c8-4b22-8c42-86544c32ed3d" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -1067,6 +1082,9 @@ "X-Content-Type-Options": [ "nosniff" ], + "x-ms-operation-identifier": [ + "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=ac839cc2-33ee-4879-a5b5-2895202ccb29/westus2/2a75be17-b98d-4b65-ac28-0f999a5fb94c" + ], "x-ms-ratelimit-remaining-subscription-writes": [ "799" ], @@ -1074,19 +1092,19 @@ "11999" ], "x-ms-correlation-request-id": [ - "d7cb4d63-db1f-4e98-9e45-c0c3ce5d0b8e" + "a7d91ca2-1ef9-4818-a14d-a25ab35ce3fe" ], "x-ms-routing-request-id": [ - "EASTUS:20241113T213329Z:d7cb4d63-db1f-4e98-9e45-c0c3ce5d0b8e" + "WESTUS2:20250911T201158Z:a7d91ca2-1ef9-4818-a14d-a25ab35ce3fe" ], "X-Cache": [ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: 1F14C4B082564C3C8C1A404E8467A56F Ref B: MNZ221060618023 Ref C: 2024-11-13T21:33:29Z" + "Ref A: 6E249C638DF44C1DB9A7F1654518EFA2 Ref B: CO6AA3150217025 Ref C: 2025-09-11T20:11:58Z" ], "Date": [ - "Wed, 13 Nov 2024 21:33:29 GMT" + "Thu, 11 Sep 2025 20:11:58 GMT" ], "Content-Length": [ "228" @@ -1098,25 +1116,25 @@ "-1" ] }, - "ResponseBody": "{\r\n \"accountName\": \"ps7905\",\r\n \"primary\": \"Sanitized\",\r\n \"secondary\": \"Sanitized\"\r\n}", + "ResponseBody": "{\r\n \"accountName\": \"ps8437\",\r\n \"primary\": \"Sanitized\",\r\n \"secondary\": \"Sanitized\"\r\n}", "StatusCode": 200 }, { - "RequestUri": "/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/ps85/providers/Microsoft.Batch/batchAccounts/ps7905?api-version=2022-10-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjFhYmQ2NzgtMThjNS00NjYwLTlmZGQtOGM1YmE2YjZmZTFmL3Jlc291cmNlR3JvdXBzL3BzODUvcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL3BzNzkwNT9hcGktdmVyc2lvbj0yMDIyLTEwLTAx", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437?api-version=2023-05-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL3BzMzY5OC9wcm92aWRlcnMvTWljcm9zb2Z0LkJhdGNoL2JhdGNoQWNjb3VudHMvcHM4NDM3P2FwaS12ZXJzaW9uPTIwMjMtMDUtMDE=", "RequestMethod": "DELETE", "RequestHeaders": { - "x-ms-client-request-id": [ - "61cb322d-426a-440e-8509-c83709a2c378" - ], "Accept-Language": [ "en-US" ], + "x-ms-client-request-id": [ + "df482f8c-2bce-462a-a6e0-38e8820f3348" + ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Management.Batch.BatchManagementClient/3.6.4" + "OSVersion/Microsoft.Windows.10.0.26100", + "Microsoft.Azure.Management.Batch.BatchManagementClient/3.7.0" ] }, "RequestBody": "", @@ -1128,13 +1146,13 @@ "no-cache" ], "Location": [ - "https://management.azure.com/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/providers/Microsoft.Batch/locations/westus2/accountOperationResults/ps7905-f3f2205e-4183-45e2-906a-48d862530748?api-version=2022-10-01&t=638671304110782316&c=MIIHhzCCBm-gAwIBAgITHgVqhF9GOoUjuyqQWAAABWqEXzANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDYwHhcNMjQwOTIwMjMxMTQxWhcNMjUwMzE5MjMxMTQxWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKRtcYDBXS7zz5tRtvVyhrUAjudYhej1E2D3dp6XWuPdbVMbQZwMlye8vdT-kDhFD7T2mrdWqsoGnTGk0_xOHBfLGnW-0QRUqpeoTNIhu8vc2CfTUtm2t2s_-fzvFtRyhDA4mfCH1cz92EVj0vd3FD4ikW6bdOp1NkYFqUVBhKlbvJk6y-TbLFBLP5Zx4m0Ua-_P7aMzbgvOJgMOTC2jLs5w_lFDJWeP3IKUOiJmrfLpf4ey5Ov94oCE6YncDBSHJZKWcrSxDHgSz9AXrxarL4HLajGbF3MRvfkMN2gNXCoiJXBEqCLDnyQZ0BgXIvuK7vG8Rj0TyhJNj-QPr8taY6UCAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAyLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA2LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MB0GA1UdDgQWBBRKlJQpFyyZKSchkTlshetYOUX7xzAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBTxRmjG8cPwKy19i2rhsvm-NfzRQTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAG0WbzLPsmSSMI7aTe2npixmkdCmwcdZHGd43tUnB8JKrLNJEFcBsQmbcIH0adpnQNrDgRkNBBOTZ4s1LIBlRQapZpPsRItAMUguVpGVRH08T0i43w9xrp_clNbAJrrfRbmYroF0WJKMJ0nwW2rPjxdevSRygGK_nEfywwFi-p1RhHnkiEGL4GnP7PpQcRvAYMdH9LO5MRY7iLbBmosKatS_eWtSJD1CvzglNwy_vQzx81Vnk0CgndqXcVq-loGu7R4U7mkQ2NNqLbp447STxkpP-6Mdyv8J4bdnf1s3vFBNpgvJWKogWcNLlo8jnkbEf6RPNGe1W5lma7JwMKAcPzY&s=Q9TXxkIayWwUgTsuivTz_lDSfsGev9dcjxdmKVLeHg2Tr00egusycGGwRsNnJunYrDNbWxHZsoPGyqwB7Oo47IKKcnS6KDawdYHCWwF4WbXMCZ8yTWoGCB_YgSnDK4RKas0BrUVbCodYCIy0jAY_FlCBtY1NrkNQnJ0NAyBXJyOfGaK2YwHPU11-u9mEax0qbg2v_3IPw0zCKdNvQwWfcLj4G12fqnlkJTLsH83CuXVCxDM6YsroGmygYWBN9SscCZK7_xToyw2n6Paysn_T4qacIpBNYrq_8RPn8aU-SV4ol81OnvYDR2YdmGdJ2Otms4m3NY_Bc2XXO1iVasSW3w&h=gdfG58kRzWeKKMuAiVyF4Sb2TO2_SOiQ71siiX--pwc" + "https://management.azure.com/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/providers/Microsoft.Batch/locations/westus2/accountOperationResults/ps8437-7f030330-c3d1-42d2-88dc-6fa78252b612?api-version=2023-05-01&t=638932183186360780&c=MIIIpTCCBo2gAwIBAgITFgGsmnj73LBE7PaBtQABAayaeDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDMwHhcNMjUwNzE4MTIwNDI4WhcNMjYwMTE0MTIwNDI4WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKYwXiklImL5-WfPWj2FX3_Y-JxCd3XXEOuNXx5ggHubZZamujLTqEBSFsFYiH_9NCaqKTiATXu6fBpzW3ghgYhwr0PL071fQT15KnnNUFjd5hFXB7SYti9IwWu1lxSAz-De7HivujKdlsgcmfoV6upRQ0eva9e74EwLV9pCn4WQAhs-6T8p0CytQsi81qHMWybAbNvfom0ox78IEWdS_6g_d4Jl_I4ccYLMyRTOV2NioM96cRECWCZhbpLl1zwoYGSbU5H0MZaiCBjPlhXN40BqagpamZfP98sPYSBfreh6-iMGU5tNTRkh8RiJqzjhzIUpEv3PqLtWTyPUB8JS7aUCAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9BTTNQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAzKDEpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MB0GA1UdDgQWBBTxzPCXgPzIUiTz94us0y0CCMf8BzAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBRIo61gdWpv7GDzaVXRALEyV_xs5DAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggIBAAqNK9Ejzdnb9L4TyakCpJByRYVTN_6nCGbtUd2E2sELjuJGRGiRmujp_jqNyIofO_ghSaP_tqH-3WRTRUbnt5xM8aBYoYJSOgKgTsNrB6clspdhCCmzhJy6EQuOqfUDm3C7hDru1_bN3DwXt3VpDqfuYtM3MAabKg0oCYVWgFwnAKYmZLZMWMQh7k_hZxy1gOCQmE9U08tf_pU21aI0El6n5A5uG2FT0placwchheFmXAtoPjT7nU53HVmRissxUR_vRCDj_ZCFo3K3nZNXCQOKPAMc9-LC0prb9Slg6siKtSHB3iGjNQlT9-nbSnDgifI8zC1cvT8CdaNLOmUywRIB4wvRn1z123NuyfJaIz95igW9P189vBTJEZREF-MgJEboWKdlGNn6bbBtu0waqAmUU7WVLeZKdtUI6EEKF7wRGYuY_BhZx1ipyXnBHZpsufuH4AwgOO289QKmqg8QAy7HFD9c8H8fNCtR7sTZ4YNP2AhEaES0rkMSQUCNVEz42YEBi2GgrSpnI94SPdb3J3PkCMZ4OgFRjztLO7nrgbPtflhSOo_VOE0_7Y74km43WAMQPKL3-44vQrEQ61Hd_24IcFh_ChNXvUDqp39GzYlO3D0zlau4ozll8BeLUZrJwHTQWZS8XR-EifCl4MW5Y3Y1SxOLrIxnukCzQxL7aGmc&s=ENIYYOeR9tQXkYkicd_BX2Eh2gJYj6XtnBl6V2kh79ev8fOaZH8Jy1N4WfSAzvg5LSOv5UCHRhCbE6nH0OrCsSKDuxErHmcfv7H_yfkt-acdEoQwwtGCwPd-87-Yht2Nq2RefPWjN82BzfXDBpDWI3L7Nq78xmRB1RAMNFt9PElzG4ioxCJdU55N0nN0Wsp1BKTUwP6Enql3wu9g2tPDn7xBgx1TKSL3y3Qcz6R0AznDqv9bZ8JpBf7mLPbZ41Jhp0xVb7Ca6x_bs5GRj3ecgkSxXcn3AiGTTJiwjddCrZaNPoHFG750GviR1_QT9iRMvwbj7dgy2tP85G-AZhu7sA&h=CKs8IW2-k2gwB8WnRaGg_rhleAL5pbPIjZRT05ae0g0" ], "Retry-After": [ "15" ], "x-ms-request-id": [ - "f3f2205e-4183-45e2-906a-48d862530748" + "7f030330-c3d1-42d2-88dc-6fa78252b612" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -1142,6 +1160,9 @@ "X-Content-Type-Options": [ "nosniff" ], + "x-ms-operation-identifier": [ + "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=ac839cc2-33ee-4879-a5b5-2895202ccb29/westus2/916575c7-1b3d-4490-a7bd-b1e1812c4521" + ], "x-ms-ratelimit-remaining-subscription-deletes": [ "799" ], @@ -1149,19 +1170,19 @@ "11999" ], "x-ms-correlation-request-id": [ - "3fbd6569-ede9-4430-86c3-e093cbf61cd5" + "1cc48afe-ec1c-4878-a103-63d841697624" ], "x-ms-routing-request-id": [ - "EASTUS:20241113T213331Z:3fbd6569-ede9-4430-86c3-e093cbf61cd5" + "WESTUS2:20250911T201158Z:1cc48afe-ec1c-4878-a103-63d841697624" ], "X-Cache": [ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: DB2F9618B2684C79A90A1BFF7C7D7F70 Ref B: MNZ221060618023 Ref C: 2024-11-13T21:33:30Z" + "Ref A: C06400BAE10644BEB858E5882577C279 Ref B: CO6AA3150217025 Ref C: 2025-09-11T20:11:58Z" ], "Date": [ - "Wed, 13 Nov 2024 21:33:30 GMT" + "Thu, 11 Sep 2025 20:11:58 GMT" ], "Expires": [ "-1" @@ -1174,18 +1195,18 @@ "StatusCode": 202 }, { - "RequestUri": "/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/providers/Microsoft.Batch/locations/westus2/accountOperationResults/ps7905-f3f2205e-4183-45e2-906a-48d862530748?api-version=2022-10-01&t=638671304110782316&c=MIIHhzCCBm-gAwIBAgITHgVqhF9GOoUjuyqQWAAABWqEXzANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDYwHhcNMjQwOTIwMjMxMTQxWhcNMjUwMzE5MjMxMTQxWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKRtcYDBXS7zz5tRtvVyhrUAjudYhej1E2D3dp6XWuPdbVMbQZwMlye8vdT-kDhFD7T2mrdWqsoGnTGk0_xOHBfLGnW-0QRUqpeoTNIhu8vc2CfTUtm2t2s_-fzvFtRyhDA4mfCH1cz92EVj0vd3FD4ikW6bdOp1NkYFqUVBhKlbvJk6y-TbLFBLP5Zx4m0Ua-_P7aMzbgvOJgMOTC2jLs5w_lFDJWeP3IKUOiJmrfLpf4ey5Ov94oCE6YncDBSHJZKWcrSxDHgSz9AXrxarL4HLajGbF3MRvfkMN2gNXCoiJXBEqCLDnyQZ0BgXIvuK7vG8Rj0TyhJNj-QPr8taY6UCAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAyLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA2LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MB0GA1UdDgQWBBRKlJQpFyyZKSchkTlshetYOUX7xzAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBTxRmjG8cPwKy19i2rhsvm-NfzRQTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAG0WbzLPsmSSMI7aTe2npixmkdCmwcdZHGd43tUnB8JKrLNJEFcBsQmbcIH0adpnQNrDgRkNBBOTZ4s1LIBlRQapZpPsRItAMUguVpGVRH08T0i43w9xrp_clNbAJrrfRbmYroF0WJKMJ0nwW2rPjxdevSRygGK_nEfywwFi-p1RhHnkiEGL4GnP7PpQcRvAYMdH9LO5MRY7iLbBmosKatS_eWtSJD1CvzglNwy_vQzx81Vnk0CgndqXcVq-loGu7R4U7mkQ2NNqLbp447STxkpP-6Mdyv8J4bdnf1s3vFBNpgvJWKogWcNLlo8jnkbEf6RPNGe1W5lma7JwMKAcPzY&s=Q9TXxkIayWwUgTsuivTz_lDSfsGev9dcjxdmKVLeHg2Tr00egusycGGwRsNnJunYrDNbWxHZsoPGyqwB7Oo47IKKcnS6KDawdYHCWwF4WbXMCZ8yTWoGCB_YgSnDK4RKas0BrUVbCodYCIy0jAY_FlCBtY1NrkNQnJ0NAyBXJyOfGaK2YwHPU11-u9mEax0qbg2v_3IPw0zCKdNvQwWfcLj4G12fqnlkJTLsH83CuXVCxDM6YsroGmygYWBN9SscCZK7_xToyw2n6Paysn_T4qacIpBNYrq_8RPn8aU-SV4ol81OnvYDR2YdmGdJ2Otms4m3NY_Bc2XXO1iVasSW3w&h=gdfG58kRzWeKKMuAiVyF4Sb2TO2_SOiQ71siiX--pwc", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjFhYmQ2NzgtMThjNS00NjYwLTlmZGQtOGM1YmE2YjZmZTFmL3Byb3ZpZGVycy9NaWNyb3NvZnQuQmF0Y2gvbG9jYXRpb25zL3dlc3R1czIvYWNjb3VudE9wZXJhdGlvblJlc3VsdHMvcHM3OTA1LWYzZjIyMDVlLTQxODMtNDVlMi05MDZhLTQ4ZDg2MjUzMDc0OD9hcGktdmVyc2lvbj0yMDIyLTEwLTAxJnQ9NjM4NjcxMzA0MTEwNzgyMzE2JmM9TUlJSGh6Q0NCbS1nQXdJQkFnSVRIZ1ZxaEY5R09vVWp1eXFRV0FBQUJXcUVYekFOQmdrcWhraUc5dzBCQVFzRkFEQkVNUk13RVFZS0NaSW1pWlB5TEdRQkdSWURSMEpNTVJNd0VRWUtDWkltaVpQeUxHUUJHUllEUVUxRk1SZ3dGZ1lEVlFRREV3OUJUVVVnU1c1bWNtRWdRMEVnTURZd0hoY05NalF3T1RJd01qTXhNVFF4V2hjTk1qVXdNekU1TWpNeE1UUXhXakJBTVQ0d1BBWURWUVFERXpWaGMzbHVZMjl3WlhKaGRHbHZibk5wWjI1cGJtZGpaWEowYVdacFkyRjBaUzV0WVc1aFoyVnRaVzUwTG1GNmRYSmxMbU52YlRDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBS1J0Y1lEQlhTN3p6NXRSdHZWeWhyVUFqdWRZaGVqMUUyRDNkcDZYV3VQZGJWTWJRWndNbHllOHZkVC1rRGhGRDdUMm1yZFdxc29HblRHazBfeE9IQmZMR25XLTBRUlVxcGVvVE5JaHU4dmMyQ2ZUVXRtMnQyc18tZnp2RnRSeWhEQTRtZkNIMWN6OTJFVmowdmQzRkQ0aWtXNmJkT3AxTmtZRnFVVkJoS2xidkprNnktVGJMRkJMUDVaeDRtMFVhLV9QN2FNemJndk9KZ01PVEMyakxzNXdfbEZESldlUDNJS1VPaUptcmZMcGY0ZXk1T3Y5NG9DRTZZbmNEQlNISlpLV2NyU3hESGdTejlBWHJ4YXJMNEhMYWpHYkYzTVJ2ZmtNTjJnTlhDb2lKWEJFcUNMRG55UVowQmdYSXZ1Szd2RzhSajBUeWhKTmotUVByOHRhWTZVQ0F3RUFBYU9DQkhRd2dnUndNQ2NHQ1NzR0FRUUJnamNWQ2dRYU1CZ3dDZ1lJS3dZQkJRVUhBd0V3Q2dZSUt3WUJCUVVIQXdJd1BRWUpLd1lCQkFHQ054VUhCREF3TGdZbUt3WUJCQUdDTnhVSWhwRGpEWVRWdEhpRThZcy1oWnZkRnM2ZEVvRmdoZm1SUzRXc21UUUNBV1FDQVFjd2dnSExCZ2dyQmdFRkJRY0JBUVNDQWIwd2dnRzVNR01HQ0NzR0FRVUZCekFDaGxkb2RIUndPaTh2WTNKc0xtMXBZM0p2YzI5bWRDNWpiMjB2Y0d0cGFXNW1jbUV2UTJWeWRITXZRa3d5VUV0SlNVNVVRMEV3TWk1QlRVVXVSMEpNWDBGTlJTVXlNRWx1Wm5KaEpUSXdRMEVsTWpBd05pNWpjblF3VXdZSUt3WUJCUVVITUFLR1IyaDBkSEE2THk5amNtd3hMbUZ0WlM1blltd3ZZV2xoTDBKTU1sQkxTVWxPVkVOQk1ESXVRVTFGTGtkQ1RGOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFl1WTNKME1GTUdDQ3NHQVFVRkJ6QUNoa2RvZEhSd09pOHZZM0pzTWk1aGJXVXVaMkpzTDJGcFlTOUNUREpRUzBsSlRsUkRRVEF5TGtGTlJTNUhRa3hmUVUxRkpUSXdTVzVtY21FbE1qQkRRU1V5TURBMkxtTnlkREJUQmdnckJnRUZCUWN3QW9aSGFIUjBjRG92TDJOeWJETXVZVzFsTG1kaWJDOWhhV0V2UWt3eVVFdEpTVTVVUTBFd01pNUJUVVV1UjBKTVgwRk5SU1V5TUVsdVpuSmhKVEl3UTBFbE1qQXdOaTVqY25Rd1V3WUlLd1lCQlFVSE1BS0dSMmgwZEhBNkx5OWpjbXcwTG1GdFpTNW5ZbXd2WVdsaEwwSk1NbEJMU1VsT1ZFTkJNREl1UVUxRkxrZENURjlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURZdVkzSjBNQjBHQTFVZERnUVdCQlJLbEpRcEZ5eVpLU2Noa1Rsc2hldFlPVVg3eHpBT0JnTlZIUThCQWY4RUJBTUNCYUF3Z2dFbUJnTlZIUjhFZ2dFZE1JSUJHVENDQVJXZ2dnRVJvSUlCRFlZX2FIUjBjRG92TDJOeWJDNXRhV055YjNOdlpuUXVZMjl0TDNCcmFXbHVabkpoTDBOU1RDOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFl1WTNKc2hqRm9kSFJ3T2k4dlkzSnNNUzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01EWXVZM0pzaGpGb2RIUndPaTh2WTNKc01pNWhiV1V1WjJKc0wyTnliQzlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURZdVkzSnNoakZvZEhSd09pOHZZM0pzTXk1aGJXVXVaMkpzTDJOeWJDOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFl1WTNKc2hqRm9kSFJ3T2k4dlkzSnNOQzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01EWXVZM0pzTUlHZEJnTlZIU0FFZ1pVd2daSXdEQVlLS3dZQkJBR0NOM3NCQVRCbUJnb3JCZ0VFQVlJM2V3SUNNRmd3VmdZSUt3WUJCUVVIQWdJd1NoNUlBRE1BTXdCbEFEQUFNUUE1QURJQU1RQXRBRFFBWkFBMkFEUUFMUUEwQUdZQU9BQmpBQzBBWVFBd0FEVUFOUUF0QURVQVlnQmtBR0VBWmdCbUFHUUFOUUJsQURNQU13QmtNQXdHQ2lzR0FRUUJnamQ3QXdFd0RBWUtLd1lCQkFHQ04zc0VBakFmQmdOVkhTTUVHREFXZ0JUeFJtakc4Y1B3S3kxOWkycmhzdm0tTmZ6UlFUQWRCZ05WSFNVRUZqQVVCZ2dyQmdFRkJRY0RBUVlJS3dZQkJRVUhBd0l3RFFZSktvWklodmNOQVFFTEJRQURnZ0VCQUcwV2J6TFBzbVNTTUk3YVRlMm5waXhta2RDbXdjZFpIR2Q0M3RVbkI4SktyTE5KRUZjQnNRbWJjSUgwYWRwblFOckRnUmtOQkJPVFo0czFMSUJsUlFhcFpwUHNSSXRBTVVndVZwR1ZSSDA4VDBpNDN3OXhycF9jbE5iQUpycmZSYm1Zcm9GMFdKS01KMG53VzJyUGp4ZGV2U1J5Z0dLX25FZnl3d0ZpLXAxUmhIbmtpRUdMNEduUDdQcFFjUnZBWU1kSDlMTzVNUlk3aUxiQm1vc0thdFNfZVd0U0pEMUN2emdsTnd5X3ZReng4MVZuazBDZ25kcVhjVnEtbG9HdTdSNFU3bWtRMk5OcUxicDQ0N1NUeGtwUC02TWR5djhKNGJkbmYxczN2RkJOcGd2SldLb2dXY05MbG84am5rYkVmNlJQTkdlMVc1bG1hN0p3TUtBY1B6WSZzPVE5VFh4a0lheVd3VWdUc3VpdlR6X2xEU2ZzR2V2OWRjanhkbUtWTGVIZzJUcjAwZWd1c3ljR0d3UnNObkp1bllyRE5iV3hIWnNvUEd5cXdCN09vNDdJS0tjblM2S0Rhd2RZSENXd0Y0V2JYTUNaOHlUV29HQ0JfWWdTbkRLNFJLYXMwQnJVVmJDb2RZQ0l5MGpBWV9GbENCdFkxTnJrTlFuSjBOQXlCWEp5T2ZHYUsyWXdIUFUxMS11OW1FYXgwcWJnMnZfM0lQdzB6Q0tkTnZRd1dmY0xqNEcxMmZxbmxrSlRMc0g4M0N1WFZDeERNNllzcm9HbXlnWVdCTjlTc2NDWks3X3hUb3l3Mm42UGF5c25fVDRxYWNJcEJOWXJxXzhSUG44YVUtU1Y0b2w4MU9udllEUjJZZG1HZEoyT3RtczRtM05ZX0JjMlhYTzFpVmFzU1czdyZoPWdkZkc1OGtSeldlS0tNdUFpVnlGNFNiMlRPMl9TT2lRNzFzaWlYLS1wd2M=", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/providers/Microsoft.Batch/locations/westus2/accountOperationResults/ps8437-7f030330-c3d1-42d2-88dc-6fa78252b612?api-version=2023-05-01&t=638932183186360780&c=MIIIpTCCBo2gAwIBAgITFgGsmnj73LBE7PaBtQABAayaeDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDMwHhcNMjUwNzE4MTIwNDI4WhcNMjYwMTE0MTIwNDI4WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKYwXiklImL5-WfPWj2FX3_Y-JxCd3XXEOuNXx5ggHubZZamujLTqEBSFsFYiH_9NCaqKTiATXu6fBpzW3ghgYhwr0PL071fQT15KnnNUFjd5hFXB7SYti9IwWu1lxSAz-De7HivujKdlsgcmfoV6upRQ0eva9e74EwLV9pCn4WQAhs-6T8p0CytQsi81qHMWybAbNvfom0ox78IEWdS_6g_d4Jl_I4ccYLMyRTOV2NioM96cRECWCZhbpLl1zwoYGSbU5H0MZaiCBjPlhXN40BqagpamZfP98sPYSBfreh6-iMGU5tNTRkh8RiJqzjhzIUpEv3PqLtWTyPUB8JS7aUCAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9BTTNQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAzKDEpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MB0GA1UdDgQWBBTxzPCXgPzIUiTz94us0y0CCMf8BzAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBRIo61gdWpv7GDzaVXRALEyV_xs5DAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggIBAAqNK9Ejzdnb9L4TyakCpJByRYVTN_6nCGbtUd2E2sELjuJGRGiRmujp_jqNyIofO_ghSaP_tqH-3WRTRUbnt5xM8aBYoYJSOgKgTsNrB6clspdhCCmzhJy6EQuOqfUDm3C7hDru1_bN3DwXt3VpDqfuYtM3MAabKg0oCYVWgFwnAKYmZLZMWMQh7k_hZxy1gOCQmE9U08tf_pU21aI0El6n5A5uG2FT0placwchheFmXAtoPjT7nU53HVmRissxUR_vRCDj_ZCFo3K3nZNXCQOKPAMc9-LC0prb9Slg6siKtSHB3iGjNQlT9-nbSnDgifI8zC1cvT8CdaNLOmUywRIB4wvRn1z123NuyfJaIz95igW9P189vBTJEZREF-MgJEboWKdlGNn6bbBtu0waqAmUU7WVLeZKdtUI6EEKF7wRGYuY_BhZx1ipyXnBHZpsufuH4AwgOO289QKmqg8QAy7HFD9c8H8fNCtR7sTZ4YNP2AhEaES0rkMSQUCNVEz42YEBi2GgrSpnI94SPdb3J3PkCMZ4OgFRjztLO7nrgbPtflhSOo_VOE0_7Y74km43WAMQPKL3-44vQrEQ61Hd_24IcFh_ChNXvUDqp39GzYlO3D0zlau4ozll8BeLUZrJwHTQWZS8XR-EifCl4MW5Y3Y1SxOLrIxnukCzQxL7aGmc&s=ENIYYOeR9tQXkYkicd_BX2Eh2gJYj6XtnBl6V2kh79ev8fOaZH8Jy1N4WfSAzvg5LSOv5UCHRhCbE6nH0OrCsSKDuxErHmcfv7H_yfkt-acdEoQwwtGCwPd-87-Yht2Nq2RefPWjN82BzfXDBpDWI3L7Nq78xmRB1RAMNFt9PElzG4ioxCJdU55N0nN0Wsp1BKTUwP6Enql3wu9g2tPDn7xBgx1TKSL3y3Qcz6R0AznDqv9bZ8JpBf7mLPbZ41Jhp0xVb7Ca6x_bs5GRj3ecgkSxXcn3AiGTTJiwjddCrZaNPoHFG750GviR1_QT9iRMvwbj7dgy2tP85G-AZhu7sA&h=CKs8IW2-k2gwB8WnRaGg_rhleAL5pbPIjZRT05ae0g0", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Byb3ZpZGVycy9NaWNyb3NvZnQuQmF0Y2gvbG9jYXRpb25zL3dlc3R1czIvYWNjb3VudE9wZXJhdGlvblJlc3VsdHMvcHM4NDM3LTdmMDMwMzMwLWMzZDEtNDJkMi04OGRjLTZmYTc4MjUyYjYxMj9hcGktdmVyc2lvbj0yMDIzLTA1LTAxJnQ9NjM4OTMyMTgzMTg2MzYwNzgwJmM9TUlJSXBUQ0NCbzJnQXdJQkFnSVRGZ0dzbW5qNzNMQkU3UGFCdFFBQkFheWFlREFOQmdrcWhraUc5dzBCQVFzRkFEQkVNUk13RVFZS0NaSW1pWlB5TEdRQkdSWURSMEpNTVJNd0VRWUtDWkltaVpQeUxHUUJHUllEUVUxRk1SZ3dGZ1lEVlFRREV3OUJUVVVnU1c1bWNtRWdRMEVnTURNd0hoY05NalV3TnpFNE1USXdOREk0V2hjTk1qWXdNVEUwTVRJd05ESTRXakJBTVQ0d1BBWURWUVFERXpWaGMzbHVZMjl3WlhKaGRHbHZibk5wWjI1cGJtZGpaWEowYVdacFkyRjBaUzV0WVc1aFoyVnRaVzUwTG1GNmRYSmxMbU52YlRDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBS1l3WGlrbEltTDUtV2ZQV2oyRlgzX1ktSnhDZDNYWEVPdU5YeDVnZ0h1YlpaYW11akxUcUVCU0ZzRllpSF85TkNhcUtUaUFUWHU2ZkJwelczZ2hnWWh3cjBQTDA3MWZRVDE1S25uTlVGamQ1aEZYQjdTWXRpOUl3V3UxbHhTQXotRGU3SGl2dWpLZGxzZ2NtZm9WNnVwUlEwZXZhOWU3NEV3TFY5cENuNFdRQWhzLTZUOHAwQ3l0UXNpODFxSE1XeWJBYk52Zm9tMG94NzhJRVdkU182Z19kNEpsX0k0Y2NZTE15UlRPVjJOaW9NOTZjUkVDV0NaaGJwTGwxendvWUdTYlU1SDBNWmFpQ0JqUGxoWE40MEJxYWdwYW1aZlA5OHNQWVNCZnJlaDYtaU1HVTV0TlRSa2g4UmlKcXpqaHpJVXBFdjNQcUx0V1R5UFVCOEpTN2FVQ0F3RUFBYU9DQkpJd2dnU09NQ2NHQ1NzR0FRUUJnamNWQ2dRYU1CZ3dDZ1lJS3dZQkJRVUhBd0V3Q2dZSUt3WUJCUVVIQXdJd1BRWUpLd1lCQkFHQ054VUhCREF3TGdZbUt3WUJCQUdDTnhVSWhwRGpEWVRWdEhpRThZcy1oWnZkRnM2ZEVvRmdoZm1SUzRXc21UUUNBV1FDQVFjd2dnSGFCZ2dyQmdFRkJRY0JBUVNDQWN3d2dnSElNR1lHQ0NzR0FRVUZCekFDaGxwb2RIUndPaTh2WTNKc0xtMXBZM0p2YzI5bWRDNWpiMjB2Y0d0cGFXNW1jbUV2UTJWeWRITXZRVTB6VUV0SlNVNVVRMEV3TVM1QlRVVXVSMEpNWDBGTlJTVXlNRWx1Wm5KaEpUSXdRMEVsTWpBd015Z3hLUzVqY25Rd1ZnWUlLd1lCQlFVSE1BS0dTbWgwZEhBNkx5OWpjbXd4TG1GdFpTNW5ZbXd2WVdsaEwwRk5NMUJMU1VsT1ZFTkJNREV1UVUxRkxrZENURjlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURNb01Ta3VZM0owTUZZR0NDc0dBUVVGQnpBQ2hrcG9kSFJ3T2k4dlkzSnNNaTVoYldVdVoySnNMMkZwWVM5QlRUTlFTMGxKVGxSRFFUQXhMa0ZOUlM1SFFreGZRVTFGSlRJd1NXNW1jbUVsTWpCRFFTVXlNREF6S0RFcExtTnlkREJXQmdnckJnRUZCUWN3QW9aS2FIUjBjRG92TDJOeWJETXVZVzFsTG1kaWJDOWhhV0V2UVUwelVFdEpTVTVVUTBFd01TNUJUVVV1UjBKTVgwRk5SU1V5TUVsdVpuSmhKVEl3UTBFbE1qQXdNeWd4S1M1amNuUXdWZ1lJS3dZQkJRVUhNQUtHU21oMGRIQTZMeTlqY213MExtRnRaUzVuWW13dllXbGhMMEZOTTFCTFNVbE9WRU5CTURFdVFVMUZMa2RDVEY5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKME1CMEdBMVVkRGdRV0JCVHh6UENYZ1B6SVVpVHo5NHVzMHkwQ0NNZjhCekFPQmdOVkhROEJBZjhFQkFNQ0JhQXdnZ0UxQmdOVkhSOEVnZ0VzTUlJQktEQ0NBU1NnZ2dFZ29JSUJISVpDYUhSMGNEb3ZMMk55YkM1dGFXTnliM052Wm5RdVkyOXRMM0JyYVdsdVpuSmhMME5TVEM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc2hqUm9kSFJ3T2k4dlkzSnNNUzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc2hqUm9kSFJ3T2k4dlkzSnNNaTVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc2hqUm9kSFJ3T2k4dlkzSnNNeTVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc2hqUm9kSFJ3T2k4dlkzSnNOQzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc01JR2RCZ05WSFNBRWdaVXdnWkl3REFZS0t3WUJCQUdDTjNzQkFUQm1CZ29yQmdFRUFZSTNld0lDTUZnd1ZnWUlLd1lCQlFVSEFnSXdTaDVJQURNQU13QmxBREFBTVFBNUFESUFNUUF0QURRQVpBQTJBRFFBTFFBMEFHWUFPQUJqQUMwQVlRQXdBRFVBTlFBdEFEVUFZZ0JrQUdFQVpnQm1BR1FBTlFCbEFETUFNd0JrTUF3R0Npc0dBUVFCZ2pkN0F3SXdEQVlLS3dZQkJBR0NOM3NFQWpBZkJnTlZIU01FR0RBV2dCUklvNjFnZFdwdjdHRHphVlhSQUxFeVZfeHM1REFkQmdOVkhTVUVGakFVQmdnckJnRUZCUWNEQVFZSUt3WUJCUVVIQXdJd0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dJQkFBcU5LOUVqemRuYjlMNFR5YWtDcEpCeVJZVlROXzZuQ0didFVkMkUyc0VManVKR1JHaVJtdWpwX2pxTnlJb2ZPX2doU2FQX3RxSC0zV1JUUlVibnQ1eE04YUJZb1lKU09nS2dUc05yQjZjbHNwZGhDQ216aEp5NkVRdU9xZlVEbTNDN2hEcnUxX2JOM0R3WHQzVnBEcWZ1WXRNM01BYWJLZzBvQ1lWV2dGd25BS1ltWkxaTVdNUWg3a19oWnh5MWdPQ1FtRTlVMDh0Zl9wVTIxYUkwRWw2bjVBNXVHMkZUMHBsYWN3Y2hoZUZtWEF0b1BqVDduVTUzSFZtUmlzc3hVUl92UkNEal9aQ0ZvM0szblpOWENRT0tQQU1jOS1MQzBwcmI5U2xnNnNpS3RTSEIzaUdqTlFsVDktbmJTbkRnaWZJOHpDMWN2VDhDZGFOTE9tVXl3UklCNHd2Um4xejEyM051eWZKYUl6OTVpZ1c5UDE4OXZCVEpFWlJFRi1NZ0pFYm9XS2RsR05uNmJiQnR1MHdhcUFtVVU3V1ZMZVpLZHRVSTZFRUtGN3dSR1l1WV9CaFp4MWlweVhuQkhacHN1ZnVINEF3Z09PMjg5UUttcWc4UUF5N0hGRDljOEg4Zk5DdFI3c1RaNFlOUDJBaEVhRVMwcmtNU1FVQ05WRXo0MllFQmkyR2dyU3BuSTk0U1BkYjNKM1BrQ01aNE9nRlJqenRMTzducmdiUHRmbGhTT29fVk9FMF83WTc0a200M1dBTVFQS0wzLTQ0dlFyRVE2MUhkXzI0SWNGaF9DaE5YdlVEcXAzOUd6WWxPM0QwemxhdTRvemxsOEJlTFVackp3SFRRV1pTOFhSLUVpZkNsNE1XNVkzWTFTeE9Mckl4bnVrQ3pReEw3YUdtYyZzPUVOSVlZT2VSOXRRWGtZa2ljZF9CWDJFaDJnSllqNlh0bkJsNlYya2g3OWV2OGZPYVpIOEp5MU40V2ZTQXp2ZzVMU092NVVDSFJoQ2JFNm5IME9yQ3NTS0R1eEVySG1jZnY3SF95Zmt0LWFjZEVvUXd3dEdDd1BkLTg3LVlodDJOcTJSZWZQV2pOODJCemZYREJwRFdJM0w3TnE3OHhtUkIxUkFNTkZ0OVBFbHpHNGlveENKZFU1NU4wbk4wV3NwMUJLVFV3UDZFbnFsM3d1OWcydFBEbjd4Qmd4MVRLU0wzeTNRY3o2UjBBem5EcXY5Ylo4SnBCZjdtTFBiWjQxSmhwMHhWYjdDYTZ4X2JzNUdSajNlY2drU3hYY24zQWlHVFRKaXdqZGRDclphTlBvSEZHNzUwR3ZpUjFfUVQ5aVJNdndiajdkZ3kydFA4NUctQVpodTdzQSZoPUNLczhJVzItazJnd0I4V25SYUdnX3JobGVBTDVwYlBJalpSVDA1YWUwZzA=", "RequestMethod": "GET", "RequestHeaders": { "x-ms-client-request-id": [ - "61cb322d-426a-440e-8509-c83709a2c378" + "df482f8c-2bce-462a-a6e0-38e8820f3348" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Management.Batch.BatchManagementClient/3.6.4" + "OSVersion/Microsoft.Windows.10.0.26100", + "Microsoft.Azure.Management.Batch.BatchManagementClient/3.7.0" ] }, "RequestBody": "", @@ -1197,7 +1218,7 @@ "no-cache" ], "x-ms-request-id": [ - "362bf18b-13a1-4695-b336-93614e45be81" + "dd995cac-7bba-429c-9c5f-92c2313fbef2" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -1205,6 +1226,9 @@ "X-Content-Type-Options": [ "nosniff" ], + "x-ms-operation-identifier": [ + "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=ac839cc2-33ee-4879-a5b5-2895202ccb29/westus2/8c6ae39b-0eed-4e24-9d52-17d74e42de19" + ], "x-ms-ratelimit-remaining-subscription-reads": [ "1099" ], @@ -1212,19 +1236,19 @@ "16499" ], "x-ms-correlation-request-id": [ - "351a941d-4c2e-40d7-ab92-b11666b145c6" + "e508ef39-18a1-4cf0-9773-05e3cc4c4702" ], "x-ms-routing-request-id": [ - "EASTUS:20241113T213346Z:351a941d-4c2e-40d7-ab92-b11666b145c6" + "WESTUS2:20250911T201213Z:e508ef39-18a1-4cf0-9773-05e3cc4c4702" ], "X-Cache": [ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: 3C06AB9DBB314C1FB6CB087B5BB01C33 Ref B: MNZ221060618023 Ref C: 2024-11-13T21:33:46Z" + "Ref A: 425A45533F6843C29FFB7741D13E1CFC Ref B: CO6AA3150217025 Ref C: 2025-09-11T20:12:13Z" ], "Date": [ - "Wed, 13 Nov 2024 21:33:45 GMT" + "Thu, 11 Sep 2025 20:12:13 GMT" ], "Expires": [ "-1" @@ -1237,18 +1261,18 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/providers/Microsoft.Batch/locations/westus2/accountOperationResults/ps7905-f3f2205e-4183-45e2-906a-48d862530748?api-version=2022-10-01&t=638671304110782316&c=MIIHhzCCBm-gAwIBAgITHgVqhF9GOoUjuyqQWAAABWqEXzANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDYwHhcNMjQwOTIwMjMxMTQxWhcNMjUwMzE5MjMxMTQxWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKRtcYDBXS7zz5tRtvVyhrUAjudYhej1E2D3dp6XWuPdbVMbQZwMlye8vdT-kDhFD7T2mrdWqsoGnTGk0_xOHBfLGnW-0QRUqpeoTNIhu8vc2CfTUtm2t2s_-fzvFtRyhDA4mfCH1cz92EVj0vd3FD4ikW6bdOp1NkYFqUVBhKlbvJk6y-TbLFBLP5Zx4m0Ua-_P7aMzbgvOJgMOTC2jLs5w_lFDJWeP3IKUOiJmrfLpf4ey5Ov94oCE6YncDBSHJZKWcrSxDHgSz9AXrxarL4HLajGbF3MRvfkMN2gNXCoiJXBEqCLDnyQZ0BgXIvuK7vG8Rj0TyhJNj-QPr8taY6UCAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAyLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA2LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MB0GA1UdDgQWBBRKlJQpFyyZKSchkTlshetYOUX7xzAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBTxRmjG8cPwKy19i2rhsvm-NfzRQTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAG0WbzLPsmSSMI7aTe2npixmkdCmwcdZHGd43tUnB8JKrLNJEFcBsQmbcIH0adpnQNrDgRkNBBOTZ4s1LIBlRQapZpPsRItAMUguVpGVRH08T0i43w9xrp_clNbAJrrfRbmYroF0WJKMJ0nwW2rPjxdevSRygGK_nEfywwFi-p1RhHnkiEGL4GnP7PpQcRvAYMdH9LO5MRY7iLbBmosKatS_eWtSJD1CvzglNwy_vQzx81Vnk0CgndqXcVq-loGu7R4U7mkQ2NNqLbp447STxkpP-6Mdyv8J4bdnf1s3vFBNpgvJWKogWcNLlo8jnkbEf6RPNGe1W5lma7JwMKAcPzY&s=Q9TXxkIayWwUgTsuivTz_lDSfsGev9dcjxdmKVLeHg2Tr00egusycGGwRsNnJunYrDNbWxHZsoPGyqwB7Oo47IKKcnS6KDawdYHCWwF4WbXMCZ8yTWoGCB_YgSnDK4RKas0BrUVbCodYCIy0jAY_FlCBtY1NrkNQnJ0NAyBXJyOfGaK2YwHPU11-u9mEax0qbg2v_3IPw0zCKdNvQwWfcLj4G12fqnlkJTLsH83CuXVCxDM6YsroGmygYWBN9SscCZK7_xToyw2n6Paysn_T4qacIpBNYrq_8RPn8aU-SV4ol81OnvYDR2YdmGdJ2Otms4m3NY_Bc2XXO1iVasSW3w&h=gdfG58kRzWeKKMuAiVyF4Sb2TO2_SOiQ71siiX--pwc", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjFhYmQ2NzgtMThjNS00NjYwLTlmZGQtOGM1YmE2YjZmZTFmL3Byb3ZpZGVycy9NaWNyb3NvZnQuQmF0Y2gvbG9jYXRpb25zL3dlc3R1czIvYWNjb3VudE9wZXJhdGlvblJlc3VsdHMvcHM3OTA1LWYzZjIyMDVlLTQxODMtNDVlMi05MDZhLTQ4ZDg2MjUzMDc0OD9hcGktdmVyc2lvbj0yMDIyLTEwLTAxJnQ9NjM4NjcxMzA0MTEwNzgyMzE2JmM9TUlJSGh6Q0NCbS1nQXdJQkFnSVRIZ1ZxaEY5R09vVWp1eXFRV0FBQUJXcUVYekFOQmdrcWhraUc5dzBCQVFzRkFEQkVNUk13RVFZS0NaSW1pWlB5TEdRQkdSWURSMEpNTVJNd0VRWUtDWkltaVpQeUxHUUJHUllEUVUxRk1SZ3dGZ1lEVlFRREV3OUJUVVVnU1c1bWNtRWdRMEVnTURZd0hoY05NalF3T1RJd01qTXhNVFF4V2hjTk1qVXdNekU1TWpNeE1UUXhXakJBTVQ0d1BBWURWUVFERXpWaGMzbHVZMjl3WlhKaGRHbHZibk5wWjI1cGJtZGpaWEowYVdacFkyRjBaUzV0WVc1aFoyVnRaVzUwTG1GNmRYSmxMbU52YlRDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBS1J0Y1lEQlhTN3p6NXRSdHZWeWhyVUFqdWRZaGVqMUUyRDNkcDZYV3VQZGJWTWJRWndNbHllOHZkVC1rRGhGRDdUMm1yZFdxc29HblRHazBfeE9IQmZMR25XLTBRUlVxcGVvVE5JaHU4dmMyQ2ZUVXRtMnQyc18tZnp2RnRSeWhEQTRtZkNIMWN6OTJFVmowdmQzRkQ0aWtXNmJkT3AxTmtZRnFVVkJoS2xidkprNnktVGJMRkJMUDVaeDRtMFVhLV9QN2FNemJndk9KZ01PVEMyakxzNXdfbEZESldlUDNJS1VPaUptcmZMcGY0ZXk1T3Y5NG9DRTZZbmNEQlNISlpLV2NyU3hESGdTejlBWHJ4YXJMNEhMYWpHYkYzTVJ2ZmtNTjJnTlhDb2lKWEJFcUNMRG55UVowQmdYSXZ1Szd2RzhSajBUeWhKTmotUVByOHRhWTZVQ0F3RUFBYU9DQkhRd2dnUndNQ2NHQ1NzR0FRUUJnamNWQ2dRYU1CZ3dDZ1lJS3dZQkJRVUhBd0V3Q2dZSUt3WUJCUVVIQXdJd1BRWUpLd1lCQkFHQ054VUhCREF3TGdZbUt3WUJCQUdDTnhVSWhwRGpEWVRWdEhpRThZcy1oWnZkRnM2ZEVvRmdoZm1SUzRXc21UUUNBV1FDQVFjd2dnSExCZ2dyQmdFRkJRY0JBUVNDQWIwd2dnRzVNR01HQ0NzR0FRVUZCekFDaGxkb2RIUndPaTh2WTNKc0xtMXBZM0p2YzI5bWRDNWpiMjB2Y0d0cGFXNW1jbUV2UTJWeWRITXZRa3d5VUV0SlNVNVVRMEV3TWk1QlRVVXVSMEpNWDBGTlJTVXlNRWx1Wm5KaEpUSXdRMEVsTWpBd05pNWpjblF3VXdZSUt3WUJCUVVITUFLR1IyaDBkSEE2THk5amNtd3hMbUZ0WlM1blltd3ZZV2xoTDBKTU1sQkxTVWxPVkVOQk1ESXVRVTFGTGtkQ1RGOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFl1WTNKME1GTUdDQ3NHQVFVRkJ6QUNoa2RvZEhSd09pOHZZM0pzTWk1aGJXVXVaMkpzTDJGcFlTOUNUREpRUzBsSlRsUkRRVEF5TGtGTlJTNUhRa3hmUVUxRkpUSXdTVzVtY21FbE1qQkRRU1V5TURBMkxtTnlkREJUQmdnckJnRUZCUWN3QW9aSGFIUjBjRG92TDJOeWJETXVZVzFsTG1kaWJDOWhhV0V2UWt3eVVFdEpTVTVVUTBFd01pNUJUVVV1UjBKTVgwRk5SU1V5TUVsdVpuSmhKVEl3UTBFbE1qQXdOaTVqY25Rd1V3WUlLd1lCQlFVSE1BS0dSMmgwZEhBNkx5OWpjbXcwTG1GdFpTNW5ZbXd2WVdsaEwwSk1NbEJMU1VsT1ZFTkJNREl1UVUxRkxrZENURjlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURZdVkzSjBNQjBHQTFVZERnUVdCQlJLbEpRcEZ5eVpLU2Noa1Rsc2hldFlPVVg3eHpBT0JnTlZIUThCQWY4RUJBTUNCYUF3Z2dFbUJnTlZIUjhFZ2dFZE1JSUJHVENDQVJXZ2dnRVJvSUlCRFlZX2FIUjBjRG92TDJOeWJDNXRhV055YjNOdlpuUXVZMjl0TDNCcmFXbHVabkpoTDBOU1RDOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFl1WTNKc2hqRm9kSFJ3T2k4dlkzSnNNUzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01EWXVZM0pzaGpGb2RIUndPaTh2WTNKc01pNWhiV1V1WjJKc0wyTnliQzlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURZdVkzSnNoakZvZEhSd09pOHZZM0pzTXk1aGJXVXVaMkpzTDJOeWJDOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFl1WTNKc2hqRm9kSFJ3T2k4dlkzSnNOQzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01EWXVZM0pzTUlHZEJnTlZIU0FFZ1pVd2daSXdEQVlLS3dZQkJBR0NOM3NCQVRCbUJnb3JCZ0VFQVlJM2V3SUNNRmd3VmdZSUt3WUJCUVVIQWdJd1NoNUlBRE1BTXdCbEFEQUFNUUE1QURJQU1RQXRBRFFBWkFBMkFEUUFMUUEwQUdZQU9BQmpBQzBBWVFBd0FEVUFOUUF0QURVQVlnQmtBR0VBWmdCbUFHUUFOUUJsQURNQU13QmtNQXdHQ2lzR0FRUUJnamQ3QXdFd0RBWUtLd1lCQkFHQ04zc0VBakFmQmdOVkhTTUVHREFXZ0JUeFJtakc4Y1B3S3kxOWkycmhzdm0tTmZ6UlFUQWRCZ05WSFNVRUZqQVVCZ2dyQmdFRkJRY0RBUVlJS3dZQkJRVUhBd0l3RFFZSktvWklodmNOQVFFTEJRQURnZ0VCQUcwV2J6TFBzbVNTTUk3YVRlMm5waXhta2RDbXdjZFpIR2Q0M3RVbkI4SktyTE5KRUZjQnNRbWJjSUgwYWRwblFOckRnUmtOQkJPVFo0czFMSUJsUlFhcFpwUHNSSXRBTVVndVZwR1ZSSDA4VDBpNDN3OXhycF9jbE5iQUpycmZSYm1Zcm9GMFdKS01KMG53VzJyUGp4ZGV2U1J5Z0dLX25FZnl3d0ZpLXAxUmhIbmtpRUdMNEduUDdQcFFjUnZBWU1kSDlMTzVNUlk3aUxiQm1vc0thdFNfZVd0U0pEMUN2emdsTnd5X3ZReng4MVZuazBDZ25kcVhjVnEtbG9HdTdSNFU3bWtRMk5OcUxicDQ0N1NUeGtwUC02TWR5djhKNGJkbmYxczN2RkJOcGd2SldLb2dXY05MbG84am5rYkVmNlJQTkdlMVc1bG1hN0p3TUtBY1B6WSZzPVE5VFh4a0lheVd3VWdUc3VpdlR6X2xEU2ZzR2V2OWRjanhkbUtWTGVIZzJUcjAwZWd1c3ljR0d3UnNObkp1bllyRE5iV3hIWnNvUEd5cXdCN09vNDdJS0tjblM2S0Rhd2RZSENXd0Y0V2JYTUNaOHlUV29HQ0JfWWdTbkRLNFJLYXMwQnJVVmJDb2RZQ0l5MGpBWV9GbENCdFkxTnJrTlFuSjBOQXlCWEp5T2ZHYUsyWXdIUFUxMS11OW1FYXgwcWJnMnZfM0lQdzB6Q0tkTnZRd1dmY0xqNEcxMmZxbmxrSlRMc0g4M0N1WFZDeERNNllzcm9HbXlnWVdCTjlTc2NDWks3X3hUb3l3Mm42UGF5c25fVDRxYWNJcEJOWXJxXzhSUG44YVUtU1Y0b2w4MU9udllEUjJZZG1HZEoyT3RtczRtM05ZX0JjMlhYTzFpVmFzU1czdyZoPWdkZkc1OGtSeldlS0tNdUFpVnlGNFNiMlRPMl9TT2lRNzFzaWlYLS1wd2M=", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/providers/Microsoft.Batch/locations/westus2/accountOperationResults/ps8437-7f030330-c3d1-42d2-88dc-6fa78252b612?api-version=2023-05-01&t=638932183186360780&c=MIIIpTCCBo2gAwIBAgITFgGsmnj73LBE7PaBtQABAayaeDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDMwHhcNMjUwNzE4MTIwNDI4WhcNMjYwMTE0MTIwNDI4WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKYwXiklImL5-WfPWj2FX3_Y-JxCd3XXEOuNXx5ggHubZZamujLTqEBSFsFYiH_9NCaqKTiATXu6fBpzW3ghgYhwr0PL071fQT15KnnNUFjd5hFXB7SYti9IwWu1lxSAz-De7HivujKdlsgcmfoV6upRQ0eva9e74EwLV9pCn4WQAhs-6T8p0CytQsi81qHMWybAbNvfom0ox78IEWdS_6g_d4Jl_I4ccYLMyRTOV2NioM96cRECWCZhbpLl1zwoYGSbU5H0MZaiCBjPlhXN40BqagpamZfP98sPYSBfreh6-iMGU5tNTRkh8RiJqzjhzIUpEv3PqLtWTyPUB8JS7aUCAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9BTTNQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAzKDEpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MB0GA1UdDgQWBBTxzPCXgPzIUiTz94us0y0CCMf8BzAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBRIo61gdWpv7GDzaVXRALEyV_xs5DAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggIBAAqNK9Ejzdnb9L4TyakCpJByRYVTN_6nCGbtUd2E2sELjuJGRGiRmujp_jqNyIofO_ghSaP_tqH-3WRTRUbnt5xM8aBYoYJSOgKgTsNrB6clspdhCCmzhJy6EQuOqfUDm3C7hDru1_bN3DwXt3VpDqfuYtM3MAabKg0oCYVWgFwnAKYmZLZMWMQh7k_hZxy1gOCQmE9U08tf_pU21aI0El6n5A5uG2FT0placwchheFmXAtoPjT7nU53HVmRissxUR_vRCDj_ZCFo3K3nZNXCQOKPAMc9-LC0prb9Slg6siKtSHB3iGjNQlT9-nbSnDgifI8zC1cvT8CdaNLOmUywRIB4wvRn1z123NuyfJaIz95igW9P189vBTJEZREF-MgJEboWKdlGNn6bbBtu0waqAmUU7WVLeZKdtUI6EEKF7wRGYuY_BhZx1ipyXnBHZpsufuH4AwgOO289QKmqg8QAy7HFD9c8H8fNCtR7sTZ4YNP2AhEaES0rkMSQUCNVEz42YEBi2GgrSpnI94SPdb3J3PkCMZ4OgFRjztLO7nrgbPtflhSOo_VOE0_7Y74km43WAMQPKL3-44vQrEQ61Hd_24IcFh_ChNXvUDqp39GzYlO3D0zlau4ozll8BeLUZrJwHTQWZS8XR-EifCl4MW5Y3Y1SxOLrIxnukCzQxL7aGmc&s=ENIYYOeR9tQXkYkicd_BX2Eh2gJYj6XtnBl6V2kh79ev8fOaZH8Jy1N4WfSAzvg5LSOv5UCHRhCbE6nH0OrCsSKDuxErHmcfv7H_yfkt-acdEoQwwtGCwPd-87-Yht2Nq2RefPWjN82BzfXDBpDWI3L7Nq78xmRB1RAMNFt9PElzG4ioxCJdU55N0nN0Wsp1BKTUwP6Enql3wu9g2tPDn7xBgx1TKSL3y3Qcz6R0AznDqv9bZ8JpBf7mLPbZ41Jhp0xVb7Ca6x_bs5GRj3ecgkSxXcn3AiGTTJiwjddCrZaNPoHFG750GviR1_QT9iRMvwbj7dgy2tP85G-AZhu7sA&h=CKs8IW2-k2gwB8WnRaGg_rhleAL5pbPIjZRT05ae0g0", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Byb3ZpZGVycy9NaWNyb3NvZnQuQmF0Y2gvbG9jYXRpb25zL3dlc3R1czIvYWNjb3VudE9wZXJhdGlvblJlc3VsdHMvcHM4NDM3LTdmMDMwMzMwLWMzZDEtNDJkMi04OGRjLTZmYTc4MjUyYjYxMj9hcGktdmVyc2lvbj0yMDIzLTA1LTAxJnQ9NjM4OTMyMTgzMTg2MzYwNzgwJmM9TUlJSXBUQ0NCbzJnQXdJQkFnSVRGZ0dzbW5qNzNMQkU3UGFCdFFBQkFheWFlREFOQmdrcWhraUc5dzBCQVFzRkFEQkVNUk13RVFZS0NaSW1pWlB5TEdRQkdSWURSMEpNTVJNd0VRWUtDWkltaVpQeUxHUUJHUllEUVUxRk1SZ3dGZ1lEVlFRREV3OUJUVVVnU1c1bWNtRWdRMEVnTURNd0hoY05NalV3TnpFNE1USXdOREk0V2hjTk1qWXdNVEUwTVRJd05ESTRXakJBTVQ0d1BBWURWUVFERXpWaGMzbHVZMjl3WlhKaGRHbHZibk5wWjI1cGJtZGpaWEowYVdacFkyRjBaUzV0WVc1aFoyVnRaVzUwTG1GNmRYSmxMbU52YlRDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBS1l3WGlrbEltTDUtV2ZQV2oyRlgzX1ktSnhDZDNYWEVPdU5YeDVnZ0h1YlpaYW11akxUcUVCU0ZzRllpSF85TkNhcUtUaUFUWHU2ZkJwelczZ2hnWWh3cjBQTDA3MWZRVDE1S25uTlVGamQ1aEZYQjdTWXRpOUl3V3UxbHhTQXotRGU3SGl2dWpLZGxzZ2NtZm9WNnVwUlEwZXZhOWU3NEV3TFY5cENuNFdRQWhzLTZUOHAwQ3l0UXNpODFxSE1XeWJBYk52Zm9tMG94NzhJRVdkU182Z19kNEpsX0k0Y2NZTE15UlRPVjJOaW9NOTZjUkVDV0NaaGJwTGwxendvWUdTYlU1SDBNWmFpQ0JqUGxoWE40MEJxYWdwYW1aZlA5OHNQWVNCZnJlaDYtaU1HVTV0TlRSa2g4UmlKcXpqaHpJVXBFdjNQcUx0V1R5UFVCOEpTN2FVQ0F3RUFBYU9DQkpJd2dnU09NQ2NHQ1NzR0FRUUJnamNWQ2dRYU1CZ3dDZ1lJS3dZQkJRVUhBd0V3Q2dZSUt3WUJCUVVIQXdJd1BRWUpLd1lCQkFHQ054VUhCREF3TGdZbUt3WUJCQUdDTnhVSWhwRGpEWVRWdEhpRThZcy1oWnZkRnM2ZEVvRmdoZm1SUzRXc21UUUNBV1FDQVFjd2dnSGFCZ2dyQmdFRkJRY0JBUVNDQWN3d2dnSElNR1lHQ0NzR0FRVUZCekFDaGxwb2RIUndPaTh2WTNKc0xtMXBZM0p2YzI5bWRDNWpiMjB2Y0d0cGFXNW1jbUV2UTJWeWRITXZRVTB6VUV0SlNVNVVRMEV3TVM1QlRVVXVSMEpNWDBGTlJTVXlNRWx1Wm5KaEpUSXdRMEVsTWpBd015Z3hLUzVqY25Rd1ZnWUlLd1lCQlFVSE1BS0dTbWgwZEhBNkx5OWpjbXd4TG1GdFpTNW5ZbXd2WVdsaEwwRk5NMUJMU1VsT1ZFTkJNREV1UVUxRkxrZENURjlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURNb01Ta3VZM0owTUZZR0NDc0dBUVVGQnpBQ2hrcG9kSFJ3T2k4dlkzSnNNaTVoYldVdVoySnNMMkZwWVM5QlRUTlFTMGxKVGxSRFFUQXhMa0ZOUlM1SFFreGZRVTFGSlRJd1NXNW1jbUVsTWpCRFFTVXlNREF6S0RFcExtTnlkREJXQmdnckJnRUZCUWN3QW9aS2FIUjBjRG92TDJOeWJETXVZVzFsTG1kaWJDOWhhV0V2UVUwelVFdEpTVTVVUTBFd01TNUJUVVV1UjBKTVgwRk5SU1V5TUVsdVpuSmhKVEl3UTBFbE1qQXdNeWd4S1M1amNuUXdWZ1lJS3dZQkJRVUhNQUtHU21oMGRIQTZMeTlqY213MExtRnRaUzVuWW13dllXbGhMMEZOTTFCTFNVbE9WRU5CTURFdVFVMUZMa2RDVEY5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKME1CMEdBMVVkRGdRV0JCVHh6UENYZ1B6SVVpVHo5NHVzMHkwQ0NNZjhCekFPQmdOVkhROEJBZjhFQkFNQ0JhQXdnZ0UxQmdOVkhSOEVnZ0VzTUlJQktEQ0NBU1NnZ2dFZ29JSUJISVpDYUhSMGNEb3ZMMk55YkM1dGFXTnliM052Wm5RdVkyOXRMM0JyYVdsdVpuSmhMME5TVEM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc2hqUm9kSFJ3T2k4dlkzSnNNUzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc2hqUm9kSFJ3T2k4dlkzSnNNaTVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc2hqUm9kSFJ3T2k4dlkzSnNNeTVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc2hqUm9kSFJ3T2k4dlkzSnNOQzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc01JR2RCZ05WSFNBRWdaVXdnWkl3REFZS0t3WUJCQUdDTjNzQkFUQm1CZ29yQmdFRUFZSTNld0lDTUZnd1ZnWUlLd1lCQlFVSEFnSXdTaDVJQURNQU13QmxBREFBTVFBNUFESUFNUUF0QURRQVpBQTJBRFFBTFFBMEFHWUFPQUJqQUMwQVlRQXdBRFVBTlFBdEFEVUFZZ0JrQUdFQVpnQm1BR1FBTlFCbEFETUFNd0JrTUF3R0Npc0dBUVFCZ2pkN0F3SXdEQVlLS3dZQkJBR0NOM3NFQWpBZkJnTlZIU01FR0RBV2dCUklvNjFnZFdwdjdHRHphVlhSQUxFeVZfeHM1REFkQmdOVkhTVUVGakFVQmdnckJnRUZCUWNEQVFZSUt3WUJCUVVIQXdJd0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dJQkFBcU5LOUVqemRuYjlMNFR5YWtDcEpCeVJZVlROXzZuQ0didFVkMkUyc0VManVKR1JHaVJtdWpwX2pxTnlJb2ZPX2doU2FQX3RxSC0zV1JUUlVibnQ1eE04YUJZb1lKU09nS2dUc05yQjZjbHNwZGhDQ216aEp5NkVRdU9xZlVEbTNDN2hEcnUxX2JOM0R3WHQzVnBEcWZ1WXRNM01BYWJLZzBvQ1lWV2dGd25BS1ltWkxaTVdNUWg3a19oWnh5MWdPQ1FtRTlVMDh0Zl9wVTIxYUkwRWw2bjVBNXVHMkZUMHBsYWN3Y2hoZUZtWEF0b1BqVDduVTUzSFZtUmlzc3hVUl92UkNEal9aQ0ZvM0szblpOWENRT0tQQU1jOS1MQzBwcmI5U2xnNnNpS3RTSEIzaUdqTlFsVDktbmJTbkRnaWZJOHpDMWN2VDhDZGFOTE9tVXl3UklCNHd2Um4xejEyM051eWZKYUl6OTVpZ1c5UDE4OXZCVEpFWlJFRi1NZ0pFYm9XS2RsR05uNmJiQnR1MHdhcUFtVVU3V1ZMZVpLZHRVSTZFRUtGN3dSR1l1WV9CaFp4MWlweVhuQkhacHN1ZnVINEF3Z09PMjg5UUttcWc4UUF5N0hGRDljOEg4Zk5DdFI3c1RaNFlOUDJBaEVhRVMwcmtNU1FVQ05WRXo0MllFQmkyR2dyU3BuSTk0U1BkYjNKM1BrQ01aNE9nRlJqenRMTzducmdiUHRmbGhTT29fVk9FMF83WTc0a200M1dBTVFQS0wzLTQ0dlFyRVE2MUhkXzI0SWNGaF9DaE5YdlVEcXAzOUd6WWxPM0QwemxhdTRvemxsOEJlTFVackp3SFRRV1pTOFhSLUVpZkNsNE1XNVkzWTFTeE9Mckl4bnVrQ3pReEw3YUdtYyZzPUVOSVlZT2VSOXRRWGtZa2ljZF9CWDJFaDJnSllqNlh0bkJsNlYya2g3OWV2OGZPYVpIOEp5MU40V2ZTQXp2ZzVMU092NVVDSFJoQ2JFNm5IME9yQ3NTS0R1eEVySG1jZnY3SF95Zmt0LWFjZEVvUXd3dEdDd1BkLTg3LVlodDJOcTJSZWZQV2pOODJCemZYREJwRFdJM0w3TnE3OHhtUkIxUkFNTkZ0OVBFbHpHNGlveENKZFU1NU4wbk4wV3NwMUJLVFV3UDZFbnFsM3d1OWcydFBEbjd4Qmd4MVRLU0wzeTNRY3o2UjBBem5EcXY5Ylo4SnBCZjdtTFBiWjQxSmhwMHhWYjdDYTZ4X2JzNUdSajNlY2drU3hYY24zQWlHVFRKaXdqZGRDclphTlBvSEZHNzUwR3ZpUjFfUVQ5aVJNdndiajdkZ3kydFA4NUctQVpodTdzQSZoPUNLczhJVzItazJnd0I4V25SYUdnX3JobGVBTDVwYlBJalpSVDA1YWUwZzA=", "RequestMethod": "GET", "RequestHeaders": { "x-ms-client-request-id": [ - "61cb322d-426a-440e-8509-c83709a2c378" + "df482f8c-2bce-462a-a6e0-38e8820f3348" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Management.Batch.BatchManagementClient/3.6.4" + "OSVersion/Microsoft.Windows.10.0.26100", + "Microsoft.Azure.Management.Batch.BatchManagementClient/3.7.0" ] }, "RequestBody": "", @@ -1260,7 +1284,7 @@ "no-cache" ], "x-ms-request-id": [ - "2ff7c44c-b448-410e-962b-7d7e24afd46f" + "b2986c9c-5a7b-429d-854c-26951c49039c" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -1268,26 +1292,29 @@ "X-Content-Type-Options": [ "nosniff" ], + "x-ms-operation-identifier": [ + "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=ac839cc2-33ee-4879-a5b5-2895202ccb29/westus2/64755487-a654-433a-ad29-3f133193cdcf" + ], "x-ms-ratelimit-remaining-subscription-reads": [ - "1098" + "1099" ], "x-ms-ratelimit-remaining-subscription-global-reads": [ - "16498" + "16499" ], "x-ms-correlation-request-id": [ - "29c7091c-2719-4253-9d6a-9c2943bd3315" + "613f4d51-21d4-4e3c-aa59-ab4954e5a7f3" ], "x-ms-routing-request-id": [ - "EASTUS:20241113T213346Z:29c7091c-2719-4253-9d6a-9c2943bd3315" + "WESTUS2:20250911T201213Z:613f4d51-21d4-4e3c-aa59-ab4954e5a7f3" ], "X-Cache": [ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: B077573B703045FD98A2156D08E25935 Ref B: MNZ221060618023 Ref C: 2024-11-13T21:33:46Z" + "Ref A: 3180231D7A804BFBA535F58EC2FB5C0A Ref B: CO6AA3150217025 Ref C: 2025-09-11T20:12:13Z" ], "Date": [ - "Wed, 13 Nov 2024 21:33:46 GMT" + "Thu, 11 Sep 2025 20:12:13 GMT" ], "Expires": [ "-1" @@ -1300,21 +1327,21 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourcegroups/ps85?api-version=2016-09-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjFhYmQ2NzgtMThjNS00NjYwLTlmZGQtOGM1YmE2YjZmZTFmL3Jlc291cmNlZ3JvdXBzL3BzODU/YXBpLXZlcnNpb249MjAxNi0wOS0wMQ==", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourcegroups/ps3698?api-version=2016-09-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlZ3JvdXBzL3BzMzY5OD9hcGktdmVyc2lvbj0yMDE2LTA5LTAx", "RequestMethod": "DELETE", "RequestHeaders": { "x-ms-client-request-id": [ - "f0dd2602-885e-4a3a-99ae-6a6cf669bf39" + "decb7581-76f0-4942-8002-69b5904dc903" ], "Accept-Language": [ "en-US" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.102" + "OSVersion/Microsoft.Windows.10.0.26100", + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.109" ] }, "RequestBody": "", @@ -1326,7 +1353,7 @@ "no-cache" ], "Location": [ - "https://management.azure.com/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QUzg1LVdFU1RVUzIiLCJqb2JMb2NhdGlvbiI6Indlc3R1czIifQ?api-version=2016-09-01&t=638671304285107559&c=MIIHhzCCBm-gAwIBAgITHgVqhF9GOoUjuyqQWAAABWqEXzANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDYwHhcNMjQwOTIwMjMxMTQxWhcNMjUwMzE5MjMxMTQxWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKRtcYDBXS7zz5tRtvVyhrUAjudYhej1E2D3dp6XWuPdbVMbQZwMlye8vdT-kDhFD7T2mrdWqsoGnTGk0_xOHBfLGnW-0QRUqpeoTNIhu8vc2CfTUtm2t2s_-fzvFtRyhDA4mfCH1cz92EVj0vd3FD4ikW6bdOp1NkYFqUVBhKlbvJk6y-TbLFBLP5Zx4m0Ua-_P7aMzbgvOJgMOTC2jLs5w_lFDJWeP3IKUOiJmrfLpf4ey5Ov94oCE6YncDBSHJZKWcrSxDHgSz9AXrxarL4HLajGbF3MRvfkMN2gNXCoiJXBEqCLDnyQZ0BgXIvuK7vG8Rj0TyhJNj-QPr8taY6UCAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAyLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA2LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MB0GA1UdDgQWBBRKlJQpFyyZKSchkTlshetYOUX7xzAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBTxRmjG8cPwKy19i2rhsvm-NfzRQTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAG0WbzLPsmSSMI7aTe2npixmkdCmwcdZHGd43tUnB8JKrLNJEFcBsQmbcIH0adpnQNrDgRkNBBOTZ4s1LIBlRQapZpPsRItAMUguVpGVRH08T0i43w9xrp_clNbAJrrfRbmYroF0WJKMJ0nwW2rPjxdevSRygGK_nEfywwFi-p1RhHnkiEGL4GnP7PpQcRvAYMdH9LO5MRY7iLbBmosKatS_eWtSJD1CvzglNwy_vQzx81Vnk0CgndqXcVq-loGu7R4U7mkQ2NNqLbp447STxkpP-6Mdyv8J4bdnf1s3vFBNpgvJWKogWcNLlo8jnkbEf6RPNGe1W5lma7JwMKAcPzY&s=Lz2G_Bmqg9bzmq0KrUnXdJ4EXxNqxdn3ZKJkPTBhl3YPwB4FIKIOqIbtgV9QolQEQtw5bFo7JfbiQ3ggVOz_mJ5lF8kTEgwIbN8t76TGtAoMavNfid1QXwlmsoVT90liqjb7T5G3UmOK0__4E_riUvLMVm9x11VReel7H_TEkVKxFtXr1-3Vo1L-rlJCHkIRXRJRje3K8Eb1A7z1crDhDdwsUMzBvLT12poCaSjxtblqsMO6j6DhHDJ7Ix43DHWwmHvsUWuM-qYZ734xuUs6q4SfPX2qXEozMNI6XFj574YEZXPN2ZmXCPBzccPun3nQHeP3w-0u-JRTozyRdc5kxQ&h=yYONJofhrLxysBseyfiKaOSmIpMVSU3m_T7M0nKHm-g" + "https://management.azure.com/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QUzM2OTgtV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2016-09-01&t=638932183344055381&c=MIIIpTCCBo2gAwIBAgITFgGsmnj73LBE7PaBtQABAayaeDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDMwHhcNMjUwNzE4MTIwNDI4WhcNMjYwMTE0MTIwNDI4WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKYwXiklImL5-WfPWj2FX3_Y-JxCd3XXEOuNXx5ggHubZZamujLTqEBSFsFYiH_9NCaqKTiATXu6fBpzW3ghgYhwr0PL071fQT15KnnNUFjd5hFXB7SYti9IwWu1lxSAz-De7HivujKdlsgcmfoV6upRQ0eva9e74EwLV9pCn4WQAhs-6T8p0CytQsi81qHMWybAbNvfom0ox78IEWdS_6g_d4Jl_I4ccYLMyRTOV2NioM96cRECWCZhbpLl1zwoYGSbU5H0MZaiCBjPlhXN40BqagpamZfP98sPYSBfreh6-iMGU5tNTRkh8RiJqzjhzIUpEv3PqLtWTyPUB8JS7aUCAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9BTTNQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAzKDEpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MB0GA1UdDgQWBBTxzPCXgPzIUiTz94us0y0CCMf8BzAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBRIo61gdWpv7GDzaVXRALEyV_xs5DAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggIBAAqNK9Ejzdnb9L4TyakCpJByRYVTN_6nCGbtUd2E2sELjuJGRGiRmujp_jqNyIofO_ghSaP_tqH-3WRTRUbnt5xM8aBYoYJSOgKgTsNrB6clspdhCCmzhJy6EQuOqfUDm3C7hDru1_bN3DwXt3VpDqfuYtM3MAabKg0oCYVWgFwnAKYmZLZMWMQh7k_hZxy1gOCQmE9U08tf_pU21aI0El6n5A5uG2FT0placwchheFmXAtoPjT7nU53HVmRissxUR_vRCDj_ZCFo3K3nZNXCQOKPAMc9-LC0prb9Slg6siKtSHB3iGjNQlT9-nbSnDgifI8zC1cvT8CdaNLOmUywRIB4wvRn1z123NuyfJaIz95igW9P189vBTJEZREF-MgJEboWKdlGNn6bbBtu0waqAmUU7WVLeZKdtUI6EEKF7wRGYuY_BhZx1ipyXnBHZpsufuH4AwgOO289QKmqg8QAy7HFD9c8H8fNCtR7sTZ4YNP2AhEaES0rkMSQUCNVEz42YEBi2GgrSpnI94SPdb3J3PkCMZ4OgFRjztLO7nrgbPtflhSOo_VOE0_7Y74km43WAMQPKL3-44vQrEQ61Hd_24IcFh_ChNXvUDqp39GzYlO3D0zlau4ozll8BeLUZrJwHTQWZS8XR-EifCl4MW5Y3Y1SxOLrIxnukCzQxL7aGmc&s=oBeP9dw2YFSo2KLmM8vAVmmgaMFzgYYpfAax1Eq8cqoXaWge6SsFVgY-0-s_cY8ro2LO91pt4BvXHVPX_llRdCBoby05agABQvsS6wCqmRS4n4DPUUsJj8s-OZ6ox54eVDjk43tUsil_hUxZiZzwzuy29X6Qar5kpq6PBiUJbe0Xoxg4Zd7UYvTTbEMXYXiwRqzhvixg6xOrfr37V9F6lrtp-8ECYW8K0r3XZTZoeRENM9BcqC49YpILwn0H76AFCYHQGAQs-8EnxM_V51mRas5aJG4CrQLoQ4lAK21njcDFQvZjQCKnR67jPFmfLMAl7AFmqIcLpGA_SsihtJz19A&h=OGBaqLTK1H2PKJDJzFJPCQ3ICCoGk_C47BcDu0f9zJ0" ], "Retry-After": [ "15" @@ -1338,13 +1365,13 @@ "11999" ], "x-ms-request-id": [ - "7c02c8e2-fa41-4123-aa7e-bf3e49456883" + "ddd2f0a3-5792-487b-963a-2d4e8f1f6b62" ], "x-ms-correlation-request-id": [ - "7c02c8e2-fa41-4123-aa7e-bf3e49456883" + "ddd2f0a3-5792-487b-963a-2d4e8f1f6b62" ], "x-ms-routing-request-id": [ - "EASTUS:20241113T213348Z:7c02c8e2-fa41-4123-aa7e-bf3e49456883" + "WESTUS2:20250911T201214Z:ddd2f0a3-5792-487b-963a-2d4e8f1f6b62" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -1356,10 +1383,10 @@ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: 543129D8B4A94EC2BB527C052EF4FF86 Ref B: MNZ221060618033 Ref C: 2024-11-13T21:33:47Z" + "Ref A: DD5911B48D91499585DC0D15F2B384FB Ref B: CO6AA3150219035 Ref C: 2025-09-11T20:12:14Z" ], "Date": [ - "Wed, 13 Nov 2024 21:33:48 GMT" + "Thu, 11 Sep 2025 20:12:14 GMT" ], "Expires": [ "-1" @@ -1372,15 +1399,15 @@ "StatusCode": 202 }, { - "RequestUri": "/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QUzg1LVdFU1RVUzIiLCJqb2JMb2NhdGlvbiI6Indlc3R1czIifQ?api-version=2016-09-01&t=638671304285107559&c=MIIHhzCCBm-gAwIBAgITHgVqhF9GOoUjuyqQWAAABWqEXzANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDYwHhcNMjQwOTIwMjMxMTQxWhcNMjUwMzE5MjMxMTQxWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKRtcYDBXS7zz5tRtvVyhrUAjudYhej1E2D3dp6XWuPdbVMbQZwMlye8vdT-kDhFD7T2mrdWqsoGnTGk0_xOHBfLGnW-0QRUqpeoTNIhu8vc2CfTUtm2t2s_-fzvFtRyhDA4mfCH1cz92EVj0vd3FD4ikW6bdOp1NkYFqUVBhKlbvJk6y-TbLFBLP5Zx4m0Ua-_P7aMzbgvOJgMOTC2jLs5w_lFDJWeP3IKUOiJmrfLpf4ey5Ov94oCE6YncDBSHJZKWcrSxDHgSz9AXrxarL4HLajGbF3MRvfkMN2gNXCoiJXBEqCLDnyQZ0BgXIvuK7vG8Rj0TyhJNj-QPr8taY6UCAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAyLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA2LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MB0GA1UdDgQWBBRKlJQpFyyZKSchkTlshetYOUX7xzAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBTxRmjG8cPwKy19i2rhsvm-NfzRQTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAG0WbzLPsmSSMI7aTe2npixmkdCmwcdZHGd43tUnB8JKrLNJEFcBsQmbcIH0adpnQNrDgRkNBBOTZ4s1LIBlRQapZpPsRItAMUguVpGVRH08T0i43w9xrp_clNbAJrrfRbmYroF0WJKMJ0nwW2rPjxdevSRygGK_nEfywwFi-p1RhHnkiEGL4GnP7PpQcRvAYMdH9LO5MRY7iLbBmosKatS_eWtSJD1CvzglNwy_vQzx81Vnk0CgndqXcVq-loGu7R4U7mkQ2NNqLbp447STxkpP-6Mdyv8J4bdnf1s3vFBNpgvJWKogWcNLlo8jnkbEf6RPNGe1W5lma7JwMKAcPzY&s=Lz2G_Bmqg9bzmq0KrUnXdJ4EXxNqxdn3ZKJkPTBhl3YPwB4FIKIOqIbtgV9QolQEQtw5bFo7JfbiQ3ggVOz_mJ5lF8kTEgwIbN8t76TGtAoMavNfid1QXwlmsoVT90liqjb7T5G3UmOK0__4E_riUvLMVm9x11VReel7H_TEkVKxFtXr1-3Vo1L-rlJCHkIRXRJRje3K8Eb1A7z1crDhDdwsUMzBvLT12poCaSjxtblqsMO6j6DhHDJ7Ix43DHWwmHvsUWuM-qYZ734xuUs6q4SfPX2qXEozMNI6XFj574YEZXPN2ZmXCPBzccPun3nQHeP3w-0u-JRTozyRdc5kxQ&h=yYONJofhrLxysBseyfiKaOSmIpMVSU3m_T7M0nKHm-g", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjFhYmQ2NzgtMThjNS00NjYwLTlmZGQtOGM1YmE2YjZmZTFmL29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVXpnMUxWZEZVMVJWVXpJaUxDSnFiMkpNYjJOaGRHbHZiaUk2SW5kbGMzUjFjeklpZlE/YXBpLXZlcnNpb249MjAxNi0wOS0wMSZ0PTYzODY3MTMwNDI4NTEwNzU1OSZjPU1JSUhoekNDQm0tZ0F3SUJBZ0lUSGdWcWhGOUdPb1VqdXlxUVdBQUFCV3FFWHpBTkJna3Foa2lHOXcwQkFRc0ZBREJFTVJNd0VRWUtDWkltaVpQeUxHUUJHUllEUjBKTU1STXdFUVlLQ1pJbWlaUHlMR1FCR1JZRFFVMUZNUmd3RmdZRFZRUURFdzlCVFVVZ1NXNW1jbUVnUTBFZ01EWXdIaGNOTWpRd09USXdNak14TVRReFdoY05NalV3TXpFNU1qTXhNVFF4V2pCQU1UNHdQQVlEVlFRREV6VmhjM2x1WTI5d1pYSmhkR2x2Ym5OcFoyNXBibWRqWlhKMGFXWnBZMkYwWlM1dFlXNWhaMlZ0Wlc1MExtRjZkWEpsTG1OdmJUQ0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQUtSdGNZREJYUzd6ejV0UnR2VnloclVBanVkWWhlajFFMkQzZHA2WFd1UGRiVk1iUVp3TWx5ZTh2ZFQta0RoRkQ3VDJtcmRXcXNvR25UR2swX3hPSEJmTEduVy0wUVJVcXBlb1ROSWh1OHZjMkNmVFV0bTJ0MnNfLWZ6dkZ0UnloREE0bWZDSDFjejkyRVZqMHZkM0ZENGlrVzZiZE9wMU5rWUZxVVZCaEtsYnZKazZ5LVRiTEZCTFA1Wng0bTBVYS1fUDdhTXpiZ3ZPSmdNT1RDMmpMczV3X2xGREpXZVAzSUtVT2lKbXJmTHBmNGV5NU92OTRvQ0U2WW5jREJTSEpaS1djclN4REhnU3o5QVhyeGFyTDRITGFqR2JGM01SdmZrTU4yZ05YQ29pSlhCRXFDTERueVFaMEJnWEl2dUs3dkc4UmowVHloSk5qLVFQcjh0YVk2VUNBd0VBQWFPQ0JIUXdnZ1J3TUNjR0NTc0dBUVFCZ2pjVkNnUWFNQmd3Q2dZSUt3WUJCUVVIQXdFd0NnWUlLd1lCQlFVSEF3SXdQUVlKS3dZQkJBR0NOeFVIQkRBd0xnWW1Ld1lCQkFHQ054VUlocERqRFlUVnRIaUU4WXMtaFp2ZEZzNmRFb0ZnaGZtUlM0V3NtVFFDQVdRQ0FRY3dnZ0hMQmdnckJnRUZCUWNCQVFTQ0FiMHdnZ0c1TUdNR0NDc0dBUVVGQnpBQ2hsZG9kSFJ3T2k4dlkzSnNMbTFwWTNKdmMyOW1kQzVqYjIwdmNHdHBhVzVtY21FdlEyVnlkSE12UWt3eVVFdEpTVTVVUTBFd01pNUJUVVV1UjBKTVgwRk5SU1V5TUVsdVpuSmhKVEl3UTBFbE1qQXdOaTVqY25Rd1V3WUlLd1lCQlFVSE1BS0dSMmgwZEhBNkx5OWpjbXd4TG1GdFpTNW5ZbXd2WVdsaEwwSk1NbEJMU1VsT1ZFTkJNREl1UVUxRkxrZENURjlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURZdVkzSjBNRk1HQ0NzR0FRVUZCekFDaGtkb2RIUndPaTh2WTNKc01pNWhiV1V1WjJKc0wyRnBZUzlDVERKUVMwbEpUbFJEUVRBeUxrRk5SUzVIUWt4ZlFVMUZKVEl3U1c1bWNtRWxNakJEUVNVeU1EQTJMbU55ZERCVEJnZ3JCZ0VGQlFjd0FvWkhhSFIwY0RvdkwyTnliRE11WVcxbExtZGliQzloYVdFdlFrd3lVRXRKU1U1VVEwRXdNaTVCVFVVdVIwSk1YMEZOUlNVeU1FbHVabkpoSlRJd1EwRWxNakF3Tmk1amNuUXdVd1lJS3dZQkJRVUhNQUtHUjJoMGRIQTZMeTlqY213MExtRnRaUzVuWW13dllXbGhMMEpNTWxCTFNVbE9WRU5CTURJdVFVMUZMa2RDVEY5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01EWXVZM0owTUIwR0ExVWREZ1FXQkJSS2xKUXBGeXlaS1NjaGtUbHNoZXRZT1VYN3h6QU9CZ05WSFE4QkFmOEVCQU1DQmFBd2dnRW1CZ05WSFI4RWdnRWRNSUlCR1RDQ0FSV2dnZ0VSb0lJQkRZWV9hSFIwY0RvdkwyTnliQzV0YVdOeWIzTnZablF1WTI5dEwzQnJhV2x1Wm5KaEwwTlNUQzlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURZdVkzSnNoakZvZEhSd09pOHZZM0pzTVM1aGJXVXVaMkpzTDJOeWJDOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFl1WTNKc2hqRm9kSFJ3T2k4dlkzSnNNaTVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01EWXVZM0pzaGpGb2RIUndPaTh2WTNKc015NWhiV1V1WjJKc0wyTnliQzlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURZdVkzSnNoakZvZEhSd09pOHZZM0pzTkM1aGJXVXVaMkpzTDJOeWJDOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFl1WTNKc01JR2RCZ05WSFNBRWdaVXdnWkl3REFZS0t3WUJCQUdDTjNzQkFUQm1CZ29yQmdFRUFZSTNld0lDTUZnd1ZnWUlLd1lCQlFVSEFnSXdTaDVJQURNQU13QmxBREFBTVFBNUFESUFNUUF0QURRQVpBQTJBRFFBTFFBMEFHWUFPQUJqQUMwQVlRQXdBRFVBTlFBdEFEVUFZZ0JrQUdFQVpnQm1BR1FBTlFCbEFETUFNd0JrTUF3R0Npc0dBUVFCZ2pkN0F3RXdEQVlLS3dZQkJBR0NOM3NFQWpBZkJnTlZIU01FR0RBV2dCVHhSbWpHOGNQd0t5MTlpMnJoc3ZtLU5melJRVEFkQmdOVkhTVUVGakFVQmdnckJnRUZCUWNEQVFZSUt3WUJCUVVIQXdJd0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dFQkFHMFdiekxQc21TU01JN2FUZTJucGl4bWtkQ213Y2RaSEdkNDN0VW5COEpLckxOSkVGY0JzUW1iY0lIMGFkcG5RTnJEZ1JrTkJCT1RaNHMxTElCbFJRYXBacFBzUkl0QU1VZ3VWcEdWUkgwOFQwaTQzdzl4cnBfY2xOYkFKcnJmUmJtWXJvRjBXSktNSjBud1cyclBqeGRldlNSeWdHS19uRWZ5d3dGaS1wMVJoSG5raUVHTDRHblA3UHBRY1J2QVlNZEg5TE81TVJZN2lMYkJtb3NLYXRTX2VXdFNKRDFDdnpnbE53eV92UXp4ODFWbmswQ2duZHFYY1ZxLWxvR3U3UjRVN21rUTJOTnFMYnA0NDdTVHhrcFAtNk1keXY4SjRiZG5mMXMzdkZCTnBndkpXS29nV2NOTGxvOGpua2JFZjZSUE5HZTFXNWxtYTdKd01LQWNQelkmcz1MejJHX0JtcWc5YnptcTBLclVuWGRKNEVYeE5xeGRuM1pLSmtQVEJobDNZUHdCNEZJS0lPcUlidGdWOVFvbFFFUXR3NWJGbzdKZmJpUTNnZ1ZPel9tSjVsRjhrVEVnd0liTjh0NzZUR3RBb01hdk5maWQxUVh3bG1zb1ZUOTBsaXFqYjdUNUczVW1PSzBfXzRFX3JpVXZMTVZtOXgxMVZSZWVsN0hfVEVrVkt4RnRYcjEtM1ZvMUwtcmxKQ0hrSVJYUkpSamUzSzhFYjFBN3oxY3JEaERkd3NVTXpCdkxUMTJwb0NhU2p4dGJscXNNTzZqNkRoSERKN0l4NDNESFd3bUh2c1VXdU0tcVlaNzM0eHVVczZxNFNmUFgycVhFb3pNTkk2WEZqNTc0WUVaWFBOMlptWENQQnpjY1B1bjNuUUhlUDN3LTB1LUpSVG96eVJkYzVreFEmaD15WU9OSm9maHJMeHlzQnNleWZpS2FPU21JcE1WU1UzbV9UN00wbktIbS1n", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QUzM2OTgtV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2016-09-01&t=638932183344055381&c=MIIIpTCCBo2gAwIBAgITFgGsmnj73LBE7PaBtQABAayaeDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDMwHhcNMjUwNzE4MTIwNDI4WhcNMjYwMTE0MTIwNDI4WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKYwXiklImL5-WfPWj2FX3_Y-JxCd3XXEOuNXx5ggHubZZamujLTqEBSFsFYiH_9NCaqKTiATXu6fBpzW3ghgYhwr0PL071fQT15KnnNUFjd5hFXB7SYti9IwWu1lxSAz-De7HivujKdlsgcmfoV6upRQ0eva9e74EwLV9pCn4WQAhs-6T8p0CytQsi81qHMWybAbNvfom0ox78IEWdS_6g_d4Jl_I4ccYLMyRTOV2NioM96cRECWCZhbpLl1zwoYGSbU5H0MZaiCBjPlhXN40BqagpamZfP98sPYSBfreh6-iMGU5tNTRkh8RiJqzjhzIUpEv3PqLtWTyPUB8JS7aUCAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9BTTNQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAzKDEpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MB0GA1UdDgQWBBTxzPCXgPzIUiTz94us0y0CCMf8BzAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBRIo61gdWpv7GDzaVXRALEyV_xs5DAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggIBAAqNK9Ejzdnb9L4TyakCpJByRYVTN_6nCGbtUd2E2sELjuJGRGiRmujp_jqNyIofO_ghSaP_tqH-3WRTRUbnt5xM8aBYoYJSOgKgTsNrB6clspdhCCmzhJy6EQuOqfUDm3C7hDru1_bN3DwXt3VpDqfuYtM3MAabKg0oCYVWgFwnAKYmZLZMWMQh7k_hZxy1gOCQmE9U08tf_pU21aI0El6n5A5uG2FT0placwchheFmXAtoPjT7nU53HVmRissxUR_vRCDj_ZCFo3K3nZNXCQOKPAMc9-LC0prb9Slg6siKtSHB3iGjNQlT9-nbSnDgifI8zC1cvT8CdaNLOmUywRIB4wvRn1z123NuyfJaIz95igW9P189vBTJEZREF-MgJEboWKdlGNn6bbBtu0waqAmUU7WVLeZKdtUI6EEKF7wRGYuY_BhZx1ipyXnBHZpsufuH4AwgOO289QKmqg8QAy7HFD9c8H8fNCtR7sTZ4YNP2AhEaES0rkMSQUCNVEz42YEBi2GgrSpnI94SPdb3J3PkCMZ4OgFRjztLO7nrgbPtflhSOo_VOE0_7Y74km43WAMQPKL3-44vQrEQ61Hd_24IcFh_ChNXvUDqp39GzYlO3D0zlau4ozll8BeLUZrJwHTQWZS8XR-EifCl4MW5Y3Y1SxOLrIxnukCzQxL7aGmc&s=oBeP9dw2YFSo2KLmM8vAVmmgaMFzgYYpfAax1Eq8cqoXaWge6SsFVgY-0-s_cY8ro2LO91pt4BvXHVPX_llRdCBoby05agABQvsS6wCqmRS4n4DPUUsJj8s-OZ6ox54eVDjk43tUsil_hUxZiZzwzuy29X6Qar5kpq6PBiUJbe0Xoxg4Zd7UYvTTbEMXYXiwRqzhvixg6xOrfr37V9F6lrtp-8ECYW8K0r3XZTZoeRENM9BcqC49YpILwn0H76AFCYHQGAQs-8EnxM_V51mRas5aJG4CrQLoQ4lAK21njcDFQvZjQCKnR67jPFmfLMAl7AFmqIcLpGA_SsihtJz19A&h=OGBaqLTK1H2PKJDJzFJPCQ3ICCoGk_C47BcDu0f9zJ0", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVXpNMk9UZ3RWMFZUVkZWVE1pSXNJbXB2WWt4dlkyRjBhVzl1SWpvaWQyVnpkSFZ6TWlKOT9hcGktdmVyc2lvbj0yMDE2LTA5LTAxJnQ9NjM4OTMyMTgzMzQ0MDU1MzgxJmM9TUlJSXBUQ0NCbzJnQXdJQkFnSVRGZ0dzbW5qNzNMQkU3UGFCdFFBQkFheWFlREFOQmdrcWhraUc5dzBCQVFzRkFEQkVNUk13RVFZS0NaSW1pWlB5TEdRQkdSWURSMEpNTVJNd0VRWUtDWkltaVpQeUxHUUJHUllEUVUxRk1SZ3dGZ1lEVlFRREV3OUJUVVVnU1c1bWNtRWdRMEVnTURNd0hoY05NalV3TnpFNE1USXdOREk0V2hjTk1qWXdNVEUwTVRJd05ESTRXakJBTVQ0d1BBWURWUVFERXpWaGMzbHVZMjl3WlhKaGRHbHZibk5wWjI1cGJtZGpaWEowYVdacFkyRjBaUzV0WVc1aFoyVnRaVzUwTG1GNmRYSmxMbU52YlRDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBS1l3WGlrbEltTDUtV2ZQV2oyRlgzX1ktSnhDZDNYWEVPdU5YeDVnZ0h1YlpaYW11akxUcUVCU0ZzRllpSF85TkNhcUtUaUFUWHU2ZkJwelczZ2hnWWh3cjBQTDA3MWZRVDE1S25uTlVGamQ1aEZYQjdTWXRpOUl3V3UxbHhTQXotRGU3SGl2dWpLZGxzZ2NtZm9WNnVwUlEwZXZhOWU3NEV3TFY5cENuNFdRQWhzLTZUOHAwQ3l0UXNpODFxSE1XeWJBYk52Zm9tMG94NzhJRVdkU182Z19kNEpsX0k0Y2NZTE15UlRPVjJOaW9NOTZjUkVDV0NaaGJwTGwxendvWUdTYlU1SDBNWmFpQ0JqUGxoWE40MEJxYWdwYW1aZlA5OHNQWVNCZnJlaDYtaU1HVTV0TlRSa2g4UmlKcXpqaHpJVXBFdjNQcUx0V1R5UFVCOEpTN2FVQ0F3RUFBYU9DQkpJd2dnU09NQ2NHQ1NzR0FRUUJnamNWQ2dRYU1CZ3dDZ1lJS3dZQkJRVUhBd0V3Q2dZSUt3WUJCUVVIQXdJd1BRWUpLd1lCQkFHQ054VUhCREF3TGdZbUt3WUJCQUdDTnhVSWhwRGpEWVRWdEhpRThZcy1oWnZkRnM2ZEVvRmdoZm1SUzRXc21UUUNBV1FDQVFjd2dnSGFCZ2dyQmdFRkJRY0JBUVNDQWN3d2dnSElNR1lHQ0NzR0FRVUZCekFDaGxwb2RIUndPaTh2WTNKc0xtMXBZM0p2YzI5bWRDNWpiMjB2Y0d0cGFXNW1jbUV2UTJWeWRITXZRVTB6VUV0SlNVNVVRMEV3TVM1QlRVVXVSMEpNWDBGTlJTVXlNRWx1Wm5KaEpUSXdRMEVsTWpBd015Z3hLUzVqY25Rd1ZnWUlLd1lCQlFVSE1BS0dTbWgwZEhBNkx5OWpjbXd4TG1GdFpTNW5ZbXd2WVdsaEwwRk5NMUJMU1VsT1ZFTkJNREV1UVUxRkxrZENURjlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURNb01Ta3VZM0owTUZZR0NDc0dBUVVGQnpBQ2hrcG9kSFJ3T2k4dlkzSnNNaTVoYldVdVoySnNMMkZwWVM5QlRUTlFTMGxKVGxSRFFUQXhMa0ZOUlM1SFFreGZRVTFGSlRJd1NXNW1jbUVsTWpCRFFTVXlNREF6S0RFcExtTnlkREJXQmdnckJnRUZCUWN3QW9aS2FIUjBjRG92TDJOeWJETXVZVzFsTG1kaWJDOWhhV0V2UVUwelVFdEpTVTVVUTBFd01TNUJUVVV1UjBKTVgwRk5SU1V5TUVsdVpuSmhKVEl3UTBFbE1qQXdNeWd4S1M1amNuUXdWZ1lJS3dZQkJRVUhNQUtHU21oMGRIQTZMeTlqY213MExtRnRaUzVuWW13dllXbGhMMEZOTTFCTFNVbE9WRU5CTURFdVFVMUZMa2RDVEY5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKME1CMEdBMVVkRGdRV0JCVHh6UENYZ1B6SVVpVHo5NHVzMHkwQ0NNZjhCekFPQmdOVkhROEJBZjhFQkFNQ0JhQXdnZ0UxQmdOVkhSOEVnZ0VzTUlJQktEQ0NBU1NnZ2dFZ29JSUJISVpDYUhSMGNEb3ZMMk55YkM1dGFXTnliM052Wm5RdVkyOXRMM0JyYVdsdVpuSmhMME5TVEM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc2hqUm9kSFJ3T2k4dlkzSnNNUzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc2hqUm9kSFJ3T2k4dlkzSnNNaTVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc2hqUm9kSFJ3T2k4dlkzSnNNeTVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc2hqUm9kSFJ3T2k4dlkzSnNOQzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc01JR2RCZ05WSFNBRWdaVXdnWkl3REFZS0t3WUJCQUdDTjNzQkFUQm1CZ29yQmdFRUFZSTNld0lDTUZnd1ZnWUlLd1lCQlFVSEFnSXdTaDVJQURNQU13QmxBREFBTVFBNUFESUFNUUF0QURRQVpBQTJBRFFBTFFBMEFHWUFPQUJqQUMwQVlRQXdBRFVBTlFBdEFEVUFZZ0JrQUdFQVpnQm1BR1FBTlFCbEFETUFNd0JrTUF3R0Npc0dBUVFCZ2pkN0F3SXdEQVlLS3dZQkJBR0NOM3NFQWpBZkJnTlZIU01FR0RBV2dCUklvNjFnZFdwdjdHRHphVlhSQUxFeVZfeHM1REFkQmdOVkhTVUVGakFVQmdnckJnRUZCUWNEQVFZSUt3WUJCUVVIQXdJd0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dJQkFBcU5LOUVqemRuYjlMNFR5YWtDcEpCeVJZVlROXzZuQ0didFVkMkUyc0VManVKR1JHaVJtdWpwX2pxTnlJb2ZPX2doU2FQX3RxSC0zV1JUUlVibnQ1eE04YUJZb1lKU09nS2dUc05yQjZjbHNwZGhDQ216aEp5NkVRdU9xZlVEbTNDN2hEcnUxX2JOM0R3WHQzVnBEcWZ1WXRNM01BYWJLZzBvQ1lWV2dGd25BS1ltWkxaTVdNUWg3a19oWnh5MWdPQ1FtRTlVMDh0Zl9wVTIxYUkwRWw2bjVBNXVHMkZUMHBsYWN3Y2hoZUZtWEF0b1BqVDduVTUzSFZtUmlzc3hVUl92UkNEal9aQ0ZvM0szblpOWENRT0tQQU1jOS1MQzBwcmI5U2xnNnNpS3RTSEIzaUdqTlFsVDktbmJTbkRnaWZJOHpDMWN2VDhDZGFOTE9tVXl3UklCNHd2Um4xejEyM051eWZKYUl6OTVpZ1c5UDE4OXZCVEpFWlJFRi1NZ0pFYm9XS2RsR05uNmJiQnR1MHdhcUFtVVU3V1ZMZVpLZHRVSTZFRUtGN3dSR1l1WV9CaFp4MWlweVhuQkhacHN1ZnVINEF3Z09PMjg5UUttcWc4UUF5N0hGRDljOEg4Zk5DdFI3c1RaNFlOUDJBaEVhRVMwcmtNU1FVQ05WRXo0MllFQmkyR2dyU3BuSTk0U1BkYjNKM1BrQ01aNE9nRlJqenRMTzducmdiUHRmbGhTT29fVk9FMF83WTc0a200M1dBTVFQS0wzLTQ0dlFyRVE2MUhkXzI0SWNGaF9DaE5YdlVEcXAzOUd6WWxPM0QwemxhdTRvemxsOEJlTFVackp3SFRRV1pTOFhSLUVpZkNsNE1XNVkzWTFTeE9Mckl4bnVrQ3pReEw3YUdtYyZzPW9CZVA5ZHcyWUZTbzJLTG1NOHZBVm1tZ2FNRnpnWVlwZkFheDFFcThjcW9YYVdnZTZTc0ZWZ1ktMC1zX2NZOHJvMkxPOTFwdDRCdlhIVlBYX2xsUmRDQm9ieTA1YWdBQlF2c1M2d0NxbVJTNG40RFBVVXNKajhzLU9aNm94NTRlVkRqazQzdFVzaWxfaFV4Wmlaend6dXkyOVg2UWFyNWtwcTZQQmlVSmJlMFhveGc0WmQ3VVl2VFRiRU1YWVhpd1Jxemh2aXhnNnhPcmZyMzdWOUY2bHJ0cC04RUNZVzhLMHIzWFpUWm9lUkVOTTlCY3FDNDlZcElMd24wSDc2QUZDWUhRR0FRcy04RW54TV9WNTFtUmFzNWFKRzRDclFMb1E0bEFLMjFuamNERlF2WmpRQ0tuUjY3alBGbWZMTUFsN0FGbXFJY0xwR0FfU3NpaHRKejE5QSZoPU9HQmFxTFRLMUgyUEtKREp6RkpQQ1EzSUNDb0drX0M0N0JjRHUwZjl6SjA=", "RequestMethod": "GET", "RequestHeaders": { "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.102" + "OSVersion/Microsoft.Windows.10.0.26100", + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.109" ] }, "RequestBody": "", @@ -1398,13 +1425,13 @@ "16499" ], "x-ms-request-id": [ - "5c60dcd4-fdf3-44fa-9866-b8a5555894a9" + "34476380-c128-40f2-bd25-c656be9d4b39" ], "x-ms-correlation-request-id": [ - "5c60dcd4-fdf3-44fa-9866-b8a5555894a9" + "34476380-c128-40f2-bd25-c656be9d4b39" ], "x-ms-routing-request-id": [ - "EASTUS:20241113T213403Z:5c60dcd4-fdf3-44fa-9866-b8a5555894a9" + "WESTUS2:20250911T201229Z:34476380-c128-40f2-bd25-c656be9d4b39" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -1416,10 +1443,10 @@ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: 19416FBA8C44480CB04350195F67D7A4 Ref B: MNZ221060618033 Ref C: 2024-11-13T21:34:03Z" + "Ref A: E74D46DA57D745978FFFD400C177BABC Ref B: CO6AA3150219035 Ref C: 2025-09-11T20:12:29Z" ], "Date": [ - "Wed, 13 Nov 2024 21:34:03 GMT" + "Thu, 11 Sep 2025 20:12:29 GMT" ], "Expires": [ "-1" @@ -1432,15 +1459,15 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QUzg1LVdFU1RVUzIiLCJqb2JMb2NhdGlvbiI6Indlc3R1czIifQ?api-version=2016-09-01&t=638671304285107559&c=MIIHhzCCBm-gAwIBAgITHgVqhF9GOoUjuyqQWAAABWqEXzANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDYwHhcNMjQwOTIwMjMxMTQxWhcNMjUwMzE5MjMxMTQxWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKRtcYDBXS7zz5tRtvVyhrUAjudYhej1E2D3dp6XWuPdbVMbQZwMlye8vdT-kDhFD7T2mrdWqsoGnTGk0_xOHBfLGnW-0QRUqpeoTNIhu8vc2CfTUtm2t2s_-fzvFtRyhDA4mfCH1cz92EVj0vd3FD4ikW6bdOp1NkYFqUVBhKlbvJk6y-TbLFBLP5Zx4m0Ua-_P7aMzbgvOJgMOTC2jLs5w_lFDJWeP3IKUOiJmrfLpf4ey5Ov94oCE6YncDBSHJZKWcrSxDHgSz9AXrxarL4HLajGbF3MRvfkMN2gNXCoiJXBEqCLDnyQZ0BgXIvuK7vG8Rj0TyhJNj-QPr8taY6UCAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAyLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA2LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MB0GA1UdDgQWBBRKlJQpFyyZKSchkTlshetYOUX7xzAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBTxRmjG8cPwKy19i2rhsvm-NfzRQTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAG0WbzLPsmSSMI7aTe2npixmkdCmwcdZHGd43tUnB8JKrLNJEFcBsQmbcIH0adpnQNrDgRkNBBOTZ4s1LIBlRQapZpPsRItAMUguVpGVRH08T0i43w9xrp_clNbAJrrfRbmYroF0WJKMJ0nwW2rPjxdevSRygGK_nEfywwFi-p1RhHnkiEGL4GnP7PpQcRvAYMdH9LO5MRY7iLbBmosKatS_eWtSJD1CvzglNwy_vQzx81Vnk0CgndqXcVq-loGu7R4U7mkQ2NNqLbp447STxkpP-6Mdyv8J4bdnf1s3vFBNpgvJWKogWcNLlo8jnkbEf6RPNGe1W5lma7JwMKAcPzY&s=Lz2G_Bmqg9bzmq0KrUnXdJ4EXxNqxdn3ZKJkPTBhl3YPwB4FIKIOqIbtgV9QolQEQtw5bFo7JfbiQ3ggVOz_mJ5lF8kTEgwIbN8t76TGtAoMavNfid1QXwlmsoVT90liqjb7T5G3UmOK0__4E_riUvLMVm9x11VReel7H_TEkVKxFtXr1-3Vo1L-rlJCHkIRXRJRje3K8Eb1A7z1crDhDdwsUMzBvLT12poCaSjxtblqsMO6j6DhHDJ7Ix43DHWwmHvsUWuM-qYZ734xuUs6q4SfPX2qXEozMNI6XFj574YEZXPN2ZmXCPBzccPun3nQHeP3w-0u-JRTozyRdc5kxQ&h=yYONJofhrLxysBseyfiKaOSmIpMVSU3m_T7M0nKHm-g", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjFhYmQ2NzgtMThjNS00NjYwLTlmZGQtOGM1YmE2YjZmZTFmL29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVXpnMUxWZEZVMVJWVXpJaUxDSnFiMkpNYjJOaGRHbHZiaUk2SW5kbGMzUjFjeklpZlE/YXBpLXZlcnNpb249MjAxNi0wOS0wMSZ0PTYzODY3MTMwNDI4NTEwNzU1OSZjPU1JSUhoekNDQm0tZ0F3SUJBZ0lUSGdWcWhGOUdPb1VqdXlxUVdBQUFCV3FFWHpBTkJna3Foa2lHOXcwQkFRc0ZBREJFTVJNd0VRWUtDWkltaVpQeUxHUUJHUllEUjBKTU1STXdFUVlLQ1pJbWlaUHlMR1FCR1JZRFFVMUZNUmd3RmdZRFZRUURFdzlCVFVVZ1NXNW1jbUVnUTBFZ01EWXdIaGNOTWpRd09USXdNak14TVRReFdoY05NalV3TXpFNU1qTXhNVFF4V2pCQU1UNHdQQVlEVlFRREV6VmhjM2x1WTI5d1pYSmhkR2x2Ym5OcFoyNXBibWRqWlhKMGFXWnBZMkYwWlM1dFlXNWhaMlZ0Wlc1MExtRjZkWEpsTG1OdmJUQ0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQUtSdGNZREJYUzd6ejV0UnR2VnloclVBanVkWWhlajFFMkQzZHA2WFd1UGRiVk1iUVp3TWx5ZTh2ZFQta0RoRkQ3VDJtcmRXcXNvR25UR2swX3hPSEJmTEduVy0wUVJVcXBlb1ROSWh1OHZjMkNmVFV0bTJ0MnNfLWZ6dkZ0UnloREE0bWZDSDFjejkyRVZqMHZkM0ZENGlrVzZiZE9wMU5rWUZxVVZCaEtsYnZKazZ5LVRiTEZCTFA1Wng0bTBVYS1fUDdhTXpiZ3ZPSmdNT1RDMmpMczV3X2xGREpXZVAzSUtVT2lKbXJmTHBmNGV5NU92OTRvQ0U2WW5jREJTSEpaS1djclN4REhnU3o5QVhyeGFyTDRITGFqR2JGM01SdmZrTU4yZ05YQ29pSlhCRXFDTERueVFaMEJnWEl2dUs3dkc4UmowVHloSk5qLVFQcjh0YVk2VUNBd0VBQWFPQ0JIUXdnZ1J3TUNjR0NTc0dBUVFCZ2pjVkNnUWFNQmd3Q2dZSUt3WUJCUVVIQXdFd0NnWUlLd1lCQlFVSEF3SXdQUVlKS3dZQkJBR0NOeFVIQkRBd0xnWW1Ld1lCQkFHQ054VUlocERqRFlUVnRIaUU4WXMtaFp2ZEZzNmRFb0ZnaGZtUlM0V3NtVFFDQVdRQ0FRY3dnZ0hMQmdnckJnRUZCUWNCQVFTQ0FiMHdnZ0c1TUdNR0NDc0dBUVVGQnpBQ2hsZG9kSFJ3T2k4dlkzSnNMbTFwWTNKdmMyOW1kQzVqYjIwdmNHdHBhVzVtY21FdlEyVnlkSE12UWt3eVVFdEpTVTVVUTBFd01pNUJUVVV1UjBKTVgwRk5SU1V5TUVsdVpuSmhKVEl3UTBFbE1qQXdOaTVqY25Rd1V3WUlLd1lCQlFVSE1BS0dSMmgwZEhBNkx5OWpjbXd4TG1GdFpTNW5ZbXd2WVdsaEwwSk1NbEJMU1VsT1ZFTkJNREl1UVUxRkxrZENURjlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURZdVkzSjBNRk1HQ0NzR0FRVUZCekFDaGtkb2RIUndPaTh2WTNKc01pNWhiV1V1WjJKc0wyRnBZUzlDVERKUVMwbEpUbFJEUVRBeUxrRk5SUzVIUWt4ZlFVMUZKVEl3U1c1bWNtRWxNakJEUVNVeU1EQTJMbU55ZERCVEJnZ3JCZ0VGQlFjd0FvWkhhSFIwY0RvdkwyTnliRE11WVcxbExtZGliQzloYVdFdlFrd3lVRXRKU1U1VVEwRXdNaTVCVFVVdVIwSk1YMEZOUlNVeU1FbHVabkpoSlRJd1EwRWxNakF3Tmk1amNuUXdVd1lJS3dZQkJRVUhNQUtHUjJoMGRIQTZMeTlqY213MExtRnRaUzVuWW13dllXbGhMMEpNTWxCTFNVbE9WRU5CTURJdVFVMUZMa2RDVEY5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01EWXVZM0owTUIwR0ExVWREZ1FXQkJSS2xKUXBGeXlaS1NjaGtUbHNoZXRZT1VYN3h6QU9CZ05WSFE4QkFmOEVCQU1DQmFBd2dnRW1CZ05WSFI4RWdnRWRNSUlCR1RDQ0FSV2dnZ0VSb0lJQkRZWV9hSFIwY0RvdkwyTnliQzV0YVdOeWIzTnZablF1WTI5dEwzQnJhV2x1Wm5KaEwwTlNUQzlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURZdVkzSnNoakZvZEhSd09pOHZZM0pzTVM1aGJXVXVaMkpzTDJOeWJDOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFl1WTNKc2hqRm9kSFJ3T2k4dlkzSnNNaTVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01EWXVZM0pzaGpGb2RIUndPaTh2WTNKc015NWhiV1V1WjJKc0wyTnliQzlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURZdVkzSnNoakZvZEhSd09pOHZZM0pzTkM1aGJXVXVaMkpzTDJOeWJDOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFl1WTNKc01JR2RCZ05WSFNBRWdaVXdnWkl3REFZS0t3WUJCQUdDTjNzQkFUQm1CZ29yQmdFRUFZSTNld0lDTUZnd1ZnWUlLd1lCQlFVSEFnSXdTaDVJQURNQU13QmxBREFBTVFBNUFESUFNUUF0QURRQVpBQTJBRFFBTFFBMEFHWUFPQUJqQUMwQVlRQXdBRFVBTlFBdEFEVUFZZ0JrQUdFQVpnQm1BR1FBTlFCbEFETUFNd0JrTUF3R0Npc0dBUVFCZ2pkN0F3RXdEQVlLS3dZQkJBR0NOM3NFQWpBZkJnTlZIU01FR0RBV2dCVHhSbWpHOGNQd0t5MTlpMnJoc3ZtLU5melJRVEFkQmdOVkhTVUVGakFVQmdnckJnRUZCUWNEQVFZSUt3WUJCUVVIQXdJd0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dFQkFHMFdiekxQc21TU01JN2FUZTJucGl4bWtkQ213Y2RaSEdkNDN0VW5COEpLckxOSkVGY0JzUW1iY0lIMGFkcG5RTnJEZ1JrTkJCT1RaNHMxTElCbFJRYXBacFBzUkl0QU1VZ3VWcEdWUkgwOFQwaTQzdzl4cnBfY2xOYkFKcnJmUmJtWXJvRjBXSktNSjBud1cyclBqeGRldlNSeWdHS19uRWZ5d3dGaS1wMVJoSG5raUVHTDRHblA3UHBRY1J2QVlNZEg5TE81TVJZN2lMYkJtb3NLYXRTX2VXdFNKRDFDdnpnbE53eV92UXp4ODFWbmswQ2duZHFYY1ZxLWxvR3U3UjRVN21rUTJOTnFMYnA0NDdTVHhrcFAtNk1keXY4SjRiZG5mMXMzdkZCTnBndkpXS29nV2NOTGxvOGpua2JFZjZSUE5HZTFXNWxtYTdKd01LQWNQelkmcz1MejJHX0JtcWc5YnptcTBLclVuWGRKNEVYeE5xeGRuM1pLSmtQVEJobDNZUHdCNEZJS0lPcUlidGdWOVFvbFFFUXR3NWJGbzdKZmJpUTNnZ1ZPel9tSjVsRjhrVEVnd0liTjh0NzZUR3RBb01hdk5maWQxUVh3bG1zb1ZUOTBsaXFqYjdUNUczVW1PSzBfXzRFX3JpVXZMTVZtOXgxMVZSZWVsN0hfVEVrVkt4RnRYcjEtM1ZvMUwtcmxKQ0hrSVJYUkpSamUzSzhFYjFBN3oxY3JEaERkd3NVTXpCdkxUMTJwb0NhU2p4dGJscXNNTzZqNkRoSERKN0l4NDNESFd3bUh2c1VXdU0tcVlaNzM0eHVVczZxNFNmUFgycVhFb3pNTkk2WEZqNTc0WUVaWFBOMlptWENQQnpjY1B1bjNuUUhlUDN3LTB1LUpSVG96eVJkYzVreFEmaD15WU9OSm9maHJMeHlzQnNleWZpS2FPU21JcE1WU1UzbV9UN00wbktIbS1n", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QUzM2OTgtV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2016-09-01&t=638932183344055381&c=MIIIpTCCBo2gAwIBAgITFgGsmnj73LBE7PaBtQABAayaeDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDMwHhcNMjUwNzE4MTIwNDI4WhcNMjYwMTE0MTIwNDI4WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKYwXiklImL5-WfPWj2FX3_Y-JxCd3XXEOuNXx5ggHubZZamujLTqEBSFsFYiH_9NCaqKTiATXu6fBpzW3ghgYhwr0PL071fQT15KnnNUFjd5hFXB7SYti9IwWu1lxSAz-De7HivujKdlsgcmfoV6upRQ0eva9e74EwLV9pCn4WQAhs-6T8p0CytQsi81qHMWybAbNvfom0ox78IEWdS_6g_d4Jl_I4ccYLMyRTOV2NioM96cRECWCZhbpLl1zwoYGSbU5H0MZaiCBjPlhXN40BqagpamZfP98sPYSBfreh6-iMGU5tNTRkh8RiJqzjhzIUpEv3PqLtWTyPUB8JS7aUCAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9BTTNQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAzKDEpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MB0GA1UdDgQWBBTxzPCXgPzIUiTz94us0y0CCMf8BzAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBRIo61gdWpv7GDzaVXRALEyV_xs5DAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggIBAAqNK9Ejzdnb9L4TyakCpJByRYVTN_6nCGbtUd2E2sELjuJGRGiRmujp_jqNyIofO_ghSaP_tqH-3WRTRUbnt5xM8aBYoYJSOgKgTsNrB6clspdhCCmzhJy6EQuOqfUDm3C7hDru1_bN3DwXt3VpDqfuYtM3MAabKg0oCYVWgFwnAKYmZLZMWMQh7k_hZxy1gOCQmE9U08tf_pU21aI0El6n5A5uG2FT0placwchheFmXAtoPjT7nU53HVmRissxUR_vRCDj_ZCFo3K3nZNXCQOKPAMc9-LC0prb9Slg6siKtSHB3iGjNQlT9-nbSnDgifI8zC1cvT8CdaNLOmUywRIB4wvRn1z123NuyfJaIz95igW9P189vBTJEZREF-MgJEboWKdlGNn6bbBtu0waqAmUU7WVLeZKdtUI6EEKF7wRGYuY_BhZx1ipyXnBHZpsufuH4AwgOO289QKmqg8QAy7HFD9c8H8fNCtR7sTZ4YNP2AhEaES0rkMSQUCNVEz42YEBi2GgrSpnI94SPdb3J3PkCMZ4OgFRjztLO7nrgbPtflhSOo_VOE0_7Y74km43WAMQPKL3-44vQrEQ61Hd_24IcFh_ChNXvUDqp39GzYlO3D0zlau4ozll8BeLUZrJwHTQWZS8XR-EifCl4MW5Y3Y1SxOLrIxnukCzQxL7aGmc&s=oBeP9dw2YFSo2KLmM8vAVmmgaMFzgYYpfAax1Eq8cqoXaWge6SsFVgY-0-s_cY8ro2LO91pt4BvXHVPX_llRdCBoby05agABQvsS6wCqmRS4n4DPUUsJj8s-OZ6ox54eVDjk43tUsil_hUxZiZzwzuy29X6Qar5kpq6PBiUJbe0Xoxg4Zd7UYvTTbEMXYXiwRqzhvixg6xOrfr37V9F6lrtp-8ECYW8K0r3XZTZoeRENM9BcqC49YpILwn0H76AFCYHQGAQs-8EnxM_V51mRas5aJG4CrQLoQ4lAK21njcDFQvZjQCKnR67jPFmfLMAl7AFmqIcLpGA_SsihtJz19A&h=OGBaqLTK1H2PKJDJzFJPCQ3ICCoGk_C47BcDu0f9zJ0", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVXpNMk9UZ3RWMFZUVkZWVE1pSXNJbXB2WWt4dlkyRjBhVzl1SWpvaWQyVnpkSFZ6TWlKOT9hcGktdmVyc2lvbj0yMDE2LTA5LTAxJnQ9NjM4OTMyMTgzMzQ0MDU1MzgxJmM9TUlJSXBUQ0NCbzJnQXdJQkFnSVRGZ0dzbW5qNzNMQkU3UGFCdFFBQkFheWFlREFOQmdrcWhraUc5dzBCQVFzRkFEQkVNUk13RVFZS0NaSW1pWlB5TEdRQkdSWURSMEpNTVJNd0VRWUtDWkltaVpQeUxHUUJHUllEUVUxRk1SZ3dGZ1lEVlFRREV3OUJUVVVnU1c1bWNtRWdRMEVnTURNd0hoY05NalV3TnpFNE1USXdOREk0V2hjTk1qWXdNVEUwTVRJd05ESTRXakJBTVQ0d1BBWURWUVFERXpWaGMzbHVZMjl3WlhKaGRHbHZibk5wWjI1cGJtZGpaWEowYVdacFkyRjBaUzV0WVc1aFoyVnRaVzUwTG1GNmRYSmxMbU52YlRDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBS1l3WGlrbEltTDUtV2ZQV2oyRlgzX1ktSnhDZDNYWEVPdU5YeDVnZ0h1YlpaYW11akxUcUVCU0ZzRllpSF85TkNhcUtUaUFUWHU2ZkJwelczZ2hnWWh3cjBQTDA3MWZRVDE1S25uTlVGamQ1aEZYQjdTWXRpOUl3V3UxbHhTQXotRGU3SGl2dWpLZGxzZ2NtZm9WNnVwUlEwZXZhOWU3NEV3TFY5cENuNFdRQWhzLTZUOHAwQ3l0UXNpODFxSE1XeWJBYk52Zm9tMG94NzhJRVdkU182Z19kNEpsX0k0Y2NZTE15UlRPVjJOaW9NOTZjUkVDV0NaaGJwTGwxendvWUdTYlU1SDBNWmFpQ0JqUGxoWE40MEJxYWdwYW1aZlA5OHNQWVNCZnJlaDYtaU1HVTV0TlRSa2g4UmlKcXpqaHpJVXBFdjNQcUx0V1R5UFVCOEpTN2FVQ0F3RUFBYU9DQkpJd2dnU09NQ2NHQ1NzR0FRUUJnamNWQ2dRYU1CZ3dDZ1lJS3dZQkJRVUhBd0V3Q2dZSUt3WUJCUVVIQXdJd1BRWUpLd1lCQkFHQ054VUhCREF3TGdZbUt3WUJCQUdDTnhVSWhwRGpEWVRWdEhpRThZcy1oWnZkRnM2ZEVvRmdoZm1SUzRXc21UUUNBV1FDQVFjd2dnSGFCZ2dyQmdFRkJRY0JBUVNDQWN3d2dnSElNR1lHQ0NzR0FRVUZCekFDaGxwb2RIUndPaTh2WTNKc0xtMXBZM0p2YzI5bWRDNWpiMjB2Y0d0cGFXNW1jbUV2UTJWeWRITXZRVTB6VUV0SlNVNVVRMEV3TVM1QlRVVXVSMEpNWDBGTlJTVXlNRWx1Wm5KaEpUSXdRMEVsTWpBd015Z3hLUzVqY25Rd1ZnWUlLd1lCQlFVSE1BS0dTbWgwZEhBNkx5OWpjbXd4TG1GdFpTNW5ZbXd2WVdsaEwwRk5NMUJMU1VsT1ZFTkJNREV1UVUxRkxrZENURjlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURNb01Ta3VZM0owTUZZR0NDc0dBUVVGQnpBQ2hrcG9kSFJ3T2k4dlkzSnNNaTVoYldVdVoySnNMMkZwWVM5QlRUTlFTMGxKVGxSRFFUQXhMa0ZOUlM1SFFreGZRVTFGSlRJd1NXNW1jbUVsTWpCRFFTVXlNREF6S0RFcExtTnlkREJXQmdnckJnRUZCUWN3QW9aS2FIUjBjRG92TDJOeWJETXVZVzFsTG1kaWJDOWhhV0V2UVUwelVFdEpTVTVVUTBFd01TNUJUVVV1UjBKTVgwRk5SU1V5TUVsdVpuSmhKVEl3UTBFbE1qQXdNeWd4S1M1amNuUXdWZ1lJS3dZQkJRVUhNQUtHU21oMGRIQTZMeTlqY213MExtRnRaUzVuWW13dllXbGhMMEZOTTFCTFNVbE9WRU5CTURFdVFVMUZMa2RDVEY5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKME1CMEdBMVVkRGdRV0JCVHh6UENYZ1B6SVVpVHo5NHVzMHkwQ0NNZjhCekFPQmdOVkhROEJBZjhFQkFNQ0JhQXdnZ0UxQmdOVkhSOEVnZ0VzTUlJQktEQ0NBU1NnZ2dFZ29JSUJISVpDYUhSMGNEb3ZMMk55YkM1dGFXTnliM052Wm5RdVkyOXRMM0JyYVdsdVpuSmhMME5TVEM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc2hqUm9kSFJ3T2k4dlkzSnNNUzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc2hqUm9kSFJ3T2k4dlkzSnNNaTVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc2hqUm9kSFJ3T2k4dlkzSnNNeTVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc2hqUm9kSFJ3T2k4dlkzSnNOQzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc01JR2RCZ05WSFNBRWdaVXdnWkl3REFZS0t3WUJCQUdDTjNzQkFUQm1CZ29yQmdFRUFZSTNld0lDTUZnd1ZnWUlLd1lCQlFVSEFnSXdTaDVJQURNQU13QmxBREFBTVFBNUFESUFNUUF0QURRQVpBQTJBRFFBTFFBMEFHWUFPQUJqQUMwQVlRQXdBRFVBTlFBdEFEVUFZZ0JrQUdFQVpnQm1BR1FBTlFCbEFETUFNd0JrTUF3R0Npc0dBUVFCZ2pkN0F3SXdEQVlLS3dZQkJBR0NOM3NFQWpBZkJnTlZIU01FR0RBV2dCUklvNjFnZFdwdjdHRHphVlhSQUxFeVZfeHM1REFkQmdOVkhTVUVGakFVQmdnckJnRUZCUWNEQVFZSUt3WUJCUVVIQXdJd0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dJQkFBcU5LOUVqemRuYjlMNFR5YWtDcEpCeVJZVlROXzZuQ0didFVkMkUyc0VManVKR1JHaVJtdWpwX2pxTnlJb2ZPX2doU2FQX3RxSC0zV1JUUlVibnQ1eE04YUJZb1lKU09nS2dUc05yQjZjbHNwZGhDQ216aEp5NkVRdU9xZlVEbTNDN2hEcnUxX2JOM0R3WHQzVnBEcWZ1WXRNM01BYWJLZzBvQ1lWV2dGd25BS1ltWkxaTVdNUWg3a19oWnh5MWdPQ1FtRTlVMDh0Zl9wVTIxYUkwRWw2bjVBNXVHMkZUMHBsYWN3Y2hoZUZtWEF0b1BqVDduVTUzSFZtUmlzc3hVUl92UkNEal9aQ0ZvM0szblpOWENRT0tQQU1jOS1MQzBwcmI5U2xnNnNpS3RTSEIzaUdqTlFsVDktbmJTbkRnaWZJOHpDMWN2VDhDZGFOTE9tVXl3UklCNHd2Um4xejEyM051eWZKYUl6OTVpZ1c5UDE4OXZCVEpFWlJFRi1NZ0pFYm9XS2RsR05uNmJiQnR1MHdhcUFtVVU3V1ZMZVpLZHRVSTZFRUtGN3dSR1l1WV9CaFp4MWlweVhuQkhacHN1ZnVINEF3Z09PMjg5UUttcWc4UUF5N0hGRDljOEg4Zk5DdFI3c1RaNFlOUDJBaEVhRVMwcmtNU1FVQ05WRXo0MllFQmkyR2dyU3BuSTk0U1BkYjNKM1BrQ01aNE9nRlJqenRMTzducmdiUHRmbGhTT29fVk9FMF83WTc0a200M1dBTVFQS0wzLTQ0dlFyRVE2MUhkXzI0SWNGaF9DaE5YdlVEcXAzOUd6WWxPM0QwemxhdTRvemxsOEJlTFVackp3SFRRV1pTOFhSLUVpZkNsNE1XNVkzWTFTeE9Mckl4bnVrQ3pReEw3YUdtYyZzPW9CZVA5ZHcyWUZTbzJLTG1NOHZBVm1tZ2FNRnpnWVlwZkFheDFFcThjcW9YYVdnZTZTc0ZWZ1ktMC1zX2NZOHJvMkxPOTFwdDRCdlhIVlBYX2xsUmRDQm9ieTA1YWdBQlF2c1M2d0NxbVJTNG40RFBVVXNKajhzLU9aNm94NTRlVkRqazQzdFVzaWxfaFV4Wmlaend6dXkyOVg2UWFyNWtwcTZQQmlVSmJlMFhveGc0WmQ3VVl2VFRiRU1YWVhpd1Jxemh2aXhnNnhPcmZyMzdWOUY2bHJ0cC04RUNZVzhLMHIzWFpUWm9lUkVOTTlCY3FDNDlZcElMd24wSDc2QUZDWUhRR0FRcy04RW54TV9WNTFtUmFzNWFKRzRDclFMb1E0bEFLMjFuamNERlF2WmpRQ0tuUjY3alBGbWZMTUFsN0FGbXFJY0xwR0FfU3NpaHRKejE5QSZoPU9HQmFxTFRLMUgyUEtKREp6RkpQQ1EzSUNDb0drX0M0N0JjRHUwZjl6SjA=", "RequestMethod": "GET", "RequestHeaders": { "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.102" + "OSVersion/Microsoft.Windows.10.0.26100", + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.109" ] }, "RequestBody": "", @@ -1458,13 +1485,13 @@ "16499" ], "x-ms-request-id": [ - "167a0c7a-3622-43ac-b6ab-64afdd282f17" + "9f2acdcb-d778-4487-b3dc-80d3c8699d23" ], "x-ms-correlation-request-id": [ - "167a0c7a-3622-43ac-b6ab-64afdd282f17" + "9f2acdcb-d778-4487-b3dc-80d3c8699d23" ], "x-ms-routing-request-id": [ - "EASTUS:20241113T213404Z:167a0c7a-3622-43ac-b6ab-64afdd282f17" + "WESTUS2:20250911T201229Z:9f2acdcb-d778-4487-b3dc-80d3c8699d23" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -1476,10 +1503,10 @@ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: 7391B52902194546904F033FACF7E5CE Ref B: MNZ221060618033 Ref C: 2024-11-13T21:34:03Z" + "Ref A: 684B981E1BAE40DFB1DA9DE3A9790E46 Ref B: CO6AA3150219035 Ref C: 2025-09-11T20:12:29Z" ], "Date": [ - "Wed, 13 Nov 2024 21:34:03 GMT" + "Thu, 11 Sep 2025 20:12:29 GMT" ], "Expires": [ "-1" @@ -1494,14 +1521,14 @@ ], "Names": { "Test-BatchAccountEndToEnd": [ - "ps7905", - "ps85" + "ps8437", + "ps3698" ] }, "Variables": { - "SubscriptionId": "21abd678-18c5-4660-9fdd-8c5ba6b6fe1f", - "AZURE_BATCH_ACCOUNT": "dawatrouhobo", - "AZURE_BATCH_ENDPOINT": "https://dawatrouhobo.eastus2.batch.azure.com", - "AZURE_BATCH_RESOURCE_GROUP": "dawatrou-rg" + "SubscriptionId": "94bd7ded-68b4-4ffa-82a5-37ac72caa2ec", + "AZURE_BATCH_ACCOUNT": "dotnotsdkbatchaccount2", + "AZURE_BATCH_ENDPOINT": "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com", + "AZURE_BATCH_RESOURCE_GROUP": "automation" } } \ No newline at end of file diff --git a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchAccountTests/TestCreateNewBatchAccountWithNoPublicIp.json b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchAccountTests/TestCreateNewBatchAccountWithNoPublicIp.json index d2fc481036c1..a83c847bbedb 100644 --- a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchAccountTests/TestCreateNewBatchAccountWithNoPublicIp.json +++ b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchAccountTests/TestCreateNewBatchAccountWithNoPublicIp.json @@ -1,21 +1,21 @@ { "Entries": [ { - "RequestUri": "/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/providers/Microsoft.Batch?api-version=2016-09-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjFhYmQ2NzgtMThjNS00NjYwLTlmZGQtOGM1YmE2YjZmZTFmL3Byb3ZpZGVycy9NaWNyb3NvZnQuQmF0Y2g/YXBpLXZlcnNpb249MjAxNi0wOS0wMQ==", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/providers/Microsoft.Batch?api-version=2016-09-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Byb3ZpZGVycy9NaWNyb3NvZnQuQmF0Y2g/YXBpLXZlcnNpb249MjAxNi0wOS0wMQ==", "RequestMethod": "GET", "RequestHeaders": { "x-ms-client-request-id": [ - "d88e36b4-633a-422a-acea-6cb421c643bd" + "81aae152-70a4-4201-9549-7f9d8a30d16c" ], "Accept-Language": [ "en-US" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.102" + "OSVersion/Microsoft.Windows.10.0.26100", + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.109" ] }, "RequestBody": "", @@ -33,13 +33,13 @@ "16499" ], "x-ms-request-id": [ - "ac7bece0-1750-41b0-9b37-2a542b1ed9bd" + "6e59cdca-874f-44a9-aa50-4ce1bef6c445" ], "x-ms-correlation-request-id": [ - "ac7bece0-1750-41b0-9b37-2a542b1ed9bd" + "6e59cdca-874f-44a9-aa50-4ce1bef6c445" ], "x-ms-routing-request-id": [ - "EASTUS:20241113T211845Z:ac7bece0-1750-41b0-9b37-2a542b1ed9bd" + "WESTUS2:20250911T204137Z:6e59cdca-874f-44a9-aa50-4ce1bef6c445" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -51,13 +51,13 @@ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: 48208D36C7A04313A65BCE3AD572F41E Ref B: MNZ221060619031 Ref C: 2024-11-13T21:18:45Z" + "Ref A: E3A5E4DCEEA14EA5BC56B810092D1E64 Ref B: CO6AA3150218025 Ref C: 2025-09-11T20:41:36Z" ], "Date": [ - "Wed, 13 Nov 2024 21:18:45 GMT" + "Thu, 11 Sep 2025 20:41:37 GMT" ], "Content-Length": [ - "18599" + "19143" ], "Content-Type": [ "application/json; charset=utf-8" @@ -66,25 +66,25 @@ "-1" ] }, - "ResponseBody": "{\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/providers/Microsoft.Batch\",\r\n \"namespace\": \"Microsoft.Batch\",\r\n \"authorization\": {\r\n \"applicationId\": \"ddbf3205-c6bd-46ae-8127-60eb93363864\",\r\n \"roleDefinitionId\": \"b7f84953-1d03-4eab-9ea4-45f065258ff8\"\r\n },\r\n \"resourceTypes\": [\r\n {\r\n \"resourceType\": \"batchAccounts\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\",\r\n \"East US\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\",\r\n \"2021-01-01\",\r\n \"2020-09-01\",\r\n \"2020-05-01\",\r\n \"2020-03-01-preview\",\r\n \"2020-03-01\",\r\n \"2019-08-01\",\r\n \"2019-04-01\",\r\n \"2018-12-01\",\r\n \"2017-09-01\",\r\n \"2017-05-01\",\r\n \"2017-01-01\",\r\n \"2015-12-01\",\r\n \"2015-09-01\",\r\n \"2015-07-01\",\r\n \"2014-05-01-privatepreview\"\r\n ],\r\n \"capabilities\": \"CrossResourceGroupResourceMove, CrossSubscriptionResourceMove, SystemAssignedResourceIdentity\"\r\n },\r\n {\r\n \"resourceType\": \"batchAccounts/pools\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\",\r\n \"East US\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\",\r\n \"2021-01-01\",\r\n \"2020-09-01\",\r\n \"2020-05-01\",\r\n \"2020-03-01-preview\",\r\n \"2020-03-01\",\r\n \"2019-08-01\",\r\n \"2019-04-01\",\r\n \"2018-12-01\",\r\n \"2017-09-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"batchAccounts/detectors\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\",\r\n \"East US\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"batchAccounts/certificates\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\",\r\n \"East US\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\",\r\n \"2021-01-01\",\r\n \"2020-09-01\",\r\n \"2020-05-01\",\r\n \"2020-03-01-preview\",\r\n \"2020-03-01\",\r\n \"2019-08-01\",\r\n \"2019-04-01\",\r\n \"2018-12-01\",\r\n \"2017-09-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"batchAccounts/operationResults\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\",\r\n \"East US\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\",\r\n \"2021-01-01\",\r\n \"2020-09-01\",\r\n \"2020-05-01\",\r\n \"2020-03-01-preview\",\r\n \"2020-03-01\",\r\n \"2019-08-01\",\r\n \"2019-04-01\",\r\n \"2018-12-01\",\r\n \"2017-09-01\",\r\n \"2017-05-01\",\r\n \"2017-01-01\",\r\n \"2015-12-01\",\r\n \"2015-09-01\",\r\n \"2015-07-01\",\r\n \"2014-05-01-privatepreview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"batchAccounts/poolOperationResults\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\",\r\n \"East US\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\",\r\n \"2021-01-01\",\r\n \"2020-09-01\",\r\n \"2020-05-01\",\r\n \"2020-03-01-preview\",\r\n \"2020-03-01\",\r\n \"2019-08-01\",\r\n \"2019-04-01\",\r\n \"2018-12-01\",\r\n \"2017-09-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"batchAccounts/certificateOperationResults\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\",\r\n \"East US\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\",\r\n \"2021-01-01\",\r\n \"2020-09-01\",\r\n \"2020-05-01\",\r\n \"2020-03-01-preview\",\r\n \"2020-03-01\",\r\n \"2019-08-01\",\r\n \"2019-04-01\",\r\n \"2018-12-01\",\r\n \"2017-09-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"batchAccounts/privateEndpointConnectionProxyResults\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\",\r\n \"East US\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\",\r\n \"2021-01-01\",\r\n \"2020-09-01\",\r\n \"2020-05-01\",\r\n \"2020-03-01-preview\",\r\n \"2020-03-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"batchAccounts/privateEndpointConnectionResults\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\",\r\n \"East US\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\",\r\n \"2021-01-01\",\r\n \"2020-09-01\",\r\n \"2020-05-01\",\r\n \"2020-03-01-preview\",\r\n \"2020-03-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"batchAccounts/networkSecurityPerimeterConfigurationOperationResults\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\",\r\n \"East US\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"operations\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\",\r\n \"East US\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\",\r\n \"2021-01-01\",\r\n \"2020-09-01\",\r\n \"2020-05-01\",\r\n \"2020-03-01-preview\",\r\n \"2020-03-01\",\r\n \"2019-08-01\",\r\n \"2019-04-01\",\r\n \"2018-12-01\",\r\n \"2017-09-01\",\r\n \"2017-05-01\",\r\n \"2017-01-01\",\r\n \"2015-12-01\",\r\n \"2015-09-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations\",\r\n \"locations\": [],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\",\r\n \"2021-01-01\",\r\n \"2020-09-01\",\r\n \"2020-05-01\",\r\n \"2020-03-01-preview\",\r\n \"2020-03-01\",\r\n \"2019-08-01\",\r\n \"2019-04-01\",\r\n \"2018-12-01\",\r\n \"2017-09-01\",\r\n \"2017-05-01\",\r\n \"2017-01-01\",\r\n \"2015-12-01\",\r\n \"2015-09-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/quotas\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\",\r\n \"East US\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\",\r\n \"2021-01-01\",\r\n \"2020-09-01\",\r\n \"2020-05-01\",\r\n \"2020-03-01-preview\",\r\n \"2020-03-01\",\r\n \"2019-08-01\",\r\n \"2019-04-01\",\r\n \"2018-12-01\",\r\n \"2017-09-01\",\r\n \"2017-05-01\",\r\n \"2017-01-01\",\r\n \"2015-12-01\",\r\n \"2015-09-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/checkNameAvailability\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\",\r\n \"East US\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\",\r\n \"2021-01-01\",\r\n \"2020-09-01\",\r\n \"2020-05-01\",\r\n \"2020-03-01-preview\",\r\n \"2020-03-01\",\r\n \"2019-08-01\",\r\n \"2019-04-01\",\r\n \"2018-12-01\",\r\n \"2017-09-01\",\r\n \"2017-05-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/accountOperationResults\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\",\r\n \"East US\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\",\r\n \"2021-01-01\",\r\n \"2020-09-01\",\r\n \"2020-05-01\",\r\n \"2020-03-01-preview\",\r\n \"2020-03-01\",\r\n \"2019-08-01\",\r\n \"2019-04-01\",\r\n \"2018-12-01\",\r\n \"2017-09-01\",\r\n \"2017-05-01\",\r\n \"2017-01-01\",\r\n \"2015-12-01\",\r\n \"2015-09-01\",\r\n \"2015-07-01\",\r\n \"2014-05-01-privatepreview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/virtualMachineSkus\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\",\r\n \"East US\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/cloudServiceSkus\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\",\r\n \"East US\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/notifyNetworkSecurityPerimeterUpdatesAvailable\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\",\r\n \"East US\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\"\r\n ]\r\n }\r\n ],\r\n \"registrationState\": \"Registered\"\r\n}", + "ResponseBody": "{\r\n \"id\": \"/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/providers/Microsoft.Batch\",\r\n \"namespace\": \"Microsoft.Batch\",\r\n \"authorization\": {\r\n \"applicationId\": \"ddbf3205-c6bd-46ae-8127-60eb93363864\",\r\n \"roleDefinitionId\": \"b7f84953-1d03-4eab-9ea4-45f065258ff8\"\r\n },\r\n \"resourceTypes\": [\r\n {\r\n \"resourceType\": \"batchAccounts\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\",\r\n \"2021-01-01\",\r\n \"2020-09-01\",\r\n \"2020-05-01\",\r\n \"2020-03-01-preview\",\r\n \"2020-03-01\",\r\n \"2019-08-01\",\r\n \"2019-04-01\",\r\n \"2018-12-01\",\r\n \"2017-09-01\",\r\n \"2017-05-01\",\r\n \"2017-01-01\",\r\n \"2015-12-01\",\r\n \"2015-09-01\",\r\n \"2015-07-01\",\r\n \"2014-05-01-privatepreview\"\r\n ],\r\n \"capabilities\": \"CrossResourceGroupResourceMove, CrossSubscriptionResourceMove, SystemAssignedResourceIdentity\"\r\n },\r\n {\r\n \"resourceType\": \"batchAccounts/pools\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\",\r\n \"2021-01-01\",\r\n \"2020-09-01\",\r\n \"2020-05-01\",\r\n \"2020-03-01-preview\",\r\n \"2020-03-01\",\r\n \"2019-08-01\",\r\n \"2019-04-01\",\r\n \"2018-12-01\",\r\n \"2017-09-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"batchAccounts/detectors\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"batchAccounts/certificates\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\",\r\n \"2021-01-01\",\r\n \"2020-09-01\",\r\n \"2020-05-01\",\r\n \"2020-03-01-preview\",\r\n \"2020-03-01\",\r\n \"2019-08-01\",\r\n \"2019-04-01\",\r\n \"2018-12-01\",\r\n \"2017-09-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"batchAccounts/operationResults\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\",\r\n \"2021-01-01\",\r\n \"2020-09-01\",\r\n \"2020-05-01\",\r\n \"2020-03-01-preview\",\r\n \"2020-03-01\",\r\n \"2019-08-01\",\r\n \"2019-04-01\",\r\n \"2018-12-01\",\r\n \"2017-09-01\",\r\n \"2017-05-01\",\r\n \"2017-01-01\",\r\n \"2015-12-01\",\r\n \"2015-09-01\",\r\n \"2015-07-01\",\r\n \"2014-05-01-privatepreview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"batchAccounts/poolOperationResults\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\",\r\n \"2021-01-01\",\r\n \"2020-09-01\",\r\n \"2020-05-01\",\r\n \"2020-03-01-preview\",\r\n \"2020-03-01\",\r\n \"2019-08-01\",\r\n \"2019-04-01\",\r\n \"2018-12-01\",\r\n \"2017-09-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"batchAccounts/certificateOperationResults\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\",\r\n \"2021-01-01\",\r\n \"2020-09-01\",\r\n \"2020-05-01\",\r\n \"2020-03-01-preview\",\r\n \"2020-03-01\",\r\n \"2019-08-01\",\r\n \"2019-04-01\",\r\n \"2018-12-01\",\r\n \"2017-09-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"batchAccounts/privateEndpointConnectionProxyResults\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\",\r\n \"2021-01-01\",\r\n \"2020-09-01\",\r\n \"2020-05-01\",\r\n \"2020-03-01-preview\",\r\n \"2020-03-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"batchAccounts/privateEndpointConnectionResults\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\",\r\n \"2021-01-01\",\r\n \"2020-09-01\",\r\n \"2020-05-01\",\r\n \"2020-03-01-preview\",\r\n \"2020-03-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"batchAccounts/networkSecurityPerimeterConfigurationOperationResults\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"operations\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\",\r\n \"2021-01-01\",\r\n \"2020-09-01\",\r\n \"2020-05-01\",\r\n \"2020-03-01-preview\",\r\n \"2020-03-01\",\r\n \"2019-08-01\",\r\n \"2019-04-01\",\r\n \"2018-12-01\",\r\n \"2017-09-01\",\r\n \"2017-05-01\",\r\n \"2017-01-01\",\r\n \"2015-12-01\",\r\n \"2015-09-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations\",\r\n \"locations\": [],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\",\r\n \"2021-01-01\",\r\n \"2020-09-01\",\r\n \"2020-05-01\",\r\n \"2020-03-01-preview\",\r\n \"2020-03-01\",\r\n \"2019-08-01\",\r\n \"2019-04-01\",\r\n \"2018-12-01\",\r\n \"2017-09-01\",\r\n \"2017-05-01\",\r\n \"2017-01-01\",\r\n \"2015-12-01\",\r\n \"2015-09-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/quotas\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\",\r\n \"2021-01-01\",\r\n \"2020-09-01\",\r\n \"2020-05-01\",\r\n \"2020-03-01-preview\",\r\n \"2020-03-01\",\r\n \"2019-08-01\",\r\n \"2019-04-01\",\r\n \"2018-12-01\",\r\n \"2017-09-01\",\r\n \"2017-05-01\",\r\n \"2017-01-01\",\r\n \"2015-12-01\",\r\n \"2015-09-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/checkNameAvailability\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\",\r\n \"2021-01-01\",\r\n \"2020-09-01\",\r\n \"2020-05-01\",\r\n \"2020-03-01-preview\",\r\n \"2020-03-01\",\r\n \"2019-08-01\",\r\n \"2019-04-01\",\r\n \"2018-12-01\",\r\n \"2017-09-01\",\r\n \"2017-05-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/accountOperationResults\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\",\r\n \"2021-01-01\",\r\n \"2020-09-01\",\r\n \"2020-05-01\",\r\n \"2020-03-01-preview\",\r\n \"2020-03-01\",\r\n \"2019-08-01\",\r\n \"2019-04-01\",\r\n \"2018-12-01\",\r\n \"2017-09-01\",\r\n \"2017-05-01\",\r\n \"2017-01-01\",\r\n \"2015-12-01\",\r\n \"2015-09-01\",\r\n \"2015-07-01\",\r\n \"2014-05-01-privatepreview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/virtualMachineSkus\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/cloudServiceSkus\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/notifyNetworkSecurityPerimeterUpdatesAvailable\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\"\r\n ]\r\n }\r\n ],\r\n \"registrationState\": \"Registered\"\r\n}", "StatusCode": 200 }, { - "RequestUri": "/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourcegroups/ps5688?api-version=2016-09-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjFhYmQ2NzgtMThjNS00NjYwLTlmZGQtOGM1YmE2YjZmZTFmL3Jlc291cmNlZ3JvdXBzL3BzNTY4OD9hcGktdmVyc2lvbj0yMDE2LTA5LTAx", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourcegroups/ps2289?api-version=2016-09-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlZ3JvdXBzL3BzMjI4OT9hcGktdmVyc2lvbj0yMDE2LTA5LTAx", "RequestMethod": "PUT", "RequestHeaders": { "x-ms-client-request-id": [ - "485d7e6d-8d30-4416-afed-cfb3a1b8104a" + "23210e50-a09e-481b-8ca7-94414282bf64" ], "Accept-Language": [ "en-US" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.102" + "OSVersion/Microsoft.Windows.10.0.26100", + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.109" ], "Content-Type": [ "application/json; charset=utf-8" @@ -108,13 +108,13 @@ "11999" ], "x-ms-request-id": [ - "c9bf4ed8-58d4-4576-9470-81a20bcbe34b" + "5962f37c-7826-4052-9f44-58f600dde90d" ], "x-ms-correlation-request-id": [ - "c9bf4ed8-58d4-4576-9470-81a20bcbe34b" + "5962f37c-7826-4052-9f44-58f600dde90d" ], "x-ms-routing-request-id": [ - "EASTUS:20241113T211846Z:c9bf4ed8-58d4-4576-9470-81a20bcbe34b" + "WESTUS2:20250911T204138Z:5962f37c-7826-4052-9f44-58f600dde90d" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -126,10 +126,10 @@ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: DFBB2F463EEF4C9C9626FF0FBDDAD587 Ref B: MNZ221060619031 Ref C: 2024-11-13T21:18:46Z" + "Ref A: 4495143DAAD34374A7DF71919DBD0E93 Ref B: CO6AA3150218025 Ref C: 2025-09-11T20:41:37Z" ], "Date": [ - "Wed, 13 Nov 2024 21:18:45 GMT" + "Thu, 11 Sep 2025 20:41:38 GMT" ], "Content-Length": [ "166" @@ -141,25 +141,25 @@ "-1" ] }, - "ResponseBody": "{\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/ps5688\",\r\n \"name\": \"ps5688\",\r\n \"location\": \"westus2\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\"\r\n }\r\n}", + "ResponseBody": "{\r\n \"id\": \"/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps2289\",\r\n \"name\": \"ps2289\",\r\n \"location\": \"westus2\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\"\r\n }\r\n}", "StatusCode": 201 }, { - "RequestUri": "/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/ps5688/providers/Microsoft.Batch/batchAccounts/ps9576?api-version=2022-10-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjFhYmQ2NzgtMThjNS00NjYwLTlmZGQtOGM1YmE2YjZmZTFmL3Jlc291cmNlR3JvdXBzL3BzNTY4OC9wcm92aWRlcnMvTWljcm9zb2Z0LkJhdGNoL2JhdGNoQWNjb3VudHMvcHM5NTc2P2FwaS12ZXJzaW9uPTIwMjItMTAtMDE=", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps2289/providers/Microsoft.Batch/batchAccounts/ps5017?api-version=2023-05-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL3BzMjI4OS9wcm92aWRlcnMvTWljcm9zb2Z0LkJhdGNoL2JhdGNoQWNjb3VudHMvcHM1MDE3P2FwaS12ZXJzaW9uPTIwMjMtMDUtMDE=", "RequestMethod": "PUT", "RequestHeaders": { - "x-ms-client-request-id": [ - "2291b59a-c01f-4f70-8628-573b7b4ad5b6" - ], "Accept-Language": [ "en-US" ], + "x-ms-client-request-id": [ + "75c74ef9-5971-48bc-a8c5-83ea94f1e198" + ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Management.Batch.BatchManagementClient/3.6.4" + "OSVersion/Microsoft.Windows.10.0.26100", + "Microsoft.Azure.Management.Batch.BatchManagementClient/3.7.0" ], "Content-Type": [ "application/json; charset=utf-8" @@ -177,13 +177,13 @@ "no-cache" ], "Location": [ - "https://management.azure.com/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/ps5688/providers/Microsoft.Batch/batchAccounts/ps9576/operationResults/a6d2c662-5870-4001-a978-0583e5c6b6fd?api-version=2022-10-01&t=638671295284015957&c=MIIHhzCCBm-gAwIBAgITHgVqhF9GOoUjuyqQWAAABWqEXzANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDYwHhcNMjQwOTIwMjMxMTQxWhcNMjUwMzE5MjMxMTQxWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKRtcYDBXS7zz5tRtvVyhrUAjudYhej1E2D3dp6XWuPdbVMbQZwMlye8vdT-kDhFD7T2mrdWqsoGnTGk0_xOHBfLGnW-0QRUqpeoTNIhu8vc2CfTUtm2t2s_-fzvFtRyhDA4mfCH1cz92EVj0vd3FD4ikW6bdOp1NkYFqUVBhKlbvJk6y-TbLFBLP5Zx4m0Ua-_P7aMzbgvOJgMOTC2jLs5w_lFDJWeP3IKUOiJmrfLpf4ey5Ov94oCE6YncDBSHJZKWcrSxDHgSz9AXrxarL4HLajGbF3MRvfkMN2gNXCoiJXBEqCLDnyQZ0BgXIvuK7vG8Rj0TyhJNj-QPr8taY6UCAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAyLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA2LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MB0GA1UdDgQWBBRKlJQpFyyZKSchkTlshetYOUX7xzAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBTxRmjG8cPwKy19i2rhsvm-NfzRQTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAG0WbzLPsmSSMI7aTe2npixmkdCmwcdZHGd43tUnB8JKrLNJEFcBsQmbcIH0adpnQNrDgRkNBBOTZ4s1LIBlRQapZpPsRItAMUguVpGVRH08T0i43w9xrp_clNbAJrrfRbmYroF0WJKMJ0nwW2rPjxdevSRygGK_nEfywwFi-p1RhHnkiEGL4GnP7PpQcRvAYMdH9LO5MRY7iLbBmosKatS_eWtSJD1CvzglNwy_vQzx81Vnk0CgndqXcVq-loGu7R4U7mkQ2NNqLbp447STxkpP-6Mdyv8J4bdnf1s3vFBNpgvJWKogWcNLlo8jnkbEf6RPNGe1W5lma7JwMKAcPzY&s=RnzsJalt9KwHe1SgnD9dtOz2j0Q3kBmOhssxbZoLbXG0pZpseqvoGafwBm_MbspByp3pZphR3bIoHW3f8f6fflEWRoapYFz0pBqUFWIWzOJahCQkpMaTH82NemwMPeM76irSE1pSPGkjzycVCfsEm0_Lq9yAZUOFPXmofqW3M26-jHP1cjk56HWZFct8Pr74PEeMKf8ljF5ABipNkfZaflhd2apD78ynWSjtFE8de0AHu5nqpOPx4n13L_0LPKUg5fOhiWgyLcbcH-H9bcie0bYaejtrXv87oWAL5VDeB_qQ3d6KdxDNFphmtzQReD9MLzr-h_pqUH8RC6u4QYiZRw&h=80je4SNYeCZHcb9cliXxbXny90468nsN0XE_w8t5DUc" + "https://management.azure.com/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps2289/providers/Microsoft.Batch/batchAccounts/ps5017/operationResults/50101d66-9d40-4d82-a504-6e28e0df756a?api-version=2023-05-01&t=638932200993295654&c=MIIIpTCCBo2gAwIBAgITFgGsmnj73LBE7PaBtQABAayaeDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDMwHhcNMjUwNzE4MTIwNDI4WhcNMjYwMTE0MTIwNDI4WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKYwXiklImL5-WfPWj2FX3_Y-JxCd3XXEOuNXx5ggHubZZamujLTqEBSFsFYiH_9NCaqKTiATXu6fBpzW3ghgYhwr0PL071fQT15KnnNUFjd5hFXB7SYti9IwWu1lxSAz-De7HivujKdlsgcmfoV6upRQ0eva9e74EwLV9pCn4WQAhs-6T8p0CytQsi81qHMWybAbNvfom0ox78IEWdS_6g_d4Jl_I4ccYLMyRTOV2NioM96cRECWCZhbpLl1zwoYGSbU5H0MZaiCBjPlhXN40BqagpamZfP98sPYSBfreh6-iMGU5tNTRkh8RiJqzjhzIUpEv3PqLtWTyPUB8JS7aUCAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9BTTNQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAzKDEpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MB0GA1UdDgQWBBTxzPCXgPzIUiTz94us0y0CCMf8BzAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBRIo61gdWpv7GDzaVXRALEyV_xs5DAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggIBAAqNK9Ejzdnb9L4TyakCpJByRYVTN_6nCGbtUd2E2sELjuJGRGiRmujp_jqNyIofO_ghSaP_tqH-3WRTRUbnt5xM8aBYoYJSOgKgTsNrB6clspdhCCmzhJy6EQuOqfUDm3C7hDru1_bN3DwXt3VpDqfuYtM3MAabKg0oCYVWgFwnAKYmZLZMWMQh7k_hZxy1gOCQmE9U08tf_pU21aI0El6n5A5uG2FT0placwchheFmXAtoPjT7nU53HVmRissxUR_vRCDj_ZCFo3K3nZNXCQOKPAMc9-LC0prb9Slg6siKtSHB3iGjNQlT9-nbSnDgifI8zC1cvT8CdaNLOmUywRIB4wvRn1z123NuyfJaIz95igW9P189vBTJEZREF-MgJEboWKdlGNn6bbBtu0waqAmUU7WVLeZKdtUI6EEKF7wRGYuY_BhZx1ipyXnBHZpsufuH4AwgOO289QKmqg8QAy7HFD9c8H8fNCtR7sTZ4YNP2AhEaES0rkMSQUCNVEz42YEBi2GgrSpnI94SPdb3J3PkCMZ4OgFRjztLO7nrgbPtflhSOo_VOE0_7Y74km43WAMQPKL3-44vQrEQ61Hd_24IcFh_ChNXvUDqp39GzYlO3D0zlau4ozll8BeLUZrJwHTQWZS8XR-EifCl4MW5Y3Y1SxOLrIxnukCzQxL7aGmc&s=pEsT5zEebyCw38sxckvC9EVO52g38kpg9EXUMYfpsAAHVCBpgTptmbqC88N1ZkOaaHnG-ShN0CkskbhUJUOfxColfDYneSXKY7046hQUd48lSOBpEtpSSIbyiXk61QgFlxDwOG8HC5UOMqprkAsqdSjwJgKmY499Kr5kkFBBXjPsticWW3tMRv1CnpXpoEgA0vyExcO92nzMuu2lVslKHR2qRL_Nin3AM2PM7FeRspihlAQL80HYPn-HaB_0BFtgxTOIGodTDKnYHRvfizquLov4J-WaCMZrodLJCsCFaLiwXlsl8aVXK3NG7JbQUQH04w0camdPxi5KZgjcNfPCuQ&h=2Pao3PTIIWrqys8OgjzdmV8sUvopZu0UvP_mxJDKUBQ" ], "Retry-After": [ "15" ], "x-ms-request-id": [ - "a6d2c662-5870-4001-a978-0583e5c6b6fd" + "50101d66-9d40-4d82-a504-6e28e0df756a" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -191,6 +191,9 @@ "X-Content-Type-Options": [ "nosniff" ], + "x-ms-operation-identifier": [ + "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=ac839cc2-33ee-4879-a5b5-2895202ccb29/westus2/f486e56f-8d92-49ad-bf72-dafbc1388b6a" + ], "x-ms-ratelimit-remaining-subscription-writes": [ "799" ], @@ -198,19 +201,19 @@ "11999" ], "x-ms-correlation-request-id": [ - "1f1da3f3-d066-4944-9f43-5d395301831a" + "b08c80ff-57f4-41a1-982f-464345c31df0" ], "x-ms-routing-request-id": [ - "EASTUS:20241113T211848Z:1f1da3f3-d066-4944-9f43-5d395301831a" + "WESTUS2:20250911T204139Z:b08c80ff-57f4-41a1-982f-464345c31df0" ], "X-Cache": [ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: F5A6C76A6E484E4D97C1B582D37BF5F6 Ref B: MNZ221060609009 Ref C: 2024-11-13T21:18:46Z" + "Ref A: FE978B5D4BB44C89A534E7F28E72764A Ref B: CO6AA3150220051 Ref C: 2025-09-11T20:41:38Z" ], "Date": [ - "Wed, 13 Nov 2024 21:18:47 GMT" + "Thu, 11 Sep 2025 20:41:38 GMT" ], "Expires": [ "-1" @@ -223,18 +226,18 @@ "StatusCode": 202 }, { - "RequestUri": "/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/ps5688/providers/Microsoft.Batch/batchAccounts/ps9576/operationResults/a6d2c662-5870-4001-a978-0583e5c6b6fd?api-version=2022-10-01&t=638671295284015957&c=MIIHhzCCBm-gAwIBAgITHgVqhF9GOoUjuyqQWAAABWqEXzANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDYwHhcNMjQwOTIwMjMxMTQxWhcNMjUwMzE5MjMxMTQxWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKRtcYDBXS7zz5tRtvVyhrUAjudYhej1E2D3dp6XWuPdbVMbQZwMlye8vdT-kDhFD7T2mrdWqsoGnTGk0_xOHBfLGnW-0QRUqpeoTNIhu8vc2CfTUtm2t2s_-fzvFtRyhDA4mfCH1cz92EVj0vd3FD4ikW6bdOp1NkYFqUVBhKlbvJk6y-TbLFBLP5Zx4m0Ua-_P7aMzbgvOJgMOTC2jLs5w_lFDJWeP3IKUOiJmrfLpf4ey5Ov94oCE6YncDBSHJZKWcrSxDHgSz9AXrxarL4HLajGbF3MRvfkMN2gNXCoiJXBEqCLDnyQZ0BgXIvuK7vG8Rj0TyhJNj-QPr8taY6UCAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAyLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA2LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MB0GA1UdDgQWBBRKlJQpFyyZKSchkTlshetYOUX7xzAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBTxRmjG8cPwKy19i2rhsvm-NfzRQTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAG0WbzLPsmSSMI7aTe2npixmkdCmwcdZHGd43tUnB8JKrLNJEFcBsQmbcIH0adpnQNrDgRkNBBOTZ4s1LIBlRQapZpPsRItAMUguVpGVRH08T0i43w9xrp_clNbAJrrfRbmYroF0WJKMJ0nwW2rPjxdevSRygGK_nEfywwFi-p1RhHnkiEGL4GnP7PpQcRvAYMdH9LO5MRY7iLbBmosKatS_eWtSJD1CvzglNwy_vQzx81Vnk0CgndqXcVq-loGu7R4U7mkQ2NNqLbp447STxkpP-6Mdyv8J4bdnf1s3vFBNpgvJWKogWcNLlo8jnkbEf6RPNGe1W5lma7JwMKAcPzY&s=RnzsJalt9KwHe1SgnD9dtOz2j0Q3kBmOhssxbZoLbXG0pZpseqvoGafwBm_MbspByp3pZphR3bIoHW3f8f6fflEWRoapYFz0pBqUFWIWzOJahCQkpMaTH82NemwMPeM76irSE1pSPGkjzycVCfsEm0_Lq9yAZUOFPXmofqW3M26-jHP1cjk56HWZFct8Pr74PEeMKf8ljF5ABipNkfZaflhd2apD78ynWSjtFE8de0AHu5nqpOPx4n13L_0LPKUg5fOhiWgyLcbcH-H9bcie0bYaejtrXv87oWAL5VDeB_qQ3d6KdxDNFphmtzQReD9MLzr-h_pqUH8RC6u4QYiZRw&h=80je4SNYeCZHcb9cliXxbXny90468nsN0XE_w8t5DUc", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjFhYmQ2NzgtMThjNS00NjYwLTlmZGQtOGM1YmE2YjZmZTFmL3Jlc291cmNlR3JvdXBzL3BzNTY4OC9wcm92aWRlcnMvTWljcm9zb2Z0LkJhdGNoL2JhdGNoQWNjb3VudHMvcHM5NTc2L29wZXJhdGlvblJlc3VsdHMvYTZkMmM2NjItNTg3MC00MDAxLWE5NzgtMDU4M2U1YzZiNmZkP2FwaS12ZXJzaW9uPTIwMjItMTAtMDEmdD02Mzg2NzEyOTUyODQwMTU5NTcmYz1NSUlIaHpDQ0JtLWdBd0lCQWdJVEhnVnFoRjlHT29VanV5cVFXQUFBQldxRVh6QU5CZ2txaGtpRzl3MEJBUXNGQURCRU1STXdFUVlLQ1pJbWlaUHlMR1FCR1JZRFIwSk1NUk13RVFZS0NaSW1pWlB5TEdRQkdSWURRVTFGTVJnd0ZnWURWUVFERXc5QlRVVWdTVzVtY21FZ1EwRWdNRFl3SGhjTk1qUXdPVEl3TWpNeE1UUXhXaGNOTWpVd016RTVNak14TVRReFdqQkFNVDR3UEFZRFZRUURFelZoYzNsdVkyOXdaWEpoZEdsdmJuTnBaMjVwYm1kalpYSjBhV1pwWTJGMFpTNXRZVzVoWjJWdFpXNTBMbUY2ZFhKbExtTnZiVENDQVNJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dFUEFEQ0NBUW9DZ2dFQkFLUnRjWURCWFM3eno1dFJ0dlZ5aHJVQWp1ZFloZWoxRTJEM2RwNlhXdVBkYlZNYlFad01seWU4dmRULWtEaEZEN1QybXJkV3Fzb0duVEdrMF94T0hCZkxHblctMFFSVXFwZW9UTklodTh2YzJDZlRVdG0ydDJzXy1menZGdFJ5aERBNG1mQ0gxY3o5MkVWajB2ZDNGRDRpa1c2YmRPcDFOa1lGcVVWQmhLbGJ2Sms2eS1UYkxGQkxQNVp4NG0wVWEtX1A3YU16Ymd2T0pnTU9UQzJqTHM1d19sRkRKV2VQM0lLVU9pSm1yZkxwZjRleTVPdjk0b0NFNlluY0RCU0hKWktXY3JTeERIZ1N6OUFYcnhhckw0SExhakdiRjNNUnZma01OMmdOWENvaUpYQkVxQ0xEbnlRWjBCZ1hJdnVLN3ZHOFJqMFR5aEpOai1RUHI4dGFZNlVDQXdFQUFhT0NCSFF3Z2dSd01DY0dDU3NHQVFRQmdqY1ZDZ1FhTUJnd0NnWUlLd1lCQlFVSEF3RXdDZ1lJS3dZQkJRVUhBd0l3UFFZSkt3WUJCQUdDTnhVSEJEQXdMZ1ltS3dZQkJBR0NOeFVJaHBEakRZVFZ0SGlFOFlzLWhadmRGczZkRW9GZ2hmbVJTNFdzbVRRQ0FXUUNBUWN3Z2dITEJnZ3JCZ0VGQlFjQkFRU0NBYjB3Z2dHNU1HTUdDQ3NHQVFVRkJ6QUNobGRvZEhSd09pOHZZM0pzTG0xcFkzSnZjMjltZEM1amIyMHZjR3RwYVc1bWNtRXZRMlZ5ZEhNdlFrd3lVRXRKU1U1VVEwRXdNaTVCVFVVdVIwSk1YMEZOUlNVeU1FbHVabkpoSlRJd1EwRWxNakF3Tmk1amNuUXdVd1lJS3dZQkJRVUhNQUtHUjJoMGRIQTZMeTlqY213eExtRnRaUzVuWW13dllXbGhMMEpNTWxCTFNVbE9WRU5CTURJdVFVMUZMa2RDVEY5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01EWXVZM0owTUZNR0NDc0dBUVVGQnpBQ2hrZG9kSFJ3T2k4dlkzSnNNaTVoYldVdVoySnNMMkZwWVM5Q1RESlFTMGxKVGxSRFFUQXlMa0ZOUlM1SFFreGZRVTFGSlRJd1NXNW1jbUVsTWpCRFFTVXlNREEyTG1OeWREQlRCZ2dyQmdFRkJRY3dBb1pIYUhSMGNEb3ZMMk55YkRNdVlXMWxMbWRpYkM5aGFXRXZRa3d5VUV0SlNVNVVRMEV3TWk1QlRVVXVSMEpNWDBGTlJTVXlNRWx1Wm5KaEpUSXdRMEVsTWpBd05pNWpjblF3VXdZSUt3WUJCUVVITUFLR1IyaDBkSEE2THk5amNtdzBMbUZ0WlM1blltd3ZZV2xoTDBKTU1sQkxTVWxPVkVOQk1ESXVRVTFGTGtkQ1RGOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFl1WTNKME1CMEdBMVVkRGdRV0JCUktsSlFwRnl5WktTY2hrVGxzaGV0WU9VWDd4ekFPQmdOVkhROEJBZjhFQkFNQ0JhQXdnZ0VtQmdOVkhSOEVnZ0VkTUlJQkdUQ0NBUldnZ2dFUm9JSUJEWVlfYUhSMGNEb3ZMMk55YkM1dGFXTnliM052Wm5RdVkyOXRMM0JyYVdsdVpuSmhMME5TVEM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01EWXVZM0pzaGpGb2RIUndPaTh2WTNKc01TNWhiV1V1WjJKc0wyTnliQzlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURZdVkzSnNoakZvZEhSd09pOHZZM0pzTWk1aGJXVXVaMkpzTDJOeWJDOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFl1WTNKc2hqRm9kSFJ3T2k4dlkzSnNNeTVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01EWXVZM0pzaGpGb2RIUndPaTh2WTNKc05DNWhiV1V1WjJKc0wyTnliQzlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURZdVkzSnNNSUdkQmdOVkhTQUVnWlV3Z1pJd0RBWUtLd1lCQkFHQ04zc0JBVEJtQmdvckJnRUVBWUkzZXdJQ01GZ3dWZ1lJS3dZQkJRVUhBZ0l3U2g1SUFETUFNd0JsQURBQU1RQTVBRElBTVFBdEFEUUFaQUEyQURRQUxRQTBBR1lBT0FCakFDMEFZUUF3QURVQU5RQXRBRFVBWWdCa0FHRUFaZ0JtQUdRQU5RQmxBRE1BTXdCa01Bd0dDaXNHQVFRQmdqZDdBd0V3REFZS0t3WUJCQUdDTjNzRUFqQWZCZ05WSFNNRUdEQVdnQlR4Um1qRzhjUHdLeTE5aTJyaHN2bS1OZnpSUVRBZEJnTlZIU1VFRmpBVUJnZ3JCZ0VGQlFjREFRWUlLd1lCQlFVSEF3SXdEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBRzBXYnpMUHNtU1NNSTdhVGUybnBpeG1rZENtd2NkWkhHZDQzdFVuQjhKS3JMTkpFRmNCc1FtYmNJSDBhZHBuUU5yRGdSa05CQk9UWjRzMUxJQmxSUWFwWnBQc1JJdEFNVWd1VnBHVlJIMDhUMGk0M3c5eHJwX2NsTmJBSnJyZlJibVlyb0YwV0pLTUowbndXMnJQanhkZXZTUnlnR0tfbkVmeXd3RmktcDFSaEhua2lFR0w0R25QN1BwUWNSdkFZTWRIOUxPNU1SWTdpTGJCbW9zS2F0U19lV3RTSkQxQ3Z6Z2xOd3lfdlF6eDgxVm5rMENnbmRxWGNWcS1sb0d1N1I0VTdta1EyTk5xTGJwNDQ3U1R4a3BQLTZNZHl2OEo0YmRuZjFzM3ZGQk5wZ3ZKV0tvZ1djTkxsbzhqbmtiRWY2UlBOR2UxVzVsbWE3SndNS0FjUHpZJnM9Um56c0phbHQ5S3dIZTFTZ25EOWR0T3oyajBRM2tCbU9oc3N4YlpvTGJYRzBwWnBzZXF2b0dhZndCbV9NYnNwQnlwM3BacGhSM2JJb0hXM2Y4ZjZmZmxFV1JvYXBZRnowcEJxVUZXSVd6T0phaENRa3BNYVRIODJOZW13TVBlTTc2aXJTRTFwU1BHa2p6eWNWQ2ZzRW0wX0xxOXlBWlVPRlBYbW9mcVczTTI2LWpIUDFjams1NkhXWkZjdDhQcjc0UEVlTUtmOGxqRjVBQmlwTmtmWmFmbGhkMmFwRDc4eW5XU2p0RkU4ZGUwQUh1NW5xcE9QeDRuMTNMXzBMUEtVZzVmT2hpV2d5TGNiY0gtSDliY2llMGJZYWVqdHJYdjg3b1dBTDVWRGVCX3FRM2Q2S2R4RE5GcGhtdHpRUmVEOU1MenItaF9wcVVIOFJDNnU0UVlpWlJ3Jmg9ODBqZTRTTlllQ1pIY2I5Y2xpWHhiWG55OTA0Njhuc04wWEVfdzh0NURVYw==", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps2289/providers/Microsoft.Batch/batchAccounts/ps5017/operationResults/50101d66-9d40-4d82-a504-6e28e0df756a?api-version=2023-05-01&t=638932200993295654&c=MIIIpTCCBo2gAwIBAgITFgGsmnj73LBE7PaBtQABAayaeDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDMwHhcNMjUwNzE4MTIwNDI4WhcNMjYwMTE0MTIwNDI4WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKYwXiklImL5-WfPWj2FX3_Y-JxCd3XXEOuNXx5ggHubZZamujLTqEBSFsFYiH_9NCaqKTiATXu6fBpzW3ghgYhwr0PL071fQT15KnnNUFjd5hFXB7SYti9IwWu1lxSAz-De7HivujKdlsgcmfoV6upRQ0eva9e74EwLV9pCn4WQAhs-6T8p0CytQsi81qHMWybAbNvfom0ox78IEWdS_6g_d4Jl_I4ccYLMyRTOV2NioM96cRECWCZhbpLl1zwoYGSbU5H0MZaiCBjPlhXN40BqagpamZfP98sPYSBfreh6-iMGU5tNTRkh8RiJqzjhzIUpEv3PqLtWTyPUB8JS7aUCAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9BTTNQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAzKDEpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MB0GA1UdDgQWBBTxzPCXgPzIUiTz94us0y0CCMf8BzAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBRIo61gdWpv7GDzaVXRALEyV_xs5DAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggIBAAqNK9Ejzdnb9L4TyakCpJByRYVTN_6nCGbtUd2E2sELjuJGRGiRmujp_jqNyIofO_ghSaP_tqH-3WRTRUbnt5xM8aBYoYJSOgKgTsNrB6clspdhCCmzhJy6EQuOqfUDm3C7hDru1_bN3DwXt3VpDqfuYtM3MAabKg0oCYVWgFwnAKYmZLZMWMQh7k_hZxy1gOCQmE9U08tf_pU21aI0El6n5A5uG2FT0placwchheFmXAtoPjT7nU53HVmRissxUR_vRCDj_ZCFo3K3nZNXCQOKPAMc9-LC0prb9Slg6siKtSHB3iGjNQlT9-nbSnDgifI8zC1cvT8CdaNLOmUywRIB4wvRn1z123NuyfJaIz95igW9P189vBTJEZREF-MgJEboWKdlGNn6bbBtu0waqAmUU7WVLeZKdtUI6EEKF7wRGYuY_BhZx1ipyXnBHZpsufuH4AwgOO289QKmqg8QAy7HFD9c8H8fNCtR7sTZ4YNP2AhEaES0rkMSQUCNVEz42YEBi2GgrSpnI94SPdb3J3PkCMZ4OgFRjztLO7nrgbPtflhSOo_VOE0_7Y74km43WAMQPKL3-44vQrEQ61Hd_24IcFh_ChNXvUDqp39GzYlO3D0zlau4ozll8BeLUZrJwHTQWZS8XR-EifCl4MW5Y3Y1SxOLrIxnukCzQxL7aGmc&s=pEsT5zEebyCw38sxckvC9EVO52g38kpg9EXUMYfpsAAHVCBpgTptmbqC88N1ZkOaaHnG-ShN0CkskbhUJUOfxColfDYneSXKY7046hQUd48lSOBpEtpSSIbyiXk61QgFlxDwOG8HC5UOMqprkAsqdSjwJgKmY499Kr5kkFBBXjPsticWW3tMRv1CnpXpoEgA0vyExcO92nzMuu2lVslKHR2qRL_Nin3AM2PM7FeRspihlAQL80HYPn-HaB_0BFtgxTOIGodTDKnYHRvfizquLov4J-WaCMZrodLJCsCFaLiwXlsl8aVXK3NG7JbQUQH04w0camdPxi5KZgjcNfPCuQ&h=2Pao3PTIIWrqys8OgjzdmV8sUvopZu0UvP_mxJDKUBQ", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL3BzMjI4OS9wcm92aWRlcnMvTWljcm9zb2Z0LkJhdGNoL2JhdGNoQWNjb3VudHMvcHM1MDE3L29wZXJhdGlvblJlc3VsdHMvNTAxMDFkNjYtOWQ0MC00ZDgyLWE1MDQtNmUyOGUwZGY3NTZhP2FwaS12ZXJzaW9uPTIwMjMtMDUtMDEmdD02Mzg5MzIyMDA5OTMyOTU2NTQmYz1NSUlJcFRDQ0JvMmdBd0lCQWdJVEZnR3Ntbmo3M0xCRTdQYUJ0UUFCQWF5YWVEQU5CZ2txaGtpRzl3MEJBUXNGQURCRU1STXdFUVlLQ1pJbWlaUHlMR1FCR1JZRFIwSk1NUk13RVFZS0NaSW1pWlB5TEdRQkdSWURRVTFGTVJnd0ZnWURWUVFERXc5QlRVVWdTVzVtY21FZ1EwRWdNRE13SGhjTk1qVXdOekU0TVRJd05ESTRXaGNOTWpZd01URTBNVEl3TkRJNFdqQkFNVDR3UEFZRFZRUURFelZoYzNsdVkyOXdaWEpoZEdsdmJuTnBaMjVwYm1kalpYSjBhV1pwWTJGMFpTNXRZVzVoWjJWdFpXNTBMbUY2ZFhKbExtTnZiVENDQVNJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dFUEFEQ0NBUW9DZ2dFQkFLWXdYaWtsSW1MNS1XZlBXajJGWDNfWS1KeENkM1hYRU91Tlh4NWdnSHViWlphbXVqTFRxRUJTRnNGWWlIXzlOQ2FxS1RpQVRYdTZmQnB6VzNnaGdZaHdyMFBMMDcxZlFUMTVLbm5OVUZqZDVoRlhCN1NZdGk5SXdXdTFseFNBei1EZTdIaXZ1aktkbHNnY21mb1Y2dXBSUTBldmE5ZTc0RXdMVjlwQ240V1FBaHMtNlQ4cDBDeXRRc2k4MXFITVd5YkFiTnZmb20wb3g3OElFV2RTXzZnX2Q0SmxfSTRjY1lMTXlSVE9WMk5pb005NmNSRUNXQ1poYnBMbDF6d29ZR1NiVTVIME1aYWlDQmpQbGhYTjQwQnFhZ3BhbVpmUDk4c1BZU0JmcmVoNi1pTUdVNXROVFJraDhSaUpxempoeklVcEV2M1BxTHRXVHlQVUI4SlM3YVVDQXdFQUFhT0NCSkl3Z2dTT01DY0dDU3NHQVFRQmdqY1ZDZ1FhTUJnd0NnWUlLd1lCQlFVSEF3RXdDZ1lJS3dZQkJRVUhBd0l3UFFZSkt3WUJCQUdDTnhVSEJEQXdMZ1ltS3dZQkJBR0NOeFVJaHBEakRZVFZ0SGlFOFlzLWhadmRGczZkRW9GZ2hmbVJTNFdzbVRRQ0FXUUNBUWN3Z2dIYUJnZ3JCZ0VGQlFjQkFRU0NBY3d3Z2dISU1HWUdDQ3NHQVFVRkJ6QUNobHBvZEhSd09pOHZZM0pzTG0xcFkzSnZjMjltZEM1amIyMHZjR3RwYVc1bWNtRXZRMlZ5ZEhNdlFVMHpVRXRKU1U1VVEwRXdNUzVCVFVVdVIwSk1YMEZOUlNVeU1FbHVabkpoSlRJd1EwRWxNakF3TXlneEtTNWpjblF3VmdZSUt3WUJCUVVITUFLR1NtaDBkSEE2THk5amNtd3hMbUZ0WlM1blltd3ZZV2xoTDBGTk0xQkxTVWxPVkVOQk1ERXVRVTFGTGtkQ1RGOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRE1vTVNrdVkzSjBNRllHQ0NzR0FRVUZCekFDaGtwb2RIUndPaTh2WTNKc01pNWhiV1V1WjJKc0wyRnBZUzlCVFROUVMwbEpUbFJEUVRBeExrRk5SUzVIUWt4ZlFVMUZKVEl3U1c1bWNtRWxNakJEUVNVeU1EQXpLREVwTG1OeWREQldCZ2dyQmdFRkJRY3dBb1pLYUhSMGNEb3ZMMk55YkRNdVlXMWxMbWRpYkM5aGFXRXZRVTB6VUV0SlNVNVVRMEV3TVM1QlRVVXVSMEpNWDBGTlJTVXlNRWx1Wm5KaEpUSXdRMEVsTWpBd015Z3hLUzVqY25Rd1ZnWUlLd1lCQlFVSE1BS0dTbWgwZEhBNkx5OWpjbXcwTG1GdFpTNW5ZbXd2WVdsaEwwRk5NMUJMU1VsT1ZFTkJNREV1UVUxRkxrZENURjlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURNb01Ta3VZM0owTUIwR0ExVWREZ1FXQkJUeHpQQ1hnUHpJVWlUejk0dXMweTBDQ01mOEJ6QU9CZ05WSFE4QkFmOEVCQU1DQmFBd2dnRTFCZ05WSFI4RWdnRXNNSUlCS0RDQ0FTU2dnZ0Vnb0lJQkhJWkNhSFIwY0RvdkwyTnliQzV0YVdOeWIzTnZablF1WTI5dEwzQnJhV2x1Wm5KaEwwTlNUQzlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURNb01Ta3VZM0pzaGpSb2RIUndPaTh2WTNKc01TNWhiV1V1WjJKc0wyTnliQzlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURNb01Ta3VZM0pzaGpSb2RIUndPaTh2WTNKc01pNWhiV1V1WjJKc0wyTnliQzlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURNb01Ta3VZM0pzaGpSb2RIUndPaTh2WTNKc015NWhiV1V1WjJKc0wyTnliQzlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURNb01Ta3VZM0pzaGpSb2RIUndPaTh2WTNKc05DNWhiV1V1WjJKc0wyTnliQzlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURNb01Ta3VZM0pzTUlHZEJnTlZIU0FFZ1pVd2daSXdEQVlLS3dZQkJBR0NOM3NCQVRCbUJnb3JCZ0VFQVlJM2V3SUNNRmd3VmdZSUt3WUJCUVVIQWdJd1NoNUlBRE1BTXdCbEFEQUFNUUE1QURJQU1RQXRBRFFBWkFBMkFEUUFMUUEwQUdZQU9BQmpBQzBBWVFBd0FEVUFOUUF0QURVQVlnQmtBR0VBWmdCbUFHUUFOUUJsQURNQU13QmtNQXdHQ2lzR0FRUUJnamQ3QXdJd0RBWUtLd1lCQkFHQ04zc0VBakFmQmdOVkhTTUVHREFXZ0JSSW82MWdkV3B2N0dEemFWWFJBTEV5Vl94czVEQWRCZ05WSFNVRUZqQVVCZ2dyQmdFRkJRY0RBUVlJS3dZQkJRVUhBd0l3RFFZSktvWklodmNOQVFFTEJRQURnZ0lCQUFxTks5RWp6ZG5iOUw0VHlha0NwSkJ5UllWVE5fNm5DR2J0VWQyRTJzRUxqdUpHUkdpUm11anBfanFOeUlvZk9fZ2hTYVBfdHFILTNXUlRSVWJudDV4TThhQllvWUpTT2dLZ1RzTnJCNmNsc3BkaENDbXpoSnk2RVF1T3FmVURtM0M3aERydTFfYk4zRHdYdDNWcERxZnVZdE0zTUFhYktnMG9DWVZXZ0Z3bkFLWW1aTFpNV01RaDdrX2haeHkxZ09DUW1FOVUwOHRmX3BVMjFhSTBFbDZuNUE1dUcyRlQwcGxhY3djaGhlRm1YQXRvUGpUN25VNTNIVm1SaXNzeFVSX3ZSQ0RqX1pDRm8zSzNuWk5YQ1FPS1BBTWM5LUxDMHByYjlTbGc2c2lLdFNIQjNpR2pOUWxUOS1uYlNuRGdpZkk4ekMxY3ZUOENkYU5MT21VeXdSSUI0d3ZSbjF6MTIzTnV5ZkphSXo5NWlnVzlQMTg5dkJUSkVaUkVGLU1nSkVib1dLZGxHTm42YmJCdHUwd2FxQW1VVTdXVkxlWktkdFVJNkVFS0Y3d1JHWXVZX0JoWngxaXB5WG5CSFpwc3VmdUg0QXdnT08yODlRS21xZzhRQXk3SEZEOWM4SDhmTkN0UjdzVFo0WU5QMkFoRWFFUzBya01TUVVDTlZFejQyWUVCaTJHZ3JTcG5JOTRTUGRiM0ozUGtDTVo0T2dGUmp6dExPN25yZ2JQdGZsaFNPb19WT0UwXzdZNzRrbTQzV0FNUVBLTDMtNDR2UXJFUTYxSGRfMjRJY0ZoX0NoTlh2VURxcDM5R3pZbE8zRDB6bGF1NG96bGw4QmVMVVpySndIVFFXWlM4WFItRWlmQ2w0TVc1WTNZMVN4T0xySXhudWtDelF4TDdhR21jJnM9cEVzVDV6RWVieUN3MzhzeGNrdkM5RVZPNTJnMzhrcGc5RVhVTVlmcHNBQUhWQ0JwZ1RwdG1icUM4OE4xWmtPYWFIbkctU2hOMENrc2tiaFVKVU9meENvbGZEWW5lU1hLWTcwNDZoUVVkNDhsU09CcEV0cFNTSWJ5aVhrNjFRZ0ZseER3T0c4SEM1VU9NcXBya0FzcWRTandKZ0ttWTQ5OUtyNWtrRkJCWGpQc3RpY1dXM3RNUnYxQ25wWHBvRWdBMHZ5RXhjTzkybnpNdXUybFZzbEtIUjJxUkxfTmluM0FNMlBNN0ZlUnNwaWhsQVFMODBIWVBuLUhhQl8wQkZ0Z3hUT0lHb2RUREtuWUhSdmZpenF1TG92NEotV2FDTVpyb2RMSkNzQ0ZhTGl3WGxzbDhhVlhLM05HN0piUVVRSDA0dzBjYW1kUHhpNUtaZ2pjTmZQQ3VRJmg9MlBhbzNQVElJV3JxeXM4T2dqemRtVjhzVXZvcFp1MFV2UF9teEpES1VCUQ==", "RequestMethod": "GET", "RequestHeaders": { "x-ms-client-request-id": [ - "2291b59a-c01f-4f70-8628-573b7b4ad5b6" + "75c74ef9-5971-48bc-a8c5-83ea94f1e198" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Management.Batch.BatchManagementClient/3.6.4" + "OSVersion/Microsoft.Windows.10.0.26100", + "Microsoft.Azure.Management.Batch.BatchManagementClient/3.7.0" ] }, "RequestBody": "", @@ -246,10 +249,10 @@ "no-cache" ], "ETag": [ - "\"0x8DD0428CCF9073B\"" + "\"0x8DDF173A4CCDD3E\"" ], "x-ms-request-id": [ - "5f30606c-a0e8-4795-9eee-66df222a6e63" + "9df8015b-26fe-40cc-9bc9-aaa9551eaf05" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -257,6 +260,9 @@ "X-Content-Type-Options": [ "nosniff" ], + "x-ms-operation-identifier": [ + "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=ac839cc2-33ee-4879-a5b5-2895202ccb29/westus2/1ec4beb8-ceab-4298-ab6b-18a0467fec02" + ], "x-ms-ratelimit-remaining-subscription-reads": [ "1099" ], @@ -264,22 +270,22 @@ "16499" ], "x-ms-correlation-request-id": [ - "f99dcd63-e64a-4402-ba01-3f03720d954c" + "b6184ba8-904d-488f-af21-abe23046ea15" ], "x-ms-routing-request-id": [ - "EASTUS:20241113T211904Z:f99dcd63-e64a-4402-ba01-3f03720d954c" + "WESTUS2:20250911T204154Z:b6184ba8-904d-488f-af21-abe23046ea15" ], "X-Cache": [ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: 6FBE090934524CAC8C4BCF6E8C59679B Ref B: MNZ221060609009 Ref C: 2024-11-13T21:19:03Z" + "Ref A: 7D4438CC621B4FD0BFA1AC26F1270206 Ref B: CO6AA3150220051 Ref C: 2025-09-11T20:41:54Z" ], "Date": [ - "Wed, 13 Nov 2024 21:19:03 GMT" + "Thu, 11 Sep 2025 20:41:54 GMT" ], "Content-Length": [ - "4109" + "4788" ], "Content-Type": [ "application/json; charset=utf-8" @@ -288,27 +294,27 @@ "-1" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:19:04 GMT" + "Thu, 11 Sep 2025 20:41:54 GMT" ] }, - "ResponseBody": "{\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/ps5688/providers/Microsoft.Batch/batchAccounts/ps9576\",\r\n \"name\": \"ps9576\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"westus2\",\r\n \"properties\": {\r\n \"accountEndpoint\": \"ps9576.westus2.batch.azure.com\",\r\n \"nodeManagementEndpoint\": \"93cfa7d7-9319-4465-8f38-b9d28de7f75f.westus2.service.batch.azure.com\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"dedicatedCoreQuota\": 0,\r\n \"dedicatedCoreQuotaPerVMFamily\": [\r\n {\r\n \"name\": \"standardAv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardESv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardA0_A7Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardA8_A11Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardGFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"basicAFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVPromoFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCPromoFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHPromoFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardMSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardGSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNDSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHCSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBrsv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDAv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDASv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEAv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEASv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardMSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEIv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"Standard NCASv3_T4 Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardXEIDSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"Standard NDASv4_A100 Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standard NDAMSv4_A100Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDCSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNPSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFXMDVSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCADSA100v4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDADSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEADSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardNVADSA10v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEBDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHXFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLASv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCADSH100v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNGADSV620v1Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNDMI300Xv5IBFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCCadsH100v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardECasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardECadsv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDCasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDCadsv5Family\",\r\n \"coreQuota\": 0\r\n }\r\n ],\r\n \"dedicatedCoreQuotaPerVMFamilyEnforced\": true,\r\n \"lowPriorityCoreQuota\": 0,\r\n \"poolQuota\": 100,\r\n \"activeJobAndJobScheduleQuota\": 300,\r\n \"poolAllocationMode\": \"BatchService\",\r\n \"publicNetworkAccess\": \"Disabled\",\r\n \"privateEndpointConnections\": [],\r\n \"encryption\": {\r\n \"keySource\": \"Microsoft.Batch\"\r\n },\r\n \"allowedAuthenticationModes\": [\r\n \"SharedKey\",\r\n \"AAD\",\r\n \"TaskAuthenticationToken\"\r\n ]\r\n },\r\n \"identity\": {\r\n \"type\": \"None\"\r\n }\r\n}", + "ResponseBody": "{\r\n \"id\": \"/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps2289/providers/Microsoft.Batch/batchAccounts/ps5017\",\r\n \"name\": \"ps5017\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"westus2\",\r\n \"properties\": {\r\n \"accountEndpoint\": \"ps5017.westus2.batch.azure.com\",\r\n \"nodeManagementEndpoint\": \"cd38b5a7-261e-4c96-ae77-8c0467ea18b1.westus2.service.batch.azure.com\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"dedicatedCoreQuota\": 0,\r\n \"dedicatedCoreQuotaPerVMFamily\": [\r\n {\r\n \"name\": \"standardAv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardESv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardA0_A7Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardA8_A11Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardGFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"basicAFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVPromoFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCPromoFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHPromoFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardMSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardGSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNDSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHCSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBrsv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDAv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDASv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEAv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEASv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardMSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEIv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"Standard NCASv3_T4 Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardXEIDSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"Standard NDASv4_A100 Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standard NDAMSv4_A100Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDCSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNPSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFXMDVSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCADSA100v4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDADSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEADSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardNVADSA10v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEBDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHXFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLASv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCADSH100v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNGADSV620v1Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNDMI300Xv5IBFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCCadsH100v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardECasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardECadsv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDCasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDCadsv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVadsV710v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDlsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardDasv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardDalsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardEsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEav6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardFasv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardFalsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardFamsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEiasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDasv5Family\",\r\n \"coreQuota\": 0\r\n }\r\n ],\r\n \"dedicatedCoreQuotaPerVMFamilyEnforced\": true,\r\n \"lowPriorityCoreQuota\": 0,\r\n \"poolQuota\": 100,\r\n \"activeJobAndJobScheduleQuota\": 300,\r\n \"poolAllocationMode\": \"BatchService\",\r\n \"publicNetworkAccess\": \"Disabled\",\r\n \"privateEndpointConnections\": [],\r\n \"encryption\": {\r\n \"keySource\": \"Microsoft.Batch\"\r\n },\r\n \"allowedAuthenticationModes\": [\r\n \"SharedKey\",\r\n \"AAD\",\r\n \"TaskAuthenticationToken\"\r\n ]\r\n },\r\n \"identity\": {\r\n \"type\": \"None\"\r\n }\r\n}", "StatusCode": 200 }, { - "RequestUri": "/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/ps5688/providers/Microsoft.Network/virtualNetworks/myvnet?api-version=2024-03-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjFhYmQ2NzgtMThjNS00NjYwLTlmZGQtOGM1YmE2YjZmZTFmL3Jlc291cmNlR3JvdXBzL3BzNTY4OC9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvdmlydHVhbE5ldHdvcmtzL215dm5ldD9hcGktdmVyc2lvbj0yMDI0LTAzLTAx", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps2289/providers/Microsoft.Network/virtualNetworks/myvnet?api-version=2024-07-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL3BzMjI4OS9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvdmlydHVhbE5ldHdvcmtzL215dm5ldD9hcGktdmVyc2lvbj0yMDI0LTA3LTAx", "RequestMethod": "GET", "RequestHeaders": { - "x-ms-client-request-id": [ - "8a021c49-baa4-4bb7-a8a0-49b6a940dc2b" - ], "Accept-Language": [ "en-US" ], + "x-ms-client-request-id": [ + "aa3ca9e3-998b-47c5-91ec-858d258369ba" + ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Management.Network.NetworkManagementClient/27.0.0.0" ] }, @@ -324,13 +330,13 @@ "gateway" ], "x-ms-request-id": [ - "c875c901-6c26-4f42-8962-fddd624ff191" + "f4ad21a0-856f-420b-b996-a83673a83dc6" ], "x-ms-correlation-request-id": [ - "c875c901-6c26-4f42-8962-fddd624ff191" + "f4ad21a0-856f-420b-b996-a83673a83dc6" ], "x-ms-routing-request-id": [ - "EASTUS:20241113T211904Z:c875c901-6c26-4f42-8962-fddd624ff191" + "AUSTRALIAEAST:20250911T204156Z:f4ad21a0-856f-420b-b996-a83673a83dc6" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -342,10 +348,10 @@ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: BF9D9135654749CD9DCBC0B64F39D704 Ref B: MNZ221060618045 Ref C: 2024-11-13T21:19:04Z" + "Ref A: 06CA9A2810E540FEB14054397DC956CE Ref B: MWH011020806060 Ref C: 2025-09-11T20:41:55Z" ], "Date": [ - "Wed, 13 Nov 2024 21:19:04 GMT" + "Thu, 11 Sep 2025 20:41:56 GMT" ], "Content-Length": [ "218" @@ -357,21 +363,21 @@ "-1" ] }, - "ResponseBody": "{\r\n \"error\": {\r\n \"code\": \"ResourceNotFound\",\r\n \"message\": \"The Resource 'Microsoft.Network/virtualNetworks/myvnet' under resource group 'ps5688' was not found. For more details please go to https://aka.ms/ARMResourceNotFoundFix\"\r\n }\r\n}", + "ResponseBody": "{\r\n \"error\": {\r\n \"code\": \"ResourceNotFound\",\r\n \"message\": \"The Resource 'Microsoft.Network/virtualNetworks/myvnet' under resource group 'ps2289' was not found. For more details please go to https://aka.ms/ARMResourceNotFoundFix\"\r\n }\r\n}", "StatusCode": 404 }, { - "RequestUri": "/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/ps5688/providers/Microsoft.Network/virtualNetworks/myvnet?api-version=2024-03-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjFhYmQ2NzgtMThjNS00NjYwLTlmZGQtOGM1YmE2YjZmZTFmL3Jlc291cmNlR3JvdXBzL3BzNTY4OC9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvdmlydHVhbE5ldHdvcmtzL215dm5ldD9hcGktdmVyc2lvbj0yMDI0LTAzLTAx", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps2289/providers/Microsoft.Network/virtualNetworks/myvnet?api-version=2024-07-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL3BzMjI4OS9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvdmlydHVhbE5ldHdvcmtzL215dm5ldD9hcGktdmVyc2lvbj0yMDI0LTA3LTAx", "RequestMethod": "GET", "RequestHeaders": { "x-ms-client-request-id": [ - "8a021c49-baa4-4bb7-a8a0-49b6a940dc2b" + "aa3ca9e3-998b-47c5-91ec-858d258369ba" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Management.Network.NetworkManagementClient/27.0.0.0" ] }, @@ -384,16 +390,16 @@ "no-cache" ], "ETag": [ - "W/\"19817363-7390-4560-b08b-9ee02a9d5a5c\"" + "W/\"cde2e2d1-97f4-458d-ad7c-351ffb250a14\"" ], "x-ms-request-id": [ - "f7afb1ba-3d0f-4da0-b7b0-5f84ab427464" + "2c75fbfe-d5f3-41e0-98e1-53c3df790b71" ], "x-ms-correlation-request-id": [ - "8daba784-8cdf-4c8a-a916-f1c0c0e55e78" + "8d4fcc87-5f5c-40d3-9ada-a15c0e4cf9b7" ], "x-ms-arm-service-request-id": [ - "6d33f36c-7967-41c8-94d5-944204ea3ad2" + "93169b9d-379d-4892-8623-949a3adc86f6" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -405,7 +411,7 @@ "16499" ], "x-ms-routing-request-id": [ - "EASTUS:20241113T211910Z:8daba784-8cdf-4c8a-a916-f1c0c0e55e78" + "AUSTRALIAEAST:20250911T204205Z:8d4fcc87-5f5c-40d3-9ada-a15c0e4cf9b7" ], "X-Content-Type-Options": [ "nosniff" @@ -414,10 +420,10 @@ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: 59017652BA0C4F49AEC24F4CBCB50D12 Ref B: MNZ221060618045 Ref C: 2024-11-13T21:19:10Z" + "Ref A: B77D46352E8740D09A627CA15AF322CC Ref B: MWH011020806060 Ref C: 2025-09-11T20:42:05Z" ], "Date": [ - "Wed, 13 Nov 2024 21:19:10 GMT" + "Thu, 11 Sep 2025 20:42:05 GMT" ], "Content-Length": [ "1005" @@ -429,24 +435,24 @@ "-1" ] }, - "ResponseBody": "{\r\n \"name\": \"myvnet\",\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/ps5688/providers/Microsoft.Network/virtualNetworks/myvnet\",\r\n \"etag\": \"W/\\\"19817363-7390-4560-b08b-9ee02a9d5a5c\\\"\",\r\n \"type\": \"Microsoft.Network/virtualNetworks\",\r\n \"location\": \"westus2\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"resourceGuid\": \"ff01d67f-3d03-42d5-80bd-4aeb1f77c5ea\",\r\n \"addressSpace\": {\r\n \"addressPrefixes\": [\r\n \"11.0.0.0/16\"\r\n ]\r\n },\r\n \"privateEndpointVNetPolicies\": \"Disabled\",\r\n \"subnets\": [\r\n {\r\n \"name\": \"mysubnet\",\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/ps5688/providers/Microsoft.Network/virtualNetworks/myvnet/subnets/mysubnet\",\r\n \"etag\": \"W/\\\"19817363-7390-4560-b08b-9ee02a9d5a5c\\\"\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"addressPrefix\": \"11.0.1.0/24\",\r\n \"serviceEndpoints\": [],\r\n \"delegations\": [],\r\n \"privateEndpointNetworkPolicies\": \"Disabled\",\r\n \"privateLinkServiceNetworkPolicies\": \"Enabled\"\r\n },\r\n \"type\": \"Microsoft.Network/virtualNetworks/subnets\"\r\n }\r\n ],\r\n \"virtualNetworkPeerings\": [],\r\n \"enableDdosProtection\": false\r\n }\r\n}", + "ResponseBody": "{\r\n \"name\": \"myvnet\",\r\n \"id\": \"/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps2289/providers/Microsoft.Network/virtualNetworks/myvnet\",\r\n \"etag\": \"W/\\\"cde2e2d1-97f4-458d-ad7c-351ffb250a14\\\"\",\r\n \"type\": \"Microsoft.Network/virtualNetworks\",\r\n \"location\": \"westus2\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"resourceGuid\": \"9931cee3-f44f-416a-b8bf-f29c262dd753\",\r\n \"addressSpace\": {\r\n \"addressPrefixes\": [\r\n \"11.0.0.0/16\"\r\n ]\r\n },\r\n \"privateEndpointVNetPolicies\": \"Disabled\",\r\n \"subnets\": [\r\n {\r\n \"name\": \"mysubnet\",\r\n \"id\": \"/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps2289/providers/Microsoft.Network/virtualNetworks/myvnet/subnets/mysubnet\",\r\n \"etag\": \"W/\\\"cde2e2d1-97f4-458d-ad7c-351ffb250a14\\\"\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"addressPrefix\": \"11.0.1.0/24\",\r\n \"serviceEndpoints\": [],\r\n \"delegations\": [],\r\n \"privateEndpointNetworkPolicies\": \"Disabled\",\r\n \"privateLinkServiceNetworkPolicies\": \"Enabled\"\r\n },\r\n \"type\": \"Microsoft.Network/virtualNetworks/subnets\"\r\n }\r\n ],\r\n \"virtualNetworkPeerings\": [],\r\n \"enableDdosProtection\": false\r\n }\r\n}", "StatusCode": 200 }, { - "RequestUri": "/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/ps5688/providers/Microsoft.Network/virtualNetworks/myvnet?api-version=2024-03-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjFhYmQ2NzgtMThjNS00NjYwLTlmZGQtOGM1YmE2YjZmZTFmL3Jlc291cmNlR3JvdXBzL3BzNTY4OC9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvdmlydHVhbE5ldHdvcmtzL215dm5ldD9hcGktdmVyc2lvbj0yMDI0LTAzLTAx", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps2289/providers/Microsoft.Network/virtualNetworks/myvnet?api-version=2024-07-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL3BzMjI4OS9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvdmlydHVhbE5ldHdvcmtzL215dm5ldD9hcGktdmVyc2lvbj0yMDI0LTA3LTAx", "RequestMethod": "GET", "RequestHeaders": { - "x-ms-client-request-id": [ - "8a021c49-baa4-4bb7-a8a0-49b6a940dc2b" - ], "Accept-Language": [ "en-US" ], + "x-ms-client-request-id": [ + "aa3ca9e3-998b-47c5-91ec-858d258369ba" + ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Management.Network.NetworkManagementClient/27.0.0.0" ] }, @@ -459,16 +465,16 @@ "no-cache" ], "ETag": [ - "W/\"19817363-7390-4560-b08b-9ee02a9d5a5c\"" + "W/\"cde2e2d1-97f4-458d-ad7c-351ffb250a14\"" ], "x-ms-request-id": [ - "5116b1bd-138c-41de-b524-fc9144d59fd5" + "e4d6d7d0-df15-406a-9740-cae881379983" ], "x-ms-correlation-request-id": [ - "311c9b99-780f-47c0-a967-0f7dee9805fa" + "ad3fa8c5-49c7-48bd-b16d-2526606cab33" ], "x-ms-arm-service-request-id": [ - "96fa3c52-c265-4ec9-9058-f80467a9920c" + "bfe30765-094d-4794-b327-4b803fb72e64" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -480,7 +486,7 @@ "16499" ], "x-ms-routing-request-id": [ - "EASTUS:20241113T211910Z:311c9b99-780f-47c0-a967-0f7dee9805fa" + "AUSTRALIAEAST:20250911T204206Z:ad3fa8c5-49c7-48bd-b16d-2526606cab33" ], "X-Content-Type-Options": [ "nosniff" @@ -489,10 +495,10 @@ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: C92693E2183044A3BD977BCB3C603DF0 Ref B: MNZ221060618045 Ref C: 2024-11-13T21:19:10Z" + "Ref A: 45536ECD13874A4B9C17591A181C6302 Ref B: MWH011020806060 Ref C: 2025-09-11T20:42:05Z" ], "Date": [ - "Wed, 13 Nov 2024 21:19:10 GMT" + "Thu, 11 Sep 2025 20:42:06 GMT" ], "Content-Length": [ "1005" @@ -504,24 +510,24 @@ "-1" ] }, - "ResponseBody": "{\r\n \"name\": \"myvnet\",\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/ps5688/providers/Microsoft.Network/virtualNetworks/myvnet\",\r\n \"etag\": \"W/\\\"19817363-7390-4560-b08b-9ee02a9d5a5c\\\"\",\r\n \"type\": \"Microsoft.Network/virtualNetworks\",\r\n \"location\": \"westus2\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"resourceGuid\": \"ff01d67f-3d03-42d5-80bd-4aeb1f77c5ea\",\r\n \"addressSpace\": {\r\n \"addressPrefixes\": [\r\n \"11.0.0.0/16\"\r\n ]\r\n },\r\n \"privateEndpointVNetPolicies\": \"Disabled\",\r\n \"subnets\": [\r\n {\r\n \"name\": \"mysubnet\",\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/ps5688/providers/Microsoft.Network/virtualNetworks/myvnet/subnets/mysubnet\",\r\n \"etag\": \"W/\\\"19817363-7390-4560-b08b-9ee02a9d5a5c\\\"\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"addressPrefix\": \"11.0.1.0/24\",\r\n \"serviceEndpoints\": [],\r\n \"delegations\": [],\r\n \"privateEndpointNetworkPolicies\": \"Disabled\",\r\n \"privateLinkServiceNetworkPolicies\": \"Enabled\"\r\n },\r\n \"type\": \"Microsoft.Network/virtualNetworks/subnets\"\r\n }\r\n ],\r\n \"virtualNetworkPeerings\": [],\r\n \"enableDdosProtection\": false\r\n }\r\n}", + "ResponseBody": "{\r\n \"name\": \"myvnet\",\r\n \"id\": \"/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps2289/providers/Microsoft.Network/virtualNetworks/myvnet\",\r\n \"etag\": \"W/\\\"cde2e2d1-97f4-458d-ad7c-351ffb250a14\\\"\",\r\n \"type\": \"Microsoft.Network/virtualNetworks\",\r\n \"location\": \"westus2\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"resourceGuid\": \"9931cee3-f44f-416a-b8bf-f29c262dd753\",\r\n \"addressSpace\": {\r\n \"addressPrefixes\": [\r\n \"11.0.0.0/16\"\r\n ]\r\n },\r\n \"privateEndpointVNetPolicies\": \"Disabled\",\r\n \"subnets\": [\r\n {\r\n \"name\": \"mysubnet\",\r\n \"id\": \"/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps2289/providers/Microsoft.Network/virtualNetworks/myvnet/subnets/mysubnet\",\r\n \"etag\": \"W/\\\"cde2e2d1-97f4-458d-ad7c-351ffb250a14\\\"\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"addressPrefix\": \"11.0.1.0/24\",\r\n \"serviceEndpoints\": [],\r\n \"delegations\": [],\r\n \"privateEndpointNetworkPolicies\": \"Disabled\",\r\n \"privateLinkServiceNetworkPolicies\": \"Enabled\"\r\n },\r\n \"type\": \"Microsoft.Network/virtualNetworks/subnets\"\r\n }\r\n ],\r\n \"virtualNetworkPeerings\": [],\r\n \"enableDdosProtection\": false\r\n }\r\n}", "StatusCode": 200 }, { - "RequestUri": "/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/ps5688/providers/Microsoft.Network/virtualNetworks/myvnet?api-version=2024-03-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjFhYmQ2NzgtMThjNS00NjYwLTlmZGQtOGM1YmE2YjZmZTFmL3Jlc291cmNlR3JvdXBzL3BzNTY4OC9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvdmlydHVhbE5ldHdvcmtzL215dm5ldD9hcGktdmVyc2lvbj0yMDI0LTAzLTAx", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps2289/providers/Microsoft.Network/virtualNetworks/myvnet?api-version=2024-07-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL3BzMjI4OS9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvdmlydHVhbE5ldHdvcmtzL215dm5ldD9hcGktdmVyc2lvbj0yMDI0LTA3LTAx", "RequestMethod": "GET", "RequestHeaders": { - "x-ms-client-request-id": [ - "bbad54cb-faa8-486e-b9b5-486749f5773c" - ], "Accept-Language": [ "en-US" ], + "x-ms-client-request-id": [ + "f7d95def-c4d1-45dd-81c2-6e99da7e2310" + ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Management.Network.NetworkManagementClient/27.0.0.0" ] }, @@ -534,16 +540,16 @@ "no-cache" ], "ETag": [ - "W/\"19817363-7390-4560-b08b-9ee02a9d5a5c\"" + "W/\"cde2e2d1-97f4-458d-ad7c-351ffb250a14\"" ], "x-ms-request-id": [ - "7c729705-a52c-43c8-913f-964e9c6a904e" + "448a5f9f-c72b-4bf2-b6c5-475c6a14d7d8" ], "x-ms-correlation-request-id": [ - "c029b3b9-2867-44a9-bfaf-beb27ee50403" + "b5c28974-6915-4e16-a125-7508717d6112" ], "x-ms-arm-service-request-id": [ - "7292f5e4-f4f4-4471-af4a-2b236435f14f" + "1657f8fa-1d21-41c2-b2b0-7d5c4749d2c6" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -555,7 +561,7 @@ "16499" ], "x-ms-routing-request-id": [ - "EASTUS:20241113T211910Z:c029b3b9-2867-44a9-bfaf-beb27ee50403" + "AUSTRALIAEAST:20250911T204207Z:b5c28974-6915-4e16-a125-7508717d6112" ], "X-Content-Type-Options": [ "nosniff" @@ -564,10 +570,10 @@ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: EE9EF73E86F6426F99A56A5C4FD96491 Ref B: MNZ221060618045 Ref C: 2024-11-13T21:19:10Z" + "Ref A: 1656D516D1D94D87AD66A2321675D42A Ref B: MWH011020806060 Ref C: 2025-09-11T20:42:06Z" ], "Date": [ - "Wed, 13 Nov 2024 21:19:10 GMT" + "Thu, 11 Sep 2025 20:42:06 GMT" ], "Content-Length": [ "1005" @@ -579,34 +585,34 @@ "-1" ] }, - "ResponseBody": "{\r\n \"name\": \"myvnet\",\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/ps5688/providers/Microsoft.Network/virtualNetworks/myvnet\",\r\n \"etag\": \"W/\\\"19817363-7390-4560-b08b-9ee02a9d5a5c\\\"\",\r\n \"type\": \"Microsoft.Network/virtualNetworks\",\r\n \"location\": \"westus2\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"resourceGuid\": \"ff01d67f-3d03-42d5-80bd-4aeb1f77c5ea\",\r\n \"addressSpace\": {\r\n \"addressPrefixes\": [\r\n \"11.0.0.0/16\"\r\n ]\r\n },\r\n \"privateEndpointVNetPolicies\": \"Disabled\",\r\n \"subnets\": [\r\n {\r\n \"name\": \"mysubnet\",\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/ps5688/providers/Microsoft.Network/virtualNetworks/myvnet/subnets/mysubnet\",\r\n \"etag\": \"W/\\\"19817363-7390-4560-b08b-9ee02a9d5a5c\\\"\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"addressPrefix\": \"11.0.1.0/24\",\r\n \"serviceEndpoints\": [],\r\n \"delegations\": [],\r\n \"privateEndpointNetworkPolicies\": \"Disabled\",\r\n \"privateLinkServiceNetworkPolicies\": \"Enabled\"\r\n },\r\n \"type\": \"Microsoft.Network/virtualNetworks/subnets\"\r\n }\r\n ],\r\n \"virtualNetworkPeerings\": [],\r\n \"enableDdosProtection\": false\r\n }\r\n}", + "ResponseBody": "{\r\n \"name\": \"myvnet\",\r\n \"id\": \"/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps2289/providers/Microsoft.Network/virtualNetworks/myvnet\",\r\n \"etag\": \"W/\\\"cde2e2d1-97f4-458d-ad7c-351ffb250a14\\\"\",\r\n \"type\": \"Microsoft.Network/virtualNetworks\",\r\n \"location\": \"westus2\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"resourceGuid\": \"9931cee3-f44f-416a-b8bf-f29c262dd753\",\r\n \"addressSpace\": {\r\n \"addressPrefixes\": [\r\n \"11.0.0.0/16\"\r\n ]\r\n },\r\n \"privateEndpointVNetPolicies\": \"Disabled\",\r\n \"subnets\": [\r\n {\r\n \"name\": \"mysubnet\",\r\n \"id\": \"/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps2289/providers/Microsoft.Network/virtualNetworks/myvnet/subnets/mysubnet\",\r\n \"etag\": \"W/\\\"cde2e2d1-97f4-458d-ad7c-351ffb250a14\\\"\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"addressPrefix\": \"11.0.1.0/24\",\r\n \"serviceEndpoints\": [],\r\n \"delegations\": [],\r\n \"privateEndpointNetworkPolicies\": \"Disabled\",\r\n \"privateLinkServiceNetworkPolicies\": \"Enabled\"\r\n },\r\n \"type\": \"Microsoft.Network/virtualNetworks/subnets\"\r\n }\r\n ],\r\n \"virtualNetworkPeerings\": [],\r\n \"enableDdosProtection\": false\r\n }\r\n}", "StatusCode": 200 }, { - "RequestUri": "/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/ps5688/providers/Microsoft.Network/virtualNetworks/myvnet?api-version=2024-03-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjFhYmQ2NzgtMThjNS00NjYwLTlmZGQtOGM1YmE2YjZmZTFmL3Jlc291cmNlR3JvdXBzL3BzNTY4OC9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvdmlydHVhbE5ldHdvcmtzL215dm5ldD9hcGktdmVyc2lvbj0yMDI0LTAzLTAx", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps2289/providers/Microsoft.Network/virtualNetworks/myvnet?api-version=2024-07-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL3BzMjI4OS9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvdmlydHVhbE5ldHdvcmtzL215dm5ldD9hcGktdmVyc2lvbj0yMDI0LTA3LTAx", "RequestMethod": "PUT", "RequestHeaders": { - "x-ms-client-request-id": [ - "8a021c49-baa4-4bb7-a8a0-49b6a940dc2b" - ], "Accept-Language": [ "en-US" ], + "x-ms-client-request-id": [ + "aa3ca9e3-998b-47c5-91ec-858d258369ba" + ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Management.Network.NetworkManagementClient/27.0.0.0" ], "Content-Type": [ "application/json; charset=utf-8" ], "Content-Length": [ - "734" + "818" ] }, - "RequestBody": "{\r\n \"properties\": {\r\n \"addressSpace\": {\r\n \"addressPrefixes\": [\r\n \"11.0.0.0/16\"\r\n ]\r\n },\r\n \"subnets\": [\r\n {\r\n \"name\": \"mysubnet\",\r\n \"properties\": {\r\n \"addressPrefix\": \"11.0.1.0/24\",\r\n \"addressPrefixes\": [],\r\n \"serviceEndpoints\": [],\r\n \"serviceEndpointPolicies\": [],\r\n \"ipAllocations\": [],\r\n \"delegations\": [],\r\n \"privateEndpointNetworkPolicies\": \"Disabled\",\r\n \"privateLinkServiceNetworkPolicies\": \"Enabled\",\r\n \"applicationGatewayIPConfigurations\": []\r\n }\r\n }\r\n ],\r\n \"virtualNetworkPeerings\": [],\r\n \"enableDdosProtection\": false,\r\n \"ipAllocations\": []\r\n },\r\n \"location\": \"westus2\"\r\n}", + "RequestBody": "{\r\n \"properties\": {\r\n \"addressSpace\": {\r\n \"addressPrefixes\": [\r\n \"11.0.0.0/16\"\r\n ],\r\n \"ipamPoolPrefixAllocations\": []\r\n },\r\n \"subnets\": [\r\n {\r\n \"name\": \"mysubnet\",\r\n \"properties\": {\r\n \"addressPrefix\": \"11.0.1.0/24\",\r\n \"addressPrefixes\": [],\r\n \"serviceEndpoints\": [],\r\n \"serviceEndpointPolicies\": [],\r\n \"ipAllocations\": [],\r\n \"delegations\": [],\r\n \"privateEndpointNetworkPolicies\": \"Disabled\",\r\n \"privateLinkServiceNetworkPolicies\": \"Enabled\",\r\n \"applicationGatewayIPConfigurations\": [],\r\n \"ipamPoolPrefixAllocations\": []\r\n }\r\n }\r\n ],\r\n \"virtualNetworkPeerings\": [],\r\n \"enableDdosProtection\": false,\r\n \"ipAllocations\": []\r\n },\r\n \"location\": \"westus2\"\r\n}", "ResponseHeaders": { "Cache-Control": [ "no-cache" @@ -618,23 +624,26 @@ "3" ], "x-ms-request-id": [ - "44eb6dbd-f397-44e1-b932-5a2894ca6fd9" + "e138b4e9-685f-46df-ac54-b25f8dc5fdd5" ], "Azure-AsyncOperation": [ - "https://management.azure.com/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/providers/Microsoft.Network/locations/westus2/operations/44eb6dbd-f397-44e1-b932-5a2894ca6fd9?api-version=2024-03-01&t=638671295468618005&c=MIIHhzCCBm-gAwIBAgITHgVqhF9GOoUjuyqQWAAABWqEXzANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDYwHhcNMjQwOTIwMjMxMTQxWhcNMjUwMzE5MjMxMTQxWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKRtcYDBXS7zz5tRtvVyhrUAjudYhej1E2D3dp6XWuPdbVMbQZwMlye8vdT-kDhFD7T2mrdWqsoGnTGk0_xOHBfLGnW-0QRUqpeoTNIhu8vc2CfTUtm2t2s_-fzvFtRyhDA4mfCH1cz92EVj0vd3FD4ikW6bdOp1NkYFqUVBhKlbvJk6y-TbLFBLP5Zx4m0Ua-_P7aMzbgvOJgMOTC2jLs5w_lFDJWeP3IKUOiJmrfLpf4ey5Ov94oCE6YncDBSHJZKWcrSxDHgSz9AXrxarL4HLajGbF3MRvfkMN2gNXCoiJXBEqCLDnyQZ0BgXIvuK7vG8Rj0TyhJNj-QPr8taY6UCAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAyLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA2LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MB0GA1UdDgQWBBRKlJQpFyyZKSchkTlshetYOUX7xzAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBTxRmjG8cPwKy19i2rhsvm-NfzRQTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAG0WbzLPsmSSMI7aTe2npixmkdCmwcdZHGd43tUnB8JKrLNJEFcBsQmbcIH0adpnQNrDgRkNBBOTZ4s1LIBlRQapZpPsRItAMUguVpGVRH08T0i43w9xrp_clNbAJrrfRbmYroF0WJKMJ0nwW2rPjxdevSRygGK_nEfywwFi-p1RhHnkiEGL4GnP7PpQcRvAYMdH9LO5MRY7iLbBmosKatS_eWtSJD1CvzglNwy_vQzx81Vnk0CgndqXcVq-loGu7R4U7mkQ2NNqLbp447STxkpP-6Mdyv8J4bdnf1s3vFBNpgvJWKogWcNLlo8jnkbEf6RPNGe1W5lma7JwMKAcPzY&s=Q7jWl_IXLscXeW-1f_YsoT5B6lGQh6ileWBrO7NPb5QAnJ5DlXFGOV0tNxjXovfAetz1-K9ESxH9FR-u3kUF6qmOS68_S6bL_jS2V84au06hJq6fhcsi-lYy5BMBWqoQgaMvGMF6CZpLJT_WV65uR8tbQY10od-TvRGU-L91QIWf9DwGLfvMfnkSb5pFov7-SmfHqpXkxp6P89orpQehA-uolDjo1YkM6zgkRMrF5Kkc4dYNiU22yo9zG1PbRdy5bH-ZgISvtBlOLY5M4dwMikKgZu2JwM6smhSGAmpB3Z4P8Iho6tOvhL7ozhbEbizMDu-fu3GaE48ie0Rixbm-Fw&h=KuJMzF9udcUih7T1hgKfaDE3AvvpmcHbfyCfs-U8BYc" + "https://management.azure.com/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/providers/Microsoft.Network/locations/westus2/operations/e138b4e9-685f-46df-ac54-b25f8dc5fdd5?api-version=2024-07-01&t=638932201214154753&c=MIIHhzCCBm-gAwIBAgITfAiEqRZrgLhPwkUvfgAACISpFjANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDUwHhcNMjUwNzE5MTUxNTU3WhcNMjYwMTE1MTUxNTU3WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANo8JkuCSyYzxbK-6GTWYze3gfPX3W0gGXDNABI0DpWEhe9om3se5tziu1JvncajCytpTguwrHlK0rcquzbDXXvHhbsY73edSvO92c2ADuvWEnNdsmm_eToLFsXFZjZMhgj9jD_wnJ6L9KtxBHW6hwaA6YgFKE3lyA5TXmiyo15CLkHFj02CX4NB1cTIN15yGoCxLyB-Zr3jEH0xfMCQPYlmSTwuQvC4UWEndUzZd_Y-HLo959DU-Ug61g41JksM4dzdEHw2_Yew_EDtac3ERKzqVKC1GxTNXLELU_LFkPdkKBi-JGTX5MxlXWEAVL1gSKy4C0lslOvMVICJ0D5ZPTECAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9DTzFQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA1LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MB0GA1UdDgQWBBTHBRf8ZL9wY__HzSsEXGXuVL8aEDAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBR61hmFKHlscXYeYPjzS--iBUIWHTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAIsWwSMOlrjb5kZTgKGXSVnDyLsC7qm2NFBdhoNUtOxSB-TF88cKGPhwNx59_1_GhsNjXldjQVJ1seRL3Dxf55jqzfXeFBQAIHIRsR8-WJPTpZ3VtWewO_Qvh9h7Bd-gfA0pRXw3Hq4eRpBmAf7gfOki1W-7-m3cozATlPCkEWnBM4qRujLuiQX_Q3tfok25Wmnyq_KkG_0VC3JVUvJnkKpv1qRHWahwVo1wzWyJIoaxA7T0oOonf6ZN3j8AyT_VGFDRmvLuvakI8huZgSbjWvWFT6bx7NRTo6YHkHb5COr1PJTbhpDS-PSv5Ud3SFTnLAZyd3oRW-Lp3Fo6RFoNgBs&s=W3ApDOmAwk_NKkNjLlJdcAWLaRfnpZQ1Iczwn8sofw6wrE8etpnZHq_XAAfPZB2f3Lv0_V7amsTvqvW5D0aYoMeMEwqQY6UzxM2HF_vYfHWplUIfQcIpRkKlDTVo5l1lh_tw7-mw06x1nhT3JrLyfzfli7wFZpj3G6k3k0FvZMClcuX5yVe8yfQkslDYbh8QCJ92uAwAeanJXwXBa_pYfECXjC4kH2-JqGLCYMhyWRhJNyq8QZkCFg2cX8TLrTgCzSL80o4C9h3doWkf8K0L8cu-U8fZ2n1HN1tL8i6PpygwI70VgFUosK9ruv7qDBq7-XzbeP8saHcwR9XEuFnb_w&h=AM2b1SlsjeiObSvQMd6C6KnEE1zmosNbIEYIzIIBmpM" ], "x-ms-correlation-request-id": [ - "71ced1b5-d1d4-4aa2-999b-ae3eb82f4cdd" + "f8f9b1e7-ee6a-4538-8588-2ad80c5d2946" ], - "azure-asyncnotification": [ + "Azure-AsyncNotification": [ "Enabled" ], "x-ms-arm-service-request-id": [ - "d0117761-3179-43be-b813-10172b6de5a9" + "c3e26307-c9a0-474c-8051-4b3ca9fb512d" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], + "x-ms-operation-identifier": [ + "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=ac839cc2-33ee-4879-a5b5-2895202ccb29/australiaeast/298c72af-cf28-45eb-a552-a7ab0f3c82e2" + ], "x-ms-ratelimit-remaining-subscription-writes": [ "799" ], @@ -642,7 +651,7 @@ "11999" ], "x-ms-routing-request-id": [ - "EASTUS:20241113T211906Z:71ced1b5-d1d4-4aa2-999b-ae3eb82f4cdd" + "AUSTRALIAEAST:20250911T204201Z:f8f9b1e7-ee6a-4538-8588-2ad80c5d2946" ], "X-Content-Type-Options": [ "nosniff" @@ -651,10 +660,10 @@ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: 896ED603C3214E3FAE93B7BAFE5BDC8B Ref B: MNZ221060618045 Ref C: 2024-11-13T21:19:05Z" + "Ref A: 935354C9EA52421788FAE8CBD35C071A Ref B: MWH011020806060 Ref C: 2025-09-11T20:41:58Z" ], "Date": [ - "Wed, 13 Nov 2024 21:19:06 GMT" + "Thu, 11 Sep 2025 20:42:01 GMT" ], "Content-Length": [ "1003" @@ -666,21 +675,21 @@ "-1" ] }, - "ResponseBody": "{\r\n \"name\": \"myvnet\",\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/ps5688/providers/Microsoft.Network/virtualNetworks/myvnet\",\r\n \"etag\": \"W/\\\"eff7f9c8-f5b7-4e01-9418-0b78f3a86fd6\\\"\",\r\n \"type\": \"Microsoft.Network/virtualNetworks\",\r\n \"location\": \"westus2\",\r\n \"properties\": {\r\n \"provisioningState\": \"Updating\",\r\n \"resourceGuid\": \"ff01d67f-3d03-42d5-80bd-4aeb1f77c5ea\",\r\n \"addressSpace\": {\r\n \"addressPrefixes\": [\r\n \"11.0.0.0/16\"\r\n ]\r\n },\r\n \"privateEndpointVNetPolicies\": \"Disabled\",\r\n \"subnets\": [\r\n {\r\n \"name\": \"mysubnet\",\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/ps5688/providers/Microsoft.Network/virtualNetworks/myvnet/subnets/mysubnet\",\r\n \"etag\": \"W/\\\"eff7f9c8-f5b7-4e01-9418-0b78f3a86fd6\\\"\",\r\n \"properties\": {\r\n \"provisioningState\": \"Updating\",\r\n \"addressPrefix\": \"11.0.1.0/24\",\r\n \"serviceEndpoints\": [],\r\n \"delegations\": [],\r\n \"privateEndpointNetworkPolicies\": \"Disabled\",\r\n \"privateLinkServiceNetworkPolicies\": \"Enabled\"\r\n },\r\n \"type\": \"Microsoft.Network/virtualNetworks/subnets\"\r\n }\r\n ],\r\n \"virtualNetworkPeerings\": [],\r\n \"enableDdosProtection\": false\r\n }\r\n}", + "ResponseBody": "{\r\n \"name\": \"myvnet\",\r\n \"id\": \"/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps2289/providers/Microsoft.Network/virtualNetworks/myvnet\",\r\n \"etag\": \"W/\\\"56a405a7-5d95-4c4b-98f3-18599e6b4b3e\\\"\",\r\n \"type\": \"Microsoft.Network/virtualNetworks\",\r\n \"location\": \"westus2\",\r\n \"properties\": {\r\n \"provisioningState\": \"Updating\",\r\n \"resourceGuid\": \"9931cee3-f44f-416a-b8bf-f29c262dd753\",\r\n \"addressSpace\": {\r\n \"addressPrefixes\": [\r\n \"11.0.0.0/16\"\r\n ]\r\n },\r\n \"privateEndpointVNetPolicies\": \"Disabled\",\r\n \"subnets\": [\r\n {\r\n \"name\": \"mysubnet\",\r\n \"id\": \"/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps2289/providers/Microsoft.Network/virtualNetworks/myvnet/subnets/mysubnet\",\r\n \"etag\": \"W/\\\"56a405a7-5d95-4c4b-98f3-18599e6b4b3e\\\"\",\r\n \"properties\": {\r\n \"provisioningState\": \"Updating\",\r\n \"addressPrefix\": \"11.0.1.0/24\",\r\n \"serviceEndpoints\": [],\r\n \"delegations\": [],\r\n \"privateEndpointNetworkPolicies\": \"Disabled\",\r\n \"privateLinkServiceNetworkPolicies\": \"Enabled\"\r\n },\r\n \"type\": \"Microsoft.Network/virtualNetworks/subnets\"\r\n }\r\n ],\r\n \"virtualNetworkPeerings\": [],\r\n \"enableDdosProtection\": false\r\n }\r\n}", "StatusCode": 201 }, { - "RequestUri": "/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/providers/Microsoft.Network/locations/westus2/operations/44eb6dbd-f397-44e1-b932-5a2894ca6fd9?api-version=2024-03-01&t=638671295468618005&c=MIIHhzCCBm-gAwIBAgITHgVqhF9GOoUjuyqQWAAABWqEXzANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDYwHhcNMjQwOTIwMjMxMTQxWhcNMjUwMzE5MjMxMTQxWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKRtcYDBXS7zz5tRtvVyhrUAjudYhej1E2D3dp6XWuPdbVMbQZwMlye8vdT-kDhFD7T2mrdWqsoGnTGk0_xOHBfLGnW-0QRUqpeoTNIhu8vc2CfTUtm2t2s_-fzvFtRyhDA4mfCH1cz92EVj0vd3FD4ikW6bdOp1NkYFqUVBhKlbvJk6y-TbLFBLP5Zx4m0Ua-_P7aMzbgvOJgMOTC2jLs5w_lFDJWeP3IKUOiJmrfLpf4ey5Ov94oCE6YncDBSHJZKWcrSxDHgSz9AXrxarL4HLajGbF3MRvfkMN2gNXCoiJXBEqCLDnyQZ0BgXIvuK7vG8Rj0TyhJNj-QPr8taY6UCAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAyLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA2LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MB0GA1UdDgQWBBRKlJQpFyyZKSchkTlshetYOUX7xzAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBTxRmjG8cPwKy19i2rhsvm-NfzRQTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAG0WbzLPsmSSMI7aTe2npixmkdCmwcdZHGd43tUnB8JKrLNJEFcBsQmbcIH0adpnQNrDgRkNBBOTZ4s1LIBlRQapZpPsRItAMUguVpGVRH08T0i43w9xrp_clNbAJrrfRbmYroF0WJKMJ0nwW2rPjxdevSRygGK_nEfywwFi-p1RhHnkiEGL4GnP7PpQcRvAYMdH9LO5MRY7iLbBmosKatS_eWtSJD1CvzglNwy_vQzx81Vnk0CgndqXcVq-loGu7R4U7mkQ2NNqLbp447STxkpP-6Mdyv8J4bdnf1s3vFBNpgvJWKogWcNLlo8jnkbEf6RPNGe1W5lma7JwMKAcPzY&s=Q7jWl_IXLscXeW-1f_YsoT5B6lGQh6ileWBrO7NPb5QAnJ5DlXFGOV0tNxjXovfAetz1-K9ESxH9FR-u3kUF6qmOS68_S6bL_jS2V84au06hJq6fhcsi-lYy5BMBWqoQgaMvGMF6CZpLJT_WV65uR8tbQY10od-TvRGU-L91QIWf9DwGLfvMfnkSb5pFov7-SmfHqpXkxp6P89orpQehA-uolDjo1YkM6zgkRMrF5Kkc4dYNiU22yo9zG1PbRdy5bH-ZgISvtBlOLY5M4dwMikKgZu2JwM6smhSGAmpB3Z4P8Iho6tOvhL7ozhbEbizMDu-fu3GaE48ie0Rixbm-Fw&h=KuJMzF9udcUih7T1hgKfaDE3AvvpmcHbfyCfs-U8BYc", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjFhYmQ2NzgtMThjNS00NjYwLTlmZGQtOGM1YmE2YjZmZTFmL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay9sb2NhdGlvbnMvd2VzdHVzMi9vcGVyYXRpb25zLzQ0ZWI2ZGJkLWYzOTctNDRlMS1iOTMyLTVhMjg5NGNhNmZkOT9hcGktdmVyc2lvbj0yMDI0LTAzLTAxJnQ9NjM4NjcxMjk1NDY4NjE4MDA1JmM9TUlJSGh6Q0NCbS1nQXdJQkFnSVRIZ1ZxaEY5R09vVWp1eXFRV0FBQUJXcUVYekFOQmdrcWhraUc5dzBCQVFzRkFEQkVNUk13RVFZS0NaSW1pWlB5TEdRQkdSWURSMEpNTVJNd0VRWUtDWkltaVpQeUxHUUJHUllEUVUxRk1SZ3dGZ1lEVlFRREV3OUJUVVVnU1c1bWNtRWdRMEVnTURZd0hoY05NalF3T1RJd01qTXhNVFF4V2hjTk1qVXdNekU1TWpNeE1UUXhXakJBTVQ0d1BBWURWUVFERXpWaGMzbHVZMjl3WlhKaGRHbHZibk5wWjI1cGJtZGpaWEowYVdacFkyRjBaUzV0WVc1aFoyVnRaVzUwTG1GNmRYSmxMbU52YlRDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBS1J0Y1lEQlhTN3p6NXRSdHZWeWhyVUFqdWRZaGVqMUUyRDNkcDZYV3VQZGJWTWJRWndNbHllOHZkVC1rRGhGRDdUMm1yZFdxc29HblRHazBfeE9IQmZMR25XLTBRUlVxcGVvVE5JaHU4dmMyQ2ZUVXRtMnQyc18tZnp2RnRSeWhEQTRtZkNIMWN6OTJFVmowdmQzRkQ0aWtXNmJkT3AxTmtZRnFVVkJoS2xidkprNnktVGJMRkJMUDVaeDRtMFVhLV9QN2FNemJndk9KZ01PVEMyakxzNXdfbEZESldlUDNJS1VPaUptcmZMcGY0ZXk1T3Y5NG9DRTZZbmNEQlNISlpLV2NyU3hESGdTejlBWHJ4YXJMNEhMYWpHYkYzTVJ2ZmtNTjJnTlhDb2lKWEJFcUNMRG55UVowQmdYSXZ1Szd2RzhSajBUeWhKTmotUVByOHRhWTZVQ0F3RUFBYU9DQkhRd2dnUndNQ2NHQ1NzR0FRUUJnamNWQ2dRYU1CZ3dDZ1lJS3dZQkJRVUhBd0V3Q2dZSUt3WUJCUVVIQXdJd1BRWUpLd1lCQkFHQ054VUhCREF3TGdZbUt3WUJCQUdDTnhVSWhwRGpEWVRWdEhpRThZcy1oWnZkRnM2ZEVvRmdoZm1SUzRXc21UUUNBV1FDQVFjd2dnSExCZ2dyQmdFRkJRY0JBUVNDQWIwd2dnRzVNR01HQ0NzR0FRVUZCekFDaGxkb2RIUndPaTh2WTNKc0xtMXBZM0p2YzI5bWRDNWpiMjB2Y0d0cGFXNW1jbUV2UTJWeWRITXZRa3d5VUV0SlNVNVVRMEV3TWk1QlRVVXVSMEpNWDBGTlJTVXlNRWx1Wm5KaEpUSXdRMEVsTWpBd05pNWpjblF3VXdZSUt3WUJCUVVITUFLR1IyaDBkSEE2THk5amNtd3hMbUZ0WlM1blltd3ZZV2xoTDBKTU1sQkxTVWxPVkVOQk1ESXVRVTFGTGtkQ1RGOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFl1WTNKME1GTUdDQ3NHQVFVRkJ6QUNoa2RvZEhSd09pOHZZM0pzTWk1aGJXVXVaMkpzTDJGcFlTOUNUREpRUzBsSlRsUkRRVEF5TGtGTlJTNUhRa3hmUVUxRkpUSXdTVzVtY21FbE1qQkRRU1V5TURBMkxtTnlkREJUQmdnckJnRUZCUWN3QW9aSGFIUjBjRG92TDJOeWJETXVZVzFsTG1kaWJDOWhhV0V2UWt3eVVFdEpTVTVVUTBFd01pNUJUVVV1UjBKTVgwRk5SU1V5TUVsdVpuSmhKVEl3UTBFbE1qQXdOaTVqY25Rd1V3WUlLd1lCQlFVSE1BS0dSMmgwZEhBNkx5OWpjbXcwTG1GdFpTNW5ZbXd2WVdsaEwwSk1NbEJMU1VsT1ZFTkJNREl1UVUxRkxrZENURjlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURZdVkzSjBNQjBHQTFVZERnUVdCQlJLbEpRcEZ5eVpLU2Noa1Rsc2hldFlPVVg3eHpBT0JnTlZIUThCQWY4RUJBTUNCYUF3Z2dFbUJnTlZIUjhFZ2dFZE1JSUJHVENDQVJXZ2dnRVJvSUlCRFlZX2FIUjBjRG92TDJOeWJDNXRhV055YjNOdlpuUXVZMjl0TDNCcmFXbHVabkpoTDBOU1RDOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFl1WTNKc2hqRm9kSFJ3T2k4dlkzSnNNUzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01EWXVZM0pzaGpGb2RIUndPaTh2WTNKc01pNWhiV1V1WjJKc0wyTnliQzlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURZdVkzSnNoakZvZEhSd09pOHZZM0pzTXk1aGJXVXVaMkpzTDJOeWJDOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFl1WTNKc2hqRm9kSFJ3T2k4dlkzSnNOQzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01EWXVZM0pzTUlHZEJnTlZIU0FFZ1pVd2daSXdEQVlLS3dZQkJBR0NOM3NCQVRCbUJnb3JCZ0VFQVlJM2V3SUNNRmd3VmdZSUt3WUJCUVVIQWdJd1NoNUlBRE1BTXdCbEFEQUFNUUE1QURJQU1RQXRBRFFBWkFBMkFEUUFMUUEwQUdZQU9BQmpBQzBBWVFBd0FEVUFOUUF0QURVQVlnQmtBR0VBWmdCbUFHUUFOUUJsQURNQU13QmtNQXdHQ2lzR0FRUUJnamQ3QXdFd0RBWUtLd1lCQkFHQ04zc0VBakFmQmdOVkhTTUVHREFXZ0JUeFJtakc4Y1B3S3kxOWkycmhzdm0tTmZ6UlFUQWRCZ05WSFNVRUZqQVVCZ2dyQmdFRkJRY0RBUVlJS3dZQkJRVUhBd0l3RFFZSktvWklodmNOQVFFTEJRQURnZ0VCQUcwV2J6TFBzbVNTTUk3YVRlMm5waXhta2RDbXdjZFpIR2Q0M3RVbkI4SktyTE5KRUZjQnNRbWJjSUgwYWRwblFOckRnUmtOQkJPVFo0czFMSUJsUlFhcFpwUHNSSXRBTVVndVZwR1ZSSDA4VDBpNDN3OXhycF9jbE5iQUpycmZSYm1Zcm9GMFdKS01KMG53VzJyUGp4ZGV2U1J5Z0dLX25FZnl3d0ZpLXAxUmhIbmtpRUdMNEduUDdQcFFjUnZBWU1kSDlMTzVNUlk3aUxiQm1vc0thdFNfZVd0U0pEMUN2emdsTnd5X3ZReng4MVZuazBDZ25kcVhjVnEtbG9HdTdSNFU3bWtRMk5OcUxicDQ0N1NUeGtwUC02TWR5djhKNGJkbmYxczN2RkJOcGd2SldLb2dXY05MbG84am5rYkVmNlJQTkdlMVc1bG1hN0p3TUtBY1B6WSZzPVE3aldsX0lYTHNjWGVXLTFmX1lzb1Q1QjZsR1FoNmlsZVdCck83TlBiNVFBbko1RGxYRkdPVjB0TnhqWG92ZkFldHoxLUs5RVN4SDlGUi11M2tVRjZxbU9TNjhfUzZiTF9qUzJWODRhdTA2aEpxNmZoY3NpLWxZeTVCTUJXcW9RZ2FNdkdNRjZDWnBMSlRfV1Y2NXVSOHRiUVkxMG9kLVR2UkdVLUw5MVFJV2Y5RHdHTGZ2TWZua1NiNXBGb3Y3LVNtZkhxcFhreHA2UDg5b3JwUWVoQS11b2xEam8xWWtNNnpna1JNckY1S2tjNGRZTmlVMjJ5bzl6RzFQYlJkeTViSC1aZ0lTdnRCbE9MWTVNNGR3TWlrS2dadTJKd002c21oU0dBbXBCM1o0UDhJaG82dE92aEw3b3poYkViaXpNRHUtZnUzR2FFNDhpZTBSaXhibS1GdyZoPUt1Sk16Rjl1ZGNVaWg3VDFoZ0tmYURFM0F2dnBtY0hiZnlDZnMtVThCWWM=", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/providers/Microsoft.Network/locations/westus2/operations/e138b4e9-685f-46df-ac54-b25f8dc5fdd5?api-version=2024-07-01&t=638932201214154753&c=MIIHhzCCBm-gAwIBAgITfAiEqRZrgLhPwkUvfgAACISpFjANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDUwHhcNMjUwNzE5MTUxNTU3WhcNMjYwMTE1MTUxNTU3WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANo8JkuCSyYzxbK-6GTWYze3gfPX3W0gGXDNABI0DpWEhe9om3se5tziu1JvncajCytpTguwrHlK0rcquzbDXXvHhbsY73edSvO92c2ADuvWEnNdsmm_eToLFsXFZjZMhgj9jD_wnJ6L9KtxBHW6hwaA6YgFKE3lyA5TXmiyo15CLkHFj02CX4NB1cTIN15yGoCxLyB-Zr3jEH0xfMCQPYlmSTwuQvC4UWEndUzZd_Y-HLo959DU-Ug61g41JksM4dzdEHw2_Yew_EDtac3ERKzqVKC1GxTNXLELU_LFkPdkKBi-JGTX5MxlXWEAVL1gSKy4C0lslOvMVICJ0D5ZPTECAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9DTzFQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA1LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MB0GA1UdDgQWBBTHBRf8ZL9wY__HzSsEXGXuVL8aEDAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBR61hmFKHlscXYeYPjzS--iBUIWHTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAIsWwSMOlrjb5kZTgKGXSVnDyLsC7qm2NFBdhoNUtOxSB-TF88cKGPhwNx59_1_GhsNjXldjQVJ1seRL3Dxf55jqzfXeFBQAIHIRsR8-WJPTpZ3VtWewO_Qvh9h7Bd-gfA0pRXw3Hq4eRpBmAf7gfOki1W-7-m3cozATlPCkEWnBM4qRujLuiQX_Q3tfok25Wmnyq_KkG_0VC3JVUvJnkKpv1qRHWahwVo1wzWyJIoaxA7T0oOonf6ZN3j8AyT_VGFDRmvLuvakI8huZgSbjWvWFT6bx7NRTo6YHkHb5COr1PJTbhpDS-PSv5Ud3SFTnLAZyd3oRW-Lp3Fo6RFoNgBs&s=W3ApDOmAwk_NKkNjLlJdcAWLaRfnpZQ1Iczwn8sofw6wrE8etpnZHq_XAAfPZB2f3Lv0_V7amsTvqvW5D0aYoMeMEwqQY6UzxM2HF_vYfHWplUIfQcIpRkKlDTVo5l1lh_tw7-mw06x1nhT3JrLyfzfli7wFZpj3G6k3k0FvZMClcuX5yVe8yfQkslDYbh8QCJ92uAwAeanJXwXBa_pYfECXjC4kH2-JqGLCYMhyWRhJNyq8QZkCFg2cX8TLrTgCzSL80o4C9h3doWkf8K0L8cu-U8fZ2n1HN1tL8i6PpygwI70VgFUosK9ruv7qDBq7-XzbeP8saHcwR9XEuFnb_w&h=AM2b1SlsjeiObSvQMd6C6KnEE1zmosNbIEYIzIIBmpM", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay9sb2NhdGlvbnMvd2VzdHVzMi9vcGVyYXRpb25zL2UxMzhiNGU5LTY4NWYtNDZkZi1hYzU0LWIyNWY4ZGM1ZmRkNT9hcGktdmVyc2lvbj0yMDI0LTA3LTAxJnQ9NjM4OTMyMjAxMjE0MTU0NzUzJmM9TUlJSGh6Q0NCbS1nQXdJQkFnSVRmQWlFcVJacmdMaFB3a1V2ZmdBQUNJU3BGakFOQmdrcWhraUc5dzBCQVFzRkFEQkVNUk13RVFZS0NaSW1pWlB5TEdRQkdSWURSMEpNTVJNd0VRWUtDWkltaVpQeUxHUUJHUllEUVUxRk1SZ3dGZ1lEVlFRREV3OUJUVVVnU1c1bWNtRWdRMEVnTURVd0hoY05NalV3TnpFNU1UVXhOVFUzV2hjTk1qWXdNVEUxTVRVeE5UVTNXakJBTVQ0d1BBWURWUVFERXpWaGMzbHVZMjl3WlhKaGRHbHZibk5wWjI1cGJtZGpaWEowYVdacFkyRjBaUzV0WVc1aFoyVnRaVzUwTG1GNmRYSmxMbU52YlRDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBTm84Smt1Q1N5WXp4YkstNkdUV1l6ZTNnZlBYM1cwZ0dYRE5BQkkwRHBXRWhlOW9tM3NlNXR6aXUxSnZuY2FqQ3l0cFRndXdySGxLMHJjcXV6YkRYWHZIaGJzWTczZWRTdk85MmMyQUR1dldFbk5kc21tX2VUb0xGc1hGWmpaTWhnajlqRF93bko2TDlLdHhCSFc2aHdhQTZZZ0ZLRTNseUE1VFhtaXlvMTVDTGtIRmowMkNYNE5CMWNUSU4xNXlHb0N4THlCLVpyM2pFSDB4Zk1DUVBZbG1TVHd1UXZDNFVXRW5kVXpaZF9ZLUhMbzk1OURVLVVnNjFnNDFKa3NNNGR6ZEVIdzJfWWV3X0VEdGFjM0VSS3pxVktDMUd4VE5YTEVMVV9MRmtQZGtLQmktSkdUWDVNeGxYV0VBVkwxZ1NLeTRDMGxzbE92TVZJQ0owRDVaUFRFQ0F3RUFBYU9DQkhRd2dnUndNQ2NHQ1NzR0FRUUJnamNWQ2dRYU1CZ3dDZ1lJS3dZQkJRVUhBd0V3Q2dZSUt3WUJCUVVIQXdJd1BRWUpLd1lCQkFHQ054VUhCREF3TGdZbUt3WUJCQUdDTnhVSWhwRGpEWVRWdEhpRThZcy1oWnZkRnM2ZEVvRmdoZm1SUzRXc21UUUNBV1FDQVFjd2dnSExCZ2dyQmdFRkJRY0JBUVNDQWIwd2dnRzVNR01HQ0NzR0FRVUZCekFDaGxkb2RIUndPaTh2WTNKc0xtMXBZM0p2YzI5bWRDNWpiMjB2Y0d0cGFXNW1jbUV2UTJWeWRITXZRMDh4VUV0SlNVNVVRMEV3TVM1QlRVVXVSMEpNWDBGTlJTVXlNRWx1Wm5KaEpUSXdRMEVsTWpBd05TNWpjblF3VXdZSUt3WUJCUVVITUFLR1IyaDBkSEE2THk5amNtd3hMbUZ0WlM1blltd3ZZV2xoTDBOUE1WQkxTVWxPVkVOQk1ERXVRVTFGTGtkQ1RGOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFV1WTNKME1GTUdDQ3NHQVFVRkJ6QUNoa2RvZEhSd09pOHZZM0pzTWk1aGJXVXVaMkpzTDJGcFlTOURUekZRUzBsSlRsUkRRVEF4TGtGTlJTNUhRa3hmUVUxRkpUSXdTVzVtY21FbE1qQkRRU1V5TURBMUxtTnlkREJUQmdnckJnRUZCUWN3QW9aSGFIUjBjRG92TDJOeWJETXVZVzFsTG1kaWJDOWhhV0V2UTA4eFVFdEpTVTVVUTBFd01TNUJUVVV1UjBKTVgwRk5SU1V5TUVsdVpuSmhKVEl3UTBFbE1qQXdOUzVqY25Rd1V3WUlLd1lCQlFVSE1BS0dSMmgwZEhBNkx5OWpjbXcwTG1GdFpTNW5ZbXd2WVdsaEwwTlBNVkJMU1VsT1ZFTkJNREV1UVUxRkxrZENURjlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURVdVkzSjBNQjBHQTFVZERnUVdCQlRIQlJmOFpMOXdZX19IelNzRVhHWHVWTDhhRURBT0JnTlZIUThCQWY4RUJBTUNCYUF3Z2dFbUJnTlZIUjhFZ2dFZE1JSUJHVENDQVJXZ2dnRVJvSUlCRFlZX2FIUjBjRG92TDJOeWJDNXRhV055YjNOdlpuUXVZMjl0TDNCcmFXbHVabkpoTDBOU1RDOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFV1WTNKc2hqRm9kSFJ3T2k4dlkzSnNNUzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01EVXVZM0pzaGpGb2RIUndPaTh2WTNKc01pNWhiV1V1WjJKc0wyTnliQzlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURVdVkzSnNoakZvZEhSd09pOHZZM0pzTXk1aGJXVXVaMkpzTDJOeWJDOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFV1WTNKc2hqRm9kSFJ3T2k4dlkzSnNOQzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01EVXVZM0pzTUlHZEJnTlZIU0FFZ1pVd2daSXdEQVlLS3dZQkJBR0NOM3NCQVRCbUJnb3JCZ0VFQVlJM2V3SUNNRmd3VmdZSUt3WUJCUVVIQWdJd1NoNUlBRE1BTXdCbEFEQUFNUUE1QURJQU1RQXRBRFFBWkFBMkFEUUFMUUEwQUdZQU9BQmpBQzBBWVFBd0FEVUFOUUF0QURVQVlnQmtBR0VBWmdCbUFHUUFOUUJsQURNQU13QmtNQXdHQ2lzR0FRUUJnamQ3QXdJd0RBWUtLd1lCQkFHQ04zc0VBakFmQmdOVkhTTUVHREFXZ0JSNjFobUZLSGxzY1hZZVlQanpTLS1pQlVJV0hUQWRCZ05WSFNVRUZqQVVCZ2dyQmdFRkJRY0RBUVlJS3dZQkJRVUhBd0l3RFFZSktvWklodmNOQVFFTEJRQURnZ0VCQUlzV3dTTU9scmpiNWtaVGdLR1hTVm5EeUxzQzdxbTJORkJkaG9OVXRPeFNCLVRGODhjS0dQaHdOeDU5XzFfR2hzTmpYbGRqUVZKMXNlUkwzRHhmNTVqcXpmWGVGQlFBSUhJUnNSOC1XSlBUcFozVnRXZXdPX1F2aDloN0JkLWdmQTBwUlh3M0hxNGVScEJtQWY3Z2ZPa2kxVy03LW0zY296QVRsUENrRVduQk00cVJ1akx1aVFYX1EzdGZvazI1V21ueXFfS2tHXzBWQzNKVlV2Sm5rS3B2MXFSSFdhaHdWbzF3eld5SklvYXhBN1Qwb09vbmY2Wk4zajhBeVRfVkdGRFJtdkx1dmFrSThodVpnU2JqV3ZXRlQ2Yng3TlJUbzZZSGtIYjVDT3IxUEpUYmhwRFMtUFN2NVVkM1NGVG5MQVp5ZDNvUlctTHAzRm82UkZvTmdCcyZzPVczQXBET21Bd2tfTktrTmpMbEpkY0FXTGFSZm5wWlExSWN6d244c29mdzZ3ckU4ZXRwblpIcV9YQUFmUFpCMmYzTHYwX1Y3YW1zVHZxdlc1RDBhWW9NZU1Fd3FRWTZVenhNMkhGX3ZZZkhXcGxVSWZRY0lwUmtLbERUVm81bDFsaF90dzctbXcwNngxbmhUM0pyTHlmemZsaTd3RlpwajNHNmszazBGdlpNQ2xjdVg1eVZlOHlmUWtzbERZYmg4UUNKOTJ1QXdBZWFuSlh3WEJhX3BZZkVDWGpDNGtIMi1KcUdMQ1lNaHlXUmhKTnlxOFFaa0NGZzJjWDhUTHJUZ0N6U0w4MG80QzloM2RvV2tmOEswTDhjdS1VOGZaMm4xSE4xdEw4aTZQcHlnd0k3MFZnRlVvc0s5cnV2N3FEQnE3LVh6YmVQOHNhSGN3UjlYRXVGbmJfdyZoPUFNMmIxU2xzamVpT2JTdlFNZDZDNktuRUUxem1vc05iSUVZSXpJSUJtcE0=", "RequestMethod": "GET", "RequestHeaders": { "x-ms-client-request-id": [ - "8a021c49-baa4-4bb7-a8a0-49b6a940dc2b" + "aa3ca9e3-998b-47c5-91ec-858d258369ba" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Management.Network.NetworkManagementClient/27.0.0.0" ] }, @@ -693,17 +702,20 @@ "no-cache" ], "x-ms-request-id": [ - "fc03d3aa-41a6-46da-bd6b-4410a469da59" + "8ad25d75-5f75-40ec-8ca5-74433fc04680" ], "x-ms-correlation-request-id": [ - "712bc87a-10cf-4f4d-a754-25036d41ab80" + "d4d2e979-9116-4d59-9982-cf6a8161decc" ], "x-ms-arm-service-request-id": [ - "2f94c4de-3099-495e-a780-08906f7f9389" + "5e06c959-7053-40d9-a306-ddad6be91e02" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], + "x-ms-operation-identifier": [ + "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=ac839cc2-33ee-4879-a5b5-2895202ccb29/australiaeast/f3b34d71-5fd5-4cee-a5b1-2b7ff5b03175" + ], "x-ms-ratelimit-remaining-subscription-reads": [ "1099" ], @@ -711,7 +723,7 @@ "16499" ], "x-ms-routing-request-id": [ - "EASTUS:20241113T211910Z:712bc87a-10cf-4f4d-a754-25036d41ab80" + "AUSTRALIAEAST:20250911T204204Z:d4d2e979-9116-4d59-9982-cf6a8161decc" ], "X-Content-Type-Options": [ "nosniff" @@ -720,10 +732,10 @@ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: B6A7519A9E444FFFB7B73200FFB72ED3 Ref B: MNZ221060618045 Ref C: 2024-11-13T21:19:09Z" + "Ref A: FD7DD7F25D2140498270317C4C84373C Ref B: MWH011020806060 Ref C: 2025-09-11T20:42:04Z" ], "Date": [ - "Wed, 13 Nov 2024 21:19:09 GMT" + "Thu, 11 Sep 2025 20:42:04 GMT" ], "Content-Length": [ "22" @@ -739,21 +751,21 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/ps5688/providers/Microsoft.Batch/batchAccounts/ps9576/privateLinkResources?api-version=2022-06-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjFhYmQ2NzgtMThjNS00NjYwLTlmZGQtOGM1YmE2YjZmZTFmL3Jlc291cmNlR3JvdXBzL3BzNTY4OC9wcm92aWRlcnMvTWljcm9zb2Z0LkJhdGNoL2JhdGNoQWNjb3VudHMvcHM5NTc2L3ByaXZhdGVMaW5rUmVzb3VyY2VzP2FwaS12ZXJzaW9uPTIwMjItMDYtMDE=", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps2289/providers/Microsoft.Batch/batchAccounts/ps5017/privateLinkResources?api-version=2022-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL3BzMjI4OS9wcm92aWRlcnMvTWljcm9zb2Z0LkJhdGNoL2JhdGNoQWNjb3VudHMvcHM1MDE3L3ByaXZhdGVMaW5rUmVzb3VyY2VzP2FwaS12ZXJzaW9uPTIwMjItMDYtMDE=", "RequestMethod": "GET", "RequestHeaders": { - "x-ms-client-request-id": [ - "9c4f82ca-322b-40a5-9b66-ff26391d2d0c" - ], "Accept-Language": [ "en-US" ], + "x-ms-client-request-id": [ + "3141e036-b29f-42a0-98e3-eeea622afb78" + ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Internal.Common.AzureRestClient/1.3.102" + "OSVersion/Microsoft.Windows.10.0.26100", + "Microsoft.Azure.Internal.Common.AzureRestClient/1.3.109" ] }, "RequestBody": "", @@ -765,7 +777,7 @@ "no-cache" ], "x-ms-request-id": [ - "85954066-b4ea-4fd4-806c-17ec5dffdd71" + "091663b8-d7c2-4cb3-ae9b-1db83051b64e" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -773,6 +785,9 @@ "X-Content-Type-Options": [ "nosniff" ], + "x-ms-operation-identifier": [ + "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=ac839cc2-33ee-4879-a5b5-2895202ccb29/australiaeast/61bbddb1-edf0-4f30-9475-a31f101db03d" + ], "x-ms-ratelimit-remaining-subscription-reads": [ "1099" ], @@ -780,19 +795,19 @@ "16499" ], "x-ms-correlation-request-id": [ - "1027c9d8-435e-4427-88f8-ac9a6c8dd95f" + "ebf2beaf-00fc-412a-9ba9-6c41186c65f4" ], "x-ms-routing-request-id": [ - "EASTUS:20241113T211911Z:1027c9d8-435e-4427-88f8-ac9a6c8dd95f" + "AUSTRALIAEAST:20250911T204208Z:ebf2beaf-00fc-412a-9ba9-6c41186c65f4" ], "X-Cache": [ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: D71D3F91658F4057A82B5EF2B6F2E38B Ref B: MNZ221060609049 Ref C: 2024-11-13T21:19:10Z" + "Ref A: 1C82084FE0A5433EB53BE738DE6E5B76 Ref B: MWH011020806023 Ref C: 2025-09-11T20:42:07Z" ], "Date": [ - "Wed, 13 Nov 2024 21:19:11 GMT" + "Thu, 11 Sep 2025 20:42:07 GMT" ], "Content-Length": [ "765" @@ -804,24 +819,24 @@ "-1" ] }, - "ResponseBody": "{\r\n \"value\": [\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/ps5688/providers/Microsoft.Batch/batchAccounts/ps9576/privateLinkResources/batchAccount\",\r\n \"name\": \"batchAccount\",\r\n \"type\": \"Microsoft.Batch/batchAccounts/privateLinkResources\",\r\n \"properties\": {\r\n \"groupId\": \"batchAccount\",\r\n \"requiredMembers\": [\r\n \"batchAccount\"\r\n ],\r\n \"requiredZoneNames\": [\r\n \"privatelink.batch.azure.com\"\r\n ]\r\n }\r\n },\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/ps5688/providers/Microsoft.Batch/batchAccounts/ps9576/privateLinkResources/nodeManagement\",\r\n \"name\": \"nodeManagement\",\r\n \"type\": \"Microsoft.Batch/batchAccounts/privateLinkResources\",\r\n \"properties\": {\r\n \"groupId\": \"nodeManagement\",\r\n \"requiredMembers\": [\r\n \"nodeManagement\"\r\n ],\r\n \"requiredZoneNames\": [\r\n \"privatelink.batch.azure.com\"\r\n ]\r\n }\r\n }\r\n ]\r\n}", + "ResponseBody": "{\r\n \"value\": [\r\n {\r\n \"id\": \"/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps2289/providers/Microsoft.Batch/batchAccounts/ps5017/privateLinkResources/batchAccount\",\r\n \"name\": \"batchAccount\",\r\n \"type\": \"Microsoft.Batch/batchAccounts/privateLinkResources\",\r\n \"properties\": {\r\n \"groupId\": \"batchAccount\",\r\n \"requiredMembers\": [\r\n \"batchAccount\"\r\n ],\r\n \"requiredZoneNames\": [\r\n \"privatelink.batch.azure.com\"\r\n ]\r\n }\r\n },\r\n {\r\n \"id\": \"/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps2289/providers/Microsoft.Batch/batchAccounts/ps5017/privateLinkResources/nodeManagement\",\r\n \"name\": \"nodeManagement\",\r\n \"type\": \"Microsoft.Batch/batchAccounts/privateLinkResources\",\r\n \"properties\": {\r\n \"groupId\": \"nodeManagement\",\r\n \"requiredMembers\": [\r\n \"nodeManagement\"\r\n ],\r\n \"requiredZoneNames\": [\r\n \"privatelink.batch.azure.com\"\r\n ]\r\n }\r\n }\r\n ]\r\n}", "StatusCode": 200 }, { - "RequestUri": "/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/ps5688/providers/Microsoft.Network/privateEndpoints/mypec?api-version=2024-03-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjFhYmQ2NzgtMThjNS00NjYwLTlmZGQtOGM1YmE2YjZmZTFmL3Jlc291cmNlR3JvdXBzL3BzNTY4OC9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvcHJpdmF0ZUVuZHBvaW50cy9teXBlYz9hcGktdmVyc2lvbj0yMDI0LTAzLTAx", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps2289/providers/Microsoft.Network/privateEndpoints/mypec?api-version=2024-07-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL3BzMjI4OS9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvcHJpdmF0ZUVuZHBvaW50cy9teXBlYz9hcGktdmVyc2lvbj0yMDI0LTA3LTAx", "RequestMethod": "GET", "RequestHeaders": { - "x-ms-client-request-id": [ - "05fdecfd-3a5a-48a7-b544-4136ec5d4714" - ], "Accept-Language": [ "en-US" ], + "x-ms-client-request-id": [ + "d5ae28e9-545e-461e-80a1-0db87eb9e4c5" + ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Management.Network.NetworkManagementClient/27.0.0.0" ] }, @@ -837,13 +852,13 @@ "gateway" ], "x-ms-request-id": [ - "2c8b0baf-d8b3-4147-8ba1-268dd89d0efb" + "35928f58-471c-4491-ae40-06b09b9692b0" ], "x-ms-correlation-request-id": [ - "2c8b0baf-d8b3-4147-8ba1-268dd89d0efb" + "35928f58-471c-4491-ae40-06b09b9692b0" ], "x-ms-routing-request-id": [ - "EASTUS:20241113T211911Z:2c8b0baf-d8b3-4147-8ba1-268dd89d0efb" + "AUSTRALIAEAST:20250911T204208Z:35928f58-471c-4491-ae40-06b09b9692b0" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -855,10 +870,10 @@ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: 32288448EA2449D9838EE025D2654DAF Ref B: MNZ221060618045 Ref C: 2024-11-13T21:19:11Z" + "Ref A: EB831677FDD94747BDDDE9F894E7396A Ref B: MWH011020806060 Ref C: 2025-09-11T20:42:08Z" ], "Date": [ - "Wed, 13 Nov 2024 21:19:11 GMT" + "Thu, 11 Sep 2025 20:42:08 GMT" ], "Content-Length": [ "218" @@ -870,21 +885,21 @@ "-1" ] }, - "ResponseBody": "{\r\n \"error\": {\r\n \"code\": \"ResourceNotFound\",\r\n \"message\": \"The Resource 'Microsoft.Network/privateEndpoints/mypec' under resource group 'ps5688' was not found. For more details please go to https://aka.ms/ARMResourceNotFoundFix\"\r\n }\r\n}", + "ResponseBody": "{\r\n \"error\": {\r\n \"code\": \"ResourceNotFound\",\r\n \"message\": \"The Resource 'Microsoft.Network/privateEndpoints/mypec' under resource group 'ps2289' was not found. For more details please go to https://aka.ms/ARMResourceNotFoundFix\"\r\n }\r\n}", "StatusCode": 404 }, { - "RequestUri": "/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/ps5688/providers/Microsoft.Network/privateEndpoints/mypec?api-version=2024-03-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjFhYmQ2NzgtMThjNS00NjYwLTlmZGQtOGM1YmE2YjZmZTFmL3Jlc291cmNlR3JvdXBzL3BzNTY4OC9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvcHJpdmF0ZUVuZHBvaW50cy9teXBlYz9hcGktdmVyc2lvbj0yMDI0LTAzLTAx", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps2289/providers/Microsoft.Network/privateEndpoints/mypec?api-version=2024-07-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL3BzMjI4OS9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvcHJpdmF0ZUVuZHBvaW50cy9teXBlYz9hcGktdmVyc2lvbj0yMDI0LTA3LTAx", "RequestMethod": "GET", "RequestHeaders": { "x-ms-client-request-id": [ - "05fdecfd-3a5a-48a7-b544-4136ec5d4714" + "d5ae28e9-545e-461e-80a1-0db87eb9e4c5" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Management.Network.NetworkManagementClient/27.0.0.0" ] }, @@ -897,16 +912,16 @@ "no-cache" ], "ETag": [ - "W/\"ebc09794-8942-417d-a6a9-828497a38a97\"" + "W/\"35ea8cde-7f7e-41d4-b601-2643b1fe2d07\"" ], "x-ms-request-id": [ - "d68daacb-f892-4ab1-805e-65fc57f33c99" + "0c05bc70-6b3f-4afa-9818-fa7586692e9e" ], "x-ms-correlation-request-id": [ - "a3db485e-92e4-4af5-a7fc-b15244e27ebf" + "ee176735-02fd-405e-a8f9-9508508bc616" ], "x-ms-arm-service-request-id": [ - "4d12af61-ef5e-4db5-a409-8bd3b15e9669" + "5b00bbd2-0291-49cb-a782-bad6dde6cf43" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -918,7 +933,7 @@ "16499" ], "x-ms-routing-request-id": [ - "EASTUS:20241113T211954Z:a3db485e-92e4-4af5-a7fc-b15244e27ebf" + "AUSTRALIAEAST:20250911T204254Z:ee176735-02fd-405e-a8f9-9508508bc616" ], "X-Content-Type-Options": [ "nosniff" @@ -927,13 +942,13 @@ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: FE73C474C90142C682986E0B9FEA2367 Ref B: MNZ221060618045 Ref C: 2024-11-13T21:19:54Z" + "Ref A: 309F59F67D58400792543B375F588B7A Ref B: MWH011020806060 Ref C: 2025-09-11T20:42:54Z" ], "Date": [ - "Wed, 13 Nov 2024 21:19:54 GMT" + "Thu, 11 Sep 2025 20:42:54 GMT" ], "Content-Length": [ - "1625" + "1611" ], "Content-Type": [ "application/json; charset=utf-8" @@ -942,24 +957,24 @@ "-1" ] }, - "ResponseBody": "{\r\n \"name\": \"mypec\",\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/ps5688/providers/Microsoft.Network/privateEndpoints/mypec\",\r\n \"etag\": \"W/\\\"ebc09794-8942-417d-a6a9-828497a38a97\\\"\",\r\n \"type\": \"Microsoft.Network/privateEndpoints\",\r\n \"location\": \"westus2\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"resourceGuid\": \"0f3811e5-f837-4ecf-b913-5b7dc498570a\",\r\n \"privateLinkServiceConnections\": [],\r\n \"manualPrivateLinkServiceConnections\": [\r\n {\r\n \"name\": \"myplsconnection\",\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/ps5688/providers/Microsoft.Network/privateEndpoints/mypec/manualPrivateLinkServiceConnections/myplsconnection\",\r\n \"etag\": \"W/\\\"ebc09794-8942-417d-a6a9-828497a38a97\\\"\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"privateLinkServiceId\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/ps5688/providers/Microsoft.Batch/batchAccounts/ps9576\",\r\n \"groupIds\": [\r\n \"batchAccount\"\r\n ],\r\n \"privateLinkServiceConnectionState\": {\r\n \"status\": \"Pending\",\r\n \"description\": \"Manual approval still required\",\r\n \"actionsRequired\": \"Manual approval required\"\r\n }\r\n },\r\n \"type\": \"Microsoft.Network/privateEndpoints/manualPrivateLinkServiceConnections\"\r\n }\r\n ],\r\n \"customNetworkInterfaceName\": \"\",\r\n \"subnet\": {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/ps5688/providers/Microsoft.Network/virtualNetworks/myvnet/subnets/mysubnet\"\r\n },\r\n \"ipConfigurations\": [],\r\n \"networkInterfaces\": [\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/ps5688/providers/Microsoft.Network/networkInterfaces/mypec.nic.f9bb66dc-b709-4d8b-a123-abcc10e23126\"\r\n }\r\n ],\r\n \"customDnsConfigs\": [],\r\n \"isIPv6EnabledPrivateEndpoint\": false\r\n }\r\n}", + "ResponseBody": "{\r\n \"name\": \"mypec\",\r\n \"id\": \"/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps2289/providers/Microsoft.Network/privateEndpoints/mypec\",\r\n \"etag\": \"W/\\\"35ea8cde-7f7e-41d4-b601-2643b1fe2d07\\\"\",\r\n \"type\": \"Microsoft.Network/privateEndpoints\",\r\n \"location\": \"westus2\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"resourceGuid\": \"397dcfed-682e-4f05-ac8b-92f57cc1a1fe\",\r\n \"privateLinkServiceConnections\": [],\r\n \"manualPrivateLinkServiceConnections\": [\r\n {\r\n \"name\": \"myplsconnection\",\r\n \"id\": \"/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps2289/providers/Microsoft.Network/privateEndpoints/mypec/manualPrivateLinkServiceConnections/myplsconnection\",\r\n \"etag\": \"W/\\\"35ea8cde-7f7e-41d4-b601-2643b1fe2d07\\\"\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"privateLinkServiceId\": \"/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps2289/providers/Microsoft.Batch/batchAccounts/ps5017\",\r\n \"groupIds\": [\r\n \"batchAccount\"\r\n ],\r\n \"privateLinkServiceConnectionState\": {\r\n \"status\": \"Pending\",\r\n \"description\": \"Manual approval still required\",\r\n \"actionsRequired\": \"Manual approval required\"\r\n }\r\n },\r\n \"type\": \"Microsoft.Network/privateEndpoints/manualPrivateLinkServiceConnections\"\r\n }\r\n ],\r\n \"customNetworkInterfaceName\": \"\",\r\n \"subnet\": {\r\n \"id\": \"/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps2289/providers/Microsoft.Network/virtualNetworks/myvnet/subnets/mysubnet\"\r\n },\r\n \"ipConfigurations\": [],\r\n \"networkInterfaces\": [\r\n {\r\n \"id\": \"/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps2289/providers/Microsoft.Network/networkInterfaces/mypec.nic.46801233-386e-49c8-8637-a185587fbe34\"\r\n }\r\n ],\r\n \"customDnsConfigs\": [],\r\n \"ipVersionType\": \"IPv4\"\r\n }\r\n}", "StatusCode": 200 }, { - "RequestUri": "/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/ps5688/providers/Microsoft.Network/privateEndpoints/mypec?api-version=2024-03-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjFhYmQ2NzgtMThjNS00NjYwLTlmZGQtOGM1YmE2YjZmZTFmL3Jlc291cmNlR3JvdXBzL3BzNTY4OC9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvcHJpdmF0ZUVuZHBvaW50cy9teXBlYz9hcGktdmVyc2lvbj0yMDI0LTAzLTAx", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps2289/providers/Microsoft.Network/privateEndpoints/mypec?api-version=2024-07-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL3BzMjI4OS9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvcHJpdmF0ZUVuZHBvaW50cy9teXBlYz9hcGktdmVyc2lvbj0yMDI0LTA3LTAx", "RequestMethod": "GET", "RequestHeaders": { - "x-ms-client-request-id": [ - "05fdecfd-3a5a-48a7-b544-4136ec5d4714" - ], "Accept-Language": [ "en-US" ], + "x-ms-client-request-id": [ + "d5ae28e9-545e-461e-80a1-0db87eb9e4c5" + ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Management.Network.NetworkManagementClient/27.0.0.0" ] }, @@ -972,16 +987,16 @@ "no-cache" ], "ETag": [ - "W/\"ebc09794-8942-417d-a6a9-828497a38a97\"" + "W/\"35ea8cde-7f7e-41d4-b601-2643b1fe2d07\"" ], "x-ms-request-id": [ - "9c591e89-00cc-4484-86a9-657e49566eb7" + "2b9c2472-5eb5-4f1c-a4f6-7ea83a006f8e" ], "x-ms-correlation-request-id": [ - "6f9ccfbd-d612-4d3e-9c3d-d865d48ee003" + "2ae13187-2a21-4e7e-83d0-c7fb278d206b" ], "x-ms-arm-service-request-id": [ - "c53911e6-85e3-424b-b4fb-92251a38a31f" + "4c0a50d6-4521-4233-b714-4275c06da834" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -993,7 +1008,7 @@ "16499" ], "x-ms-routing-request-id": [ - "EASTUS:20241113T211954Z:6f9ccfbd-d612-4d3e-9c3d-d865d48ee003" + "AUSTRALIAEAST:20250911T204255Z:2ae13187-2a21-4e7e-83d0-c7fb278d206b" ], "X-Content-Type-Options": [ "nosniff" @@ -1002,13 +1017,13 @@ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: 7E7DF956FE544BEE96F5B7A6A9C4EC22 Ref B: MNZ221060618045 Ref C: 2024-11-13T21:19:54Z" + "Ref A: F23117574C464ABB84CD47C9334495EF Ref B: MWH011020806060 Ref C: 2025-09-11T20:42:55Z" ], "Date": [ - "Wed, 13 Nov 2024 21:19:54 GMT" + "Thu, 11 Sep 2025 20:42:55 GMT" ], "Content-Length": [ - "1625" + "1611" ], "Content-Type": [ "application/json; charset=utf-8" @@ -1017,34 +1032,34 @@ "-1" ] }, - "ResponseBody": "{\r\n \"name\": \"mypec\",\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/ps5688/providers/Microsoft.Network/privateEndpoints/mypec\",\r\n \"etag\": \"W/\\\"ebc09794-8942-417d-a6a9-828497a38a97\\\"\",\r\n \"type\": \"Microsoft.Network/privateEndpoints\",\r\n \"location\": \"westus2\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"resourceGuid\": \"0f3811e5-f837-4ecf-b913-5b7dc498570a\",\r\n \"privateLinkServiceConnections\": [],\r\n \"manualPrivateLinkServiceConnections\": [\r\n {\r\n \"name\": \"myplsconnection\",\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/ps5688/providers/Microsoft.Network/privateEndpoints/mypec/manualPrivateLinkServiceConnections/myplsconnection\",\r\n \"etag\": \"W/\\\"ebc09794-8942-417d-a6a9-828497a38a97\\\"\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"privateLinkServiceId\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/ps5688/providers/Microsoft.Batch/batchAccounts/ps9576\",\r\n \"groupIds\": [\r\n \"batchAccount\"\r\n ],\r\n \"privateLinkServiceConnectionState\": {\r\n \"status\": \"Pending\",\r\n \"description\": \"Manual approval still required\",\r\n \"actionsRequired\": \"Manual approval required\"\r\n }\r\n },\r\n \"type\": \"Microsoft.Network/privateEndpoints/manualPrivateLinkServiceConnections\"\r\n }\r\n ],\r\n \"customNetworkInterfaceName\": \"\",\r\n \"subnet\": {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/ps5688/providers/Microsoft.Network/virtualNetworks/myvnet/subnets/mysubnet\"\r\n },\r\n \"ipConfigurations\": [],\r\n \"networkInterfaces\": [\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/ps5688/providers/Microsoft.Network/networkInterfaces/mypec.nic.f9bb66dc-b709-4d8b-a123-abcc10e23126\"\r\n }\r\n ],\r\n \"customDnsConfigs\": [],\r\n \"isIPv6EnabledPrivateEndpoint\": false\r\n }\r\n}", + "ResponseBody": "{\r\n \"name\": \"mypec\",\r\n \"id\": \"/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps2289/providers/Microsoft.Network/privateEndpoints/mypec\",\r\n \"etag\": \"W/\\\"35ea8cde-7f7e-41d4-b601-2643b1fe2d07\\\"\",\r\n \"type\": \"Microsoft.Network/privateEndpoints\",\r\n \"location\": \"westus2\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"resourceGuid\": \"397dcfed-682e-4f05-ac8b-92f57cc1a1fe\",\r\n \"privateLinkServiceConnections\": [],\r\n \"manualPrivateLinkServiceConnections\": [\r\n {\r\n \"name\": \"myplsconnection\",\r\n \"id\": \"/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps2289/providers/Microsoft.Network/privateEndpoints/mypec/manualPrivateLinkServiceConnections/myplsconnection\",\r\n \"etag\": \"W/\\\"35ea8cde-7f7e-41d4-b601-2643b1fe2d07\\\"\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"privateLinkServiceId\": \"/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps2289/providers/Microsoft.Batch/batchAccounts/ps5017\",\r\n \"groupIds\": [\r\n \"batchAccount\"\r\n ],\r\n \"privateLinkServiceConnectionState\": {\r\n \"status\": \"Pending\",\r\n \"description\": \"Manual approval still required\",\r\n \"actionsRequired\": \"Manual approval required\"\r\n }\r\n },\r\n \"type\": \"Microsoft.Network/privateEndpoints/manualPrivateLinkServiceConnections\"\r\n }\r\n ],\r\n \"customNetworkInterfaceName\": \"\",\r\n \"subnet\": {\r\n \"id\": \"/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps2289/providers/Microsoft.Network/virtualNetworks/myvnet/subnets/mysubnet\"\r\n },\r\n \"ipConfigurations\": [],\r\n \"networkInterfaces\": [\r\n {\r\n \"id\": \"/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps2289/providers/Microsoft.Network/networkInterfaces/mypec.nic.46801233-386e-49c8-8637-a185587fbe34\"\r\n }\r\n ],\r\n \"customDnsConfigs\": [],\r\n \"ipVersionType\": \"IPv4\"\r\n }\r\n}", "StatusCode": 200 }, { - "RequestUri": "/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/ps5688/providers/Microsoft.Network/privateEndpoints/mypec?api-version=2024-03-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjFhYmQ2NzgtMThjNS00NjYwLTlmZGQtOGM1YmE2YjZmZTFmL3Jlc291cmNlR3JvdXBzL3BzNTY4OC9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvcHJpdmF0ZUVuZHBvaW50cy9teXBlYz9hcGktdmVyc2lvbj0yMDI0LTAzLTAx", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps2289/providers/Microsoft.Network/privateEndpoints/mypec?api-version=2024-07-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL3BzMjI4OS9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvcHJpdmF0ZUVuZHBvaW50cy9teXBlYz9hcGktdmVyc2lvbj0yMDI0LTA3LTAx", "RequestMethod": "PUT", "RequestHeaders": { - "x-ms-client-request-id": [ - "05fdecfd-3a5a-48a7-b544-4136ec5d4714" - ], "Accept-Language": [ "en-US" ], + "x-ms-client-request-id": [ + "d5ae28e9-545e-461e-80a1-0db87eb9e4c5" + ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Management.Network.NetworkManagementClient/27.0.0.0" ], "Content-Type": [ "application/json; charset=utf-8" ], "Content-Length": [ - "1168" + "1210" ] }, - "RequestBody": "{\r\n \"properties\": {\r\n \"subnet\": {\r\n \"name\": \"mysubnet\",\r\n \"properties\": {\r\n \"addressPrefix\": \"11.0.1.0/24\",\r\n \"addressPrefixes\": [],\r\n \"serviceEndpoints\": [],\r\n \"serviceEndpointPolicies\": [],\r\n \"ipAllocations\": [],\r\n \"delegations\": [],\r\n \"privateEndpointNetworkPolicies\": \"Disabled\",\r\n \"privateLinkServiceNetworkPolicies\": \"Enabled\",\r\n \"applicationGatewayIPConfigurations\": []\r\n },\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/ps5688/providers/Microsoft.Network/virtualNetworks/myvnet/subnets/mysubnet\"\r\n },\r\n \"privateLinkServiceConnections\": [],\r\n \"manualPrivateLinkServiceConnections\": [\r\n {\r\n \"name\": \"myplsconnection\",\r\n \"properties\": {\r\n \"privateLinkServiceId\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/ps5688/providers/Microsoft.Batch/batchAccounts/ps9576\",\r\n \"groupIds\": [\r\n \"batchAccount\"\r\n ]\r\n }\r\n }\r\n ],\r\n \"customDnsConfigs\": [],\r\n \"applicationSecurityGroups\": [],\r\n \"ipConfigurations\": []\r\n },\r\n \"location\": \"westus2\"\r\n}", + "RequestBody": "{\r\n \"properties\": {\r\n \"subnet\": {\r\n \"name\": \"mysubnet\",\r\n \"properties\": {\r\n \"addressPrefix\": \"11.0.1.0/24\",\r\n \"addressPrefixes\": [],\r\n \"serviceEndpoints\": [],\r\n \"serviceEndpointPolicies\": [],\r\n \"ipAllocations\": [],\r\n \"delegations\": [],\r\n \"privateEndpointNetworkPolicies\": \"Disabled\",\r\n \"privateLinkServiceNetworkPolicies\": \"Enabled\",\r\n \"applicationGatewayIPConfigurations\": [],\r\n \"ipamPoolPrefixAllocations\": []\r\n },\r\n \"id\": \"/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps2289/providers/Microsoft.Network/virtualNetworks/myvnet/subnets/mysubnet\"\r\n },\r\n \"privateLinkServiceConnections\": [],\r\n \"manualPrivateLinkServiceConnections\": [\r\n {\r\n \"name\": \"myplsconnection\",\r\n \"properties\": {\r\n \"privateLinkServiceId\": \"/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps2289/providers/Microsoft.Batch/batchAccounts/ps5017\",\r\n \"groupIds\": [\r\n \"batchAccount\"\r\n ]\r\n }\r\n }\r\n ],\r\n \"customDnsConfigs\": [],\r\n \"applicationSecurityGroups\": [],\r\n \"ipConfigurations\": []\r\n },\r\n \"location\": \"westus2\"\r\n}", "ResponseHeaders": { "Cache-Control": [ "no-cache" @@ -1056,23 +1071,26 @@ "10" ], "x-ms-request-id": [ - "f5e0db77-a76c-4d4c-af84-5b6643c68cf1" + "dc729a4c-fe79-4a10-a63e-e98520d530fc" ], "Azure-AsyncOperation": [ - "https://management.azure.com/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/providers/Microsoft.Network/locations/westus2/operations/f5e0db77-a76c-4d4c-af84-5b6643c68cf1?api-version=2024-03-01&t=638671295536333622&c=MIIHhzCCBm-gAwIBAgITHgVqhF9GOoUjuyqQWAAABWqEXzANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDYwHhcNMjQwOTIwMjMxMTQxWhcNMjUwMzE5MjMxMTQxWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKRtcYDBXS7zz5tRtvVyhrUAjudYhej1E2D3dp6XWuPdbVMbQZwMlye8vdT-kDhFD7T2mrdWqsoGnTGk0_xOHBfLGnW-0QRUqpeoTNIhu8vc2CfTUtm2t2s_-fzvFtRyhDA4mfCH1cz92EVj0vd3FD4ikW6bdOp1NkYFqUVBhKlbvJk6y-TbLFBLP5Zx4m0Ua-_P7aMzbgvOJgMOTC2jLs5w_lFDJWeP3IKUOiJmrfLpf4ey5Ov94oCE6YncDBSHJZKWcrSxDHgSz9AXrxarL4HLajGbF3MRvfkMN2gNXCoiJXBEqCLDnyQZ0BgXIvuK7vG8Rj0TyhJNj-QPr8taY6UCAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAyLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA2LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MB0GA1UdDgQWBBRKlJQpFyyZKSchkTlshetYOUX7xzAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBTxRmjG8cPwKy19i2rhsvm-NfzRQTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAG0WbzLPsmSSMI7aTe2npixmkdCmwcdZHGd43tUnB8JKrLNJEFcBsQmbcIH0adpnQNrDgRkNBBOTZ4s1LIBlRQapZpPsRItAMUguVpGVRH08T0i43w9xrp_clNbAJrrfRbmYroF0WJKMJ0nwW2rPjxdevSRygGK_nEfywwFi-p1RhHnkiEGL4GnP7PpQcRvAYMdH9LO5MRY7iLbBmosKatS_eWtSJD1CvzglNwy_vQzx81Vnk0CgndqXcVq-loGu7R4U7mkQ2NNqLbp447STxkpP-6Mdyv8J4bdnf1s3vFBNpgvJWKogWcNLlo8jnkbEf6RPNGe1W5lma7JwMKAcPzY&s=Nx51NmjWG1rinj2oJEppb1UKk4aYWTWj4JSDT1rfg1cmS9qf_RNsdSxRAEnkGPh1uT1_qNWPUv-sBtIObTMcGNDYXLsrLKT7iSuE9pLFueguF0V9ZRfMWrBP8FvXYvBftTxoAGi_wqg4d6PryopXvmgyk7GXwPiR4GCeJsVsk1mtFEel9eOUIuK5PFZzClnNQZE7j0SFeN1QCthpMTD3amGwGOB4XgOG7Xe4o4ba0ZusNjKeRLJnSMde0178YuwC3FIQbh0-xLvK0ETjxqTRcFx0gShgS2sbxN1LjTFNheJj_tV_AkfbXRZ-nyc3snEvu8tBSB5I5EBt_skMZlbEMg&h=mzu-15gE9a-n5N4jfSfuaxu3Dz4zOMMVoT46xuB9bYU" + "https://management.azure.com/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/providers/Microsoft.Network/locations/westus2/operations/dc729a4c-fe79-4a10-a63e-e98520d530fc?api-version=2024-07-01&t=638932201324046714&c=MIIHhzCCBm-gAwIBAgITfAiEqRZrgLhPwkUvfgAACISpFjANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDUwHhcNMjUwNzE5MTUxNTU3WhcNMjYwMTE1MTUxNTU3WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANo8JkuCSyYzxbK-6GTWYze3gfPX3W0gGXDNABI0DpWEhe9om3se5tziu1JvncajCytpTguwrHlK0rcquzbDXXvHhbsY73edSvO92c2ADuvWEnNdsmm_eToLFsXFZjZMhgj9jD_wnJ6L9KtxBHW6hwaA6YgFKE3lyA5TXmiyo15CLkHFj02CX4NB1cTIN15yGoCxLyB-Zr3jEH0xfMCQPYlmSTwuQvC4UWEndUzZd_Y-HLo959DU-Ug61g41JksM4dzdEHw2_Yew_EDtac3ERKzqVKC1GxTNXLELU_LFkPdkKBi-JGTX5MxlXWEAVL1gSKy4C0lslOvMVICJ0D5ZPTECAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9DTzFQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA1LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MB0GA1UdDgQWBBTHBRf8ZL9wY__HzSsEXGXuVL8aEDAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBR61hmFKHlscXYeYPjzS--iBUIWHTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAIsWwSMOlrjb5kZTgKGXSVnDyLsC7qm2NFBdhoNUtOxSB-TF88cKGPhwNx59_1_GhsNjXldjQVJ1seRL3Dxf55jqzfXeFBQAIHIRsR8-WJPTpZ3VtWewO_Qvh9h7Bd-gfA0pRXw3Hq4eRpBmAf7gfOki1W-7-m3cozATlPCkEWnBM4qRujLuiQX_Q3tfok25Wmnyq_KkG_0VC3JVUvJnkKpv1qRHWahwVo1wzWyJIoaxA7T0oOonf6ZN3j8AyT_VGFDRmvLuvakI8huZgSbjWvWFT6bx7NRTo6YHkHb5COr1PJTbhpDS-PSv5Ud3SFTnLAZyd3oRW-Lp3Fo6RFoNgBs&s=PYPD1hRJswqRDhqdoOaSv80Tw3dkyCjCcUzPozMgqvcSF-SSCZ_xl26zpa7klosWFF3wBhee_5vaLYyX0U1RpJJXr-ajhZCtIvmDq-g65bxDXf7c4Fb1W0FdUs90HUPMdqn-RseNlkGLBvTP_PM-blEcunrQPy8Bje8HPudNzZUfcqLsscE96ZUSOLGGolCpcOJaUBowM5nZNA_hxw1_E2qk-cVgm14ci6feWBgCVBuJamJfBeyj9uw9afwf2rhOsvlWcR6q2CVbDpSZCcOuHYEwqGHKiNCnl4FDztG6KvG3ulcOpfAkZ2LuB3sktUSUo8Jwo1lavRPAB3waan4gRQ&h=pphLLzTg7-VgQustejaLj0k-gFJOexUMowefQ2lcjJY" ], "x-ms-correlation-request-id": [ - "34854030-518b-4a95-b1ca-fcd466687516" + "37ba7dff-8975-488e-9ce9-39b62d75bdfe" ], - "azure-asyncnotification": [ + "Azure-AsyncNotification": [ "Enabled" ], "x-ms-arm-service-request-id": [ - "80b955c0-6349-40cf-ac4f-0ecbe3fec3b9" + "4660c32a-0ea6-44e9-9605-a754cd71a480" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], + "x-ms-operation-identifier": [ + "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=ac839cc2-33ee-4879-a5b5-2895202ccb29/australiaeast/41bf48ac-8054-4235-aea9-3c9c00b57f75" + ], "x-ms-ratelimit-remaining-subscription-writes": [ "799" ], @@ -1080,7 +1098,7 @@ "11999" ], "x-ms-routing-request-id": [ - "EASTUS:20241113T211913Z:34854030-518b-4a95-b1ca-fcd466687516" + "AUSTRALIAEAST:20250911T204212Z:37ba7dff-8975-488e-9ce9-39b62d75bdfe" ], "X-Content-Type-Options": [ "nosniff" @@ -1089,13 +1107,13 @@ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: 7AA5720E845E4B8490B37449ABE7C790 Ref B: MNZ221060618045 Ref C: 2024-11-13T21:19:11Z" + "Ref A: 023F3F816AE54A9097D0ADA09D34DC2F Ref B: MWH011020806060 Ref C: 2025-09-11T20:42:08Z" ], "Date": [ - "Wed, 13 Nov 2024 21:19:13 GMT" + "Thu, 11 Sep 2025 20:42:12 GMT" ], "Content-Length": [ - "1591" + "1577" ], "Content-Type": [ "application/json; charset=utf-8" @@ -1104,21 +1122,21 @@ "-1" ] }, - "ResponseBody": "{\r\n \"name\": \"mypec\",\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/ps5688/providers/Microsoft.Network/privateEndpoints/mypec\",\r\n \"etag\": \"W/\\\"f3880890-64af-4163-9a19-cbc33a7c4a16\\\"\",\r\n \"type\": \"Microsoft.Network/privateEndpoints\",\r\n \"location\": \"westus2\",\r\n \"properties\": {\r\n \"provisioningState\": \"Updating\",\r\n \"resourceGuid\": \"0f3811e5-f837-4ecf-b913-5b7dc498570a\",\r\n \"privateLinkServiceConnections\": [],\r\n \"manualPrivateLinkServiceConnections\": [\r\n {\r\n \"name\": \"myplsconnection\",\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/ps5688/providers/Microsoft.Network/privateEndpoints/mypec/manualPrivateLinkServiceConnections/myplsconnection\",\r\n \"etag\": \"W/\\\"f3880890-64af-4163-9a19-cbc33a7c4a16\\\"\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"privateLinkServiceId\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/ps5688/providers/Microsoft.Batch/batchAccounts/ps9576\",\r\n \"groupIds\": [\r\n \"batchAccount\"\r\n ],\r\n \"privateLinkServiceConnectionState\": {\r\n \"status\": \"Pending\",\r\n \"description\": \"Awaiting Approval\",\r\n \"actionsRequired\": \"None\"\r\n }\r\n },\r\n \"type\": \"Microsoft.Network/privateEndpoints/manualPrivateLinkServiceConnections\"\r\n }\r\n ],\r\n \"customNetworkInterfaceName\": \"\",\r\n \"subnet\": {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/ps5688/providers/Microsoft.Network/virtualNetworks/myvnet/subnets/mysubnet\"\r\n },\r\n \"ipConfigurations\": [],\r\n \"networkInterfaces\": [\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/ps5688/providers/Microsoft.Network/networkInterfaces/mypec.nic.f9bb66dc-b709-4d8b-a123-abcc10e23126\"\r\n }\r\n ],\r\n \"customDnsConfigs\": [],\r\n \"isIPv6EnabledPrivateEndpoint\": false\r\n }\r\n}", + "ResponseBody": "{\r\n \"name\": \"mypec\",\r\n \"id\": \"/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps2289/providers/Microsoft.Network/privateEndpoints/mypec\",\r\n \"etag\": \"W/\\\"6295df36-2f32-4d00-be71-42f1c0074402\\\"\",\r\n \"type\": \"Microsoft.Network/privateEndpoints\",\r\n \"location\": \"westus2\",\r\n \"properties\": {\r\n \"provisioningState\": \"Updating\",\r\n \"resourceGuid\": \"397dcfed-682e-4f05-ac8b-92f57cc1a1fe\",\r\n \"privateLinkServiceConnections\": [],\r\n \"manualPrivateLinkServiceConnections\": [\r\n {\r\n \"name\": \"myplsconnection\",\r\n \"id\": \"/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps2289/providers/Microsoft.Network/privateEndpoints/mypec/manualPrivateLinkServiceConnections/myplsconnection\",\r\n \"etag\": \"W/\\\"6295df36-2f32-4d00-be71-42f1c0074402\\\"\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"privateLinkServiceId\": \"/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps2289/providers/Microsoft.Batch/batchAccounts/ps5017\",\r\n \"groupIds\": [\r\n \"batchAccount\"\r\n ],\r\n \"privateLinkServiceConnectionState\": {\r\n \"status\": \"Pending\",\r\n \"description\": \"Awaiting Approval\",\r\n \"actionsRequired\": \"None\"\r\n }\r\n },\r\n \"type\": \"Microsoft.Network/privateEndpoints/manualPrivateLinkServiceConnections\"\r\n }\r\n ],\r\n \"customNetworkInterfaceName\": \"\",\r\n \"subnet\": {\r\n \"id\": \"/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps2289/providers/Microsoft.Network/virtualNetworks/myvnet/subnets/mysubnet\"\r\n },\r\n \"ipConfigurations\": [],\r\n \"networkInterfaces\": [\r\n {\r\n \"id\": \"/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps2289/providers/Microsoft.Network/networkInterfaces/mypec.nic.46801233-386e-49c8-8637-a185587fbe34\"\r\n }\r\n ],\r\n \"customDnsConfigs\": [],\r\n \"ipVersionType\": \"IPv4\"\r\n }\r\n}", "StatusCode": 201 }, { - "RequestUri": "/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/providers/Microsoft.Network/locations/westus2/operations/f5e0db77-a76c-4d4c-af84-5b6643c68cf1?api-version=2024-03-01&t=638671295536333622&c=MIIHhzCCBm-gAwIBAgITHgVqhF9GOoUjuyqQWAAABWqEXzANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDYwHhcNMjQwOTIwMjMxMTQxWhcNMjUwMzE5MjMxMTQxWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKRtcYDBXS7zz5tRtvVyhrUAjudYhej1E2D3dp6XWuPdbVMbQZwMlye8vdT-kDhFD7T2mrdWqsoGnTGk0_xOHBfLGnW-0QRUqpeoTNIhu8vc2CfTUtm2t2s_-fzvFtRyhDA4mfCH1cz92EVj0vd3FD4ikW6bdOp1NkYFqUVBhKlbvJk6y-TbLFBLP5Zx4m0Ua-_P7aMzbgvOJgMOTC2jLs5w_lFDJWeP3IKUOiJmrfLpf4ey5Ov94oCE6YncDBSHJZKWcrSxDHgSz9AXrxarL4HLajGbF3MRvfkMN2gNXCoiJXBEqCLDnyQZ0BgXIvuK7vG8Rj0TyhJNj-QPr8taY6UCAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAyLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA2LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MB0GA1UdDgQWBBRKlJQpFyyZKSchkTlshetYOUX7xzAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBTxRmjG8cPwKy19i2rhsvm-NfzRQTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAG0WbzLPsmSSMI7aTe2npixmkdCmwcdZHGd43tUnB8JKrLNJEFcBsQmbcIH0adpnQNrDgRkNBBOTZ4s1LIBlRQapZpPsRItAMUguVpGVRH08T0i43w9xrp_clNbAJrrfRbmYroF0WJKMJ0nwW2rPjxdevSRygGK_nEfywwFi-p1RhHnkiEGL4GnP7PpQcRvAYMdH9LO5MRY7iLbBmosKatS_eWtSJD1CvzglNwy_vQzx81Vnk0CgndqXcVq-loGu7R4U7mkQ2NNqLbp447STxkpP-6Mdyv8J4bdnf1s3vFBNpgvJWKogWcNLlo8jnkbEf6RPNGe1W5lma7JwMKAcPzY&s=Nx51NmjWG1rinj2oJEppb1UKk4aYWTWj4JSDT1rfg1cmS9qf_RNsdSxRAEnkGPh1uT1_qNWPUv-sBtIObTMcGNDYXLsrLKT7iSuE9pLFueguF0V9ZRfMWrBP8FvXYvBftTxoAGi_wqg4d6PryopXvmgyk7GXwPiR4GCeJsVsk1mtFEel9eOUIuK5PFZzClnNQZE7j0SFeN1QCthpMTD3amGwGOB4XgOG7Xe4o4ba0ZusNjKeRLJnSMde0178YuwC3FIQbh0-xLvK0ETjxqTRcFx0gShgS2sbxN1LjTFNheJj_tV_AkfbXRZ-nyc3snEvu8tBSB5I5EBt_skMZlbEMg&h=mzu-15gE9a-n5N4jfSfuaxu3Dz4zOMMVoT46xuB9bYU", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjFhYmQ2NzgtMThjNS00NjYwLTlmZGQtOGM1YmE2YjZmZTFmL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay9sb2NhdGlvbnMvd2VzdHVzMi9vcGVyYXRpb25zL2Y1ZTBkYjc3LWE3NmMtNGQ0Yy1hZjg0LTViNjY0M2M2OGNmMT9hcGktdmVyc2lvbj0yMDI0LTAzLTAxJnQ9NjM4NjcxMjk1NTM2MzMzNjIyJmM9TUlJSGh6Q0NCbS1nQXdJQkFnSVRIZ1ZxaEY5R09vVWp1eXFRV0FBQUJXcUVYekFOQmdrcWhraUc5dzBCQVFzRkFEQkVNUk13RVFZS0NaSW1pWlB5TEdRQkdSWURSMEpNTVJNd0VRWUtDWkltaVpQeUxHUUJHUllEUVUxRk1SZ3dGZ1lEVlFRREV3OUJUVVVnU1c1bWNtRWdRMEVnTURZd0hoY05NalF3T1RJd01qTXhNVFF4V2hjTk1qVXdNekU1TWpNeE1UUXhXakJBTVQ0d1BBWURWUVFERXpWaGMzbHVZMjl3WlhKaGRHbHZibk5wWjI1cGJtZGpaWEowYVdacFkyRjBaUzV0WVc1aFoyVnRaVzUwTG1GNmRYSmxMbU52YlRDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBS1J0Y1lEQlhTN3p6NXRSdHZWeWhyVUFqdWRZaGVqMUUyRDNkcDZYV3VQZGJWTWJRWndNbHllOHZkVC1rRGhGRDdUMm1yZFdxc29HblRHazBfeE9IQmZMR25XLTBRUlVxcGVvVE5JaHU4dmMyQ2ZUVXRtMnQyc18tZnp2RnRSeWhEQTRtZkNIMWN6OTJFVmowdmQzRkQ0aWtXNmJkT3AxTmtZRnFVVkJoS2xidkprNnktVGJMRkJMUDVaeDRtMFVhLV9QN2FNemJndk9KZ01PVEMyakxzNXdfbEZESldlUDNJS1VPaUptcmZMcGY0ZXk1T3Y5NG9DRTZZbmNEQlNISlpLV2NyU3hESGdTejlBWHJ4YXJMNEhMYWpHYkYzTVJ2ZmtNTjJnTlhDb2lKWEJFcUNMRG55UVowQmdYSXZ1Szd2RzhSajBUeWhKTmotUVByOHRhWTZVQ0F3RUFBYU9DQkhRd2dnUndNQ2NHQ1NzR0FRUUJnamNWQ2dRYU1CZ3dDZ1lJS3dZQkJRVUhBd0V3Q2dZSUt3WUJCUVVIQXdJd1BRWUpLd1lCQkFHQ054VUhCREF3TGdZbUt3WUJCQUdDTnhVSWhwRGpEWVRWdEhpRThZcy1oWnZkRnM2ZEVvRmdoZm1SUzRXc21UUUNBV1FDQVFjd2dnSExCZ2dyQmdFRkJRY0JBUVNDQWIwd2dnRzVNR01HQ0NzR0FRVUZCekFDaGxkb2RIUndPaTh2WTNKc0xtMXBZM0p2YzI5bWRDNWpiMjB2Y0d0cGFXNW1jbUV2UTJWeWRITXZRa3d5VUV0SlNVNVVRMEV3TWk1QlRVVXVSMEpNWDBGTlJTVXlNRWx1Wm5KaEpUSXdRMEVsTWpBd05pNWpjblF3VXdZSUt3WUJCUVVITUFLR1IyaDBkSEE2THk5amNtd3hMbUZ0WlM1blltd3ZZV2xoTDBKTU1sQkxTVWxPVkVOQk1ESXVRVTFGTGtkQ1RGOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFl1WTNKME1GTUdDQ3NHQVFVRkJ6QUNoa2RvZEhSd09pOHZZM0pzTWk1aGJXVXVaMkpzTDJGcFlTOUNUREpRUzBsSlRsUkRRVEF5TGtGTlJTNUhRa3hmUVUxRkpUSXdTVzVtY21FbE1qQkRRU1V5TURBMkxtTnlkREJUQmdnckJnRUZCUWN3QW9aSGFIUjBjRG92TDJOeWJETXVZVzFsTG1kaWJDOWhhV0V2UWt3eVVFdEpTVTVVUTBFd01pNUJUVVV1UjBKTVgwRk5SU1V5TUVsdVpuSmhKVEl3UTBFbE1qQXdOaTVqY25Rd1V3WUlLd1lCQlFVSE1BS0dSMmgwZEhBNkx5OWpjbXcwTG1GdFpTNW5ZbXd2WVdsaEwwSk1NbEJMU1VsT1ZFTkJNREl1UVUxRkxrZENURjlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURZdVkzSjBNQjBHQTFVZERnUVdCQlJLbEpRcEZ5eVpLU2Noa1Rsc2hldFlPVVg3eHpBT0JnTlZIUThCQWY4RUJBTUNCYUF3Z2dFbUJnTlZIUjhFZ2dFZE1JSUJHVENDQVJXZ2dnRVJvSUlCRFlZX2FIUjBjRG92TDJOeWJDNXRhV055YjNOdlpuUXVZMjl0TDNCcmFXbHVabkpoTDBOU1RDOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFl1WTNKc2hqRm9kSFJ3T2k4dlkzSnNNUzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01EWXVZM0pzaGpGb2RIUndPaTh2WTNKc01pNWhiV1V1WjJKc0wyTnliQzlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURZdVkzSnNoakZvZEhSd09pOHZZM0pzTXk1aGJXVXVaMkpzTDJOeWJDOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFl1WTNKc2hqRm9kSFJ3T2k4dlkzSnNOQzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01EWXVZM0pzTUlHZEJnTlZIU0FFZ1pVd2daSXdEQVlLS3dZQkJBR0NOM3NCQVRCbUJnb3JCZ0VFQVlJM2V3SUNNRmd3VmdZSUt3WUJCUVVIQWdJd1NoNUlBRE1BTXdCbEFEQUFNUUE1QURJQU1RQXRBRFFBWkFBMkFEUUFMUUEwQUdZQU9BQmpBQzBBWVFBd0FEVUFOUUF0QURVQVlnQmtBR0VBWmdCbUFHUUFOUUJsQURNQU13QmtNQXdHQ2lzR0FRUUJnamQ3QXdFd0RBWUtLd1lCQkFHQ04zc0VBakFmQmdOVkhTTUVHREFXZ0JUeFJtakc4Y1B3S3kxOWkycmhzdm0tTmZ6UlFUQWRCZ05WSFNVRUZqQVVCZ2dyQmdFRkJRY0RBUVlJS3dZQkJRVUhBd0l3RFFZSktvWklodmNOQVFFTEJRQURnZ0VCQUcwV2J6TFBzbVNTTUk3YVRlMm5waXhta2RDbXdjZFpIR2Q0M3RVbkI4SktyTE5KRUZjQnNRbWJjSUgwYWRwblFOckRnUmtOQkJPVFo0czFMSUJsUlFhcFpwUHNSSXRBTVVndVZwR1ZSSDA4VDBpNDN3OXhycF9jbE5iQUpycmZSYm1Zcm9GMFdKS01KMG53VzJyUGp4ZGV2U1J5Z0dLX25FZnl3d0ZpLXAxUmhIbmtpRUdMNEduUDdQcFFjUnZBWU1kSDlMTzVNUlk3aUxiQm1vc0thdFNfZVd0U0pEMUN2emdsTnd5X3ZReng4MVZuazBDZ25kcVhjVnEtbG9HdTdSNFU3bWtRMk5OcUxicDQ0N1NUeGtwUC02TWR5djhKNGJkbmYxczN2RkJOcGd2SldLb2dXY05MbG84am5rYkVmNlJQTkdlMVc1bG1hN0p3TUtBY1B6WSZzPU54NTFObWpXRzFyaW5qMm9KRXBwYjFVS2s0YVlXVFdqNEpTRFQxcmZnMWNtUzlxZl9STnNkU3hSQUVua0dQaDF1VDFfcU5XUFV2LXNCdElPYlRNY0dORFlYTHNyTEtUN2lTdUU5cExGdWVndUYwVjlaUmZNV3JCUDhGdlhZdkJmdFR4b0FHaV93cWc0ZDZQcnlvcFh2bWd5azdHWHdQaVI0R0NlSnNWc2sxbXRGRWVsOWVPVUl1SzVQRlp6Q2xuTlFaRTdqMFNGZU4xUUN0aHBNVEQzYW1Hd0dPQjRYZ09HN1hlNG80YmEwWnVzTmpLZVJMSm5TTWRlMDE3OFl1d0MzRklRYmgwLXhMdkswRVRqeHFUUmNGeDBnU2hnUzJzYnhOMUxqVEZOaGVKal90Vl9Ba2ZiWFJaLW55YzNzbkV2dTh0QlNCNUk1RUJ0X3NrTVpsYkVNZyZoPW16dS0xNWdFOWEtbjVONGpmU2Z1YXh1M0R6NHpPTU1Wb1Q0Nnh1QjliWVU=", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/providers/Microsoft.Network/locations/westus2/operations/dc729a4c-fe79-4a10-a63e-e98520d530fc?api-version=2024-07-01&t=638932201324046714&c=MIIHhzCCBm-gAwIBAgITfAiEqRZrgLhPwkUvfgAACISpFjANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDUwHhcNMjUwNzE5MTUxNTU3WhcNMjYwMTE1MTUxNTU3WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANo8JkuCSyYzxbK-6GTWYze3gfPX3W0gGXDNABI0DpWEhe9om3se5tziu1JvncajCytpTguwrHlK0rcquzbDXXvHhbsY73edSvO92c2ADuvWEnNdsmm_eToLFsXFZjZMhgj9jD_wnJ6L9KtxBHW6hwaA6YgFKE3lyA5TXmiyo15CLkHFj02CX4NB1cTIN15yGoCxLyB-Zr3jEH0xfMCQPYlmSTwuQvC4UWEndUzZd_Y-HLo959DU-Ug61g41JksM4dzdEHw2_Yew_EDtac3ERKzqVKC1GxTNXLELU_LFkPdkKBi-JGTX5MxlXWEAVL1gSKy4C0lslOvMVICJ0D5ZPTECAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9DTzFQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA1LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MB0GA1UdDgQWBBTHBRf8ZL9wY__HzSsEXGXuVL8aEDAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBR61hmFKHlscXYeYPjzS--iBUIWHTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAIsWwSMOlrjb5kZTgKGXSVnDyLsC7qm2NFBdhoNUtOxSB-TF88cKGPhwNx59_1_GhsNjXldjQVJ1seRL3Dxf55jqzfXeFBQAIHIRsR8-WJPTpZ3VtWewO_Qvh9h7Bd-gfA0pRXw3Hq4eRpBmAf7gfOki1W-7-m3cozATlPCkEWnBM4qRujLuiQX_Q3tfok25Wmnyq_KkG_0VC3JVUvJnkKpv1qRHWahwVo1wzWyJIoaxA7T0oOonf6ZN3j8AyT_VGFDRmvLuvakI8huZgSbjWvWFT6bx7NRTo6YHkHb5COr1PJTbhpDS-PSv5Ud3SFTnLAZyd3oRW-Lp3Fo6RFoNgBs&s=PYPD1hRJswqRDhqdoOaSv80Tw3dkyCjCcUzPozMgqvcSF-SSCZ_xl26zpa7klosWFF3wBhee_5vaLYyX0U1RpJJXr-ajhZCtIvmDq-g65bxDXf7c4Fb1W0FdUs90HUPMdqn-RseNlkGLBvTP_PM-blEcunrQPy8Bje8HPudNzZUfcqLsscE96ZUSOLGGolCpcOJaUBowM5nZNA_hxw1_E2qk-cVgm14ci6feWBgCVBuJamJfBeyj9uw9afwf2rhOsvlWcR6q2CVbDpSZCcOuHYEwqGHKiNCnl4FDztG6KvG3ulcOpfAkZ2LuB3sktUSUo8Jwo1lavRPAB3waan4gRQ&h=pphLLzTg7-VgQustejaLj0k-gFJOexUMowefQ2lcjJY", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay9sb2NhdGlvbnMvd2VzdHVzMi9vcGVyYXRpb25zL2RjNzI5YTRjLWZlNzktNGExMC1hNjNlLWU5ODUyMGQ1MzBmYz9hcGktdmVyc2lvbj0yMDI0LTA3LTAxJnQ9NjM4OTMyMjAxMzI0MDQ2NzE0JmM9TUlJSGh6Q0NCbS1nQXdJQkFnSVRmQWlFcVJacmdMaFB3a1V2ZmdBQUNJU3BGakFOQmdrcWhraUc5dzBCQVFzRkFEQkVNUk13RVFZS0NaSW1pWlB5TEdRQkdSWURSMEpNTVJNd0VRWUtDWkltaVpQeUxHUUJHUllEUVUxRk1SZ3dGZ1lEVlFRREV3OUJUVVVnU1c1bWNtRWdRMEVnTURVd0hoY05NalV3TnpFNU1UVXhOVFUzV2hjTk1qWXdNVEUxTVRVeE5UVTNXakJBTVQ0d1BBWURWUVFERXpWaGMzbHVZMjl3WlhKaGRHbHZibk5wWjI1cGJtZGpaWEowYVdacFkyRjBaUzV0WVc1aFoyVnRaVzUwTG1GNmRYSmxMbU52YlRDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBTm84Smt1Q1N5WXp4YkstNkdUV1l6ZTNnZlBYM1cwZ0dYRE5BQkkwRHBXRWhlOW9tM3NlNXR6aXUxSnZuY2FqQ3l0cFRndXdySGxLMHJjcXV6YkRYWHZIaGJzWTczZWRTdk85MmMyQUR1dldFbk5kc21tX2VUb0xGc1hGWmpaTWhnajlqRF93bko2TDlLdHhCSFc2aHdhQTZZZ0ZLRTNseUE1VFhtaXlvMTVDTGtIRmowMkNYNE5CMWNUSU4xNXlHb0N4THlCLVpyM2pFSDB4Zk1DUVBZbG1TVHd1UXZDNFVXRW5kVXpaZF9ZLUhMbzk1OURVLVVnNjFnNDFKa3NNNGR6ZEVIdzJfWWV3X0VEdGFjM0VSS3pxVktDMUd4VE5YTEVMVV9MRmtQZGtLQmktSkdUWDVNeGxYV0VBVkwxZ1NLeTRDMGxzbE92TVZJQ0owRDVaUFRFQ0F3RUFBYU9DQkhRd2dnUndNQ2NHQ1NzR0FRUUJnamNWQ2dRYU1CZ3dDZ1lJS3dZQkJRVUhBd0V3Q2dZSUt3WUJCUVVIQXdJd1BRWUpLd1lCQkFHQ054VUhCREF3TGdZbUt3WUJCQUdDTnhVSWhwRGpEWVRWdEhpRThZcy1oWnZkRnM2ZEVvRmdoZm1SUzRXc21UUUNBV1FDQVFjd2dnSExCZ2dyQmdFRkJRY0JBUVNDQWIwd2dnRzVNR01HQ0NzR0FRVUZCekFDaGxkb2RIUndPaTh2WTNKc0xtMXBZM0p2YzI5bWRDNWpiMjB2Y0d0cGFXNW1jbUV2UTJWeWRITXZRMDh4VUV0SlNVNVVRMEV3TVM1QlRVVXVSMEpNWDBGTlJTVXlNRWx1Wm5KaEpUSXdRMEVsTWpBd05TNWpjblF3VXdZSUt3WUJCUVVITUFLR1IyaDBkSEE2THk5amNtd3hMbUZ0WlM1blltd3ZZV2xoTDBOUE1WQkxTVWxPVkVOQk1ERXVRVTFGTGtkQ1RGOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFV1WTNKME1GTUdDQ3NHQVFVRkJ6QUNoa2RvZEhSd09pOHZZM0pzTWk1aGJXVXVaMkpzTDJGcFlTOURUekZRUzBsSlRsUkRRVEF4TGtGTlJTNUhRa3hmUVUxRkpUSXdTVzVtY21FbE1qQkRRU1V5TURBMUxtTnlkREJUQmdnckJnRUZCUWN3QW9aSGFIUjBjRG92TDJOeWJETXVZVzFsTG1kaWJDOWhhV0V2UTA4eFVFdEpTVTVVUTBFd01TNUJUVVV1UjBKTVgwRk5SU1V5TUVsdVpuSmhKVEl3UTBFbE1qQXdOUzVqY25Rd1V3WUlLd1lCQlFVSE1BS0dSMmgwZEhBNkx5OWpjbXcwTG1GdFpTNW5ZbXd2WVdsaEwwTlBNVkJMU1VsT1ZFTkJNREV1UVUxRkxrZENURjlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURVdVkzSjBNQjBHQTFVZERnUVdCQlRIQlJmOFpMOXdZX19IelNzRVhHWHVWTDhhRURBT0JnTlZIUThCQWY4RUJBTUNCYUF3Z2dFbUJnTlZIUjhFZ2dFZE1JSUJHVENDQVJXZ2dnRVJvSUlCRFlZX2FIUjBjRG92TDJOeWJDNXRhV055YjNOdlpuUXVZMjl0TDNCcmFXbHVabkpoTDBOU1RDOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFV1WTNKc2hqRm9kSFJ3T2k4dlkzSnNNUzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01EVXVZM0pzaGpGb2RIUndPaTh2WTNKc01pNWhiV1V1WjJKc0wyTnliQzlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURVdVkzSnNoakZvZEhSd09pOHZZM0pzTXk1aGJXVXVaMkpzTDJOeWJDOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFV1WTNKc2hqRm9kSFJ3T2k4dlkzSnNOQzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01EVXVZM0pzTUlHZEJnTlZIU0FFZ1pVd2daSXdEQVlLS3dZQkJBR0NOM3NCQVRCbUJnb3JCZ0VFQVlJM2V3SUNNRmd3VmdZSUt3WUJCUVVIQWdJd1NoNUlBRE1BTXdCbEFEQUFNUUE1QURJQU1RQXRBRFFBWkFBMkFEUUFMUUEwQUdZQU9BQmpBQzBBWVFBd0FEVUFOUUF0QURVQVlnQmtBR0VBWmdCbUFHUUFOUUJsQURNQU13QmtNQXdHQ2lzR0FRUUJnamQ3QXdJd0RBWUtLd1lCQkFHQ04zc0VBakFmQmdOVkhTTUVHREFXZ0JSNjFobUZLSGxzY1hZZVlQanpTLS1pQlVJV0hUQWRCZ05WSFNVRUZqQVVCZ2dyQmdFRkJRY0RBUVlJS3dZQkJRVUhBd0l3RFFZSktvWklodmNOQVFFTEJRQURnZ0VCQUlzV3dTTU9scmpiNWtaVGdLR1hTVm5EeUxzQzdxbTJORkJkaG9OVXRPeFNCLVRGODhjS0dQaHdOeDU5XzFfR2hzTmpYbGRqUVZKMXNlUkwzRHhmNTVqcXpmWGVGQlFBSUhJUnNSOC1XSlBUcFozVnRXZXdPX1F2aDloN0JkLWdmQTBwUlh3M0hxNGVScEJtQWY3Z2ZPa2kxVy03LW0zY296QVRsUENrRVduQk00cVJ1akx1aVFYX1EzdGZvazI1V21ueXFfS2tHXzBWQzNKVlV2Sm5rS3B2MXFSSFdhaHdWbzF3eld5SklvYXhBN1Qwb09vbmY2Wk4zajhBeVRfVkdGRFJtdkx1dmFrSThodVpnU2JqV3ZXRlQ2Yng3TlJUbzZZSGtIYjVDT3IxUEpUYmhwRFMtUFN2NVVkM1NGVG5MQVp5ZDNvUlctTHAzRm82UkZvTmdCcyZzPVBZUEQxaFJKc3dxUkRocWRvT2FTdjgwVHczZGt5Q2pDY1V6UG96TWdxdmNTRi1TU0NaX3hsMjZ6cGE3a2xvc1dGRjN3QmhlZV81dmFMWXlYMFUxUnBKSlhyLWFqaFpDdEl2bURxLWc2NWJ4RFhmN2M0RmIxVzBGZFVzOTBIVVBNZHFuLVJzZU5sa0dMQnZUUF9QTS1ibEVjdW5yUVB5OEJqZThIUHVkTnpaVWZjcUxzc2NFOTZaVVNPTEdHb2xDcGNPSmFVQm93TTVuWk5BX2h4dzFfRTJxay1jVmdtMTRjaTZmZVdCZ0NWQnVKYW1KZkJleWo5dXc5YWZ3ZjJyaE9zdmxXY1I2cTJDVmJEcFNaQ2NPdUhZRXdxR0hLaU5Dbmw0RkR6dEc2S3ZHM3VsY09wZkFrWjJMdUIzc2t0VVNVbzhKd28xbGF2UlBBQjN3YWFuNGdSUSZoPXBwaExMelRnNy1WZ1F1c3RlamFMajBrLWdGSk9leFVNb3dlZlEybGNqSlk=", "RequestMethod": "GET", "RequestHeaders": { "x-ms-client-request-id": [ - "05fdecfd-3a5a-48a7-b544-4136ec5d4714" + "d5ae28e9-545e-461e-80a1-0db87eb9e4c5" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Management.Network.NetworkManagementClient/27.0.0.0" ] }, @@ -1134,17 +1152,20 @@ "10" ], "x-ms-request-id": [ - "b8bbbd9f-a6d5-40d7-9dcf-e088d0bca4f8" + "4d972b0c-c8ea-4649-92e1-eb133b83ad56" ], "x-ms-correlation-request-id": [ - "7214be06-b700-4e0f-b70b-17c813a611e5" + "547eaf91-b7d0-44ba-a5a0-cd9ff91f4f1a" ], "x-ms-arm-service-request-id": [ - "02cfbed7-0125-4812-8007-a7f178918f80" + "5992f83c-2065-468c-8a7b-e3dec88c03ef" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], + "x-ms-operation-identifier": [ + "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=ac839cc2-33ee-4879-a5b5-2895202ccb29/australiaeast/11b372fb-ac29-4976-aee0-f712a139e4e1" + ], "x-ms-ratelimit-remaining-subscription-reads": [ "1099" ], @@ -1152,7 +1173,7 @@ "16499" ], "x-ms-routing-request-id": [ - "EASTUS:20241113T211923Z:7214be06-b700-4e0f-b70b-17c813a611e5" + "AUSTRALIAEAST:20250911T204222Z:547eaf91-b7d0-44ba-a5a0-cd9ff91f4f1a" ], "X-Content-Type-Options": [ "nosniff" @@ -1161,10 +1182,10 @@ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: 3E2500F871B848F59AC82B476C2FA68A Ref B: MNZ221060618045 Ref C: 2024-11-13T21:19:23Z" + "Ref A: 6DC58CBF3620491DAC0B1BB2C9178AF9 Ref B: MWH011020806060 Ref C: 2025-09-11T20:42:22Z" ], "Date": [ - "Wed, 13 Nov 2024 21:19:23 GMT" + "Thu, 11 Sep 2025 20:42:22 GMT" ], "Content-Length": [ "23" @@ -1180,17 +1201,17 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/providers/Microsoft.Network/locations/westus2/operations/f5e0db77-a76c-4d4c-af84-5b6643c68cf1?api-version=2024-03-01&t=638671295536333622&c=MIIHhzCCBm-gAwIBAgITHgVqhF9GOoUjuyqQWAAABWqEXzANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDYwHhcNMjQwOTIwMjMxMTQxWhcNMjUwMzE5MjMxMTQxWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKRtcYDBXS7zz5tRtvVyhrUAjudYhej1E2D3dp6XWuPdbVMbQZwMlye8vdT-kDhFD7T2mrdWqsoGnTGk0_xOHBfLGnW-0QRUqpeoTNIhu8vc2CfTUtm2t2s_-fzvFtRyhDA4mfCH1cz92EVj0vd3FD4ikW6bdOp1NkYFqUVBhKlbvJk6y-TbLFBLP5Zx4m0Ua-_P7aMzbgvOJgMOTC2jLs5w_lFDJWeP3IKUOiJmrfLpf4ey5Ov94oCE6YncDBSHJZKWcrSxDHgSz9AXrxarL4HLajGbF3MRvfkMN2gNXCoiJXBEqCLDnyQZ0BgXIvuK7vG8Rj0TyhJNj-QPr8taY6UCAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAyLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA2LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MB0GA1UdDgQWBBRKlJQpFyyZKSchkTlshetYOUX7xzAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBTxRmjG8cPwKy19i2rhsvm-NfzRQTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAG0WbzLPsmSSMI7aTe2npixmkdCmwcdZHGd43tUnB8JKrLNJEFcBsQmbcIH0adpnQNrDgRkNBBOTZ4s1LIBlRQapZpPsRItAMUguVpGVRH08T0i43w9xrp_clNbAJrrfRbmYroF0WJKMJ0nwW2rPjxdevSRygGK_nEfywwFi-p1RhHnkiEGL4GnP7PpQcRvAYMdH9LO5MRY7iLbBmosKatS_eWtSJD1CvzglNwy_vQzx81Vnk0CgndqXcVq-loGu7R4U7mkQ2NNqLbp447STxkpP-6Mdyv8J4bdnf1s3vFBNpgvJWKogWcNLlo8jnkbEf6RPNGe1W5lma7JwMKAcPzY&s=Nx51NmjWG1rinj2oJEppb1UKk4aYWTWj4JSDT1rfg1cmS9qf_RNsdSxRAEnkGPh1uT1_qNWPUv-sBtIObTMcGNDYXLsrLKT7iSuE9pLFueguF0V9ZRfMWrBP8FvXYvBftTxoAGi_wqg4d6PryopXvmgyk7GXwPiR4GCeJsVsk1mtFEel9eOUIuK5PFZzClnNQZE7j0SFeN1QCthpMTD3amGwGOB4XgOG7Xe4o4ba0ZusNjKeRLJnSMde0178YuwC3FIQbh0-xLvK0ETjxqTRcFx0gShgS2sbxN1LjTFNheJj_tV_AkfbXRZ-nyc3snEvu8tBSB5I5EBt_skMZlbEMg&h=mzu-15gE9a-n5N4jfSfuaxu3Dz4zOMMVoT46xuB9bYU", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjFhYmQ2NzgtMThjNS00NjYwLTlmZGQtOGM1YmE2YjZmZTFmL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay9sb2NhdGlvbnMvd2VzdHVzMi9vcGVyYXRpb25zL2Y1ZTBkYjc3LWE3NmMtNGQ0Yy1hZjg0LTViNjY0M2M2OGNmMT9hcGktdmVyc2lvbj0yMDI0LTAzLTAxJnQ9NjM4NjcxMjk1NTM2MzMzNjIyJmM9TUlJSGh6Q0NCbS1nQXdJQkFnSVRIZ1ZxaEY5R09vVWp1eXFRV0FBQUJXcUVYekFOQmdrcWhraUc5dzBCQVFzRkFEQkVNUk13RVFZS0NaSW1pWlB5TEdRQkdSWURSMEpNTVJNd0VRWUtDWkltaVpQeUxHUUJHUllEUVUxRk1SZ3dGZ1lEVlFRREV3OUJUVVVnU1c1bWNtRWdRMEVnTURZd0hoY05NalF3T1RJd01qTXhNVFF4V2hjTk1qVXdNekU1TWpNeE1UUXhXakJBTVQ0d1BBWURWUVFERXpWaGMzbHVZMjl3WlhKaGRHbHZibk5wWjI1cGJtZGpaWEowYVdacFkyRjBaUzV0WVc1aFoyVnRaVzUwTG1GNmRYSmxMbU52YlRDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBS1J0Y1lEQlhTN3p6NXRSdHZWeWhyVUFqdWRZaGVqMUUyRDNkcDZYV3VQZGJWTWJRWndNbHllOHZkVC1rRGhGRDdUMm1yZFdxc29HblRHazBfeE9IQmZMR25XLTBRUlVxcGVvVE5JaHU4dmMyQ2ZUVXRtMnQyc18tZnp2RnRSeWhEQTRtZkNIMWN6OTJFVmowdmQzRkQ0aWtXNmJkT3AxTmtZRnFVVkJoS2xidkprNnktVGJMRkJMUDVaeDRtMFVhLV9QN2FNemJndk9KZ01PVEMyakxzNXdfbEZESldlUDNJS1VPaUptcmZMcGY0ZXk1T3Y5NG9DRTZZbmNEQlNISlpLV2NyU3hESGdTejlBWHJ4YXJMNEhMYWpHYkYzTVJ2ZmtNTjJnTlhDb2lKWEJFcUNMRG55UVowQmdYSXZ1Szd2RzhSajBUeWhKTmotUVByOHRhWTZVQ0F3RUFBYU9DQkhRd2dnUndNQ2NHQ1NzR0FRUUJnamNWQ2dRYU1CZ3dDZ1lJS3dZQkJRVUhBd0V3Q2dZSUt3WUJCUVVIQXdJd1BRWUpLd1lCQkFHQ054VUhCREF3TGdZbUt3WUJCQUdDTnhVSWhwRGpEWVRWdEhpRThZcy1oWnZkRnM2ZEVvRmdoZm1SUzRXc21UUUNBV1FDQVFjd2dnSExCZ2dyQmdFRkJRY0JBUVNDQWIwd2dnRzVNR01HQ0NzR0FRVUZCekFDaGxkb2RIUndPaTh2WTNKc0xtMXBZM0p2YzI5bWRDNWpiMjB2Y0d0cGFXNW1jbUV2UTJWeWRITXZRa3d5VUV0SlNVNVVRMEV3TWk1QlRVVXVSMEpNWDBGTlJTVXlNRWx1Wm5KaEpUSXdRMEVsTWpBd05pNWpjblF3VXdZSUt3WUJCUVVITUFLR1IyaDBkSEE2THk5amNtd3hMbUZ0WlM1blltd3ZZV2xoTDBKTU1sQkxTVWxPVkVOQk1ESXVRVTFGTGtkQ1RGOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFl1WTNKME1GTUdDQ3NHQVFVRkJ6QUNoa2RvZEhSd09pOHZZM0pzTWk1aGJXVXVaMkpzTDJGcFlTOUNUREpRUzBsSlRsUkRRVEF5TGtGTlJTNUhRa3hmUVUxRkpUSXdTVzVtY21FbE1qQkRRU1V5TURBMkxtTnlkREJUQmdnckJnRUZCUWN3QW9aSGFIUjBjRG92TDJOeWJETXVZVzFsTG1kaWJDOWhhV0V2UWt3eVVFdEpTVTVVUTBFd01pNUJUVVV1UjBKTVgwRk5SU1V5TUVsdVpuSmhKVEl3UTBFbE1qQXdOaTVqY25Rd1V3WUlLd1lCQlFVSE1BS0dSMmgwZEhBNkx5OWpjbXcwTG1GdFpTNW5ZbXd2WVdsaEwwSk1NbEJMU1VsT1ZFTkJNREl1UVUxRkxrZENURjlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURZdVkzSjBNQjBHQTFVZERnUVdCQlJLbEpRcEZ5eVpLU2Noa1Rsc2hldFlPVVg3eHpBT0JnTlZIUThCQWY4RUJBTUNCYUF3Z2dFbUJnTlZIUjhFZ2dFZE1JSUJHVENDQVJXZ2dnRVJvSUlCRFlZX2FIUjBjRG92TDJOeWJDNXRhV055YjNOdlpuUXVZMjl0TDNCcmFXbHVabkpoTDBOU1RDOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFl1WTNKc2hqRm9kSFJ3T2k4dlkzSnNNUzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01EWXVZM0pzaGpGb2RIUndPaTh2WTNKc01pNWhiV1V1WjJKc0wyTnliQzlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURZdVkzSnNoakZvZEhSd09pOHZZM0pzTXk1aGJXVXVaMkpzTDJOeWJDOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFl1WTNKc2hqRm9kSFJ3T2k4dlkzSnNOQzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01EWXVZM0pzTUlHZEJnTlZIU0FFZ1pVd2daSXdEQVlLS3dZQkJBR0NOM3NCQVRCbUJnb3JCZ0VFQVlJM2V3SUNNRmd3VmdZSUt3WUJCUVVIQWdJd1NoNUlBRE1BTXdCbEFEQUFNUUE1QURJQU1RQXRBRFFBWkFBMkFEUUFMUUEwQUdZQU9BQmpBQzBBWVFBd0FEVUFOUUF0QURVQVlnQmtBR0VBWmdCbUFHUUFOUUJsQURNQU13QmtNQXdHQ2lzR0FRUUJnamQ3QXdFd0RBWUtLd1lCQkFHQ04zc0VBakFmQmdOVkhTTUVHREFXZ0JUeFJtakc4Y1B3S3kxOWkycmhzdm0tTmZ6UlFUQWRCZ05WSFNVRUZqQVVCZ2dyQmdFRkJRY0RBUVlJS3dZQkJRVUhBd0l3RFFZSktvWklodmNOQVFFTEJRQURnZ0VCQUcwV2J6TFBzbVNTTUk3YVRlMm5waXhta2RDbXdjZFpIR2Q0M3RVbkI4SktyTE5KRUZjQnNRbWJjSUgwYWRwblFOckRnUmtOQkJPVFo0czFMSUJsUlFhcFpwUHNSSXRBTVVndVZwR1ZSSDA4VDBpNDN3OXhycF9jbE5iQUpycmZSYm1Zcm9GMFdKS01KMG53VzJyUGp4ZGV2U1J5Z0dLX25FZnl3d0ZpLXAxUmhIbmtpRUdMNEduUDdQcFFjUnZBWU1kSDlMTzVNUlk3aUxiQm1vc0thdFNfZVd0U0pEMUN2emdsTnd5X3ZReng4MVZuazBDZ25kcVhjVnEtbG9HdTdSNFU3bWtRMk5OcUxicDQ0N1NUeGtwUC02TWR5djhKNGJkbmYxczN2RkJOcGd2SldLb2dXY05MbG84am5rYkVmNlJQTkdlMVc1bG1hN0p3TUtBY1B6WSZzPU54NTFObWpXRzFyaW5qMm9KRXBwYjFVS2s0YVlXVFdqNEpTRFQxcmZnMWNtUzlxZl9STnNkU3hSQUVua0dQaDF1VDFfcU5XUFV2LXNCdElPYlRNY0dORFlYTHNyTEtUN2lTdUU5cExGdWVndUYwVjlaUmZNV3JCUDhGdlhZdkJmdFR4b0FHaV93cWc0ZDZQcnlvcFh2bWd5azdHWHdQaVI0R0NlSnNWc2sxbXRGRWVsOWVPVUl1SzVQRlp6Q2xuTlFaRTdqMFNGZU4xUUN0aHBNVEQzYW1Hd0dPQjRYZ09HN1hlNG80YmEwWnVzTmpLZVJMSm5TTWRlMDE3OFl1d0MzRklRYmgwLXhMdkswRVRqeHFUUmNGeDBnU2hnUzJzYnhOMUxqVEZOaGVKal90Vl9Ba2ZiWFJaLW55YzNzbkV2dTh0QlNCNUk1RUJ0X3NrTVpsYkVNZyZoPW16dS0xNWdFOWEtbjVONGpmU2Z1YXh1M0R6NHpPTU1Wb1Q0Nnh1QjliWVU=", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/providers/Microsoft.Network/locations/westus2/operations/dc729a4c-fe79-4a10-a63e-e98520d530fc?api-version=2024-07-01&t=638932201324046714&c=MIIHhzCCBm-gAwIBAgITfAiEqRZrgLhPwkUvfgAACISpFjANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDUwHhcNMjUwNzE5MTUxNTU3WhcNMjYwMTE1MTUxNTU3WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANo8JkuCSyYzxbK-6GTWYze3gfPX3W0gGXDNABI0DpWEhe9om3se5tziu1JvncajCytpTguwrHlK0rcquzbDXXvHhbsY73edSvO92c2ADuvWEnNdsmm_eToLFsXFZjZMhgj9jD_wnJ6L9KtxBHW6hwaA6YgFKE3lyA5TXmiyo15CLkHFj02CX4NB1cTIN15yGoCxLyB-Zr3jEH0xfMCQPYlmSTwuQvC4UWEndUzZd_Y-HLo959DU-Ug61g41JksM4dzdEHw2_Yew_EDtac3ERKzqVKC1GxTNXLELU_LFkPdkKBi-JGTX5MxlXWEAVL1gSKy4C0lslOvMVICJ0D5ZPTECAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9DTzFQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA1LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MB0GA1UdDgQWBBTHBRf8ZL9wY__HzSsEXGXuVL8aEDAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBR61hmFKHlscXYeYPjzS--iBUIWHTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAIsWwSMOlrjb5kZTgKGXSVnDyLsC7qm2NFBdhoNUtOxSB-TF88cKGPhwNx59_1_GhsNjXldjQVJ1seRL3Dxf55jqzfXeFBQAIHIRsR8-WJPTpZ3VtWewO_Qvh9h7Bd-gfA0pRXw3Hq4eRpBmAf7gfOki1W-7-m3cozATlPCkEWnBM4qRujLuiQX_Q3tfok25Wmnyq_KkG_0VC3JVUvJnkKpv1qRHWahwVo1wzWyJIoaxA7T0oOonf6ZN3j8AyT_VGFDRmvLuvakI8huZgSbjWvWFT6bx7NRTo6YHkHb5COr1PJTbhpDS-PSv5Ud3SFTnLAZyd3oRW-Lp3Fo6RFoNgBs&s=PYPD1hRJswqRDhqdoOaSv80Tw3dkyCjCcUzPozMgqvcSF-SSCZ_xl26zpa7klosWFF3wBhee_5vaLYyX0U1RpJJXr-ajhZCtIvmDq-g65bxDXf7c4Fb1W0FdUs90HUPMdqn-RseNlkGLBvTP_PM-blEcunrQPy8Bje8HPudNzZUfcqLsscE96ZUSOLGGolCpcOJaUBowM5nZNA_hxw1_E2qk-cVgm14ci6feWBgCVBuJamJfBeyj9uw9afwf2rhOsvlWcR6q2CVbDpSZCcOuHYEwqGHKiNCnl4FDztG6KvG3ulcOpfAkZ2LuB3sktUSUo8Jwo1lavRPAB3waan4gRQ&h=pphLLzTg7-VgQustejaLj0k-gFJOexUMowefQ2lcjJY", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay9sb2NhdGlvbnMvd2VzdHVzMi9vcGVyYXRpb25zL2RjNzI5YTRjLWZlNzktNGExMC1hNjNlLWU5ODUyMGQ1MzBmYz9hcGktdmVyc2lvbj0yMDI0LTA3LTAxJnQ9NjM4OTMyMjAxMzI0MDQ2NzE0JmM9TUlJSGh6Q0NCbS1nQXdJQkFnSVRmQWlFcVJacmdMaFB3a1V2ZmdBQUNJU3BGakFOQmdrcWhraUc5dzBCQVFzRkFEQkVNUk13RVFZS0NaSW1pWlB5TEdRQkdSWURSMEpNTVJNd0VRWUtDWkltaVpQeUxHUUJHUllEUVUxRk1SZ3dGZ1lEVlFRREV3OUJUVVVnU1c1bWNtRWdRMEVnTURVd0hoY05NalV3TnpFNU1UVXhOVFUzV2hjTk1qWXdNVEUxTVRVeE5UVTNXakJBTVQ0d1BBWURWUVFERXpWaGMzbHVZMjl3WlhKaGRHbHZibk5wWjI1cGJtZGpaWEowYVdacFkyRjBaUzV0WVc1aFoyVnRaVzUwTG1GNmRYSmxMbU52YlRDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBTm84Smt1Q1N5WXp4YkstNkdUV1l6ZTNnZlBYM1cwZ0dYRE5BQkkwRHBXRWhlOW9tM3NlNXR6aXUxSnZuY2FqQ3l0cFRndXdySGxLMHJjcXV6YkRYWHZIaGJzWTczZWRTdk85MmMyQUR1dldFbk5kc21tX2VUb0xGc1hGWmpaTWhnajlqRF93bko2TDlLdHhCSFc2aHdhQTZZZ0ZLRTNseUE1VFhtaXlvMTVDTGtIRmowMkNYNE5CMWNUSU4xNXlHb0N4THlCLVpyM2pFSDB4Zk1DUVBZbG1TVHd1UXZDNFVXRW5kVXpaZF9ZLUhMbzk1OURVLVVnNjFnNDFKa3NNNGR6ZEVIdzJfWWV3X0VEdGFjM0VSS3pxVktDMUd4VE5YTEVMVV9MRmtQZGtLQmktSkdUWDVNeGxYV0VBVkwxZ1NLeTRDMGxzbE92TVZJQ0owRDVaUFRFQ0F3RUFBYU9DQkhRd2dnUndNQ2NHQ1NzR0FRUUJnamNWQ2dRYU1CZ3dDZ1lJS3dZQkJRVUhBd0V3Q2dZSUt3WUJCUVVIQXdJd1BRWUpLd1lCQkFHQ054VUhCREF3TGdZbUt3WUJCQUdDTnhVSWhwRGpEWVRWdEhpRThZcy1oWnZkRnM2ZEVvRmdoZm1SUzRXc21UUUNBV1FDQVFjd2dnSExCZ2dyQmdFRkJRY0JBUVNDQWIwd2dnRzVNR01HQ0NzR0FRVUZCekFDaGxkb2RIUndPaTh2WTNKc0xtMXBZM0p2YzI5bWRDNWpiMjB2Y0d0cGFXNW1jbUV2UTJWeWRITXZRMDh4VUV0SlNVNVVRMEV3TVM1QlRVVXVSMEpNWDBGTlJTVXlNRWx1Wm5KaEpUSXdRMEVsTWpBd05TNWpjblF3VXdZSUt3WUJCUVVITUFLR1IyaDBkSEE2THk5amNtd3hMbUZ0WlM1blltd3ZZV2xoTDBOUE1WQkxTVWxPVkVOQk1ERXVRVTFGTGtkQ1RGOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFV1WTNKME1GTUdDQ3NHQVFVRkJ6QUNoa2RvZEhSd09pOHZZM0pzTWk1aGJXVXVaMkpzTDJGcFlTOURUekZRUzBsSlRsUkRRVEF4TGtGTlJTNUhRa3hmUVUxRkpUSXdTVzVtY21FbE1qQkRRU1V5TURBMUxtTnlkREJUQmdnckJnRUZCUWN3QW9aSGFIUjBjRG92TDJOeWJETXVZVzFsTG1kaWJDOWhhV0V2UTA4eFVFdEpTVTVVUTBFd01TNUJUVVV1UjBKTVgwRk5SU1V5TUVsdVpuSmhKVEl3UTBFbE1qQXdOUzVqY25Rd1V3WUlLd1lCQlFVSE1BS0dSMmgwZEhBNkx5OWpjbXcwTG1GdFpTNW5ZbXd2WVdsaEwwTlBNVkJMU1VsT1ZFTkJNREV1UVUxRkxrZENURjlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURVdVkzSjBNQjBHQTFVZERnUVdCQlRIQlJmOFpMOXdZX19IelNzRVhHWHVWTDhhRURBT0JnTlZIUThCQWY4RUJBTUNCYUF3Z2dFbUJnTlZIUjhFZ2dFZE1JSUJHVENDQVJXZ2dnRVJvSUlCRFlZX2FIUjBjRG92TDJOeWJDNXRhV055YjNOdlpuUXVZMjl0TDNCcmFXbHVabkpoTDBOU1RDOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFV1WTNKc2hqRm9kSFJ3T2k4dlkzSnNNUzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01EVXVZM0pzaGpGb2RIUndPaTh2WTNKc01pNWhiV1V1WjJKc0wyTnliQzlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURVdVkzSnNoakZvZEhSd09pOHZZM0pzTXk1aGJXVXVaMkpzTDJOeWJDOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFV1WTNKc2hqRm9kSFJ3T2k4dlkzSnNOQzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01EVXVZM0pzTUlHZEJnTlZIU0FFZ1pVd2daSXdEQVlLS3dZQkJBR0NOM3NCQVRCbUJnb3JCZ0VFQVlJM2V3SUNNRmd3VmdZSUt3WUJCUVVIQWdJd1NoNUlBRE1BTXdCbEFEQUFNUUE1QURJQU1RQXRBRFFBWkFBMkFEUUFMUUEwQUdZQU9BQmpBQzBBWVFBd0FEVUFOUUF0QURVQVlnQmtBR0VBWmdCbUFHUUFOUUJsQURNQU13QmtNQXdHQ2lzR0FRUUJnamQ3QXdJd0RBWUtLd1lCQkFHQ04zc0VBakFmQmdOVkhTTUVHREFXZ0JSNjFobUZLSGxzY1hZZVlQanpTLS1pQlVJV0hUQWRCZ05WSFNVRUZqQVVCZ2dyQmdFRkJRY0RBUVlJS3dZQkJRVUhBd0l3RFFZSktvWklodmNOQVFFTEJRQURnZ0VCQUlzV3dTTU9scmpiNWtaVGdLR1hTVm5EeUxzQzdxbTJORkJkaG9OVXRPeFNCLVRGODhjS0dQaHdOeDU5XzFfR2hzTmpYbGRqUVZKMXNlUkwzRHhmNTVqcXpmWGVGQlFBSUhJUnNSOC1XSlBUcFozVnRXZXdPX1F2aDloN0JkLWdmQTBwUlh3M0hxNGVScEJtQWY3Z2ZPa2kxVy03LW0zY296QVRsUENrRVduQk00cVJ1akx1aVFYX1EzdGZvazI1V21ueXFfS2tHXzBWQzNKVlV2Sm5rS3B2MXFSSFdhaHdWbzF3eld5SklvYXhBN1Qwb09vbmY2Wk4zajhBeVRfVkdGRFJtdkx1dmFrSThodVpnU2JqV3ZXRlQ2Yng3TlJUbzZZSGtIYjVDT3IxUEpUYmhwRFMtUFN2NVVkM1NGVG5MQVp5ZDNvUlctTHAzRm82UkZvTmdCcyZzPVBZUEQxaFJKc3dxUkRocWRvT2FTdjgwVHczZGt5Q2pDY1V6UG96TWdxdmNTRi1TU0NaX3hsMjZ6cGE3a2xvc1dGRjN3QmhlZV81dmFMWXlYMFUxUnBKSlhyLWFqaFpDdEl2bURxLWc2NWJ4RFhmN2M0RmIxVzBGZFVzOTBIVVBNZHFuLVJzZU5sa0dMQnZUUF9QTS1ibEVjdW5yUVB5OEJqZThIUHVkTnpaVWZjcUxzc2NFOTZaVVNPTEdHb2xDcGNPSmFVQm93TTVuWk5BX2h4dzFfRTJxay1jVmdtMTRjaTZmZVdCZ0NWQnVKYW1KZkJleWo5dXc5YWZ3ZjJyaE9zdmxXY1I2cTJDVmJEcFNaQ2NPdUhZRXdxR0hLaU5Dbmw0RkR6dEc2S3ZHM3VsY09wZkFrWjJMdUIzc2t0VVNVbzhKd28xbGF2UlBBQjN3YWFuNGdSUSZoPXBwaExMelRnNy1WZ1F1c3RlamFMajBrLWdGSk9leFVNb3dlZlEybGNqSlk=", "RequestMethod": "GET", "RequestHeaders": { "x-ms-client-request-id": [ - "05fdecfd-3a5a-48a7-b544-4136ec5d4714" + "d5ae28e9-545e-461e-80a1-0db87eb9e4c5" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Management.Network.NetworkManagementClient/27.0.0.0" ] }, @@ -1206,25 +1227,28 @@ "20" ], "x-ms-request-id": [ - "67c17542-c70d-4d57-9ea0-162799e9cb10" + "bff931f6-ea35-4819-8472-1c3452ad5695" ], "x-ms-correlation-request-id": [ - "2d18ad18-8c4a-455b-85b6-25367d0eaad6" + "fb0c4da5-2ada-4629-9446-83797d3a3631" ], "x-ms-arm-service-request-id": [ - "b04fe1ac-6ead-424b-b764-66eba2a1b98f" + "cb8bbf4c-3691-46d6-ba1e-a618b06870e6" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], + "x-ms-operation-identifier": [ + "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=ac839cc2-33ee-4879-a5b5-2895202ccb29/australiaeast/8a3bf7e9-eac0-4b3e-834b-15cdaf2063cc" + ], "x-ms-ratelimit-remaining-subscription-reads": [ "1099" ], "x-ms-ratelimit-remaining-subscription-global-reads": [ - "16498" + "16499" ], "x-ms-routing-request-id": [ - "EASTUS:20241113T211934Z:2d18ad18-8c4a-455b-85b6-25367d0eaad6" + "AUSTRALIAEAST:20250911T204233Z:fb0c4da5-2ada-4629-9446-83797d3a3631" ], "X-Content-Type-Options": [ "nosniff" @@ -1233,10 +1257,10 @@ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: A06658DFC4424C27A710F3F6A483672D Ref B: MNZ221060618045 Ref C: 2024-11-13T21:19:33Z" + "Ref A: 80F897809144464087C37D030FFE6155 Ref B: MWH011020806060 Ref C: 2025-09-11T20:42:32Z" ], "Date": [ - "Wed, 13 Nov 2024 21:19:33 GMT" + "Thu, 11 Sep 2025 20:42:33 GMT" ], "Content-Length": [ "23" @@ -1252,17 +1276,17 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/providers/Microsoft.Network/locations/westus2/operations/f5e0db77-a76c-4d4c-af84-5b6643c68cf1?api-version=2024-03-01&t=638671295536333622&c=MIIHhzCCBm-gAwIBAgITHgVqhF9GOoUjuyqQWAAABWqEXzANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDYwHhcNMjQwOTIwMjMxMTQxWhcNMjUwMzE5MjMxMTQxWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKRtcYDBXS7zz5tRtvVyhrUAjudYhej1E2D3dp6XWuPdbVMbQZwMlye8vdT-kDhFD7T2mrdWqsoGnTGk0_xOHBfLGnW-0QRUqpeoTNIhu8vc2CfTUtm2t2s_-fzvFtRyhDA4mfCH1cz92EVj0vd3FD4ikW6bdOp1NkYFqUVBhKlbvJk6y-TbLFBLP5Zx4m0Ua-_P7aMzbgvOJgMOTC2jLs5w_lFDJWeP3IKUOiJmrfLpf4ey5Ov94oCE6YncDBSHJZKWcrSxDHgSz9AXrxarL4HLajGbF3MRvfkMN2gNXCoiJXBEqCLDnyQZ0BgXIvuK7vG8Rj0TyhJNj-QPr8taY6UCAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAyLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA2LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MB0GA1UdDgQWBBRKlJQpFyyZKSchkTlshetYOUX7xzAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBTxRmjG8cPwKy19i2rhsvm-NfzRQTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAG0WbzLPsmSSMI7aTe2npixmkdCmwcdZHGd43tUnB8JKrLNJEFcBsQmbcIH0adpnQNrDgRkNBBOTZ4s1LIBlRQapZpPsRItAMUguVpGVRH08T0i43w9xrp_clNbAJrrfRbmYroF0WJKMJ0nwW2rPjxdevSRygGK_nEfywwFi-p1RhHnkiEGL4GnP7PpQcRvAYMdH9LO5MRY7iLbBmosKatS_eWtSJD1CvzglNwy_vQzx81Vnk0CgndqXcVq-loGu7R4U7mkQ2NNqLbp447STxkpP-6Mdyv8J4bdnf1s3vFBNpgvJWKogWcNLlo8jnkbEf6RPNGe1W5lma7JwMKAcPzY&s=Nx51NmjWG1rinj2oJEppb1UKk4aYWTWj4JSDT1rfg1cmS9qf_RNsdSxRAEnkGPh1uT1_qNWPUv-sBtIObTMcGNDYXLsrLKT7iSuE9pLFueguF0V9ZRfMWrBP8FvXYvBftTxoAGi_wqg4d6PryopXvmgyk7GXwPiR4GCeJsVsk1mtFEel9eOUIuK5PFZzClnNQZE7j0SFeN1QCthpMTD3amGwGOB4XgOG7Xe4o4ba0ZusNjKeRLJnSMde0178YuwC3FIQbh0-xLvK0ETjxqTRcFx0gShgS2sbxN1LjTFNheJj_tV_AkfbXRZ-nyc3snEvu8tBSB5I5EBt_skMZlbEMg&h=mzu-15gE9a-n5N4jfSfuaxu3Dz4zOMMVoT46xuB9bYU", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjFhYmQ2NzgtMThjNS00NjYwLTlmZGQtOGM1YmE2YjZmZTFmL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay9sb2NhdGlvbnMvd2VzdHVzMi9vcGVyYXRpb25zL2Y1ZTBkYjc3LWE3NmMtNGQ0Yy1hZjg0LTViNjY0M2M2OGNmMT9hcGktdmVyc2lvbj0yMDI0LTAzLTAxJnQ9NjM4NjcxMjk1NTM2MzMzNjIyJmM9TUlJSGh6Q0NCbS1nQXdJQkFnSVRIZ1ZxaEY5R09vVWp1eXFRV0FBQUJXcUVYekFOQmdrcWhraUc5dzBCQVFzRkFEQkVNUk13RVFZS0NaSW1pWlB5TEdRQkdSWURSMEpNTVJNd0VRWUtDWkltaVpQeUxHUUJHUllEUVUxRk1SZ3dGZ1lEVlFRREV3OUJUVVVnU1c1bWNtRWdRMEVnTURZd0hoY05NalF3T1RJd01qTXhNVFF4V2hjTk1qVXdNekU1TWpNeE1UUXhXakJBTVQ0d1BBWURWUVFERXpWaGMzbHVZMjl3WlhKaGRHbHZibk5wWjI1cGJtZGpaWEowYVdacFkyRjBaUzV0WVc1aFoyVnRaVzUwTG1GNmRYSmxMbU52YlRDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBS1J0Y1lEQlhTN3p6NXRSdHZWeWhyVUFqdWRZaGVqMUUyRDNkcDZYV3VQZGJWTWJRWndNbHllOHZkVC1rRGhGRDdUMm1yZFdxc29HblRHazBfeE9IQmZMR25XLTBRUlVxcGVvVE5JaHU4dmMyQ2ZUVXRtMnQyc18tZnp2RnRSeWhEQTRtZkNIMWN6OTJFVmowdmQzRkQ0aWtXNmJkT3AxTmtZRnFVVkJoS2xidkprNnktVGJMRkJMUDVaeDRtMFVhLV9QN2FNemJndk9KZ01PVEMyakxzNXdfbEZESldlUDNJS1VPaUptcmZMcGY0ZXk1T3Y5NG9DRTZZbmNEQlNISlpLV2NyU3hESGdTejlBWHJ4YXJMNEhMYWpHYkYzTVJ2ZmtNTjJnTlhDb2lKWEJFcUNMRG55UVowQmdYSXZ1Szd2RzhSajBUeWhKTmotUVByOHRhWTZVQ0F3RUFBYU9DQkhRd2dnUndNQ2NHQ1NzR0FRUUJnamNWQ2dRYU1CZ3dDZ1lJS3dZQkJRVUhBd0V3Q2dZSUt3WUJCUVVIQXdJd1BRWUpLd1lCQkFHQ054VUhCREF3TGdZbUt3WUJCQUdDTnhVSWhwRGpEWVRWdEhpRThZcy1oWnZkRnM2ZEVvRmdoZm1SUzRXc21UUUNBV1FDQVFjd2dnSExCZ2dyQmdFRkJRY0JBUVNDQWIwd2dnRzVNR01HQ0NzR0FRVUZCekFDaGxkb2RIUndPaTh2WTNKc0xtMXBZM0p2YzI5bWRDNWpiMjB2Y0d0cGFXNW1jbUV2UTJWeWRITXZRa3d5VUV0SlNVNVVRMEV3TWk1QlRVVXVSMEpNWDBGTlJTVXlNRWx1Wm5KaEpUSXdRMEVsTWpBd05pNWpjblF3VXdZSUt3WUJCUVVITUFLR1IyaDBkSEE2THk5amNtd3hMbUZ0WlM1blltd3ZZV2xoTDBKTU1sQkxTVWxPVkVOQk1ESXVRVTFGTGtkQ1RGOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFl1WTNKME1GTUdDQ3NHQVFVRkJ6QUNoa2RvZEhSd09pOHZZM0pzTWk1aGJXVXVaMkpzTDJGcFlTOUNUREpRUzBsSlRsUkRRVEF5TGtGTlJTNUhRa3hmUVUxRkpUSXdTVzVtY21FbE1qQkRRU1V5TURBMkxtTnlkREJUQmdnckJnRUZCUWN3QW9aSGFIUjBjRG92TDJOeWJETXVZVzFsTG1kaWJDOWhhV0V2UWt3eVVFdEpTVTVVUTBFd01pNUJUVVV1UjBKTVgwRk5SU1V5TUVsdVpuSmhKVEl3UTBFbE1qQXdOaTVqY25Rd1V3WUlLd1lCQlFVSE1BS0dSMmgwZEhBNkx5OWpjbXcwTG1GdFpTNW5ZbXd2WVdsaEwwSk1NbEJMU1VsT1ZFTkJNREl1UVUxRkxrZENURjlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURZdVkzSjBNQjBHQTFVZERnUVdCQlJLbEpRcEZ5eVpLU2Noa1Rsc2hldFlPVVg3eHpBT0JnTlZIUThCQWY4RUJBTUNCYUF3Z2dFbUJnTlZIUjhFZ2dFZE1JSUJHVENDQVJXZ2dnRVJvSUlCRFlZX2FIUjBjRG92TDJOeWJDNXRhV055YjNOdlpuUXVZMjl0TDNCcmFXbHVabkpoTDBOU1RDOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFl1WTNKc2hqRm9kSFJ3T2k4dlkzSnNNUzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01EWXVZM0pzaGpGb2RIUndPaTh2WTNKc01pNWhiV1V1WjJKc0wyTnliQzlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURZdVkzSnNoakZvZEhSd09pOHZZM0pzTXk1aGJXVXVaMkpzTDJOeWJDOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFl1WTNKc2hqRm9kSFJ3T2k4dlkzSnNOQzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01EWXVZM0pzTUlHZEJnTlZIU0FFZ1pVd2daSXdEQVlLS3dZQkJBR0NOM3NCQVRCbUJnb3JCZ0VFQVlJM2V3SUNNRmd3VmdZSUt3WUJCUVVIQWdJd1NoNUlBRE1BTXdCbEFEQUFNUUE1QURJQU1RQXRBRFFBWkFBMkFEUUFMUUEwQUdZQU9BQmpBQzBBWVFBd0FEVUFOUUF0QURVQVlnQmtBR0VBWmdCbUFHUUFOUUJsQURNQU13QmtNQXdHQ2lzR0FRUUJnamQ3QXdFd0RBWUtLd1lCQkFHQ04zc0VBakFmQmdOVkhTTUVHREFXZ0JUeFJtakc4Y1B3S3kxOWkycmhzdm0tTmZ6UlFUQWRCZ05WSFNVRUZqQVVCZ2dyQmdFRkJRY0RBUVlJS3dZQkJRVUhBd0l3RFFZSktvWklodmNOQVFFTEJRQURnZ0VCQUcwV2J6TFBzbVNTTUk3YVRlMm5waXhta2RDbXdjZFpIR2Q0M3RVbkI4SktyTE5KRUZjQnNRbWJjSUgwYWRwblFOckRnUmtOQkJPVFo0czFMSUJsUlFhcFpwUHNSSXRBTVVndVZwR1ZSSDA4VDBpNDN3OXhycF9jbE5iQUpycmZSYm1Zcm9GMFdKS01KMG53VzJyUGp4ZGV2U1J5Z0dLX25FZnl3d0ZpLXAxUmhIbmtpRUdMNEduUDdQcFFjUnZBWU1kSDlMTzVNUlk3aUxiQm1vc0thdFNfZVd0U0pEMUN2emdsTnd5X3ZReng4MVZuazBDZ25kcVhjVnEtbG9HdTdSNFU3bWtRMk5OcUxicDQ0N1NUeGtwUC02TWR5djhKNGJkbmYxczN2RkJOcGd2SldLb2dXY05MbG84am5rYkVmNlJQTkdlMVc1bG1hN0p3TUtBY1B6WSZzPU54NTFObWpXRzFyaW5qMm9KRXBwYjFVS2s0YVlXVFdqNEpTRFQxcmZnMWNtUzlxZl9STnNkU3hSQUVua0dQaDF1VDFfcU5XUFV2LXNCdElPYlRNY0dORFlYTHNyTEtUN2lTdUU5cExGdWVndUYwVjlaUmZNV3JCUDhGdlhZdkJmdFR4b0FHaV93cWc0ZDZQcnlvcFh2bWd5azdHWHdQaVI0R0NlSnNWc2sxbXRGRWVsOWVPVUl1SzVQRlp6Q2xuTlFaRTdqMFNGZU4xUUN0aHBNVEQzYW1Hd0dPQjRYZ09HN1hlNG80YmEwWnVzTmpLZVJMSm5TTWRlMDE3OFl1d0MzRklRYmgwLXhMdkswRVRqeHFUUmNGeDBnU2hnUzJzYnhOMUxqVEZOaGVKal90Vl9Ba2ZiWFJaLW55YzNzbkV2dTh0QlNCNUk1RUJ0X3NrTVpsYkVNZyZoPW16dS0xNWdFOWEtbjVONGpmU2Z1YXh1M0R6NHpPTU1Wb1Q0Nnh1QjliWVU=", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/providers/Microsoft.Network/locations/westus2/operations/dc729a4c-fe79-4a10-a63e-e98520d530fc?api-version=2024-07-01&t=638932201324046714&c=MIIHhzCCBm-gAwIBAgITfAiEqRZrgLhPwkUvfgAACISpFjANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDUwHhcNMjUwNzE5MTUxNTU3WhcNMjYwMTE1MTUxNTU3WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANo8JkuCSyYzxbK-6GTWYze3gfPX3W0gGXDNABI0DpWEhe9om3se5tziu1JvncajCytpTguwrHlK0rcquzbDXXvHhbsY73edSvO92c2ADuvWEnNdsmm_eToLFsXFZjZMhgj9jD_wnJ6L9KtxBHW6hwaA6YgFKE3lyA5TXmiyo15CLkHFj02CX4NB1cTIN15yGoCxLyB-Zr3jEH0xfMCQPYlmSTwuQvC4UWEndUzZd_Y-HLo959DU-Ug61g41JksM4dzdEHw2_Yew_EDtac3ERKzqVKC1GxTNXLELU_LFkPdkKBi-JGTX5MxlXWEAVL1gSKy4C0lslOvMVICJ0D5ZPTECAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9DTzFQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA1LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MB0GA1UdDgQWBBTHBRf8ZL9wY__HzSsEXGXuVL8aEDAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBR61hmFKHlscXYeYPjzS--iBUIWHTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAIsWwSMOlrjb5kZTgKGXSVnDyLsC7qm2NFBdhoNUtOxSB-TF88cKGPhwNx59_1_GhsNjXldjQVJ1seRL3Dxf55jqzfXeFBQAIHIRsR8-WJPTpZ3VtWewO_Qvh9h7Bd-gfA0pRXw3Hq4eRpBmAf7gfOki1W-7-m3cozATlPCkEWnBM4qRujLuiQX_Q3tfok25Wmnyq_KkG_0VC3JVUvJnkKpv1qRHWahwVo1wzWyJIoaxA7T0oOonf6ZN3j8AyT_VGFDRmvLuvakI8huZgSbjWvWFT6bx7NRTo6YHkHb5COr1PJTbhpDS-PSv5Ud3SFTnLAZyd3oRW-Lp3Fo6RFoNgBs&s=PYPD1hRJswqRDhqdoOaSv80Tw3dkyCjCcUzPozMgqvcSF-SSCZ_xl26zpa7klosWFF3wBhee_5vaLYyX0U1RpJJXr-ajhZCtIvmDq-g65bxDXf7c4Fb1W0FdUs90HUPMdqn-RseNlkGLBvTP_PM-blEcunrQPy8Bje8HPudNzZUfcqLsscE96ZUSOLGGolCpcOJaUBowM5nZNA_hxw1_E2qk-cVgm14ci6feWBgCVBuJamJfBeyj9uw9afwf2rhOsvlWcR6q2CVbDpSZCcOuHYEwqGHKiNCnl4FDztG6KvG3ulcOpfAkZ2LuB3sktUSUo8Jwo1lavRPAB3waan4gRQ&h=pphLLzTg7-VgQustejaLj0k-gFJOexUMowefQ2lcjJY", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay9sb2NhdGlvbnMvd2VzdHVzMi9vcGVyYXRpb25zL2RjNzI5YTRjLWZlNzktNGExMC1hNjNlLWU5ODUyMGQ1MzBmYz9hcGktdmVyc2lvbj0yMDI0LTA3LTAxJnQ9NjM4OTMyMjAxMzI0MDQ2NzE0JmM9TUlJSGh6Q0NCbS1nQXdJQkFnSVRmQWlFcVJacmdMaFB3a1V2ZmdBQUNJU3BGakFOQmdrcWhraUc5dzBCQVFzRkFEQkVNUk13RVFZS0NaSW1pWlB5TEdRQkdSWURSMEpNTVJNd0VRWUtDWkltaVpQeUxHUUJHUllEUVUxRk1SZ3dGZ1lEVlFRREV3OUJUVVVnU1c1bWNtRWdRMEVnTURVd0hoY05NalV3TnpFNU1UVXhOVFUzV2hjTk1qWXdNVEUxTVRVeE5UVTNXakJBTVQ0d1BBWURWUVFERXpWaGMzbHVZMjl3WlhKaGRHbHZibk5wWjI1cGJtZGpaWEowYVdacFkyRjBaUzV0WVc1aFoyVnRaVzUwTG1GNmRYSmxMbU52YlRDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBTm84Smt1Q1N5WXp4YkstNkdUV1l6ZTNnZlBYM1cwZ0dYRE5BQkkwRHBXRWhlOW9tM3NlNXR6aXUxSnZuY2FqQ3l0cFRndXdySGxLMHJjcXV6YkRYWHZIaGJzWTczZWRTdk85MmMyQUR1dldFbk5kc21tX2VUb0xGc1hGWmpaTWhnajlqRF93bko2TDlLdHhCSFc2aHdhQTZZZ0ZLRTNseUE1VFhtaXlvMTVDTGtIRmowMkNYNE5CMWNUSU4xNXlHb0N4THlCLVpyM2pFSDB4Zk1DUVBZbG1TVHd1UXZDNFVXRW5kVXpaZF9ZLUhMbzk1OURVLVVnNjFnNDFKa3NNNGR6ZEVIdzJfWWV3X0VEdGFjM0VSS3pxVktDMUd4VE5YTEVMVV9MRmtQZGtLQmktSkdUWDVNeGxYV0VBVkwxZ1NLeTRDMGxzbE92TVZJQ0owRDVaUFRFQ0F3RUFBYU9DQkhRd2dnUndNQ2NHQ1NzR0FRUUJnamNWQ2dRYU1CZ3dDZ1lJS3dZQkJRVUhBd0V3Q2dZSUt3WUJCUVVIQXdJd1BRWUpLd1lCQkFHQ054VUhCREF3TGdZbUt3WUJCQUdDTnhVSWhwRGpEWVRWdEhpRThZcy1oWnZkRnM2ZEVvRmdoZm1SUzRXc21UUUNBV1FDQVFjd2dnSExCZ2dyQmdFRkJRY0JBUVNDQWIwd2dnRzVNR01HQ0NzR0FRVUZCekFDaGxkb2RIUndPaTh2WTNKc0xtMXBZM0p2YzI5bWRDNWpiMjB2Y0d0cGFXNW1jbUV2UTJWeWRITXZRMDh4VUV0SlNVNVVRMEV3TVM1QlRVVXVSMEpNWDBGTlJTVXlNRWx1Wm5KaEpUSXdRMEVsTWpBd05TNWpjblF3VXdZSUt3WUJCUVVITUFLR1IyaDBkSEE2THk5amNtd3hMbUZ0WlM1blltd3ZZV2xoTDBOUE1WQkxTVWxPVkVOQk1ERXVRVTFGTGtkQ1RGOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFV1WTNKME1GTUdDQ3NHQVFVRkJ6QUNoa2RvZEhSd09pOHZZM0pzTWk1aGJXVXVaMkpzTDJGcFlTOURUekZRUzBsSlRsUkRRVEF4TGtGTlJTNUhRa3hmUVUxRkpUSXdTVzVtY21FbE1qQkRRU1V5TURBMUxtTnlkREJUQmdnckJnRUZCUWN3QW9aSGFIUjBjRG92TDJOeWJETXVZVzFsTG1kaWJDOWhhV0V2UTA4eFVFdEpTVTVVUTBFd01TNUJUVVV1UjBKTVgwRk5SU1V5TUVsdVpuSmhKVEl3UTBFbE1qQXdOUzVqY25Rd1V3WUlLd1lCQlFVSE1BS0dSMmgwZEhBNkx5OWpjbXcwTG1GdFpTNW5ZbXd2WVdsaEwwTlBNVkJMU1VsT1ZFTkJNREV1UVUxRkxrZENURjlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURVdVkzSjBNQjBHQTFVZERnUVdCQlRIQlJmOFpMOXdZX19IelNzRVhHWHVWTDhhRURBT0JnTlZIUThCQWY4RUJBTUNCYUF3Z2dFbUJnTlZIUjhFZ2dFZE1JSUJHVENDQVJXZ2dnRVJvSUlCRFlZX2FIUjBjRG92TDJOeWJDNXRhV055YjNOdlpuUXVZMjl0TDNCcmFXbHVabkpoTDBOU1RDOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFV1WTNKc2hqRm9kSFJ3T2k4dlkzSnNNUzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01EVXVZM0pzaGpGb2RIUndPaTh2WTNKc01pNWhiV1V1WjJKc0wyTnliQzlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURVdVkzSnNoakZvZEhSd09pOHZZM0pzTXk1aGJXVXVaMkpzTDJOeWJDOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFV1WTNKc2hqRm9kSFJ3T2k4dlkzSnNOQzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01EVXVZM0pzTUlHZEJnTlZIU0FFZ1pVd2daSXdEQVlLS3dZQkJBR0NOM3NCQVRCbUJnb3JCZ0VFQVlJM2V3SUNNRmd3VmdZSUt3WUJCUVVIQWdJd1NoNUlBRE1BTXdCbEFEQUFNUUE1QURJQU1RQXRBRFFBWkFBMkFEUUFMUUEwQUdZQU9BQmpBQzBBWVFBd0FEVUFOUUF0QURVQVlnQmtBR0VBWmdCbUFHUUFOUUJsQURNQU13QmtNQXdHQ2lzR0FRUUJnamQ3QXdJd0RBWUtLd1lCQkFHQ04zc0VBakFmQmdOVkhTTUVHREFXZ0JSNjFobUZLSGxzY1hZZVlQanpTLS1pQlVJV0hUQWRCZ05WSFNVRUZqQVVCZ2dyQmdFRkJRY0RBUVlJS3dZQkJRVUhBd0l3RFFZSktvWklodmNOQVFFTEJRQURnZ0VCQUlzV3dTTU9scmpiNWtaVGdLR1hTVm5EeUxzQzdxbTJORkJkaG9OVXRPeFNCLVRGODhjS0dQaHdOeDU5XzFfR2hzTmpYbGRqUVZKMXNlUkwzRHhmNTVqcXpmWGVGQlFBSUhJUnNSOC1XSlBUcFozVnRXZXdPX1F2aDloN0JkLWdmQTBwUlh3M0hxNGVScEJtQWY3Z2ZPa2kxVy03LW0zY296QVRsUENrRVduQk00cVJ1akx1aVFYX1EzdGZvazI1V21ueXFfS2tHXzBWQzNKVlV2Sm5rS3B2MXFSSFdhaHdWbzF3eld5SklvYXhBN1Qwb09vbmY2Wk4zajhBeVRfVkdGRFJtdkx1dmFrSThodVpnU2JqV3ZXRlQ2Yng3TlJUbzZZSGtIYjVDT3IxUEpUYmhwRFMtUFN2NVVkM1NGVG5MQVp5ZDNvUlctTHAzRm82UkZvTmdCcyZzPVBZUEQxaFJKc3dxUkRocWRvT2FTdjgwVHczZGt5Q2pDY1V6UG96TWdxdmNTRi1TU0NaX3hsMjZ6cGE3a2xvc1dGRjN3QmhlZV81dmFMWXlYMFUxUnBKSlhyLWFqaFpDdEl2bURxLWc2NWJ4RFhmN2M0RmIxVzBGZFVzOTBIVVBNZHFuLVJzZU5sa0dMQnZUUF9QTS1ibEVjdW5yUVB5OEJqZThIUHVkTnpaVWZjcUxzc2NFOTZaVVNPTEdHb2xDcGNPSmFVQm93TTVuWk5BX2h4dzFfRTJxay1jVmdtMTRjaTZmZVdCZ0NWQnVKYW1KZkJleWo5dXc5YWZ3ZjJyaE9zdmxXY1I2cTJDVmJEcFNaQ2NPdUhZRXdxR0hLaU5Dbmw0RkR6dEc2S3ZHM3VsY09wZkFrWjJMdUIzc2t0VVNVbzhKd28xbGF2UlBBQjN3YWFuNGdSUSZoPXBwaExMelRnNy1WZ1F1c3RlamFMajBrLWdGSk9leFVNb3dlZlEybGNqSlk=", "RequestMethod": "GET", "RequestHeaders": { "x-ms-client-request-id": [ - "05fdecfd-3a5a-48a7-b544-4136ec5d4714" + "d5ae28e9-545e-461e-80a1-0db87eb9e4c5" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Management.Network.NetworkManagementClient/27.0.0.0" ] }, @@ -1275,17 +1299,20 @@ "no-cache" ], "x-ms-request-id": [ - "85e58e84-4e28-4e2c-a923-a01b51e8c1b7" + "85de856f-7712-4869-86b8-a6c7b828f118" ], "x-ms-correlation-request-id": [ - "9e6c8e3a-6ca9-4731-bff0-2c1cbcdf95f4" + "5010c5a4-2263-4fee-8edb-40ca28162115" ], "x-ms-arm-service-request-id": [ - "12867baa-78dc-492b-9356-8a86dbdfac6f" + "521e3f31-aa93-4a97-a551-7b4c9b2dd486" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" ], + "x-ms-operation-identifier": [ + "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=ac839cc2-33ee-4879-a5b5-2895202ccb29/australiaeast/a840b892-df5a-4944-b7bf-df028b629aed" + ], "x-ms-ratelimit-remaining-subscription-reads": [ "1099" ], @@ -1293,7 +1320,7 @@ "16499" ], "x-ms-routing-request-id": [ - "EASTUS:20241113T211954Z:9e6c8e3a-6ca9-4731-bff0-2c1cbcdf95f4" + "AUSTRALIAEAST:20250911T204254Z:5010c5a4-2263-4fee-8edb-40ca28162115" ], "X-Content-Type-Options": [ "nosniff" @@ -1302,10 +1329,10 @@ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: 8584F782E6D84983AA89CDC527374E36 Ref B: MNZ221060618045 Ref C: 2024-11-13T21:19:54Z" + "Ref A: 8836E84386A046AA8ABC495EB7AE5995 Ref B: MWH011020806060 Ref C: 2025-09-11T20:42:53Z" ], "Date": [ - "Wed, 13 Nov 2024 21:19:54 GMT" + "Thu, 11 Sep 2025 20:42:54 GMT" ], "Content-Length": [ "22" @@ -1321,21 +1348,21 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/ps5688/providers/Microsoft.Batch/batchAccounts/ps9576/privateEndpointConnections?api-version=2022-06-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjFhYmQ2NzgtMThjNS00NjYwLTlmZGQtOGM1YmE2YjZmZTFmL3Jlc291cmNlR3JvdXBzL3BzNTY4OC9wcm92aWRlcnMvTWljcm9zb2Z0LkJhdGNoL2JhdGNoQWNjb3VudHMvcHM5NTc2L3ByaXZhdGVFbmRwb2ludENvbm5lY3Rpb25zP2FwaS12ZXJzaW9uPTIwMjItMDYtMDE=", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps2289/providers/Microsoft.Batch/batchAccounts/ps5017/privateEndpointConnections?api-version=2022-06-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL3BzMjI4OS9wcm92aWRlcnMvTWljcm9zb2Z0LkJhdGNoL2JhdGNoQWNjb3VudHMvcHM1MDE3L3ByaXZhdGVFbmRwb2ludENvbm5lY3Rpb25zP2FwaS12ZXJzaW9uPTIwMjItMDYtMDE=", "RequestMethod": "GET", "RequestHeaders": { - "x-ms-client-request-id": [ - "deb0b9c5-6387-412e-82f0-201a65a32606" - ], "Accept-Language": [ "en-US" ], + "x-ms-client-request-id": [ + "e4f590c2-5f4c-4899-8eb0-843e32d1e9f3" + ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Internal.Common.AzureRestClient/1.3.102" + "OSVersion/Microsoft.Windows.10.0.26100", + "Microsoft.Azure.Internal.Common.AzureRestClient/1.3.109" ] }, "RequestBody": "", @@ -1347,7 +1374,7 @@ "no-cache" ], "x-ms-request-id": [ - "4408e4dc-8632-4d0a-a2bf-0fc920f21f62" + "b18e5601-9a44-477f-92d2-63841b4a3925" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -1355,6 +1382,9 @@ "X-Content-Type-Options": [ "nosniff" ], + "x-ms-operation-identifier": [ + "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=ac839cc2-33ee-4879-a5b5-2895202ccb29/australiaeast/4e8dae62-88e4-4d5b-ae8b-ef4f41b84a1c" + ], "x-ms-ratelimit-remaining-subscription-reads": [ "1099" ], @@ -1362,19 +1392,19 @@ "16499" ], "x-ms-correlation-request-id": [ - "3d1f12f8-25a3-49bd-ba0f-adb60537cbe9" + "4334f88d-b6ec-497b-bd5d-0a86afad6ea9" ], "x-ms-routing-request-id": [ - "EASTUS:20241113T211955Z:3d1f12f8-25a3-49bd-ba0f-adb60537cbe9" + "AUSTRALIAEAST:20250911T204256Z:4334f88d-b6ec-497b-bd5d-0a86afad6ea9" ], "X-Cache": [ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: A1FFA9AD474540D19CAC0A567D765898 Ref B: MNZ221060609049 Ref C: 2024-11-13T21:19:55Z" + "Ref A: BBFD9808F1BE458E919531588BF891F8 Ref B: MWH011020806023 Ref C: 2025-09-11T20:42:55Z" ], "Date": [ - "Wed, 13 Nov 2024 21:19:55 GMT" + "Thu, 11 Sep 2025 20:42:55 GMT" ], "Content-Length": [ "738" @@ -1386,25 +1416,25 @@ "-1" ] }, - "ResponseBody": "{\r\n \"value\": [\r\n {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/ps5688/providers/Microsoft.Batch/batchAccounts/ps9576/privateEndpointConnections/mypec.0f3811e5-f837-4ecf-b913-5b7dc498570a\",\r\n \"name\": \"mypec.0f3811e5-f837-4ecf-b913-5b7dc498570a\",\r\n \"type\": \"Microsoft.Batch/batchAccounts/privateEndpointConnections\",\r\n \"etag\": \"W/\\\"0x8DD0428D9283E02\\\"\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"privateEndpoint\": {\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/ps5688/providers/Microsoft.Network/privateEndpoints/mypec\"\r\n },\r\n \"privateLinkServiceConnectionState\": {\r\n \"status\": \"Pending\",\r\n \"description\": \"Manual approval still required\",\r\n \"actionsRequired\": \"Manual approval required\"\r\n },\r\n \"groupIds\": [\r\n \"batchAccount\"\r\n ]\r\n }\r\n }\r\n ]\r\n}", + "ResponseBody": "{\r\n \"value\": [\r\n {\r\n \"id\": \"/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps2289/providers/Microsoft.Batch/batchAccounts/ps5017/privateEndpointConnections/mypec.397dcfed-682e-4f05-ac8b-92f57cc1a1fe\",\r\n \"name\": \"mypec.397dcfed-682e-4f05-ac8b-92f57cc1a1fe\",\r\n \"type\": \"Microsoft.Batch/batchAccounts/privateEndpointConnections\",\r\n \"etag\": \"W/\\\"0x8DDF173B696B6D2\\\"\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\",\r\n \"privateEndpoint\": {\r\n \"id\": \"/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps2289/providers/Microsoft.Network/privateEndpoints/mypec\"\r\n },\r\n \"privateLinkServiceConnectionState\": {\r\n \"status\": \"Pending\",\r\n \"description\": \"Manual approval still required\",\r\n \"actionsRequired\": \"Manual approval required\"\r\n },\r\n \"groupIds\": [\r\n \"batchAccount\"\r\n ]\r\n }\r\n }\r\n ]\r\n}", "StatusCode": 200 }, { - "RequestUri": "/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourcegroups/ps5688?api-version=2016-09-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjFhYmQ2NzgtMThjNS00NjYwLTlmZGQtOGM1YmE2YjZmZTFmL3Jlc291cmNlZ3JvdXBzL3BzNTY4OD9hcGktdmVyc2lvbj0yMDE2LTA5LTAx", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourcegroups/ps2289?api-version=2016-09-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlZ3JvdXBzL3BzMjI4OT9hcGktdmVyc2lvbj0yMDE2LTA5LTAx", "RequestMethod": "DELETE", "RequestHeaders": { "x-ms-client-request-id": [ - "456e7e40-8abf-4727-a47a-b11cad63d706" + "76bb6238-f2d5-4575-b632-08b214431a9d" ], "Accept-Language": [ "en-US" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.102" + "OSVersion/Microsoft.Windows.10.0.26100", + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.109" ] }, "RequestBody": "", @@ -1416,7 +1446,7 @@ "no-cache" ], "Location": [ - "https://management.azure.com/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QUzU2ODgtV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2016-09-01&t=638671295967893969&c=MIIHhzCCBm-gAwIBAgITHgVqhF9GOoUjuyqQWAAABWqEXzANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDYwHhcNMjQwOTIwMjMxMTQxWhcNMjUwMzE5MjMxMTQxWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKRtcYDBXS7zz5tRtvVyhrUAjudYhej1E2D3dp6XWuPdbVMbQZwMlye8vdT-kDhFD7T2mrdWqsoGnTGk0_xOHBfLGnW-0QRUqpeoTNIhu8vc2CfTUtm2t2s_-fzvFtRyhDA4mfCH1cz92EVj0vd3FD4ikW6bdOp1NkYFqUVBhKlbvJk6y-TbLFBLP5Zx4m0Ua-_P7aMzbgvOJgMOTC2jLs5w_lFDJWeP3IKUOiJmrfLpf4ey5Ov94oCE6YncDBSHJZKWcrSxDHgSz9AXrxarL4HLajGbF3MRvfkMN2gNXCoiJXBEqCLDnyQZ0BgXIvuK7vG8Rj0TyhJNj-QPr8taY6UCAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAyLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA2LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MB0GA1UdDgQWBBRKlJQpFyyZKSchkTlshetYOUX7xzAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBTxRmjG8cPwKy19i2rhsvm-NfzRQTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAG0WbzLPsmSSMI7aTe2npixmkdCmwcdZHGd43tUnB8JKrLNJEFcBsQmbcIH0adpnQNrDgRkNBBOTZ4s1LIBlRQapZpPsRItAMUguVpGVRH08T0i43w9xrp_clNbAJrrfRbmYroF0WJKMJ0nwW2rPjxdevSRygGK_nEfywwFi-p1RhHnkiEGL4GnP7PpQcRvAYMdH9LO5MRY7iLbBmosKatS_eWtSJD1CvzglNwy_vQzx81Vnk0CgndqXcVq-loGu7R4U7mkQ2NNqLbp447STxkpP-6Mdyv8J4bdnf1s3vFBNpgvJWKogWcNLlo8jnkbEf6RPNGe1W5lma7JwMKAcPzY&s=Ph4TrZcWCRw4gyBQlsunQBl8Tjw7VJ0_ulslnS3BUjJ_eqrHQzN3V-15jqw6tmEjbcGJOqx3MuoIG_yjPB2YM4Fe_Ejb_DCqwnTyDqpqPyMMYIB24IFVSPd_J1utm9KPBcN_Wx2Qc0eK5iVZeU21z50AK1oqOXU9q1dzmi6B-YZTkk3Q3A92p9zYPmTNlNpw6MpSPS-wSXJjtFVf4UwVJaco59kSYpEYrTZZsrELTNxhuUUzmMTbKHIgZFdlDbOHmFoCNPzWYAmuY5zOhFQGwgcm-qyNwU8pGqjnMSr9NO4r0jOSAzZvuc0yQ7I4VJ7IGFkT2bWKPHRZ7bwgDZaGLw&h=pcY17D5K9sHOn-5el3Q2_sxc9xZRPnPV4Gx7hZ7HZcg" + "https://management.azure.com/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QUzIyODktV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2016-09-01&t=638932201766583415&c=MIIIpTCCBo2gAwIBAgITFgGsmnj73LBE7PaBtQABAayaeDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDMwHhcNMjUwNzE4MTIwNDI4WhcNMjYwMTE0MTIwNDI4WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKYwXiklImL5-WfPWj2FX3_Y-JxCd3XXEOuNXx5ggHubZZamujLTqEBSFsFYiH_9NCaqKTiATXu6fBpzW3ghgYhwr0PL071fQT15KnnNUFjd5hFXB7SYti9IwWu1lxSAz-De7HivujKdlsgcmfoV6upRQ0eva9e74EwLV9pCn4WQAhs-6T8p0CytQsi81qHMWybAbNvfom0ox78IEWdS_6g_d4Jl_I4ccYLMyRTOV2NioM96cRECWCZhbpLl1zwoYGSbU5H0MZaiCBjPlhXN40BqagpamZfP98sPYSBfreh6-iMGU5tNTRkh8RiJqzjhzIUpEv3PqLtWTyPUB8JS7aUCAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9BTTNQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAzKDEpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MB0GA1UdDgQWBBTxzPCXgPzIUiTz94us0y0CCMf8BzAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBRIo61gdWpv7GDzaVXRALEyV_xs5DAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggIBAAqNK9Ejzdnb9L4TyakCpJByRYVTN_6nCGbtUd2E2sELjuJGRGiRmujp_jqNyIofO_ghSaP_tqH-3WRTRUbnt5xM8aBYoYJSOgKgTsNrB6clspdhCCmzhJy6EQuOqfUDm3C7hDru1_bN3DwXt3VpDqfuYtM3MAabKg0oCYVWgFwnAKYmZLZMWMQh7k_hZxy1gOCQmE9U08tf_pU21aI0El6n5A5uG2FT0placwchheFmXAtoPjT7nU53HVmRissxUR_vRCDj_ZCFo3K3nZNXCQOKPAMc9-LC0prb9Slg6siKtSHB3iGjNQlT9-nbSnDgifI8zC1cvT8CdaNLOmUywRIB4wvRn1z123NuyfJaIz95igW9P189vBTJEZREF-MgJEboWKdlGNn6bbBtu0waqAmUU7WVLeZKdtUI6EEKF7wRGYuY_BhZx1ipyXnBHZpsufuH4AwgOO289QKmqg8QAy7HFD9c8H8fNCtR7sTZ4YNP2AhEaES0rkMSQUCNVEz42YEBi2GgrSpnI94SPdb3J3PkCMZ4OgFRjztLO7nrgbPtflhSOo_VOE0_7Y74km43WAMQPKL3-44vQrEQ61Hd_24IcFh_ChNXvUDqp39GzYlO3D0zlau4ozll8BeLUZrJwHTQWZS8XR-EifCl4MW5Y3Y1SxOLrIxnukCzQxL7aGmc&s=TQ2a5kG5eDIz04MuH_yfCzJU9wp2ADG9eqjgRypQmQWwxdCyYXpLAbX7Ih7npjCgXPvPrEY7MKbYPVDSbgGBaUHi-td9xVZuEtjT3lplQ2amVJsUguHIrCFhsymH8w3AoNdT5V7ePi6yI8yNKiyqKLIS9uCeL8nihDTjRR7plZXmk5vJEk5VBiDZa5MrjAkWQdT7UZ4adQFhxKLWV05YEFb8a78oj02UcrUP-ZeDXGaWRqp7oa2ewb066QbwNHaRvyhpK2qsdklGIWy1556tawchTCuL7nD4l5GUSDbbHbKH3m2MrQouoyi0dxA3up3VBleDtrg_qtsw521O16ZErQ&h=V5nQ01klJGUDGYu8qt4SIxKyhLonEhnp9RY9zUG1kOo" ], "Retry-After": [ "15" @@ -1428,13 +1458,13 @@ "11999" ], "x-ms-request-id": [ - "951d0b6c-3308-4fe7-867e-e054eda70a6c" + "5800dd1b-66bc-45bd-912c-a2bc7de255df" ], "x-ms-correlation-request-id": [ - "951d0b6c-3308-4fe7-867e-e054eda70a6c" + "5800dd1b-66bc-45bd-912c-a2bc7de255df" ], "x-ms-routing-request-id": [ - "EASTUS:20241113T211956Z:951d0b6c-3308-4fe7-867e-e054eda70a6c" + "WESTUS2:20250911T204256Z:5800dd1b-66bc-45bd-912c-a2bc7de255df" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -1446,10 +1476,10 @@ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: BF92DE17C15249ABA1354604D4745071 Ref B: MNZ221060618047 Ref C: 2024-11-13T21:19:55Z" + "Ref A: 9B6241417CB2407D8E66D59A1510D3F2 Ref B: CO6AA3150219017 Ref C: 2025-09-11T20:42:56Z" ], "Date": [ - "Wed, 13 Nov 2024 21:19:55 GMT" + "Thu, 11 Sep 2025 20:42:55 GMT" ], "Expires": [ "-1" @@ -1462,15 +1492,15 @@ "StatusCode": 202 }, { - "RequestUri": "/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QUzU2ODgtV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2016-09-01&t=638671295967893969&c=MIIHhzCCBm-gAwIBAgITHgVqhF9GOoUjuyqQWAAABWqEXzANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDYwHhcNMjQwOTIwMjMxMTQxWhcNMjUwMzE5MjMxMTQxWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKRtcYDBXS7zz5tRtvVyhrUAjudYhej1E2D3dp6XWuPdbVMbQZwMlye8vdT-kDhFD7T2mrdWqsoGnTGk0_xOHBfLGnW-0QRUqpeoTNIhu8vc2CfTUtm2t2s_-fzvFtRyhDA4mfCH1cz92EVj0vd3FD4ikW6bdOp1NkYFqUVBhKlbvJk6y-TbLFBLP5Zx4m0Ua-_P7aMzbgvOJgMOTC2jLs5w_lFDJWeP3IKUOiJmrfLpf4ey5Ov94oCE6YncDBSHJZKWcrSxDHgSz9AXrxarL4HLajGbF3MRvfkMN2gNXCoiJXBEqCLDnyQZ0BgXIvuK7vG8Rj0TyhJNj-QPr8taY6UCAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAyLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA2LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MB0GA1UdDgQWBBRKlJQpFyyZKSchkTlshetYOUX7xzAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBTxRmjG8cPwKy19i2rhsvm-NfzRQTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAG0WbzLPsmSSMI7aTe2npixmkdCmwcdZHGd43tUnB8JKrLNJEFcBsQmbcIH0adpnQNrDgRkNBBOTZ4s1LIBlRQapZpPsRItAMUguVpGVRH08T0i43w9xrp_clNbAJrrfRbmYroF0WJKMJ0nwW2rPjxdevSRygGK_nEfywwFi-p1RhHnkiEGL4GnP7PpQcRvAYMdH9LO5MRY7iLbBmosKatS_eWtSJD1CvzglNwy_vQzx81Vnk0CgndqXcVq-loGu7R4U7mkQ2NNqLbp447STxkpP-6Mdyv8J4bdnf1s3vFBNpgvJWKogWcNLlo8jnkbEf6RPNGe1W5lma7JwMKAcPzY&s=Ph4TrZcWCRw4gyBQlsunQBl8Tjw7VJ0_ulslnS3BUjJ_eqrHQzN3V-15jqw6tmEjbcGJOqx3MuoIG_yjPB2YM4Fe_Ejb_DCqwnTyDqpqPyMMYIB24IFVSPd_J1utm9KPBcN_Wx2Qc0eK5iVZeU21z50AK1oqOXU9q1dzmi6B-YZTkk3Q3A92p9zYPmTNlNpw6MpSPS-wSXJjtFVf4UwVJaco59kSYpEYrTZZsrELTNxhuUUzmMTbKHIgZFdlDbOHmFoCNPzWYAmuY5zOhFQGwgcm-qyNwU8pGqjnMSr9NO4r0jOSAzZvuc0yQ7I4VJ7IGFkT2bWKPHRZ7bwgDZaGLw&h=pcY17D5K9sHOn-5el3Q2_sxc9xZRPnPV4Gx7hZ7HZcg", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjFhYmQ2NzgtMThjNS00NjYwLTlmZGQtOGM1YmE2YjZmZTFmL29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVXpVMk9EZ3RWMFZUVkZWVE1pSXNJbXB2WWt4dlkyRjBhVzl1SWpvaWQyVnpkSFZ6TWlKOT9hcGktdmVyc2lvbj0yMDE2LTA5LTAxJnQ9NjM4NjcxMjk1OTY3ODkzOTY5JmM9TUlJSGh6Q0NCbS1nQXdJQkFnSVRIZ1ZxaEY5R09vVWp1eXFRV0FBQUJXcUVYekFOQmdrcWhraUc5dzBCQVFzRkFEQkVNUk13RVFZS0NaSW1pWlB5TEdRQkdSWURSMEpNTVJNd0VRWUtDWkltaVpQeUxHUUJHUllEUVUxRk1SZ3dGZ1lEVlFRREV3OUJUVVVnU1c1bWNtRWdRMEVnTURZd0hoY05NalF3T1RJd01qTXhNVFF4V2hjTk1qVXdNekU1TWpNeE1UUXhXakJBTVQ0d1BBWURWUVFERXpWaGMzbHVZMjl3WlhKaGRHbHZibk5wWjI1cGJtZGpaWEowYVdacFkyRjBaUzV0WVc1aFoyVnRaVzUwTG1GNmRYSmxMbU52YlRDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBS1J0Y1lEQlhTN3p6NXRSdHZWeWhyVUFqdWRZaGVqMUUyRDNkcDZYV3VQZGJWTWJRWndNbHllOHZkVC1rRGhGRDdUMm1yZFdxc29HblRHazBfeE9IQmZMR25XLTBRUlVxcGVvVE5JaHU4dmMyQ2ZUVXRtMnQyc18tZnp2RnRSeWhEQTRtZkNIMWN6OTJFVmowdmQzRkQ0aWtXNmJkT3AxTmtZRnFVVkJoS2xidkprNnktVGJMRkJMUDVaeDRtMFVhLV9QN2FNemJndk9KZ01PVEMyakxzNXdfbEZESldlUDNJS1VPaUptcmZMcGY0ZXk1T3Y5NG9DRTZZbmNEQlNISlpLV2NyU3hESGdTejlBWHJ4YXJMNEhMYWpHYkYzTVJ2ZmtNTjJnTlhDb2lKWEJFcUNMRG55UVowQmdYSXZ1Szd2RzhSajBUeWhKTmotUVByOHRhWTZVQ0F3RUFBYU9DQkhRd2dnUndNQ2NHQ1NzR0FRUUJnamNWQ2dRYU1CZ3dDZ1lJS3dZQkJRVUhBd0V3Q2dZSUt3WUJCUVVIQXdJd1BRWUpLd1lCQkFHQ054VUhCREF3TGdZbUt3WUJCQUdDTnhVSWhwRGpEWVRWdEhpRThZcy1oWnZkRnM2ZEVvRmdoZm1SUzRXc21UUUNBV1FDQVFjd2dnSExCZ2dyQmdFRkJRY0JBUVNDQWIwd2dnRzVNR01HQ0NzR0FRVUZCekFDaGxkb2RIUndPaTh2WTNKc0xtMXBZM0p2YzI5bWRDNWpiMjB2Y0d0cGFXNW1jbUV2UTJWeWRITXZRa3d5VUV0SlNVNVVRMEV3TWk1QlRVVXVSMEpNWDBGTlJTVXlNRWx1Wm5KaEpUSXdRMEVsTWpBd05pNWpjblF3VXdZSUt3WUJCUVVITUFLR1IyaDBkSEE2THk5amNtd3hMbUZ0WlM1blltd3ZZV2xoTDBKTU1sQkxTVWxPVkVOQk1ESXVRVTFGTGtkQ1RGOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFl1WTNKME1GTUdDQ3NHQVFVRkJ6QUNoa2RvZEhSd09pOHZZM0pzTWk1aGJXVXVaMkpzTDJGcFlTOUNUREpRUzBsSlRsUkRRVEF5TGtGTlJTNUhRa3hmUVUxRkpUSXdTVzVtY21FbE1qQkRRU1V5TURBMkxtTnlkREJUQmdnckJnRUZCUWN3QW9aSGFIUjBjRG92TDJOeWJETXVZVzFsTG1kaWJDOWhhV0V2UWt3eVVFdEpTVTVVUTBFd01pNUJUVVV1UjBKTVgwRk5SU1V5TUVsdVpuSmhKVEl3UTBFbE1qQXdOaTVqY25Rd1V3WUlLd1lCQlFVSE1BS0dSMmgwZEhBNkx5OWpjbXcwTG1GdFpTNW5ZbXd2WVdsaEwwSk1NbEJMU1VsT1ZFTkJNREl1UVUxRkxrZENURjlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURZdVkzSjBNQjBHQTFVZERnUVdCQlJLbEpRcEZ5eVpLU2Noa1Rsc2hldFlPVVg3eHpBT0JnTlZIUThCQWY4RUJBTUNCYUF3Z2dFbUJnTlZIUjhFZ2dFZE1JSUJHVENDQVJXZ2dnRVJvSUlCRFlZX2FIUjBjRG92TDJOeWJDNXRhV055YjNOdlpuUXVZMjl0TDNCcmFXbHVabkpoTDBOU1RDOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFl1WTNKc2hqRm9kSFJ3T2k4dlkzSnNNUzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01EWXVZM0pzaGpGb2RIUndPaTh2WTNKc01pNWhiV1V1WjJKc0wyTnliQzlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURZdVkzSnNoakZvZEhSd09pOHZZM0pzTXk1aGJXVXVaMkpzTDJOeWJDOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFl1WTNKc2hqRm9kSFJ3T2k4dlkzSnNOQzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01EWXVZM0pzTUlHZEJnTlZIU0FFZ1pVd2daSXdEQVlLS3dZQkJBR0NOM3NCQVRCbUJnb3JCZ0VFQVlJM2V3SUNNRmd3VmdZSUt3WUJCUVVIQWdJd1NoNUlBRE1BTXdCbEFEQUFNUUE1QURJQU1RQXRBRFFBWkFBMkFEUUFMUUEwQUdZQU9BQmpBQzBBWVFBd0FEVUFOUUF0QURVQVlnQmtBR0VBWmdCbUFHUUFOUUJsQURNQU13QmtNQXdHQ2lzR0FRUUJnamQ3QXdFd0RBWUtLd1lCQkFHQ04zc0VBakFmQmdOVkhTTUVHREFXZ0JUeFJtakc4Y1B3S3kxOWkycmhzdm0tTmZ6UlFUQWRCZ05WSFNVRUZqQVVCZ2dyQmdFRkJRY0RBUVlJS3dZQkJRVUhBd0l3RFFZSktvWklodmNOQVFFTEJRQURnZ0VCQUcwV2J6TFBzbVNTTUk3YVRlMm5waXhta2RDbXdjZFpIR2Q0M3RVbkI4SktyTE5KRUZjQnNRbWJjSUgwYWRwblFOckRnUmtOQkJPVFo0czFMSUJsUlFhcFpwUHNSSXRBTVVndVZwR1ZSSDA4VDBpNDN3OXhycF9jbE5iQUpycmZSYm1Zcm9GMFdKS01KMG53VzJyUGp4ZGV2U1J5Z0dLX25FZnl3d0ZpLXAxUmhIbmtpRUdMNEduUDdQcFFjUnZBWU1kSDlMTzVNUlk3aUxiQm1vc0thdFNfZVd0U0pEMUN2emdsTnd5X3ZReng4MVZuazBDZ25kcVhjVnEtbG9HdTdSNFU3bWtRMk5OcUxicDQ0N1NUeGtwUC02TWR5djhKNGJkbmYxczN2RkJOcGd2SldLb2dXY05MbG84am5rYkVmNlJQTkdlMVc1bG1hN0p3TUtBY1B6WSZzPVBoNFRyWmNXQ1J3NGd5QlFsc3VuUUJsOFRqdzdWSjBfdWxzbG5TM0JVakpfZXFySFF6TjNWLTE1anF3NnRtRWpiY0dKT3F4M011b0lHX3lqUEIyWU00RmVfRWpiX0RDcXduVHlEcXBxUHlNTVlJQjI0SUZWU1BkX0oxdXRtOUtQQmNOX1d4MlFjMGVLNWlWWmVVMjF6NTBBSzFvcU9YVTlxMWR6bWk2Qi1ZWlRrazNRM0E5MnA5ellQbVRObE5wdzZNcFNQUy13U1hKanRGVmY0VXdWSmFjbzU5a1NZcEVZclRaWnNyRUxUTnhodVVVem1NVGJLSElnWkZkbERiT0htRm9DTlB6V1lBbXVZNXpPaEZRR3dnY20tcXlOd1U4cEdxam5NU3I5Tk80cjBqT1NBelp2dWMweVE3STRWSjdJR0ZrVDJiV0tQSFJaN2J3Z0RaYUdMdyZoPXBjWTE3RDVLOXNIT24tNWVsM1EyX3N4Yzl4WlJQblBWNEd4N2haN0haY2c=", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QUzIyODktV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2016-09-01&t=638932201766583415&c=MIIIpTCCBo2gAwIBAgITFgGsmnj73LBE7PaBtQABAayaeDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDMwHhcNMjUwNzE4MTIwNDI4WhcNMjYwMTE0MTIwNDI4WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKYwXiklImL5-WfPWj2FX3_Y-JxCd3XXEOuNXx5ggHubZZamujLTqEBSFsFYiH_9NCaqKTiATXu6fBpzW3ghgYhwr0PL071fQT15KnnNUFjd5hFXB7SYti9IwWu1lxSAz-De7HivujKdlsgcmfoV6upRQ0eva9e74EwLV9pCn4WQAhs-6T8p0CytQsi81qHMWybAbNvfom0ox78IEWdS_6g_d4Jl_I4ccYLMyRTOV2NioM96cRECWCZhbpLl1zwoYGSbU5H0MZaiCBjPlhXN40BqagpamZfP98sPYSBfreh6-iMGU5tNTRkh8RiJqzjhzIUpEv3PqLtWTyPUB8JS7aUCAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9BTTNQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAzKDEpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MB0GA1UdDgQWBBTxzPCXgPzIUiTz94us0y0CCMf8BzAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBRIo61gdWpv7GDzaVXRALEyV_xs5DAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggIBAAqNK9Ejzdnb9L4TyakCpJByRYVTN_6nCGbtUd2E2sELjuJGRGiRmujp_jqNyIofO_ghSaP_tqH-3WRTRUbnt5xM8aBYoYJSOgKgTsNrB6clspdhCCmzhJy6EQuOqfUDm3C7hDru1_bN3DwXt3VpDqfuYtM3MAabKg0oCYVWgFwnAKYmZLZMWMQh7k_hZxy1gOCQmE9U08tf_pU21aI0El6n5A5uG2FT0placwchheFmXAtoPjT7nU53HVmRissxUR_vRCDj_ZCFo3K3nZNXCQOKPAMc9-LC0prb9Slg6siKtSHB3iGjNQlT9-nbSnDgifI8zC1cvT8CdaNLOmUywRIB4wvRn1z123NuyfJaIz95igW9P189vBTJEZREF-MgJEboWKdlGNn6bbBtu0waqAmUU7WVLeZKdtUI6EEKF7wRGYuY_BhZx1ipyXnBHZpsufuH4AwgOO289QKmqg8QAy7HFD9c8H8fNCtR7sTZ4YNP2AhEaES0rkMSQUCNVEz42YEBi2GgrSpnI94SPdb3J3PkCMZ4OgFRjztLO7nrgbPtflhSOo_VOE0_7Y74km43WAMQPKL3-44vQrEQ61Hd_24IcFh_ChNXvUDqp39GzYlO3D0zlau4ozll8BeLUZrJwHTQWZS8XR-EifCl4MW5Y3Y1SxOLrIxnukCzQxL7aGmc&s=TQ2a5kG5eDIz04MuH_yfCzJU9wp2ADG9eqjgRypQmQWwxdCyYXpLAbX7Ih7npjCgXPvPrEY7MKbYPVDSbgGBaUHi-td9xVZuEtjT3lplQ2amVJsUguHIrCFhsymH8w3AoNdT5V7ePi6yI8yNKiyqKLIS9uCeL8nihDTjRR7plZXmk5vJEk5VBiDZa5MrjAkWQdT7UZ4adQFhxKLWV05YEFb8a78oj02UcrUP-ZeDXGaWRqp7oa2ewb066QbwNHaRvyhpK2qsdklGIWy1556tawchTCuL7nD4l5GUSDbbHbKH3m2MrQouoyi0dxA3up3VBleDtrg_qtsw521O16ZErQ&h=V5nQ01klJGUDGYu8qt4SIxKyhLonEhnp9RY9zUG1kOo", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVXpJeU9Ea3RWMFZUVkZWVE1pSXNJbXB2WWt4dlkyRjBhVzl1SWpvaWQyVnpkSFZ6TWlKOT9hcGktdmVyc2lvbj0yMDE2LTA5LTAxJnQ9NjM4OTMyMjAxNzY2NTgzNDE1JmM9TUlJSXBUQ0NCbzJnQXdJQkFnSVRGZ0dzbW5qNzNMQkU3UGFCdFFBQkFheWFlREFOQmdrcWhraUc5dzBCQVFzRkFEQkVNUk13RVFZS0NaSW1pWlB5TEdRQkdSWURSMEpNTVJNd0VRWUtDWkltaVpQeUxHUUJHUllEUVUxRk1SZ3dGZ1lEVlFRREV3OUJUVVVnU1c1bWNtRWdRMEVnTURNd0hoY05NalV3TnpFNE1USXdOREk0V2hjTk1qWXdNVEUwTVRJd05ESTRXakJBTVQ0d1BBWURWUVFERXpWaGMzbHVZMjl3WlhKaGRHbHZibk5wWjI1cGJtZGpaWEowYVdacFkyRjBaUzV0WVc1aFoyVnRaVzUwTG1GNmRYSmxMbU52YlRDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBS1l3WGlrbEltTDUtV2ZQV2oyRlgzX1ktSnhDZDNYWEVPdU5YeDVnZ0h1YlpaYW11akxUcUVCU0ZzRllpSF85TkNhcUtUaUFUWHU2ZkJwelczZ2hnWWh3cjBQTDA3MWZRVDE1S25uTlVGamQ1aEZYQjdTWXRpOUl3V3UxbHhTQXotRGU3SGl2dWpLZGxzZ2NtZm9WNnVwUlEwZXZhOWU3NEV3TFY5cENuNFdRQWhzLTZUOHAwQ3l0UXNpODFxSE1XeWJBYk52Zm9tMG94NzhJRVdkU182Z19kNEpsX0k0Y2NZTE15UlRPVjJOaW9NOTZjUkVDV0NaaGJwTGwxendvWUdTYlU1SDBNWmFpQ0JqUGxoWE40MEJxYWdwYW1aZlA5OHNQWVNCZnJlaDYtaU1HVTV0TlRSa2g4UmlKcXpqaHpJVXBFdjNQcUx0V1R5UFVCOEpTN2FVQ0F3RUFBYU9DQkpJd2dnU09NQ2NHQ1NzR0FRUUJnamNWQ2dRYU1CZ3dDZ1lJS3dZQkJRVUhBd0V3Q2dZSUt3WUJCUVVIQXdJd1BRWUpLd1lCQkFHQ054VUhCREF3TGdZbUt3WUJCQUdDTnhVSWhwRGpEWVRWdEhpRThZcy1oWnZkRnM2ZEVvRmdoZm1SUzRXc21UUUNBV1FDQVFjd2dnSGFCZ2dyQmdFRkJRY0JBUVNDQWN3d2dnSElNR1lHQ0NzR0FRVUZCekFDaGxwb2RIUndPaTh2WTNKc0xtMXBZM0p2YzI5bWRDNWpiMjB2Y0d0cGFXNW1jbUV2UTJWeWRITXZRVTB6VUV0SlNVNVVRMEV3TVM1QlRVVXVSMEpNWDBGTlJTVXlNRWx1Wm5KaEpUSXdRMEVsTWpBd015Z3hLUzVqY25Rd1ZnWUlLd1lCQlFVSE1BS0dTbWgwZEhBNkx5OWpjbXd4TG1GdFpTNW5ZbXd2WVdsaEwwRk5NMUJMU1VsT1ZFTkJNREV1UVUxRkxrZENURjlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURNb01Ta3VZM0owTUZZR0NDc0dBUVVGQnpBQ2hrcG9kSFJ3T2k4dlkzSnNNaTVoYldVdVoySnNMMkZwWVM5QlRUTlFTMGxKVGxSRFFUQXhMa0ZOUlM1SFFreGZRVTFGSlRJd1NXNW1jbUVsTWpCRFFTVXlNREF6S0RFcExtTnlkREJXQmdnckJnRUZCUWN3QW9aS2FIUjBjRG92TDJOeWJETXVZVzFsTG1kaWJDOWhhV0V2UVUwelVFdEpTVTVVUTBFd01TNUJUVVV1UjBKTVgwRk5SU1V5TUVsdVpuSmhKVEl3UTBFbE1qQXdNeWd4S1M1amNuUXdWZ1lJS3dZQkJRVUhNQUtHU21oMGRIQTZMeTlqY213MExtRnRaUzVuWW13dllXbGhMMEZOTTFCTFNVbE9WRU5CTURFdVFVMUZMa2RDVEY5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKME1CMEdBMVVkRGdRV0JCVHh6UENYZ1B6SVVpVHo5NHVzMHkwQ0NNZjhCekFPQmdOVkhROEJBZjhFQkFNQ0JhQXdnZ0UxQmdOVkhSOEVnZ0VzTUlJQktEQ0NBU1NnZ2dFZ29JSUJISVpDYUhSMGNEb3ZMMk55YkM1dGFXTnliM052Wm5RdVkyOXRMM0JyYVdsdVpuSmhMME5TVEM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc2hqUm9kSFJ3T2k4dlkzSnNNUzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc2hqUm9kSFJ3T2k4dlkzSnNNaTVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc2hqUm9kSFJ3T2k4dlkzSnNNeTVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc2hqUm9kSFJ3T2k4dlkzSnNOQzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc01JR2RCZ05WSFNBRWdaVXdnWkl3REFZS0t3WUJCQUdDTjNzQkFUQm1CZ29yQmdFRUFZSTNld0lDTUZnd1ZnWUlLd1lCQlFVSEFnSXdTaDVJQURNQU13QmxBREFBTVFBNUFESUFNUUF0QURRQVpBQTJBRFFBTFFBMEFHWUFPQUJqQUMwQVlRQXdBRFVBTlFBdEFEVUFZZ0JrQUdFQVpnQm1BR1FBTlFCbEFETUFNd0JrTUF3R0Npc0dBUVFCZ2pkN0F3SXdEQVlLS3dZQkJBR0NOM3NFQWpBZkJnTlZIU01FR0RBV2dCUklvNjFnZFdwdjdHRHphVlhSQUxFeVZfeHM1REFkQmdOVkhTVUVGakFVQmdnckJnRUZCUWNEQVFZSUt3WUJCUVVIQXdJd0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dJQkFBcU5LOUVqemRuYjlMNFR5YWtDcEpCeVJZVlROXzZuQ0didFVkMkUyc0VManVKR1JHaVJtdWpwX2pxTnlJb2ZPX2doU2FQX3RxSC0zV1JUUlVibnQ1eE04YUJZb1lKU09nS2dUc05yQjZjbHNwZGhDQ216aEp5NkVRdU9xZlVEbTNDN2hEcnUxX2JOM0R3WHQzVnBEcWZ1WXRNM01BYWJLZzBvQ1lWV2dGd25BS1ltWkxaTVdNUWg3a19oWnh5MWdPQ1FtRTlVMDh0Zl9wVTIxYUkwRWw2bjVBNXVHMkZUMHBsYWN3Y2hoZUZtWEF0b1BqVDduVTUzSFZtUmlzc3hVUl92UkNEal9aQ0ZvM0szblpOWENRT0tQQU1jOS1MQzBwcmI5U2xnNnNpS3RTSEIzaUdqTlFsVDktbmJTbkRnaWZJOHpDMWN2VDhDZGFOTE9tVXl3UklCNHd2Um4xejEyM051eWZKYUl6OTVpZ1c5UDE4OXZCVEpFWlJFRi1NZ0pFYm9XS2RsR05uNmJiQnR1MHdhcUFtVVU3V1ZMZVpLZHRVSTZFRUtGN3dSR1l1WV9CaFp4MWlweVhuQkhacHN1ZnVINEF3Z09PMjg5UUttcWc4UUF5N0hGRDljOEg4Zk5DdFI3c1RaNFlOUDJBaEVhRVMwcmtNU1FVQ05WRXo0MllFQmkyR2dyU3BuSTk0U1BkYjNKM1BrQ01aNE9nRlJqenRMTzducmdiUHRmbGhTT29fVk9FMF83WTc0a200M1dBTVFQS0wzLTQ0dlFyRVE2MUhkXzI0SWNGaF9DaE5YdlVEcXAzOUd6WWxPM0QwemxhdTRvemxsOEJlTFVackp3SFRRV1pTOFhSLUVpZkNsNE1XNVkzWTFTeE9Mckl4bnVrQ3pReEw3YUdtYyZzPVRRMmE1a0c1ZURJejA0TXVIX3lmQ3pKVTl3cDJBREc5ZXFqZ1J5cFFtUVd3eGRDeVlYcExBYlg3SWg3bnBqQ2dYUHZQckVZN01LYllQVkRTYmdHQmFVSGktdGQ5eFZadUV0alQzbHBsUTJhbVZKc1VndUhJckNGaHN5bUg4dzNBb05kVDVWN2VQaTZ5STh5TktpeXFLTElTOXVDZUw4bmloRFRqUlI3cGxaWG1rNXZKRWs1VkJpRFphNU1yakFrV1FkVDdVWjRhZFFGaHhLTFdWMDVZRUZiOGE3OG9qMDJVY3JVUC1aZURYR2FXUnFwN29hMmV3YjA2NlFid05IYVJ2eWhwSzJxc2RrbEdJV3kxNTU2dGF3Y2hUQ3VMN25ENGw1R1VTRGJiSGJLSDNtMk1yUW91b3lpMGR4QTN1cDNWQmxlRHRyZ19xdHN3NTIxTzE2WkVyUSZoPVY1blEwMWtsSkdVREdZdThxdDRTSXhLeWhMb25FaG5wOVJZOXpVRzFrT28=", "RequestMethod": "GET", "RequestHeaders": { "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.102" + "OSVersion/Microsoft.Windows.10.0.26100", + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.109" ] }, "RequestBody": "", @@ -1482,7 +1512,7 @@ "no-cache" ], "Location": [ - "https://management.azure.com/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QUzU2ODgtV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2016-09-01&t=638671296123461021&c=MIIHhzCCBm-gAwIBAgITHgVqhF9GOoUjuyqQWAAABWqEXzANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDYwHhcNMjQwOTIwMjMxMTQxWhcNMjUwMzE5MjMxMTQxWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKRtcYDBXS7zz5tRtvVyhrUAjudYhej1E2D3dp6XWuPdbVMbQZwMlye8vdT-kDhFD7T2mrdWqsoGnTGk0_xOHBfLGnW-0QRUqpeoTNIhu8vc2CfTUtm2t2s_-fzvFtRyhDA4mfCH1cz92EVj0vd3FD4ikW6bdOp1NkYFqUVBhKlbvJk6y-TbLFBLP5Zx4m0Ua-_P7aMzbgvOJgMOTC2jLs5w_lFDJWeP3IKUOiJmrfLpf4ey5Ov94oCE6YncDBSHJZKWcrSxDHgSz9AXrxarL4HLajGbF3MRvfkMN2gNXCoiJXBEqCLDnyQZ0BgXIvuK7vG8Rj0TyhJNj-QPr8taY6UCAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAyLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA2LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MB0GA1UdDgQWBBRKlJQpFyyZKSchkTlshetYOUX7xzAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBTxRmjG8cPwKy19i2rhsvm-NfzRQTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAG0WbzLPsmSSMI7aTe2npixmkdCmwcdZHGd43tUnB8JKrLNJEFcBsQmbcIH0adpnQNrDgRkNBBOTZ4s1LIBlRQapZpPsRItAMUguVpGVRH08T0i43w9xrp_clNbAJrrfRbmYroF0WJKMJ0nwW2rPjxdevSRygGK_nEfywwFi-p1RhHnkiEGL4GnP7PpQcRvAYMdH9LO5MRY7iLbBmosKatS_eWtSJD1CvzglNwy_vQzx81Vnk0CgndqXcVq-loGu7R4U7mkQ2NNqLbp447STxkpP-6Mdyv8J4bdnf1s3vFBNpgvJWKogWcNLlo8jnkbEf6RPNGe1W5lma7JwMKAcPzY&s=edSzz1y5-XutzDon2nri0B2d1Pl9qbzQ5fKKNGYDO-rYLj4FoD02DAN2PJQgw_jQBhKX8DfC07mBmIa02HhiFXa5QI7X9pTC2a7_fwP8LNCiArt3gxL0QtpUIaJoZC4GvnBy_llqnEydcUo7vywHAFMNYxR3ViaxH6GkNDaqzW4r5bXJp59Op2H546hsJT8nPzjrlW_BJqsuovel5vmYvYKb34enxfhcYC4jHQZ1QFAjssJV_UveVPY_9ObkvyMx3VkxcbDWnkhrrRoehCDBr28w4i-dFike0kh95YLJ2F9mTRBwyf1gBKtRoFJJ1lTTvhZMQbkcY19Z4EzvD70VJA&h=e0YoVxoi-mLEe5RftxHYEYxWhFu-tdO3fSP4m2vEDGA" + "https://management.azure.com/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QUzIyODktV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2016-09-01&t=638932201917550177&c=MIIIpTCCBo2gAwIBAgITFgGsmnj73LBE7PaBtQABAayaeDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDMwHhcNMjUwNzE4MTIwNDI4WhcNMjYwMTE0MTIwNDI4WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKYwXiklImL5-WfPWj2FX3_Y-JxCd3XXEOuNXx5ggHubZZamujLTqEBSFsFYiH_9NCaqKTiATXu6fBpzW3ghgYhwr0PL071fQT15KnnNUFjd5hFXB7SYti9IwWu1lxSAz-De7HivujKdlsgcmfoV6upRQ0eva9e74EwLV9pCn4WQAhs-6T8p0CytQsi81qHMWybAbNvfom0ox78IEWdS_6g_d4Jl_I4ccYLMyRTOV2NioM96cRECWCZhbpLl1zwoYGSbU5H0MZaiCBjPlhXN40BqagpamZfP98sPYSBfreh6-iMGU5tNTRkh8RiJqzjhzIUpEv3PqLtWTyPUB8JS7aUCAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9BTTNQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAzKDEpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MB0GA1UdDgQWBBTxzPCXgPzIUiTz94us0y0CCMf8BzAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBRIo61gdWpv7GDzaVXRALEyV_xs5DAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggIBAAqNK9Ejzdnb9L4TyakCpJByRYVTN_6nCGbtUd2E2sELjuJGRGiRmujp_jqNyIofO_ghSaP_tqH-3WRTRUbnt5xM8aBYoYJSOgKgTsNrB6clspdhCCmzhJy6EQuOqfUDm3C7hDru1_bN3DwXt3VpDqfuYtM3MAabKg0oCYVWgFwnAKYmZLZMWMQh7k_hZxy1gOCQmE9U08tf_pU21aI0El6n5A5uG2FT0placwchheFmXAtoPjT7nU53HVmRissxUR_vRCDj_ZCFo3K3nZNXCQOKPAMc9-LC0prb9Slg6siKtSHB3iGjNQlT9-nbSnDgifI8zC1cvT8CdaNLOmUywRIB4wvRn1z123NuyfJaIz95igW9P189vBTJEZREF-MgJEboWKdlGNn6bbBtu0waqAmUU7WVLeZKdtUI6EEKF7wRGYuY_BhZx1ipyXnBHZpsufuH4AwgOO289QKmqg8QAy7HFD9c8H8fNCtR7sTZ4YNP2AhEaES0rkMSQUCNVEz42YEBi2GgrSpnI94SPdb3J3PkCMZ4OgFRjztLO7nrgbPtflhSOo_VOE0_7Y74km43WAMQPKL3-44vQrEQ61Hd_24IcFh_ChNXvUDqp39GzYlO3D0zlau4ozll8BeLUZrJwHTQWZS8XR-EifCl4MW5Y3Y1SxOLrIxnukCzQxL7aGmc&s=nbp63GG9LYqRP4z1bYNy79nCi-5PGYAsKS50_cEyIvgF1CyTCejm6Zsy_8uaHvUDP_IDA6zdSe9d7qyWjT9I5fkZ9jwCu6QZyTqEQF9OFAMESJnCKB_ZMF6WYDHcUx0OqzuWNFPC-tBOTePgPAehKRSwpyoGephpZlVJUp7x5dzJoZrodEdHdDucp4bWBZJEjaQ6JB9KPmS3MZHRRm6jAsE8F-aINWUWWL9Nh2QYhtev7T2lUqccs4bN46sEgpuLN2Icp3xLXRbObAkLtG_dZrcU7dNNdPQ20S-aU1AM283ay975yTqJQIBlmIrSER-RMeOiH4TeGqGYZHx-T653lA&h=rwBgZjrdHTYIi4NlKL88rHt0kKmzWhc0Zx7ljaBhhq4" ], "Retry-After": [ "15" @@ -1494,13 +1524,13 @@ "16499" ], "x-ms-request-id": [ - "cf45a900-c913-418a-befe-36e65b5260ee" + "9665420f-036e-4da9-ab4f-3081c354d355" ], "x-ms-correlation-request-id": [ - "cf45a900-c913-418a-befe-36e65b5260ee" + "9665420f-036e-4da9-ab4f-3081c354d355" ], "x-ms-routing-request-id": [ - "EASTUS:20241113T212012Z:cf45a900-c913-418a-befe-36e65b5260ee" + "WESTUS2:20250911T204311Z:9665420f-036e-4da9-ab4f-3081c354d355" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -1512,10 +1542,10 @@ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: 93AB3509E27347EFB8A563AE215A80BA Ref B: MNZ221060618047 Ref C: 2024-11-13T21:20:11Z" + "Ref A: B3540C2B604C4341B74787C5C6AD5B47 Ref B: CO6AA3150219017 Ref C: 2025-09-11T20:43:11Z" ], "Date": [ - "Wed, 13 Nov 2024 21:20:11 GMT" + "Thu, 11 Sep 2025 20:43:10 GMT" ], "Expires": [ "-1" @@ -1528,15 +1558,15 @@ "StatusCode": 202 }, { - "RequestUri": "/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QUzU2ODgtV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2016-09-01&t=638671296123461021&c=MIIHhzCCBm-gAwIBAgITHgVqhF9GOoUjuyqQWAAABWqEXzANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDYwHhcNMjQwOTIwMjMxMTQxWhcNMjUwMzE5MjMxMTQxWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKRtcYDBXS7zz5tRtvVyhrUAjudYhej1E2D3dp6XWuPdbVMbQZwMlye8vdT-kDhFD7T2mrdWqsoGnTGk0_xOHBfLGnW-0QRUqpeoTNIhu8vc2CfTUtm2t2s_-fzvFtRyhDA4mfCH1cz92EVj0vd3FD4ikW6bdOp1NkYFqUVBhKlbvJk6y-TbLFBLP5Zx4m0Ua-_P7aMzbgvOJgMOTC2jLs5w_lFDJWeP3IKUOiJmrfLpf4ey5Ov94oCE6YncDBSHJZKWcrSxDHgSz9AXrxarL4HLajGbF3MRvfkMN2gNXCoiJXBEqCLDnyQZ0BgXIvuK7vG8Rj0TyhJNj-QPr8taY6UCAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAyLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA2LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MB0GA1UdDgQWBBRKlJQpFyyZKSchkTlshetYOUX7xzAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBTxRmjG8cPwKy19i2rhsvm-NfzRQTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAG0WbzLPsmSSMI7aTe2npixmkdCmwcdZHGd43tUnB8JKrLNJEFcBsQmbcIH0adpnQNrDgRkNBBOTZ4s1LIBlRQapZpPsRItAMUguVpGVRH08T0i43w9xrp_clNbAJrrfRbmYroF0WJKMJ0nwW2rPjxdevSRygGK_nEfywwFi-p1RhHnkiEGL4GnP7PpQcRvAYMdH9LO5MRY7iLbBmosKatS_eWtSJD1CvzglNwy_vQzx81Vnk0CgndqXcVq-loGu7R4U7mkQ2NNqLbp447STxkpP-6Mdyv8J4bdnf1s3vFBNpgvJWKogWcNLlo8jnkbEf6RPNGe1W5lma7JwMKAcPzY&s=edSzz1y5-XutzDon2nri0B2d1Pl9qbzQ5fKKNGYDO-rYLj4FoD02DAN2PJQgw_jQBhKX8DfC07mBmIa02HhiFXa5QI7X9pTC2a7_fwP8LNCiArt3gxL0QtpUIaJoZC4GvnBy_llqnEydcUo7vywHAFMNYxR3ViaxH6GkNDaqzW4r5bXJp59Op2H546hsJT8nPzjrlW_BJqsuovel5vmYvYKb34enxfhcYC4jHQZ1QFAjssJV_UveVPY_9ObkvyMx3VkxcbDWnkhrrRoehCDBr28w4i-dFike0kh95YLJ2F9mTRBwyf1gBKtRoFJJ1lTTvhZMQbkcY19Z4EzvD70VJA&h=e0YoVxoi-mLEe5RftxHYEYxWhFu-tdO3fSP4m2vEDGA", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjFhYmQ2NzgtMThjNS00NjYwLTlmZGQtOGM1YmE2YjZmZTFmL29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVXpVMk9EZ3RWMFZUVkZWVE1pSXNJbXB2WWt4dlkyRjBhVzl1SWpvaWQyVnpkSFZ6TWlKOT9hcGktdmVyc2lvbj0yMDE2LTA5LTAxJnQ9NjM4NjcxMjk2MTIzNDYxMDIxJmM9TUlJSGh6Q0NCbS1nQXdJQkFnSVRIZ1ZxaEY5R09vVWp1eXFRV0FBQUJXcUVYekFOQmdrcWhraUc5dzBCQVFzRkFEQkVNUk13RVFZS0NaSW1pWlB5TEdRQkdSWURSMEpNTVJNd0VRWUtDWkltaVpQeUxHUUJHUllEUVUxRk1SZ3dGZ1lEVlFRREV3OUJUVVVnU1c1bWNtRWdRMEVnTURZd0hoY05NalF3T1RJd01qTXhNVFF4V2hjTk1qVXdNekU1TWpNeE1UUXhXakJBTVQ0d1BBWURWUVFERXpWaGMzbHVZMjl3WlhKaGRHbHZibk5wWjI1cGJtZGpaWEowYVdacFkyRjBaUzV0WVc1aFoyVnRaVzUwTG1GNmRYSmxMbU52YlRDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBS1J0Y1lEQlhTN3p6NXRSdHZWeWhyVUFqdWRZaGVqMUUyRDNkcDZYV3VQZGJWTWJRWndNbHllOHZkVC1rRGhGRDdUMm1yZFdxc29HblRHazBfeE9IQmZMR25XLTBRUlVxcGVvVE5JaHU4dmMyQ2ZUVXRtMnQyc18tZnp2RnRSeWhEQTRtZkNIMWN6OTJFVmowdmQzRkQ0aWtXNmJkT3AxTmtZRnFVVkJoS2xidkprNnktVGJMRkJMUDVaeDRtMFVhLV9QN2FNemJndk9KZ01PVEMyakxzNXdfbEZESldlUDNJS1VPaUptcmZMcGY0ZXk1T3Y5NG9DRTZZbmNEQlNISlpLV2NyU3hESGdTejlBWHJ4YXJMNEhMYWpHYkYzTVJ2ZmtNTjJnTlhDb2lKWEJFcUNMRG55UVowQmdYSXZ1Szd2RzhSajBUeWhKTmotUVByOHRhWTZVQ0F3RUFBYU9DQkhRd2dnUndNQ2NHQ1NzR0FRUUJnamNWQ2dRYU1CZ3dDZ1lJS3dZQkJRVUhBd0V3Q2dZSUt3WUJCUVVIQXdJd1BRWUpLd1lCQkFHQ054VUhCREF3TGdZbUt3WUJCQUdDTnhVSWhwRGpEWVRWdEhpRThZcy1oWnZkRnM2ZEVvRmdoZm1SUzRXc21UUUNBV1FDQVFjd2dnSExCZ2dyQmdFRkJRY0JBUVNDQWIwd2dnRzVNR01HQ0NzR0FRVUZCekFDaGxkb2RIUndPaTh2WTNKc0xtMXBZM0p2YzI5bWRDNWpiMjB2Y0d0cGFXNW1jbUV2UTJWeWRITXZRa3d5VUV0SlNVNVVRMEV3TWk1QlRVVXVSMEpNWDBGTlJTVXlNRWx1Wm5KaEpUSXdRMEVsTWpBd05pNWpjblF3VXdZSUt3WUJCUVVITUFLR1IyaDBkSEE2THk5amNtd3hMbUZ0WlM1blltd3ZZV2xoTDBKTU1sQkxTVWxPVkVOQk1ESXVRVTFGTGtkQ1RGOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFl1WTNKME1GTUdDQ3NHQVFVRkJ6QUNoa2RvZEhSd09pOHZZM0pzTWk1aGJXVXVaMkpzTDJGcFlTOUNUREpRUzBsSlRsUkRRVEF5TGtGTlJTNUhRa3hmUVUxRkpUSXdTVzVtY21FbE1qQkRRU1V5TURBMkxtTnlkREJUQmdnckJnRUZCUWN3QW9aSGFIUjBjRG92TDJOeWJETXVZVzFsTG1kaWJDOWhhV0V2UWt3eVVFdEpTVTVVUTBFd01pNUJUVVV1UjBKTVgwRk5SU1V5TUVsdVpuSmhKVEl3UTBFbE1qQXdOaTVqY25Rd1V3WUlLd1lCQlFVSE1BS0dSMmgwZEhBNkx5OWpjbXcwTG1GdFpTNW5ZbXd2WVdsaEwwSk1NbEJMU1VsT1ZFTkJNREl1UVUxRkxrZENURjlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURZdVkzSjBNQjBHQTFVZERnUVdCQlJLbEpRcEZ5eVpLU2Noa1Rsc2hldFlPVVg3eHpBT0JnTlZIUThCQWY4RUJBTUNCYUF3Z2dFbUJnTlZIUjhFZ2dFZE1JSUJHVENDQVJXZ2dnRVJvSUlCRFlZX2FIUjBjRG92TDJOeWJDNXRhV055YjNOdlpuUXVZMjl0TDNCcmFXbHVabkpoTDBOU1RDOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFl1WTNKc2hqRm9kSFJ3T2k4dlkzSnNNUzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01EWXVZM0pzaGpGb2RIUndPaTh2WTNKc01pNWhiV1V1WjJKc0wyTnliQzlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURZdVkzSnNoakZvZEhSd09pOHZZM0pzTXk1aGJXVXVaMkpzTDJOeWJDOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFl1WTNKc2hqRm9kSFJ3T2k4dlkzSnNOQzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01EWXVZM0pzTUlHZEJnTlZIU0FFZ1pVd2daSXdEQVlLS3dZQkJBR0NOM3NCQVRCbUJnb3JCZ0VFQVlJM2V3SUNNRmd3VmdZSUt3WUJCUVVIQWdJd1NoNUlBRE1BTXdCbEFEQUFNUUE1QURJQU1RQXRBRFFBWkFBMkFEUUFMUUEwQUdZQU9BQmpBQzBBWVFBd0FEVUFOUUF0QURVQVlnQmtBR0VBWmdCbUFHUUFOUUJsQURNQU13QmtNQXdHQ2lzR0FRUUJnamQ3QXdFd0RBWUtLd1lCQkFHQ04zc0VBakFmQmdOVkhTTUVHREFXZ0JUeFJtakc4Y1B3S3kxOWkycmhzdm0tTmZ6UlFUQWRCZ05WSFNVRUZqQVVCZ2dyQmdFRkJRY0RBUVlJS3dZQkJRVUhBd0l3RFFZSktvWklodmNOQVFFTEJRQURnZ0VCQUcwV2J6TFBzbVNTTUk3YVRlMm5waXhta2RDbXdjZFpIR2Q0M3RVbkI4SktyTE5KRUZjQnNRbWJjSUgwYWRwblFOckRnUmtOQkJPVFo0czFMSUJsUlFhcFpwUHNSSXRBTVVndVZwR1ZSSDA4VDBpNDN3OXhycF9jbE5iQUpycmZSYm1Zcm9GMFdKS01KMG53VzJyUGp4ZGV2U1J5Z0dLX25FZnl3d0ZpLXAxUmhIbmtpRUdMNEduUDdQcFFjUnZBWU1kSDlMTzVNUlk3aUxiQm1vc0thdFNfZVd0U0pEMUN2emdsTnd5X3ZReng4MVZuazBDZ25kcVhjVnEtbG9HdTdSNFU3bWtRMk5OcUxicDQ0N1NUeGtwUC02TWR5djhKNGJkbmYxczN2RkJOcGd2SldLb2dXY05MbG84am5rYkVmNlJQTkdlMVc1bG1hN0p3TUtBY1B6WSZzPWVkU3p6MXk1LVh1dHpEb24ybnJpMEIyZDFQbDlxYnpRNWZLS05HWURPLXJZTGo0Rm9EMDJEQU4yUEpRZ3dfalFCaEtYOERmQzA3bUJtSWEwMkhoaUZYYTVRSTdYOXBUQzJhN19md1A4TE5DaUFydDNneEwwUXRwVUlhSm9aQzRHdm5CeV9sbHFuRXlkY1VvN3Z5d0hBRk1OWXhSM1ZpYXhINkdrTkRhcXpXNHI1YlhKcDU5T3AySDU0NmhzSlQ4blB6anJsV19CSnFzdW92ZWw1dm1ZdllLYjM0ZW54ZmhjWUM0akhRWjFRRkFqc3NKVl9VdmVWUFlfOU9ia3Z5TXgzVmt4Y2JEV25raHJyUm9laENEQnIyOHc0aS1kRmlrZTBraDk1WUxKMkY5bVRSQnd5ZjFnQkt0Um9GSkoxbFRUdmhaTVFia2NZMTlaNEV6dkQ3MFZKQSZoPWUwWW9WeG9pLW1MRWU1UmZ0eEhZRVl4V2hGdS10ZE8zZlNQNG0ydkVER0E=", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QUzIyODktV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2016-09-01&t=638932201917550177&c=MIIIpTCCBo2gAwIBAgITFgGsmnj73LBE7PaBtQABAayaeDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDMwHhcNMjUwNzE4MTIwNDI4WhcNMjYwMTE0MTIwNDI4WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKYwXiklImL5-WfPWj2FX3_Y-JxCd3XXEOuNXx5ggHubZZamujLTqEBSFsFYiH_9NCaqKTiATXu6fBpzW3ghgYhwr0PL071fQT15KnnNUFjd5hFXB7SYti9IwWu1lxSAz-De7HivujKdlsgcmfoV6upRQ0eva9e74EwLV9pCn4WQAhs-6T8p0CytQsi81qHMWybAbNvfom0ox78IEWdS_6g_d4Jl_I4ccYLMyRTOV2NioM96cRECWCZhbpLl1zwoYGSbU5H0MZaiCBjPlhXN40BqagpamZfP98sPYSBfreh6-iMGU5tNTRkh8RiJqzjhzIUpEv3PqLtWTyPUB8JS7aUCAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9BTTNQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAzKDEpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MB0GA1UdDgQWBBTxzPCXgPzIUiTz94us0y0CCMf8BzAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBRIo61gdWpv7GDzaVXRALEyV_xs5DAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggIBAAqNK9Ejzdnb9L4TyakCpJByRYVTN_6nCGbtUd2E2sELjuJGRGiRmujp_jqNyIofO_ghSaP_tqH-3WRTRUbnt5xM8aBYoYJSOgKgTsNrB6clspdhCCmzhJy6EQuOqfUDm3C7hDru1_bN3DwXt3VpDqfuYtM3MAabKg0oCYVWgFwnAKYmZLZMWMQh7k_hZxy1gOCQmE9U08tf_pU21aI0El6n5A5uG2FT0placwchheFmXAtoPjT7nU53HVmRissxUR_vRCDj_ZCFo3K3nZNXCQOKPAMc9-LC0prb9Slg6siKtSHB3iGjNQlT9-nbSnDgifI8zC1cvT8CdaNLOmUywRIB4wvRn1z123NuyfJaIz95igW9P189vBTJEZREF-MgJEboWKdlGNn6bbBtu0waqAmUU7WVLeZKdtUI6EEKF7wRGYuY_BhZx1ipyXnBHZpsufuH4AwgOO289QKmqg8QAy7HFD9c8H8fNCtR7sTZ4YNP2AhEaES0rkMSQUCNVEz42YEBi2GgrSpnI94SPdb3J3PkCMZ4OgFRjztLO7nrgbPtflhSOo_VOE0_7Y74km43WAMQPKL3-44vQrEQ61Hd_24IcFh_ChNXvUDqp39GzYlO3D0zlau4ozll8BeLUZrJwHTQWZS8XR-EifCl4MW5Y3Y1SxOLrIxnukCzQxL7aGmc&s=nbp63GG9LYqRP4z1bYNy79nCi-5PGYAsKS50_cEyIvgF1CyTCejm6Zsy_8uaHvUDP_IDA6zdSe9d7qyWjT9I5fkZ9jwCu6QZyTqEQF9OFAMESJnCKB_ZMF6WYDHcUx0OqzuWNFPC-tBOTePgPAehKRSwpyoGephpZlVJUp7x5dzJoZrodEdHdDucp4bWBZJEjaQ6JB9KPmS3MZHRRm6jAsE8F-aINWUWWL9Nh2QYhtev7T2lUqccs4bN46sEgpuLN2Icp3xLXRbObAkLtG_dZrcU7dNNdPQ20S-aU1AM283ay975yTqJQIBlmIrSER-RMeOiH4TeGqGYZHx-T653lA&h=rwBgZjrdHTYIi4NlKL88rHt0kKmzWhc0Zx7ljaBhhq4", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVXpJeU9Ea3RWMFZUVkZWVE1pSXNJbXB2WWt4dlkyRjBhVzl1SWpvaWQyVnpkSFZ6TWlKOT9hcGktdmVyc2lvbj0yMDE2LTA5LTAxJnQ9NjM4OTMyMjAxOTE3NTUwMTc3JmM9TUlJSXBUQ0NCbzJnQXdJQkFnSVRGZ0dzbW5qNzNMQkU3UGFCdFFBQkFheWFlREFOQmdrcWhraUc5dzBCQVFzRkFEQkVNUk13RVFZS0NaSW1pWlB5TEdRQkdSWURSMEpNTVJNd0VRWUtDWkltaVpQeUxHUUJHUllEUVUxRk1SZ3dGZ1lEVlFRREV3OUJUVVVnU1c1bWNtRWdRMEVnTURNd0hoY05NalV3TnpFNE1USXdOREk0V2hjTk1qWXdNVEUwTVRJd05ESTRXakJBTVQ0d1BBWURWUVFERXpWaGMzbHVZMjl3WlhKaGRHbHZibk5wWjI1cGJtZGpaWEowYVdacFkyRjBaUzV0WVc1aFoyVnRaVzUwTG1GNmRYSmxMbU52YlRDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBS1l3WGlrbEltTDUtV2ZQV2oyRlgzX1ktSnhDZDNYWEVPdU5YeDVnZ0h1YlpaYW11akxUcUVCU0ZzRllpSF85TkNhcUtUaUFUWHU2ZkJwelczZ2hnWWh3cjBQTDA3MWZRVDE1S25uTlVGamQ1aEZYQjdTWXRpOUl3V3UxbHhTQXotRGU3SGl2dWpLZGxzZ2NtZm9WNnVwUlEwZXZhOWU3NEV3TFY5cENuNFdRQWhzLTZUOHAwQ3l0UXNpODFxSE1XeWJBYk52Zm9tMG94NzhJRVdkU182Z19kNEpsX0k0Y2NZTE15UlRPVjJOaW9NOTZjUkVDV0NaaGJwTGwxendvWUdTYlU1SDBNWmFpQ0JqUGxoWE40MEJxYWdwYW1aZlA5OHNQWVNCZnJlaDYtaU1HVTV0TlRSa2g4UmlKcXpqaHpJVXBFdjNQcUx0V1R5UFVCOEpTN2FVQ0F3RUFBYU9DQkpJd2dnU09NQ2NHQ1NzR0FRUUJnamNWQ2dRYU1CZ3dDZ1lJS3dZQkJRVUhBd0V3Q2dZSUt3WUJCUVVIQXdJd1BRWUpLd1lCQkFHQ054VUhCREF3TGdZbUt3WUJCQUdDTnhVSWhwRGpEWVRWdEhpRThZcy1oWnZkRnM2ZEVvRmdoZm1SUzRXc21UUUNBV1FDQVFjd2dnSGFCZ2dyQmdFRkJRY0JBUVNDQWN3d2dnSElNR1lHQ0NzR0FRVUZCekFDaGxwb2RIUndPaTh2WTNKc0xtMXBZM0p2YzI5bWRDNWpiMjB2Y0d0cGFXNW1jbUV2UTJWeWRITXZRVTB6VUV0SlNVNVVRMEV3TVM1QlRVVXVSMEpNWDBGTlJTVXlNRWx1Wm5KaEpUSXdRMEVsTWpBd015Z3hLUzVqY25Rd1ZnWUlLd1lCQlFVSE1BS0dTbWgwZEhBNkx5OWpjbXd4TG1GdFpTNW5ZbXd2WVdsaEwwRk5NMUJMU1VsT1ZFTkJNREV1UVUxRkxrZENURjlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURNb01Ta3VZM0owTUZZR0NDc0dBUVVGQnpBQ2hrcG9kSFJ3T2k4dlkzSnNNaTVoYldVdVoySnNMMkZwWVM5QlRUTlFTMGxKVGxSRFFUQXhMa0ZOUlM1SFFreGZRVTFGSlRJd1NXNW1jbUVsTWpCRFFTVXlNREF6S0RFcExtTnlkREJXQmdnckJnRUZCUWN3QW9aS2FIUjBjRG92TDJOeWJETXVZVzFsTG1kaWJDOWhhV0V2UVUwelVFdEpTVTVVUTBFd01TNUJUVVV1UjBKTVgwRk5SU1V5TUVsdVpuSmhKVEl3UTBFbE1qQXdNeWd4S1M1amNuUXdWZ1lJS3dZQkJRVUhNQUtHU21oMGRIQTZMeTlqY213MExtRnRaUzVuWW13dllXbGhMMEZOTTFCTFNVbE9WRU5CTURFdVFVMUZMa2RDVEY5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKME1CMEdBMVVkRGdRV0JCVHh6UENYZ1B6SVVpVHo5NHVzMHkwQ0NNZjhCekFPQmdOVkhROEJBZjhFQkFNQ0JhQXdnZ0UxQmdOVkhSOEVnZ0VzTUlJQktEQ0NBU1NnZ2dFZ29JSUJISVpDYUhSMGNEb3ZMMk55YkM1dGFXTnliM052Wm5RdVkyOXRMM0JyYVdsdVpuSmhMME5TVEM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc2hqUm9kSFJ3T2k4dlkzSnNNUzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc2hqUm9kSFJ3T2k4dlkzSnNNaTVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc2hqUm9kSFJ3T2k4dlkzSnNNeTVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc2hqUm9kSFJ3T2k4dlkzSnNOQzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc01JR2RCZ05WSFNBRWdaVXdnWkl3REFZS0t3WUJCQUdDTjNzQkFUQm1CZ29yQmdFRUFZSTNld0lDTUZnd1ZnWUlLd1lCQlFVSEFnSXdTaDVJQURNQU13QmxBREFBTVFBNUFESUFNUUF0QURRQVpBQTJBRFFBTFFBMEFHWUFPQUJqQUMwQVlRQXdBRFVBTlFBdEFEVUFZZ0JrQUdFQVpnQm1BR1FBTlFCbEFETUFNd0JrTUF3R0Npc0dBUVFCZ2pkN0F3SXdEQVlLS3dZQkJBR0NOM3NFQWpBZkJnTlZIU01FR0RBV2dCUklvNjFnZFdwdjdHRHphVlhSQUxFeVZfeHM1REFkQmdOVkhTVUVGakFVQmdnckJnRUZCUWNEQVFZSUt3WUJCUVVIQXdJd0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dJQkFBcU5LOUVqemRuYjlMNFR5YWtDcEpCeVJZVlROXzZuQ0didFVkMkUyc0VManVKR1JHaVJtdWpwX2pxTnlJb2ZPX2doU2FQX3RxSC0zV1JUUlVibnQ1eE04YUJZb1lKU09nS2dUc05yQjZjbHNwZGhDQ216aEp5NkVRdU9xZlVEbTNDN2hEcnUxX2JOM0R3WHQzVnBEcWZ1WXRNM01BYWJLZzBvQ1lWV2dGd25BS1ltWkxaTVdNUWg3a19oWnh5MWdPQ1FtRTlVMDh0Zl9wVTIxYUkwRWw2bjVBNXVHMkZUMHBsYWN3Y2hoZUZtWEF0b1BqVDduVTUzSFZtUmlzc3hVUl92UkNEal9aQ0ZvM0szblpOWENRT0tQQU1jOS1MQzBwcmI5U2xnNnNpS3RTSEIzaUdqTlFsVDktbmJTbkRnaWZJOHpDMWN2VDhDZGFOTE9tVXl3UklCNHd2Um4xejEyM051eWZKYUl6OTVpZ1c5UDE4OXZCVEpFWlJFRi1NZ0pFYm9XS2RsR05uNmJiQnR1MHdhcUFtVVU3V1ZMZVpLZHRVSTZFRUtGN3dSR1l1WV9CaFp4MWlweVhuQkhacHN1ZnVINEF3Z09PMjg5UUttcWc4UUF5N0hGRDljOEg4Zk5DdFI3c1RaNFlOUDJBaEVhRVMwcmtNU1FVQ05WRXo0MllFQmkyR2dyU3BuSTk0U1BkYjNKM1BrQ01aNE9nRlJqenRMTzducmdiUHRmbGhTT29fVk9FMF83WTc0a200M1dBTVFQS0wzLTQ0dlFyRVE2MUhkXzI0SWNGaF9DaE5YdlVEcXAzOUd6WWxPM0QwemxhdTRvemxsOEJlTFVackp3SFRRV1pTOFhSLUVpZkNsNE1XNVkzWTFTeE9Mckl4bnVrQ3pReEw3YUdtYyZzPW5icDYzR0c5TFlxUlA0ejFiWU55NzluQ2ktNVBHWUFzS1M1MF9jRXlJdmdGMUN5VENlam02WnN5Xzh1YUh2VURQX0lEQTZ6ZFNlOWQ3cXlXalQ5STVma1o5andDdTZRWnlUcUVRRjlPRkFNRVNKbkNLQl9aTUY2V1lESGNVeDBPcXp1V05GUEMtdEJPVGVQZ1BBZWhLUlN3cHlvR2VwaHBabFZKVXA3eDVkekpvWnJvZEVkSGREdWNwNGJXQlpKRWphUTZKQjlLUG1TM01aSFJSbTZqQXNFOEYtYUlOV1VXV0w5TmgyUVlodGV2N1QybFVxY2NzNGJONDZzRWdwdUxOMkljcDN4TFhSYk9iQWtMdEdfZFpyY1U3ZE5OZFBRMjBTLWFVMUFNMjgzYXk5NzV5VHFKUUlCbG1JclNFUi1STWVPaUg0VGVHcUdZWkh4LVQ2NTNsQSZoPXJ3QmdaanJkSFRZSWk0TmxLTDg4ckh0MGtLbXpXaGMwWng3bGphQmhocTQ=", "RequestMethod": "GET", "RequestHeaders": { "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.102" + "OSVersion/Microsoft.Windows.10.0.26100", + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.109" ] }, "RequestBody": "", @@ -1548,7 +1578,7 @@ "no-cache" ], "Location": [ - "https://management.azure.com/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QUzU2ODgtV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2016-09-01&t=638671296276640532&c=MIIHhzCCBm-gAwIBAgITHgVqhF9GOoUjuyqQWAAABWqEXzANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDYwHhcNMjQwOTIwMjMxMTQxWhcNMjUwMzE5MjMxMTQxWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKRtcYDBXS7zz5tRtvVyhrUAjudYhej1E2D3dp6XWuPdbVMbQZwMlye8vdT-kDhFD7T2mrdWqsoGnTGk0_xOHBfLGnW-0QRUqpeoTNIhu8vc2CfTUtm2t2s_-fzvFtRyhDA4mfCH1cz92EVj0vd3FD4ikW6bdOp1NkYFqUVBhKlbvJk6y-TbLFBLP5Zx4m0Ua-_P7aMzbgvOJgMOTC2jLs5w_lFDJWeP3IKUOiJmrfLpf4ey5Ov94oCE6YncDBSHJZKWcrSxDHgSz9AXrxarL4HLajGbF3MRvfkMN2gNXCoiJXBEqCLDnyQZ0BgXIvuK7vG8Rj0TyhJNj-QPr8taY6UCAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAyLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA2LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MB0GA1UdDgQWBBRKlJQpFyyZKSchkTlshetYOUX7xzAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBTxRmjG8cPwKy19i2rhsvm-NfzRQTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAG0WbzLPsmSSMI7aTe2npixmkdCmwcdZHGd43tUnB8JKrLNJEFcBsQmbcIH0adpnQNrDgRkNBBOTZ4s1LIBlRQapZpPsRItAMUguVpGVRH08T0i43w9xrp_clNbAJrrfRbmYroF0WJKMJ0nwW2rPjxdevSRygGK_nEfywwFi-p1RhHnkiEGL4GnP7PpQcRvAYMdH9LO5MRY7iLbBmosKatS_eWtSJD1CvzglNwy_vQzx81Vnk0CgndqXcVq-loGu7R4U7mkQ2NNqLbp447STxkpP-6Mdyv8J4bdnf1s3vFBNpgvJWKogWcNLlo8jnkbEf6RPNGe1W5lma7JwMKAcPzY&s=mGLApS-AOBlplEk3rjTNbCgFC7resgmtqTJM5i2DbwIVBv7ucTpjZW-a-I_jafhK9bpLa3_orqK5hRFJqmAzEBrkjxCG2rkz-ZRWS5gRueJAqX7uVFIHE9hgEESjlSngYyG_If9RDsPi_bWc2ix6P0RWRheKNALhU6lSEnzc9LDNUPQC2-9lKwZIziUEMwBYwF3Noh-kWsZxYRhgc06NnSSicvpG17HgKu0LzPvMwzs5ZY5kkoxovsckXIQ3YpiBydn1FJk5qsX2GJVA7Wrp1W3Md9UBkDzT2x3ruu_oTI4M1oeh6fKqfA1t_qlhJUqSf2vKZO6CsDtB1NNE3X01Cw&h=NYC36VASoRidmtOoSOYGB_djloSRLndhthiJJAd5mac" + "https://management.azure.com/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QUzIyODktV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2016-09-01&t=638932202068227348&c=MIIIpTCCBo2gAwIBAgITFgGsmnj73LBE7PaBtQABAayaeDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDMwHhcNMjUwNzE4MTIwNDI4WhcNMjYwMTE0MTIwNDI4WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKYwXiklImL5-WfPWj2FX3_Y-JxCd3XXEOuNXx5ggHubZZamujLTqEBSFsFYiH_9NCaqKTiATXu6fBpzW3ghgYhwr0PL071fQT15KnnNUFjd5hFXB7SYti9IwWu1lxSAz-De7HivujKdlsgcmfoV6upRQ0eva9e74EwLV9pCn4WQAhs-6T8p0CytQsi81qHMWybAbNvfom0ox78IEWdS_6g_d4Jl_I4ccYLMyRTOV2NioM96cRECWCZhbpLl1zwoYGSbU5H0MZaiCBjPlhXN40BqagpamZfP98sPYSBfreh6-iMGU5tNTRkh8RiJqzjhzIUpEv3PqLtWTyPUB8JS7aUCAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9BTTNQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAzKDEpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MB0GA1UdDgQWBBTxzPCXgPzIUiTz94us0y0CCMf8BzAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBRIo61gdWpv7GDzaVXRALEyV_xs5DAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggIBAAqNK9Ejzdnb9L4TyakCpJByRYVTN_6nCGbtUd2E2sELjuJGRGiRmujp_jqNyIofO_ghSaP_tqH-3WRTRUbnt5xM8aBYoYJSOgKgTsNrB6clspdhCCmzhJy6EQuOqfUDm3C7hDru1_bN3DwXt3VpDqfuYtM3MAabKg0oCYVWgFwnAKYmZLZMWMQh7k_hZxy1gOCQmE9U08tf_pU21aI0El6n5A5uG2FT0placwchheFmXAtoPjT7nU53HVmRissxUR_vRCDj_ZCFo3K3nZNXCQOKPAMc9-LC0prb9Slg6siKtSHB3iGjNQlT9-nbSnDgifI8zC1cvT8CdaNLOmUywRIB4wvRn1z123NuyfJaIz95igW9P189vBTJEZREF-MgJEboWKdlGNn6bbBtu0waqAmUU7WVLeZKdtUI6EEKF7wRGYuY_BhZx1ipyXnBHZpsufuH4AwgOO289QKmqg8QAy7HFD9c8H8fNCtR7sTZ4YNP2AhEaES0rkMSQUCNVEz42YEBi2GgrSpnI94SPdb3J3PkCMZ4OgFRjztLO7nrgbPtflhSOo_VOE0_7Y74km43WAMQPKL3-44vQrEQ61Hd_24IcFh_ChNXvUDqp39GzYlO3D0zlau4ozll8BeLUZrJwHTQWZS8XR-EifCl4MW5Y3Y1SxOLrIxnukCzQxL7aGmc&s=NGtEacAskPdUJNgps0hx5gTXXzv05n5EfWmESuxwi_W6wqvQPqJnNpB0CNQzGd1P6FRmq2J_JENdIxhijI2OUb_o3-MBaFgiU1g0xXOGN_Sq0jVDrx0BG7Z9NwF3Y70AZtP-uttYMEGVnGe4xzYiN6S5fn03wd-s7D_S2hE-1ePCt6w0u0bvYpwmutUHY5sklqi91QR8MguzSapJlfV6lM2QTGm8rbynCthDg67XjzCq87mcAIjkXWKcpq3dxVDs6VzSnK1iFzhrE4cjQUjlKSoog7MM936dKWPZ1FQ3hxdKoaP1pc65xXhw4lIRKmDOx6u9A1-rmhtn53eRAKpIAQ&h=r4fvXe3f9fNrHeTxEA8QDVo90K1bCT3JBwgOLp2XLEA" ], "Retry-After": [ "15" @@ -1557,16 +1587,16 @@ "1099" ], "x-ms-ratelimit-remaining-subscription-global-reads": [ - "16498" + "16499" ], "x-ms-request-id": [ - "b24ef2b4-4eb7-452f-b17e-d926a6e3d55d" + "c9bc0fac-3c81-4eb0-bfd8-c11d51025d4c" ], "x-ms-correlation-request-id": [ - "b24ef2b4-4eb7-452f-b17e-d926a6e3d55d" + "c9bc0fac-3c81-4eb0-bfd8-c11d51025d4c" ], "x-ms-routing-request-id": [ - "EASTUS:20241113T212027Z:b24ef2b4-4eb7-452f-b17e-d926a6e3d55d" + "WESTUS2:20250911T204326Z:c9bc0fac-3c81-4eb0-bfd8-c11d51025d4c" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -1578,10 +1608,10 @@ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: 96349987775A4EE2B40F28C6300F6847 Ref B: MNZ221060618047 Ref C: 2024-11-13T21:20:27Z" + "Ref A: CF1D9FD7995A4BB2AC5FD2C4DAA7E8D7 Ref B: CO6AA3150219017 Ref C: 2025-09-11T20:43:26Z" ], "Date": [ - "Wed, 13 Nov 2024 21:20:26 GMT" + "Thu, 11 Sep 2025 20:43:25 GMT" ], "Expires": [ "-1" @@ -1594,15 +1624,15 @@ "StatusCode": 202 }, { - "RequestUri": "/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QUzU2ODgtV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2016-09-01&t=638671296276640532&c=MIIHhzCCBm-gAwIBAgITHgVqhF9GOoUjuyqQWAAABWqEXzANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDYwHhcNMjQwOTIwMjMxMTQxWhcNMjUwMzE5MjMxMTQxWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKRtcYDBXS7zz5tRtvVyhrUAjudYhej1E2D3dp6XWuPdbVMbQZwMlye8vdT-kDhFD7T2mrdWqsoGnTGk0_xOHBfLGnW-0QRUqpeoTNIhu8vc2CfTUtm2t2s_-fzvFtRyhDA4mfCH1cz92EVj0vd3FD4ikW6bdOp1NkYFqUVBhKlbvJk6y-TbLFBLP5Zx4m0Ua-_P7aMzbgvOJgMOTC2jLs5w_lFDJWeP3IKUOiJmrfLpf4ey5Ov94oCE6YncDBSHJZKWcrSxDHgSz9AXrxarL4HLajGbF3MRvfkMN2gNXCoiJXBEqCLDnyQZ0BgXIvuK7vG8Rj0TyhJNj-QPr8taY6UCAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAyLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA2LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MB0GA1UdDgQWBBRKlJQpFyyZKSchkTlshetYOUX7xzAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBTxRmjG8cPwKy19i2rhsvm-NfzRQTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAG0WbzLPsmSSMI7aTe2npixmkdCmwcdZHGd43tUnB8JKrLNJEFcBsQmbcIH0adpnQNrDgRkNBBOTZ4s1LIBlRQapZpPsRItAMUguVpGVRH08T0i43w9xrp_clNbAJrrfRbmYroF0WJKMJ0nwW2rPjxdevSRygGK_nEfywwFi-p1RhHnkiEGL4GnP7PpQcRvAYMdH9LO5MRY7iLbBmosKatS_eWtSJD1CvzglNwy_vQzx81Vnk0CgndqXcVq-loGu7R4U7mkQ2NNqLbp447STxkpP-6Mdyv8J4bdnf1s3vFBNpgvJWKogWcNLlo8jnkbEf6RPNGe1W5lma7JwMKAcPzY&s=mGLApS-AOBlplEk3rjTNbCgFC7resgmtqTJM5i2DbwIVBv7ucTpjZW-a-I_jafhK9bpLa3_orqK5hRFJqmAzEBrkjxCG2rkz-ZRWS5gRueJAqX7uVFIHE9hgEESjlSngYyG_If9RDsPi_bWc2ix6P0RWRheKNALhU6lSEnzc9LDNUPQC2-9lKwZIziUEMwBYwF3Noh-kWsZxYRhgc06NnSSicvpG17HgKu0LzPvMwzs5ZY5kkoxovsckXIQ3YpiBydn1FJk5qsX2GJVA7Wrp1W3Md9UBkDzT2x3ruu_oTI4M1oeh6fKqfA1t_qlhJUqSf2vKZO6CsDtB1NNE3X01Cw&h=NYC36VASoRidmtOoSOYGB_djloSRLndhthiJJAd5mac", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjFhYmQ2NzgtMThjNS00NjYwLTlmZGQtOGM1YmE2YjZmZTFmL29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVXpVMk9EZ3RWMFZUVkZWVE1pSXNJbXB2WWt4dlkyRjBhVzl1SWpvaWQyVnpkSFZ6TWlKOT9hcGktdmVyc2lvbj0yMDE2LTA5LTAxJnQ9NjM4NjcxMjk2Mjc2NjQwNTMyJmM9TUlJSGh6Q0NCbS1nQXdJQkFnSVRIZ1ZxaEY5R09vVWp1eXFRV0FBQUJXcUVYekFOQmdrcWhraUc5dzBCQVFzRkFEQkVNUk13RVFZS0NaSW1pWlB5TEdRQkdSWURSMEpNTVJNd0VRWUtDWkltaVpQeUxHUUJHUllEUVUxRk1SZ3dGZ1lEVlFRREV3OUJUVVVnU1c1bWNtRWdRMEVnTURZd0hoY05NalF3T1RJd01qTXhNVFF4V2hjTk1qVXdNekU1TWpNeE1UUXhXakJBTVQ0d1BBWURWUVFERXpWaGMzbHVZMjl3WlhKaGRHbHZibk5wWjI1cGJtZGpaWEowYVdacFkyRjBaUzV0WVc1aFoyVnRaVzUwTG1GNmRYSmxMbU52YlRDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBS1J0Y1lEQlhTN3p6NXRSdHZWeWhyVUFqdWRZaGVqMUUyRDNkcDZYV3VQZGJWTWJRWndNbHllOHZkVC1rRGhGRDdUMm1yZFdxc29HblRHazBfeE9IQmZMR25XLTBRUlVxcGVvVE5JaHU4dmMyQ2ZUVXRtMnQyc18tZnp2RnRSeWhEQTRtZkNIMWN6OTJFVmowdmQzRkQ0aWtXNmJkT3AxTmtZRnFVVkJoS2xidkprNnktVGJMRkJMUDVaeDRtMFVhLV9QN2FNemJndk9KZ01PVEMyakxzNXdfbEZESldlUDNJS1VPaUptcmZMcGY0ZXk1T3Y5NG9DRTZZbmNEQlNISlpLV2NyU3hESGdTejlBWHJ4YXJMNEhMYWpHYkYzTVJ2ZmtNTjJnTlhDb2lKWEJFcUNMRG55UVowQmdYSXZ1Szd2RzhSajBUeWhKTmotUVByOHRhWTZVQ0F3RUFBYU9DQkhRd2dnUndNQ2NHQ1NzR0FRUUJnamNWQ2dRYU1CZ3dDZ1lJS3dZQkJRVUhBd0V3Q2dZSUt3WUJCUVVIQXdJd1BRWUpLd1lCQkFHQ054VUhCREF3TGdZbUt3WUJCQUdDTnhVSWhwRGpEWVRWdEhpRThZcy1oWnZkRnM2ZEVvRmdoZm1SUzRXc21UUUNBV1FDQVFjd2dnSExCZ2dyQmdFRkJRY0JBUVNDQWIwd2dnRzVNR01HQ0NzR0FRVUZCekFDaGxkb2RIUndPaTh2WTNKc0xtMXBZM0p2YzI5bWRDNWpiMjB2Y0d0cGFXNW1jbUV2UTJWeWRITXZRa3d5VUV0SlNVNVVRMEV3TWk1QlRVVXVSMEpNWDBGTlJTVXlNRWx1Wm5KaEpUSXdRMEVsTWpBd05pNWpjblF3VXdZSUt3WUJCUVVITUFLR1IyaDBkSEE2THk5amNtd3hMbUZ0WlM1blltd3ZZV2xoTDBKTU1sQkxTVWxPVkVOQk1ESXVRVTFGTGtkQ1RGOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFl1WTNKME1GTUdDQ3NHQVFVRkJ6QUNoa2RvZEhSd09pOHZZM0pzTWk1aGJXVXVaMkpzTDJGcFlTOUNUREpRUzBsSlRsUkRRVEF5TGtGTlJTNUhRa3hmUVUxRkpUSXdTVzVtY21FbE1qQkRRU1V5TURBMkxtTnlkREJUQmdnckJnRUZCUWN3QW9aSGFIUjBjRG92TDJOeWJETXVZVzFsTG1kaWJDOWhhV0V2UWt3eVVFdEpTVTVVUTBFd01pNUJUVVV1UjBKTVgwRk5SU1V5TUVsdVpuSmhKVEl3UTBFbE1qQXdOaTVqY25Rd1V3WUlLd1lCQlFVSE1BS0dSMmgwZEhBNkx5OWpjbXcwTG1GdFpTNW5ZbXd2WVdsaEwwSk1NbEJMU1VsT1ZFTkJNREl1UVUxRkxrZENURjlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURZdVkzSjBNQjBHQTFVZERnUVdCQlJLbEpRcEZ5eVpLU2Noa1Rsc2hldFlPVVg3eHpBT0JnTlZIUThCQWY4RUJBTUNCYUF3Z2dFbUJnTlZIUjhFZ2dFZE1JSUJHVENDQVJXZ2dnRVJvSUlCRFlZX2FIUjBjRG92TDJOeWJDNXRhV055YjNOdlpuUXVZMjl0TDNCcmFXbHVabkpoTDBOU1RDOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFl1WTNKc2hqRm9kSFJ3T2k4dlkzSnNNUzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01EWXVZM0pzaGpGb2RIUndPaTh2WTNKc01pNWhiV1V1WjJKc0wyTnliQzlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURZdVkzSnNoakZvZEhSd09pOHZZM0pzTXk1aGJXVXVaMkpzTDJOeWJDOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFl1WTNKc2hqRm9kSFJ3T2k4dlkzSnNOQzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01EWXVZM0pzTUlHZEJnTlZIU0FFZ1pVd2daSXdEQVlLS3dZQkJBR0NOM3NCQVRCbUJnb3JCZ0VFQVlJM2V3SUNNRmd3VmdZSUt3WUJCUVVIQWdJd1NoNUlBRE1BTXdCbEFEQUFNUUE1QURJQU1RQXRBRFFBWkFBMkFEUUFMUUEwQUdZQU9BQmpBQzBBWVFBd0FEVUFOUUF0QURVQVlnQmtBR0VBWmdCbUFHUUFOUUJsQURNQU13QmtNQXdHQ2lzR0FRUUJnamQ3QXdFd0RBWUtLd1lCQkFHQ04zc0VBakFmQmdOVkhTTUVHREFXZ0JUeFJtakc4Y1B3S3kxOWkycmhzdm0tTmZ6UlFUQWRCZ05WSFNVRUZqQVVCZ2dyQmdFRkJRY0RBUVlJS3dZQkJRVUhBd0l3RFFZSktvWklodmNOQVFFTEJRQURnZ0VCQUcwV2J6TFBzbVNTTUk3YVRlMm5waXhta2RDbXdjZFpIR2Q0M3RVbkI4SktyTE5KRUZjQnNRbWJjSUgwYWRwblFOckRnUmtOQkJPVFo0czFMSUJsUlFhcFpwUHNSSXRBTVVndVZwR1ZSSDA4VDBpNDN3OXhycF9jbE5iQUpycmZSYm1Zcm9GMFdKS01KMG53VzJyUGp4ZGV2U1J5Z0dLX25FZnl3d0ZpLXAxUmhIbmtpRUdMNEduUDdQcFFjUnZBWU1kSDlMTzVNUlk3aUxiQm1vc0thdFNfZVd0U0pEMUN2emdsTnd5X3ZReng4MVZuazBDZ25kcVhjVnEtbG9HdTdSNFU3bWtRMk5OcUxicDQ0N1NUeGtwUC02TWR5djhKNGJkbmYxczN2RkJOcGd2SldLb2dXY05MbG84am5rYkVmNlJQTkdlMVc1bG1hN0p3TUtBY1B6WSZzPW1HTEFwUy1BT0JscGxFazNyalROYkNnRkM3cmVzZ210cVRKTTVpMkRid0lWQnY3dWNUcGpaVy1hLUlfamFmaEs5YnBMYTNfb3JxSzVoUkZKcW1BekVCcmtqeENHMnJrei1aUldTNWdSdWVKQXFYN3VWRklIRTloZ0VFU2psU25nWXlHX0lmOVJEc1BpX2JXYzJpeDZQMFJXUmhlS05BTGhVNmxTRW56YzlMRE5VUFFDMi05bEt3Wkl6aVVFTXdCWXdGM05vaC1rV3NaeFlSaGdjMDZOblNTaWN2cEcxN0hnS3UwTHpQdk13enM1Wlk1a2tveG92c2NrWElRM1lwaUJ5ZG4xRkprNXFzWDJHSlZBN1dycDFXM01kOVVCa0R6VDJ4M3J1dV9vVEk0TTFvZWg2ZktxZkExdF9xbGhKVXFTZjJ2S1pPNkNzRHRCMU5ORTNYMDFDdyZoPU5ZQzM2VkFTb1JpZG10T29TT1lHQl9kamxvU1JMbmRodGhpSkpBZDVtYWM=", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QUzIyODktV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2016-09-01&t=638932202068227348&c=MIIIpTCCBo2gAwIBAgITFgGsmnj73LBE7PaBtQABAayaeDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDMwHhcNMjUwNzE4MTIwNDI4WhcNMjYwMTE0MTIwNDI4WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKYwXiklImL5-WfPWj2FX3_Y-JxCd3XXEOuNXx5ggHubZZamujLTqEBSFsFYiH_9NCaqKTiATXu6fBpzW3ghgYhwr0PL071fQT15KnnNUFjd5hFXB7SYti9IwWu1lxSAz-De7HivujKdlsgcmfoV6upRQ0eva9e74EwLV9pCn4WQAhs-6T8p0CytQsi81qHMWybAbNvfom0ox78IEWdS_6g_d4Jl_I4ccYLMyRTOV2NioM96cRECWCZhbpLl1zwoYGSbU5H0MZaiCBjPlhXN40BqagpamZfP98sPYSBfreh6-iMGU5tNTRkh8RiJqzjhzIUpEv3PqLtWTyPUB8JS7aUCAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9BTTNQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAzKDEpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MB0GA1UdDgQWBBTxzPCXgPzIUiTz94us0y0CCMf8BzAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBRIo61gdWpv7GDzaVXRALEyV_xs5DAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggIBAAqNK9Ejzdnb9L4TyakCpJByRYVTN_6nCGbtUd2E2sELjuJGRGiRmujp_jqNyIofO_ghSaP_tqH-3WRTRUbnt5xM8aBYoYJSOgKgTsNrB6clspdhCCmzhJy6EQuOqfUDm3C7hDru1_bN3DwXt3VpDqfuYtM3MAabKg0oCYVWgFwnAKYmZLZMWMQh7k_hZxy1gOCQmE9U08tf_pU21aI0El6n5A5uG2FT0placwchheFmXAtoPjT7nU53HVmRissxUR_vRCDj_ZCFo3K3nZNXCQOKPAMc9-LC0prb9Slg6siKtSHB3iGjNQlT9-nbSnDgifI8zC1cvT8CdaNLOmUywRIB4wvRn1z123NuyfJaIz95igW9P189vBTJEZREF-MgJEboWKdlGNn6bbBtu0waqAmUU7WVLeZKdtUI6EEKF7wRGYuY_BhZx1ipyXnBHZpsufuH4AwgOO289QKmqg8QAy7HFD9c8H8fNCtR7sTZ4YNP2AhEaES0rkMSQUCNVEz42YEBi2GgrSpnI94SPdb3J3PkCMZ4OgFRjztLO7nrgbPtflhSOo_VOE0_7Y74km43WAMQPKL3-44vQrEQ61Hd_24IcFh_ChNXvUDqp39GzYlO3D0zlau4ozll8BeLUZrJwHTQWZS8XR-EifCl4MW5Y3Y1SxOLrIxnukCzQxL7aGmc&s=NGtEacAskPdUJNgps0hx5gTXXzv05n5EfWmESuxwi_W6wqvQPqJnNpB0CNQzGd1P6FRmq2J_JENdIxhijI2OUb_o3-MBaFgiU1g0xXOGN_Sq0jVDrx0BG7Z9NwF3Y70AZtP-uttYMEGVnGe4xzYiN6S5fn03wd-s7D_S2hE-1ePCt6w0u0bvYpwmutUHY5sklqi91QR8MguzSapJlfV6lM2QTGm8rbynCthDg67XjzCq87mcAIjkXWKcpq3dxVDs6VzSnK1iFzhrE4cjQUjlKSoog7MM936dKWPZ1FQ3hxdKoaP1pc65xXhw4lIRKmDOx6u9A1-rmhtn53eRAKpIAQ&h=r4fvXe3f9fNrHeTxEA8QDVo90K1bCT3JBwgOLp2XLEA", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVXpJeU9Ea3RWMFZUVkZWVE1pSXNJbXB2WWt4dlkyRjBhVzl1SWpvaWQyVnpkSFZ6TWlKOT9hcGktdmVyc2lvbj0yMDE2LTA5LTAxJnQ9NjM4OTMyMjAyMDY4MjI3MzQ4JmM9TUlJSXBUQ0NCbzJnQXdJQkFnSVRGZ0dzbW5qNzNMQkU3UGFCdFFBQkFheWFlREFOQmdrcWhraUc5dzBCQVFzRkFEQkVNUk13RVFZS0NaSW1pWlB5TEdRQkdSWURSMEpNTVJNd0VRWUtDWkltaVpQeUxHUUJHUllEUVUxRk1SZ3dGZ1lEVlFRREV3OUJUVVVnU1c1bWNtRWdRMEVnTURNd0hoY05NalV3TnpFNE1USXdOREk0V2hjTk1qWXdNVEUwTVRJd05ESTRXakJBTVQ0d1BBWURWUVFERXpWaGMzbHVZMjl3WlhKaGRHbHZibk5wWjI1cGJtZGpaWEowYVdacFkyRjBaUzV0WVc1aFoyVnRaVzUwTG1GNmRYSmxMbU52YlRDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBS1l3WGlrbEltTDUtV2ZQV2oyRlgzX1ktSnhDZDNYWEVPdU5YeDVnZ0h1YlpaYW11akxUcUVCU0ZzRllpSF85TkNhcUtUaUFUWHU2ZkJwelczZ2hnWWh3cjBQTDA3MWZRVDE1S25uTlVGamQ1aEZYQjdTWXRpOUl3V3UxbHhTQXotRGU3SGl2dWpLZGxzZ2NtZm9WNnVwUlEwZXZhOWU3NEV3TFY5cENuNFdRQWhzLTZUOHAwQ3l0UXNpODFxSE1XeWJBYk52Zm9tMG94NzhJRVdkU182Z19kNEpsX0k0Y2NZTE15UlRPVjJOaW9NOTZjUkVDV0NaaGJwTGwxendvWUdTYlU1SDBNWmFpQ0JqUGxoWE40MEJxYWdwYW1aZlA5OHNQWVNCZnJlaDYtaU1HVTV0TlRSa2g4UmlKcXpqaHpJVXBFdjNQcUx0V1R5UFVCOEpTN2FVQ0F3RUFBYU9DQkpJd2dnU09NQ2NHQ1NzR0FRUUJnamNWQ2dRYU1CZ3dDZ1lJS3dZQkJRVUhBd0V3Q2dZSUt3WUJCUVVIQXdJd1BRWUpLd1lCQkFHQ054VUhCREF3TGdZbUt3WUJCQUdDTnhVSWhwRGpEWVRWdEhpRThZcy1oWnZkRnM2ZEVvRmdoZm1SUzRXc21UUUNBV1FDQVFjd2dnSGFCZ2dyQmdFRkJRY0JBUVNDQWN3d2dnSElNR1lHQ0NzR0FRVUZCekFDaGxwb2RIUndPaTh2WTNKc0xtMXBZM0p2YzI5bWRDNWpiMjB2Y0d0cGFXNW1jbUV2UTJWeWRITXZRVTB6VUV0SlNVNVVRMEV3TVM1QlRVVXVSMEpNWDBGTlJTVXlNRWx1Wm5KaEpUSXdRMEVsTWpBd015Z3hLUzVqY25Rd1ZnWUlLd1lCQlFVSE1BS0dTbWgwZEhBNkx5OWpjbXd4TG1GdFpTNW5ZbXd2WVdsaEwwRk5NMUJMU1VsT1ZFTkJNREV1UVUxRkxrZENURjlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURNb01Ta3VZM0owTUZZR0NDc0dBUVVGQnpBQ2hrcG9kSFJ3T2k4dlkzSnNNaTVoYldVdVoySnNMMkZwWVM5QlRUTlFTMGxKVGxSRFFUQXhMa0ZOUlM1SFFreGZRVTFGSlRJd1NXNW1jbUVsTWpCRFFTVXlNREF6S0RFcExtTnlkREJXQmdnckJnRUZCUWN3QW9aS2FIUjBjRG92TDJOeWJETXVZVzFsTG1kaWJDOWhhV0V2UVUwelVFdEpTVTVVUTBFd01TNUJUVVV1UjBKTVgwRk5SU1V5TUVsdVpuSmhKVEl3UTBFbE1qQXdNeWd4S1M1amNuUXdWZ1lJS3dZQkJRVUhNQUtHU21oMGRIQTZMeTlqY213MExtRnRaUzVuWW13dllXbGhMMEZOTTFCTFNVbE9WRU5CTURFdVFVMUZMa2RDVEY5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKME1CMEdBMVVkRGdRV0JCVHh6UENYZ1B6SVVpVHo5NHVzMHkwQ0NNZjhCekFPQmdOVkhROEJBZjhFQkFNQ0JhQXdnZ0UxQmdOVkhSOEVnZ0VzTUlJQktEQ0NBU1NnZ2dFZ29JSUJISVpDYUhSMGNEb3ZMMk55YkM1dGFXTnliM052Wm5RdVkyOXRMM0JyYVdsdVpuSmhMME5TVEM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc2hqUm9kSFJ3T2k4dlkzSnNNUzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc2hqUm9kSFJ3T2k4dlkzSnNNaTVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc2hqUm9kSFJ3T2k4dlkzSnNNeTVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc2hqUm9kSFJ3T2k4dlkzSnNOQzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc01JR2RCZ05WSFNBRWdaVXdnWkl3REFZS0t3WUJCQUdDTjNzQkFUQm1CZ29yQmdFRUFZSTNld0lDTUZnd1ZnWUlLd1lCQlFVSEFnSXdTaDVJQURNQU13QmxBREFBTVFBNUFESUFNUUF0QURRQVpBQTJBRFFBTFFBMEFHWUFPQUJqQUMwQVlRQXdBRFVBTlFBdEFEVUFZZ0JrQUdFQVpnQm1BR1FBTlFCbEFETUFNd0JrTUF3R0Npc0dBUVFCZ2pkN0F3SXdEQVlLS3dZQkJBR0NOM3NFQWpBZkJnTlZIU01FR0RBV2dCUklvNjFnZFdwdjdHRHphVlhSQUxFeVZfeHM1REFkQmdOVkhTVUVGakFVQmdnckJnRUZCUWNEQVFZSUt3WUJCUVVIQXdJd0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dJQkFBcU5LOUVqemRuYjlMNFR5YWtDcEpCeVJZVlROXzZuQ0didFVkMkUyc0VManVKR1JHaVJtdWpwX2pxTnlJb2ZPX2doU2FQX3RxSC0zV1JUUlVibnQ1eE04YUJZb1lKU09nS2dUc05yQjZjbHNwZGhDQ216aEp5NkVRdU9xZlVEbTNDN2hEcnUxX2JOM0R3WHQzVnBEcWZ1WXRNM01BYWJLZzBvQ1lWV2dGd25BS1ltWkxaTVdNUWg3a19oWnh5MWdPQ1FtRTlVMDh0Zl9wVTIxYUkwRWw2bjVBNXVHMkZUMHBsYWN3Y2hoZUZtWEF0b1BqVDduVTUzSFZtUmlzc3hVUl92UkNEal9aQ0ZvM0szblpOWENRT0tQQU1jOS1MQzBwcmI5U2xnNnNpS3RTSEIzaUdqTlFsVDktbmJTbkRnaWZJOHpDMWN2VDhDZGFOTE9tVXl3UklCNHd2Um4xejEyM051eWZKYUl6OTVpZ1c5UDE4OXZCVEpFWlJFRi1NZ0pFYm9XS2RsR05uNmJiQnR1MHdhcUFtVVU3V1ZMZVpLZHRVSTZFRUtGN3dSR1l1WV9CaFp4MWlweVhuQkhacHN1ZnVINEF3Z09PMjg5UUttcWc4UUF5N0hGRDljOEg4Zk5DdFI3c1RaNFlOUDJBaEVhRVMwcmtNU1FVQ05WRXo0MllFQmkyR2dyU3BuSTk0U1BkYjNKM1BrQ01aNE9nRlJqenRMTzducmdiUHRmbGhTT29fVk9FMF83WTc0a200M1dBTVFQS0wzLTQ0dlFyRVE2MUhkXzI0SWNGaF9DaE5YdlVEcXAzOUd6WWxPM0QwemxhdTRvemxsOEJlTFVackp3SFRRV1pTOFhSLUVpZkNsNE1XNVkzWTFTeE9Mckl4bnVrQ3pReEw3YUdtYyZzPU5HdEVhY0Fza1BkVUpOZ3BzMGh4NWdUWFh6djA1bjVFZldtRVN1eHdpX1c2d3F2UVBxSm5OcEIwQ05RekdkMVA2RlJtcTJKX0pFTmRJeGhpakkyT1ViX28zLU1CYUZnaVUxZzB4WE9HTl9TcTBqVkRyeDBCRzdaOU53RjNZNzBBWnRQLXV0dFlNRUdWbkdlNHh6WWlONlM1Zm4wM3dkLXM3RF9TMmhFLTFlUEN0NncwdTBidllwd211dFVIWTVza2xxaTkxUVI4TWd1elNhcEpsZlY2bE0yUVRHbThyYnluQ3RoRGc2N1hqekNxODdtY0FJamtYV0tjcHEzZHhWRHM2VnpTbksxaUZ6aHJFNGNqUVVqbEtTb29nN01NOTM2ZEtXUFoxRlEzaHhkS29hUDFwYzY1eFhodzRsSVJLbURPeDZ1OUExLXJtaHRuNTNlUkFLcElBUSZoPXI0ZnZYZTNmOWZOckhlVHhFQThRRFZvOTBLMWJDVDNKQndnT0xwMlhMRUE=", "RequestMethod": "GET", "RequestHeaders": { "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.102" + "OSVersion/Microsoft.Windows.10.0.26100", + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.109" ] }, "RequestBody": "", @@ -1614,7 +1644,7 @@ "no-cache" ], "Location": [ - "https://management.azure.com/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QUzU2ODgtV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2016-09-01&t=638671296429004333&c=MIIHhzCCBm-gAwIBAgITHgVqhF9GOoUjuyqQWAAABWqEXzANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDYwHhcNMjQwOTIwMjMxMTQxWhcNMjUwMzE5MjMxMTQxWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKRtcYDBXS7zz5tRtvVyhrUAjudYhej1E2D3dp6XWuPdbVMbQZwMlye8vdT-kDhFD7T2mrdWqsoGnTGk0_xOHBfLGnW-0QRUqpeoTNIhu8vc2CfTUtm2t2s_-fzvFtRyhDA4mfCH1cz92EVj0vd3FD4ikW6bdOp1NkYFqUVBhKlbvJk6y-TbLFBLP5Zx4m0Ua-_P7aMzbgvOJgMOTC2jLs5w_lFDJWeP3IKUOiJmrfLpf4ey5Ov94oCE6YncDBSHJZKWcrSxDHgSz9AXrxarL4HLajGbF3MRvfkMN2gNXCoiJXBEqCLDnyQZ0BgXIvuK7vG8Rj0TyhJNj-QPr8taY6UCAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAyLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA2LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MB0GA1UdDgQWBBRKlJQpFyyZKSchkTlshetYOUX7xzAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBTxRmjG8cPwKy19i2rhsvm-NfzRQTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAG0WbzLPsmSSMI7aTe2npixmkdCmwcdZHGd43tUnB8JKrLNJEFcBsQmbcIH0adpnQNrDgRkNBBOTZ4s1LIBlRQapZpPsRItAMUguVpGVRH08T0i43w9xrp_clNbAJrrfRbmYroF0WJKMJ0nwW2rPjxdevSRygGK_nEfywwFi-p1RhHnkiEGL4GnP7PpQcRvAYMdH9LO5MRY7iLbBmosKatS_eWtSJD1CvzglNwy_vQzx81Vnk0CgndqXcVq-loGu7R4U7mkQ2NNqLbp447STxkpP-6Mdyv8J4bdnf1s3vFBNpgvJWKogWcNLlo8jnkbEf6RPNGe1W5lma7JwMKAcPzY&s=NclLC8g5dkw7wfQCQh5w_Tv3sCJY3RGyTfJMuk5Sy6g0NPlJdkLnUvtBMv4fqABO_bDD4rgQINNSI9ewSjThx8wWGc-Jnf_XYDdv0hbPO98t2tE0VJ6Ubf-uGpEcwLynZib2pQUhvGAgXX-Ae62jLvEiphNHAGAqGXL7tKjR9yqcVFR9O9MzzF7SZEmGf9XD30F6HPT9HIYjH5oeOdAE6KPeIEIBezZNyBMLBl0lk8WC5auqZ37xqDW3TldVDzpuPtebzPbByBkqFs8l3aDMsDBgoRBJwhATazA3c65KW1KcZrXHVgSqKEBAJbqWpnUt_AT3L8WcAlUhwRp_ORiSOQ&h=oCpKzBGgrSowBgMUVDkeLwml9UZr-AId3Jpm5hn87so" + "https://management.azure.com/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QUzIyODktV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2016-09-01&t=638932202219686891&c=MIIIpTCCBo2gAwIBAgITFgGsmnj73LBE7PaBtQABAayaeDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDMwHhcNMjUwNzE4MTIwNDI4WhcNMjYwMTE0MTIwNDI4WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKYwXiklImL5-WfPWj2FX3_Y-JxCd3XXEOuNXx5ggHubZZamujLTqEBSFsFYiH_9NCaqKTiATXu6fBpzW3ghgYhwr0PL071fQT15KnnNUFjd5hFXB7SYti9IwWu1lxSAz-De7HivujKdlsgcmfoV6upRQ0eva9e74EwLV9pCn4WQAhs-6T8p0CytQsi81qHMWybAbNvfom0ox78IEWdS_6g_d4Jl_I4ccYLMyRTOV2NioM96cRECWCZhbpLl1zwoYGSbU5H0MZaiCBjPlhXN40BqagpamZfP98sPYSBfreh6-iMGU5tNTRkh8RiJqzjhzIUpEv3PqLtWTyPUB8JS7aUCAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9BTTNQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAzKDEpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MB0GA1UdDgQWBBTxzPCXgPzIUiTz94us0y0CCMf8BzAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBRIo61gdWpv7GDzaVXRALEyV_xs5DAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggIBAAqNK9Ejzdnb9L4TyakCpJByRYVTN_6nCGbtUd2E2sELjuJGRGiRmujp_jqNyIofO_ghSaP_tqH-3WRTRUbnt5xM8aBYoYJSOgKgTsNrB6clspdhCCmzhJy6EQuOqfUDm3C7hDru1_bN3DwXt3VpDqfuYtM3MAabKg0oCYVWgFwnAKYmZLZMWMQh7k_hZxy1gOCQmE9U08tf_pU21aI0El6n5A5uG2FT0placwchheFmXAtoPjT7nU53HVmRissxUR_vRCDj_ZCFo3K3nZNXCQOKPAMc9-LC0prb9Slg6siKtSHB3iGjNQlT9-nbSnDgifI8zC1cvT8CdaNLOmUywRIB4wvRn1z123NuyfJaIz95igW9P189vBTJEZREF-MgJEboWKdlGNn6bbBtu0waqAmUU7WVLeZKdtUI6EEKF7wRGYuY_BhZx1ipyXnBHZpsufuH4AwgOO289QKmqg8QAy7HFD9c8H8fNCtR7sTZ4YNP2AhEaES0rkMSQUCNVEz42YEBi2GgrSpnI94SPdb3J3PkCMZ4OgFRjztLO7nrgbPtflhSOo_VOE0_7Y74km43WAMQPKL3-44vQrEQ61Hd_24IcFh_ChNXvUDqp39GzYlO3D0zlau4ozll8BeLUZrJwHTQWZS8XR-EifCl4MW5Y3Y1SxOLrIxnukCzQxL7aGmc&s=PY2ZE2dpekk1XjF596EF_26kWlCX1T-WdEgHyz-CKz4a5hNMhGvTSG0pP71ODxLyaP3nM4r7tCHGlrU9NnkrcjhHbDxIwLYQF1O3coHcM8dOkg3__jlTpPdZN_Ij2PvKSsKAI9yuBUEtvpjftomMgOD3bS_wBkugvba057i_Lru417G2NFob99pyvBi9lkgpKvgh3xuzVf9Nr5MfOTcN_0YWdj4u85Jpd_mLD2STos5T-LJacsTHOajoBWgtp9fgK9wMjHdfWZc_VkU3l2wy3uGaRz9VCt7kOzo-NQH3pvn136YrYH_r-8xYPLgqbMUcmFecxXbVqf0Ao9M_wY_ldA&h=8RgMviY0YYLF1SI4YvTs8vmRwDcxYkzbPal6ARUKQ3o" ], "Retry-After": [ "15" @@ -1626,13 +1656,13 @@ "16499" ], "x-ms-request-id": [ - "3ed62a2d-79b0-41f3-94b8-aa11aaaf2ba8" + "763ba18b-43b3-4652-96b5-9c4af656cb3f" ], "x-ms-correlation-request-id": [ - "3ed62a2d-79b0-41f3-94b8-aa11aaaf2ba8" + "763ba18b-43b3-4652-96b5-9c4af656cb3f" ], "x-ms-routing-request-id": [ - "EASTUS:20241113T212042Z:3ed62a2d-79b0-41f3-94b8-aa11aaaf2ba8" + "WESTUS2:20250911T204341Z:763ba18b-43b3-4652-96b5-9c4af656cb3f" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -1644,10 +1674,10 @@ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: AC3619606E9A4EE99321907D22977476 Ref B: MNZ221060618047 Ref C: 2024-11-13T21:20:42Z" + "Ref A: 7E5C38C5D62244C3A2C9A8A4588236FF Ref B: CO6AA3150219017 Ref C: 2025-09-11T20:43:41Z" ], "Date": [ - "Wed, 13 Nov 2024 21:20:42 GMT" + "Thu, 11 Sep 2025 20:43:41 GMT" ], "Expires": [ "-1" @@ -1660,15 +1690,15 @@ "StatusCode": 202 }, { - "RequestUri": "/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QUzU2ODgtV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2016-09-01&t=638671296429004333&c=MIIHhzCCBm-gAwIBAgITHgVqhF9GOoUjuyqQWAAABWqEXzANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDYwHhcNMjQwOTIwMjMxMTQxWhcNMjUwMzE5MjMxMTQxWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKRtcYDBXS7zz5tRtvVyhrUAjudYhej1E2D3dp6XWuPdbVMbQZwMlye8vdT-kDhFD7T2mrdWqsoGnTGk0_xOHBfLGnW-0QRUqpeoTNIhu8vc2CfTUtm2t2s_-fzvFtRyhDA4mfCH1cz92EVj0vd3FD4ikW6bdOp1NkYFqUVBhKlbvJk6y-TbLFBLP5Zx4m0Ua-_P7aMzbgvOJgMOTC2jLs5w_lFDJWeP3IKUOiJmrfLpf4ey5Ov94oCE6YncDBSHJZKWcrSxDHgSz9AXrxarL4HLajGbF3MRvfkMN2gNXCoiJXBEqCLDnyQZ0BgXIvuK7vG8Rj0TyhJNj-QPr8taY6UCAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAyLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA2LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MB0GA1UdDgQWBBRKlJQpFyyZKSchkTlshetYOUX7xzAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBTxRmjG8cPwKy19i2rhsvm-NfzRQTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAG0WbzLPsmSSMI7aTe2npixmkdCmwcdZHGd43tUnB8JKrLNJEFcBsQmbcIH0adpnQNrDgRkNBBOTZ4s1LIBlRQapZpPsRItAMUguVpGVRH08T0i43w9xrp_clNbAJrrfRbmYroF0WJKMJ0nwW2rPjxdevSRygGK_nEfywwFi-p1RhHnkiEGL4GnP7PpQcRvAYMdH9LO5MRY7iLbBmosKatS_eWtSJD1CvzglNwy_vQzx81Vnk0CgndqXcVq-loGu7R4U7mkQ2NNqLbp447STxkpP-6Mdyv8J4bdnf1s3vFBNpgvJWKogWcNLlo8jnkbEf6RPNGe1W5lma7JwMKAcPzY&s=NclLC8g5dkw7wfQCQh5w_Tv3sCJY3RGyTfJMuk5Sy6g0NPlJdkLnUvtBMv4fqABO_bDD4rgQINNSI9ewSjThx8wWGc-Jnf_XYDdv0hbPO98t2tE0VJ6Ubf-uGpEcwLynZib2pQUhvGAgXX-Ae62jLvEiphNHAGAqGXL7tKjR9yqcVFR9O9MzzF7SZEmGf9XD30F6HPT9HIYjH5oeOdAE6KPeIEIBezZNyBMLBl0lk8WC5auqZ37xqDW3TldVDzpuPtebzPbByBkqFs8l3aDMsDBgoRBJwhATazA3c65KW1KcZrXHVgSqKEBAJbqWpnUt_AT3L8WcAlUhwRp_ORiSOQ&h=oCpKzBGgrSowBgMUVDkeLwml9UZr-AId3Jpm5hn87so", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjFhYmQ2NzgtMThjNS00NjYwLTlmZGQtOGM1YmE2YjZmZTFmL29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVXpVMk9EZ3RWMFZUVkZWVE1pSXNJbXB2WWt4dlkyRjBhVzl1SWpvaWQyVnpkSFZ6TWlKOT9hcGktdmVyc2lvbj0yMDE2LTA5LTAxJnQ9NjM4NjcxMjk2NDI5MDA0MzMzJmM9TUlJSGh6Q0NCbS1nQXdJQkFnSVRIZ1ZxaEY5R09vVWp1eXFRV0FBQUJXcUVYekFOQmdrcWhraUc5dzBCQVFzRkFEQkVNUk13RVFZS0NaSW1pWlB5TEdRQkdSWURSMEpNTVJNd0VRWUtDWkltaVpQeUxHUUJHUllEUVUxRk1SZ3dGZ1lEVlFRREV3OUJUVVVnU1c1bWNtRWdRMEVnTURZd0hoY05NalF3T1RJd01qTXhNVFF4V2hjTk1qVXdNekU1TWpNeE1UUXhXakJBTVQ0d1BBWURWUVFERXpWaGMzbHVZMjl3WlhKaGRHbHZibk5wWjI1cGJtZGpaWEowYVdacFkyRjBaUzV0WVc1aFoyVnRaVzUwTG1GNmRYSmxMbU52YlRDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBS1J0Y1lEQlhTN3p6NXRSdHZWeWhyVUFqdWRZaGVqMUUyRDNkcDZYV3VQZGJWTWJRWndNbHllOHZkVC1rRGhGRDdUMm1yZFdxc29HblRHazBfeE9IQmZMR25XLTBRUlVxcGVvVE5JaHU4dmMyQ2ZUVXRtMnQyc18tZnp2RnRSeWhEQTRtZkNIMWN6OTJFVmowdmQzRkQ0aWtXNmJkT3AxTmtZRnFVVkJoS2xidkprNnktVGJMRkJMUDVaeDRtMFVhLV9QN2FNemJndk9KZ01PVEMyakxzNXdfbEZESldlUDNJS1VPaUptcmZMcGY0ZXk1T3Y5NG9DRTZZbmNEQlNISlpLV2NyU3hESGdTejlBWHJ4YXJMNEhMYWpHYkYzTVJ2ZmtNTjJnTlhDb2lKWEJFcUNMRG55UVowQmdYSXZ1Szd2RzhSajBUeWhKTmotUVByOHRhWTZVQ0F3RUFBYU9DQkhRd2dnUndNQ2NHQ1NzR0FRUUJnamNWQ2dRYU1CZ3dDZ1lJS3dZQkJRVUhBd0V3Q2dZSUt3WUJCUVVIQXdJd1BRWUpLd1lCQkFHQ054VUhCREF3TGdZbUt3WUJCQUdDTnhVSWhwRGpEWVRWdEhpRThZcy1oWnZkRnM2ZEVvRmdoZm1SUzRXc21UUUNBV1FDQVFjd2dnSExCZ2dyQmdFRkJRY0JBUVNDQWIwd2dnRzVNR01HQ0NzR0FRVUZCekFDaGxkb2RIUndPaTh2WTNKc0xtMXBZM0p2YzI5bWRDNWpiMjB2Y0d0cGFXNW1jbUV2UTJWeWRITXZRa3d5VUV0SlNVNVVRMEV3TWk1QlRVVXVSMEpNWDBGTlJTVXlNRWx1Wm5KaEpUSXdRMEVsTWpBd05pNWpjblF3VXdZSUt3WUJCUVVITUFLR1IyaDBkSEE2THk5amNtd3hMbUZ0WlM1blltd3ZZV2xoTDBKTU1sQkxTVWxPVkVOQk1ESXVRVTFGTGtkQ1RGOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFl1WTNKME1GTUdDQ3NHQVFVRkJ6QUNoa2RvZEhSd09pOHZZM0pzTWk1aGJXVXVaMkpzTDJGcFlTOUNUREpRUzBsSlRsUkRRVEF5TGtGTlJTNUhRa3hmUVUxRkpUSXdTVzVtY21FbE1qQkRRU1V5TURBMkxtTnlkREJUQmdnckJnRUZCUWN3QW9aSGFIUjBjRG92TDJOeWJETXVZVzFsTG1kaWJDOWhhV0V2UWt3eVVFdEpTVTVVUTBFd01pNUJUVVV1UjBKTVgwRk5SU1V5TUVsdVpuSmhKVEl3UTBFbE1qQXdOaTVqY25Rd1V3WUlLd1lCQlFVSE1BS0dSMmgwZEhBNkx5OWpjbXcwTG1GdFpTNW5ZbXd2WVdsaEwwSk1NbEJMU1VsT1ZFTkJNREl1UVUxRkxrZENURjlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURZdVkzSjBNQjBHQTFVZERnUVdCQlJLbEpRcEZ5eVpLU2Noa1Rsc2hldFlPVVg3eHpBT0JnTlZIUThCQWY4RUJBTUNCYUF3Z2dFbUJnTlZIUjhFZ2dFZE1JSUJHVENDQVJXZ2dnRVJvSUlCRFlZX2FIUjBjRG92TDJOeWJDNXRhV055YjNOdlpuUXVZMjl0TDNCcmFXbHVabkpoTDBOU1RDOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFl1WTNKc2hqRm9kSFJ3T2k4dlkzSnNNUzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01EWXVZM0pzaGpGb2RIUndPaTh2WTNKc01pNWhiV1V1WjJKc0wyTnliQzlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURZdVkzSnNoakZvZEhSd09pOHZZM0pzTXk1aGJXVXVaMkpzTDJOeWJDOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFl1WTNKc2hqRm9kSFJ3T2k4dlkzSnNOQzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01EWXVZM0pzTUlHZEJnTlZIU0FFZ1pVd2daSXdEQVlLS3dZQkJBR0NOM3NCQVRCbUJnb3JCZ0VFQVlJM2V3SUNNRmd3VmdZSUt3WUJCUVVIQWdJd1NoNUlBRE1BTXdCbEFEQUFNUUE1QURJQU1RQXRBRFFBWkFBMkFEUUFMUUEwQUdZQU9BQmpBQzBBWVFBd0FEVUFOUUF0QURVQVlnQmtBR0VBWmdCbUFHUUFOUUJsQURNQU13QmtNQXdHQ2lzR0FRUUJnamQ3QXdFd0RBWUtLd1lCQkFHQ04zc0VBakFmQmdOVkhTTUVHREFXZ0JUeFJtakc4Y1B3S3kxOWkycmhzdm0tTmZ6UlFUQWRCZ05WSFNVRUZqQVVCZ2dyQmdFRkJRY0RBUVlJS3dZQkJRVUhBd0l3RFFZSktvWklodmNOQVFFTEJRQURnZ0VCQUcwV2J6TFBzbVNTTUk3YVRlMm5waXhta2RDbXdjZFpIR2Q0M3RVbkI4SktyTE5KRUZjQnNRbWJjSUgwYWRwblFOckRnUmtOQkJPVFo0czFMSUJsUlFhcFpwUHNSSXRBTVVndVZwR1ZSSDA4VDBpNDN3OXhycF9jbE5iQUpycmZSYm1Zcm9GMFdKS01KMG53VzJyUGp4ZGV2U1J5Z0dLX25FZnl3d0ZpLXAxUmhIbmtpRUdMNEduUDdQcFFjUnZBWU1kSDlMTzVNUlk3aUxiQm1vc0thdFNfZVd0U0pEMUN2emdsTnd5X3ZReng4MVZuazBDZ25kcVhjVnEtbG9HdTdSNFU3bWtRMk5OcUxicDQ0N1NUeGtwUC02TWR5djhKNGJkbmYxczN2RkJOcGd2SldLb2dXY05MbG84am5rYkVmNlJQTkdlMVc1bG1hN0p3TUtBY1B6WSZzPU5jbExDOGc1ZGt3N3dmUUNRaDV3X1R2M3NDSlkzUkd5VGZKTXVrNVN5NmcwTlBsSmRrTG5VdnRCTXY0ZnFBQk9fYkRENHJnUUlOTlNJOWV3U2pUaHg4d1dHYy1KbmZfWFlEZHYwaGJQTzk4dDJ0RTBWSjZVYmYtdUdwRWN3THluWmliMnBRVWh2R0FnWFgtQWU2MmpMdkVpcGhOSEFHQXFHWEw3dEtqUjl5cWNWRlI5TzlNenpGN1NaRW1HZjlYRDMwRjZIUFQ5SElZakg1b2VPZEFFNktQZUlFSUJlelpOeUJNTEJsMGxrOFdDNWF1cVozN3hxRFczVGxkVkR6cHVQdGVielBiQnlCa3FGczhsM2FETXNEQmdvUkJKd2hBVGF6QTNjNjVLVzFLY1pyWEhWZ1NxS0VCQUpicVdwblV0X0FUM0w4V2NBbFVod1JwX09SaVNPUSZoPW9DcEt6QkdnclNvd0JnTVVWRGtlTHdtbDlVWnItQUlkM0pwbTVobjg3c28=", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QUzIyODktV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2016-09-01&t=638932202219686891&c=MIIIpTCCBo2gAwIBAgITFgGsmnj73LBE7PaBtQABAayaeDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDMwHhcNMjUwNzE4MTIwNDI4WhcNMjYwMTE0MTIwNDI4WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKYwXiklImL5-WfPWj2FX3_Y-JxCd3XXEOuNXx5ggHubZZamujLTqEBSFsFYiH_9NCaqKTiATXu6fBpzW3ghgYhwr0PL071fQT15KnnNUFjd5hFXB7SYti9IwWu1lxSAz-De7HivujKdlsgcmfoV6upRQ0eva9e74EwLV9pCn4WQAhs-6T8p0CytQsi81qHMWybAbNvfom0ox78IEWdS_6g_d4Jl_I4ccYLMyRTOV2NioM96cRECWCZhbpLl1zwoYGSbU5H0MZaiCBjPlhXN40BqagpamZfP98sPYSBfreh6-iMGU5tNTRkh8RiJqzjhzIUpEv3PqLtWTyPUB8JS7aUCAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9BTTNQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAzKDEpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MB0GA1UdDgQWBBTxzPCXgPzIUiTz94us0y0CCMf8BzAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBRIo61gdWpv7GDzaVXRALEyV_xs5DAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggIBAAqNK9Ejzdnb9L4TyakCpJByRYVTN_6nCGbtUd2E2sELjuJGRGiRmujp_jqNyIofO_ghSaP_tqH-3WRTRUbnt5xM8aBYoYJSOgKgTsNrB6clspdhCCmzhJy6EQuOqfUDm3C7hDru1_bN3DwXt3VpDqfuYtM3MAabKg0oCYVWgFwnAKYmZLZMWMQh7k_hZxy1gOCQmE9U08tf_pU21aI0El6n5A5uG2FT0placwchheFmXAtoPjT7nU53HVmRissxUR_vRCDj_ZCFo3K3nZNXCQOKPAMc9-LC0prb9Slg6siKtSHB3iGjNQlT9-nbSnDgifI8zC1cvT8CdaNLOmUywRIB4wvRn1z123NuyfJaIz95igW9P189vBTJEZREF-MgJEboWKdlGNn6bbBtu0waqAmUU7WVLeZKdtUI6EEKF7wRGYuY_BhZx1ipyXnBHZpsufuH4AwgOO289QKmqg8QAy7HFD9c8H8fNCtR7sTZ4YNP2AhEaES0rkMSQUCNVEz42YEBi2GgrSpnI94SPdb3J3PkCMZ4OgFRjztLO7nrgbPtflhSOo_VOE0_7Y74km43WAMQPKL3-44vQrEQ61Hd_24IcFh_ChNXvUDqp39GzYlO3D0zlau4ozll8BeLUZrJwHTQWZS8XR-EifCl4MW5Y3Y1SxOLrIxnukCzQxL7aGmc&s=PY2ZE2dpekk1XjF596EF_26kWlCX1T-WdEgHyz-CKz4a5hNMhGvTSG0pP71ODxLyaP3nM4r7tCHGlrU9NnkrcjhHbDxIwLYQF1O3coHcM8dOkg3__jlTpPdZN_Ij2PvKSsKAI9yuBUEtvpjftomMgOD3bS_wBkugvba057i_Lru417G2NFob99pyvBi9lkgpKvgh3xuzVf9Nr5MfOTcN_0YWdj4u85Jpd_mLD2STos5T-LJacsTHOajoBWgtp9fgK9wMjHdfWZc_VkU3l2wy3uGaRz9VCt7kOzo-NQH3pvn136YrYH_r-8xYPLgqbMUcmFecxXbVqf0Ao9M_wY_ldA&h=8RgMviY0YYLF1SI4YvTs8vmRwDcxYkzbPal6ARUKQ3o", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVXpJeU9Ea3RWMFZUVkZWVE1pSXNJbXB2WWt4dlkyRjBhVzl1SWpvaWQyVnpkSFZ6TWlKOT9hcGktdmVyc2lvbj0yMDE2LTA5LTAxJnQ9NjM4OTMyMjAyMjE5Njg2ODkxJmM9TUlJSXBUQ0NCbzJnQXdJQkFnSVRGZ0dzbW5qNzNMQkU3UGFCdFFBQkFheWFlREFOQmdrcWhraUc5dzBCQVFzRkFEQkVNUk13RVFZS0NaSW1pWlB5TEdRQkdSWURSMEpNTVJNd0VRWUtDWkltaVpQeUxHUUJHUllEUVUxRk1SZ3dGZ1lEVlFRREV3OUJUVVVnU1c1bWNtRWdRMEVnTURNd0hoY05NalV3TnpFNE1USXdOREk0V2hjTk1qWXdNVEUwTVRJd05ESTRXakJBTVQ0d1BBWURWUVFERXpWaGMzbHVZMjl3WlhKaGRHbHZibk5wWjI1cGJtZGpaWEowYVdacFkyRjBaUzV0WVc1aFoyVnRaVzUwTG1GNmRYSmxMbU52YlRDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBS1l3WGlrbEltTDUtV2ZQV2oyRlgzX1ktSnhDZDNYWEVPdU5YeDVnZ0h1YlpaYW11akxUcUVCU0ZzRllpSF85TkNhcUtUaUFUWHU2ZkJwelczZ2hnWWh3cjBQTDA3MWZRVDE1S25uTlVGamQ1aEZYQjdTWXRpOUl3V3UxbHhTQXotRGU3SGl2dWpLZGxzZ2NtZm9WNnVwUlEwZXZhOWU3NEV3TFY5cENuNFdRQWhzLTZUOHAwQ3l0UXNpODFxSE1XeWJBYk52Zm9tMG94NzhJRVdkU182Z19kNEpsX0k0Y2NZTE15UlRPVjJOaW9NOTZjUkVDV0NaaGJwTGwxendvWUdTYlU1SDBNWmFpQ0JqUGxoWE40MEJxYWdwYW1aZlA5OHNQWVNCZnJlaDYtaU1HVTV0TlRSa2g4UmlKcXpqaHpJVXBFdjNQcUx0V1R5UFVCOEpTN2FVQ0F3RUFBYU9DQkpJd2dnU09NQ2NHQ1NzR0FRUUJnamNWQ2dRYU1CZ3dDZ1lJS3dZQkJRVUhBd0V3Q2dZSUt3WUJCUVVIQXdJd1BRWUpLd1lCQkFHQ054VUhCREF3TGdZbUt3WUJCQUdDTnhVSWhwRGpEWVRWdEhpRThZcy1oWnZkRnM2ZEVvRmdoZm1SUzRXc21UUUNBV1FDQVFjd2dnSGFCZ2dyQmdFRkJRY0JBUVNDQWN3d2dnSElNR1lHQ0NzR0FRVUZCekFDaGxwb2RIUndPaTh2WTNKc0xtMXBZM0p2YzI5bWRDNWpiMjB2Y0d0cGFXNW1jbUV2UTJWeWRITXZRVTB6VUV0SlNVNVVRMEV3TVM1QlRVVXVSMEpNWDBGTlJTVXlNRWx1Wm5KaEpUSXdRMEVsTWpBd015Z3hLUzVqY25Rd1ZnWUlLd1lCQlFVSE1BS0dTbWgwZEhBNkx5OWpjbXd4TG1GdFpTNW5ZbXd2WVdsaEwwRk5NMUJMU1VsT1ZFTkJNREV1UVUxRkxrZENURjlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURNb01Ta3VZM0owTUZZR0NDc0dBUVVGQnpBQ2hrcG9kSFJ3T2k4dlkzSnNNaTVoYldVdVoySnNMMkZwWVM5QlRUTlFTMGxKVGxSRFFUQXhMa0ZOUlM1SFFreGZRVTFGSlRJd1NXNW1jbUVsTWpCRFFTVXlNREF6S0RFcExtTnlkREJXQmdnckJnRUZCUWN3QW9aS2FIUjBjRG92TDJOeWJETXVZVzFsTG1kaWJDOWhhV0V2UVUwelVFdEpTVTVVUTBFd01TNUJUVVV1UjBKTVgwRk5SU1V5TUVsdVpuSmhKVEl3UTBFbE1qQXdNeWd4S1M1amNuUXdWZ1lJS3dZQkJRVUhNQUtHU21oMGRIQTZMeTlqY213MExtRnRaUzVuWW13dllXbGhMMEZOTTFCTFNVbE9WRU5CTURFdVFVMUZMa2RDVEY5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKME1CMEdBMVVkRGdRV0JCVHh6UENYZ1B6SVVpVHo5NHVzMHkwQ0NNZjhCekFPQmdOVkhROEJBZjhFQkFNQ0JhQXdnZ0UxQmdOVkhSOEVnZ0VzTUlJQktEQ0NBU1NnZ2dFZ29JSUJISVpDYUhSMGNEb3ZMMk55YkM1dGFXTnliM052Wm5RdVkyOXRMM0JyYVdsdVpuSmhMME5TVEM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc2hqUm9kSFJ3T2k4dlkzSnNNUzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc2hqUm9kSFJ3T2k4dlkzSnNNaTVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc2hqUm9kSFJ3T2k4dlkzSnNNeTVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc2hqUm9kSFJ3T2k4dlkzSnNOQzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc01JR2RCZ05WSFNBRWdaVXdnWkl3REFZS0t3WUJCQUdDTjNzQkFUQm1CZ29yQmdFRUFZSTNld0lDTUZnd1ZnWUlLd1lCQlFVSEFnSXdTaDVJQURNQU13QmxBREFBTVFBNUFESUFNUUF0QURRQVpBQTJBRFFBTFFBMEFHWUFPQUJqQUMwQVlRQXdBRFVBTlFBdEFEVUFZZ0JrQUdFQVpnQm1BR1FBTlFCbEFETUFNd0JrTUF3R0Npc0dBUVFCZ2pkN0F3SXdEQVlLS3dZQkJBR0NOM3NFQWpBZkJnTlZIU01FR0RBV2dCUklvNjFnZFdwdjdHRHphVlhSQUxFeVZfeHM1REFkQmdOVkhTVUVGakFVQmdnckJnRUZCUWNEQVFZSUt3WUJCUVVIQXdJd0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dJQkFBcU5LOUVqemRuYjlMNFR5YWtDcEpCeVJZVlROXzZuQ0didFVkMkUyc0VManVKR1JHaVJtdWpwX2pxTnlJb2ZPX2doU2FQX3RxSC0zV1JUUlVibnQ1eE04YUJZb1lKU09nS2dUc05yQjZjbHNwZGhDQ216aEp5NkVRdU9xZlVEbTNDN2hEcnUxX2JOM0R3WHQzVnBEcWZ1WXRNM01BYWJLZzBvQ1lWV2dGd25BS1ltWkxaTVdNUWg3a19oWnh5MWdPQ1FtRTlVMDh0Zl9wVTIxYUkwRWw2bjVBNXVHMkZUMHBsYWN3Y2hoZUZtWEF0b1BqVDduVTUzSFZtUmlzc3hVUl92UkNEal9aQ0ZvM0szblpOWENRT0tQQU1jOS1MQzBwcmI5U2xnNnNpS3RTSEIzaUdqTlFsVDktbmJTbkRnaWZJOHpDMWN2VDhDZGFOTE9tVXl3UklCNHd2Um4xejEyM051eWZKYUl6OTVpZ1c5UDE4OXZCVEpFWlJFRi1NZ0pFYm9XS2RsR05uNmJiQnR1MHdhcUFtVVU3V1ZMZVpLZHRVSTZFRUtGN3dSR1l1WV9CaFp4MWlweVhuQkhacHN1ZnVINEF3Z09PMjg5UUttcWc4UUF5N0hGRDljOEg4Zk5DdFI3c1RaNFlOUDJBaEVhRVMwcmtNU1FVQ05WRXo0MllFQmkyR2dyU3BuSTk0U1BkYjNKM1BrQ01aNE9nRlJqenRMTzducmdiUHRmbGhTT29fVk9FMF83WTc0a200M1dBTVFQS0wzLTQ0dlFyRVE2MUhkXzI0SWNGaF9DaE5YdlVEcXAzOUd6WWxPM0QwemxhdTRvemxsOEJlTFVackp3SFRRV1pTOFhSLUVpZkNsNE1XNVkzWTFTeE9Mckl4bnVrQ3pReEw3YUdtYyZzPVBZMlpFMmRwZWtrMVhqRjU5NkVGXzI2a1dsQ1gxVC1XZEVnSHl6LUNLejRhNWhOTWhHdlRTRzBwUDcxT0R4THlhUDNuTTRyN3RDSEdsclU5Tm5rcmNqaEhiRHhJd0xZUUYxTzNjb0hjTThkT2tnM19famxUcFBkWk5fSWoyUHZLU3NLQUk5eXVCVUV0dnBqZnRvbU1nT0QzYlNfd0JrdWd2YmEwNTdpX0xydTQxN0cyTkZvYjk5cHl2Qmk5bGtncEt2Z2gzeHV6VmY5TnI1TWZPVGNOXzBZV2RqNHU4NUpwZF9tTEQyU1RvczVULUxKYWNzVEhPYWpvQldndHA5ZmdLOXdNakhkZldaY19Wa1UzbDJ3eTN1R2FSejlWQ3Q3a096by1OUUgzcHZuMTM2WXJZSF9yLTh4WVBMZ3FiTVVjbUZlY3hYYlZxZjBBbzlNX3dZX2xkQSZoPThSZ012aVkwWVlMRjFTSTRZdlRzOHZtUndEY3hZa3piUGFsNkFSVUtRM28=", "RequestMethod": "GET", "RequestHeaders": { "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.102" + "OSVersion/Microsoft.Windows.10.0.26100", + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.109" ] }, "RequestBody": "", @@ -1680,7 +1710,7 @@ "no-cache" ], "Location": [ - "https://management.azure.com/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QUzU2ODgtV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2016-09-01&t=638671296581836599&c=MIIHhzCCBm-gAwIBAgITHgVqhF9GOoUjuyqQWAAABWqEXzANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDYwHhcNMjQwOTIwMjMxMTQxWhcNMjUwMzE5MjMxMTQxWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKRtcYDBXS7zz5tRtvVyhrUAjudYhej1E2D3dp6XWuPdbVMbQZwMlye8vdT-kDhFD7T2mrdWqsoGnTGk0_xOHBfLGnW-0QRUqpeoTNIhu8vc2CfTUtm2t2s_-fzvFtRyhDA4mfCH1cz92EVj0vd3FD4ikW6bdOp1NkYFqUVBhKlbvJk6y-TbLFBLP5Zx4m0Ua-_P7aMzbgvOJgMOTC2jLs5w_lFDJWeP3IKUOiJmrfLpf4ey5Ov94oCE6YncDBSHJZKWcrSxDHgSz9AXrxarL4HLajGbF3MRvfkMN2gNXCoiJXBEqCLDnyQZ0BgXIvuK7vG8Rj0TyhJNj-QPr8taY6UCAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAyLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA2LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MB0GA1UdDgQWBBRKlJQpFyyZKSchkTlshetYOUX7xzAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBTxRmjG8cPwKy19i2rhsvm-NfzRQTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAG0WbzLPsmSSMI7aTe2npixmkdCmwcdZHGd43tUnB8JKrLNJEFcBsQmbcIH0adpnQNrDgRkNBBOTZ4s1LIBlRQapZpPsRItAMUguVpGVRH08T0i43w9xrp_clNbAJrrfRbmYroF0WJKMJ0nwW2rPjxdevSRygGK_nEfywwFi-p1RhHnkiEGL4GnP7PpQcRvAYMdH9LO5MRY7iLbBmosKatS_eWtSJD1CvzglNwy_vQzx81Vnk0CgndqXcVq-loGu7R4U7mkQ2NNqLbp447STxkpP-6Mdyv8J4bdnf1s3vFBNpgvJWKogWcNLlo8jnkbEf6RPNGe1W5lma7JwMKAcPzY&s=XZXwEWdCwvA81RCUcj2l68DKqJz634PqTfGwPOXmfz7jSWWBjo5MmgkG_jzuC2_UpwJjIldkgL7t9TVVxaeZPjeyjhB30T9QHRGyw262QrCsDlJQ8T5DuCgRzUJTaYYx0gu5ia_6hjABSqGBO7DhcJFFKZvf3-IEF-m1MeZCoEKVaPH9CUdjskLWUEJpcsZg2hQN4_YH8kv3OoODEOd5tr3lqPBnEZkEWcvmK3jOaOpkXstAw8E1pFCy2BpayHVHZjg0zM0hyLoZofE3U_5PSl-fxhXm__ZOxK-vshDuzXv2RCCURyyWwdPtc8uSQFzO-Zog6wZnD5ioLLl-i5vg2g&h=AOMxiQf_-FynHdE8cKfexrkIGL-f452sEi3VqufIfxk" + "https://management.azure.com/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QUzIyODktV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2016-09-01&t=638932202370359426&c=MIIIpTCCBo2gAwIBAgITFgGsmnj73LBE7PaBtQABAayaeDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDMwHhcNMjUwNzE4MTIwNDI4WhcNMjYwMTE0MTIwNDI4WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKYwXiklImL5-WfPWj2FX3_Y-JxCd3XXEOuNXx5ggHubZZamujLTqEBSFsFYiH_9NCaqKTiATXu6fBpzW3ghgYhwr0PL071fQT15KnnNUFjd5hFXB7SYti9IwWu1lxSAz-De7HivujKdlsgcmfoV6upRQ0eva9e74EwLV9pCn4WQAhs-6T8p0CytQsi81qHMWybAbNvfom0ox78IEWdS_6g_d4Jl_I4ccYLMyRTOV2NioM96cRECWCZhbpLl1zwoYGSbU5H0MZaiCBjPlhXN40BqagpamZfP98sPYSBfreh6-iMGU5tNTRkh8RiJqzjhzIUpEv3PqLtWTyPUB8JS7aUCAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9BTTNQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAzKDEpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MB0GA1UdDgQWBBTxzPCXgPzIUiTz94us0y0CCMf8BzAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBRIo61gdWpv7GDzaVXRALEyV_xs5DAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggIBAAqNK9Ejzdnb9L4TyakCpJByRYVTN_6nCGbtUd2E2sELjuJGRGiRmujp_jqNyIofO_ghSaP_tqH-3WRTRUbnt5xM8aBYoYJSOgKgTsNrB6clspdhCCmzhJy6EQuOqfUDm3C7hDru1_bN3DwXt3VpDqfuYtM3MAabKg0oCYVWgFwnAKYmZLZMWMQh7k_hZxy1gOCQmE9U08tf_pU21aI0El6n5A5uG2FT0placwchheFmXAtoPjT7nU53HVmRissxUR_vRCDj_ZCFo3K3nZNXCQOKPAMc9-LC0prb9Slg6siKtSHB3iGjNQlT9-nbSnDgifI8zC1cvT8CdaNLOmUywRIB4wvRn1z123NuyfJaIz95igW9P189vBTJEZREF-MgJEboWKdlGNn6bbBtu0waqAmUU7WVLeZKdtUI6EEKF7wRGYuY_BhZx1ipyXnBHZpsufuH4AwgOO289QKmqg8QAy7HFD9c8H8fNCtR7sTZ4YNP2AhEaES0rkMSQUCNVEz42YEBi2GgrSpnI94SPdb3J3PkCMZ4OgFRjztLO7nrgbPtflhSOo_VOE0_7Y74km43WAMQPKL3-44vQrEQ61Hd_24IcFh_ChNXvUDqp39GzYlO3D0zlau4ozll8BeLUZrJwHTQWZS8XR-EifCl4MW5Y3Y1SxOLrIxnukCzQxL7aGmc&s=IevvlSIBJZYjPTmlWzV9cNZe9QBI9U3Y3AKpHJAKBJa22_pxF17caXnVkPwCVgtgbHXSG_e34bCH6v6zPyP0O15fmr5fxTd4SHzstwQACSjxRZystwIaP7jjioUIqE8oOJZTVwVBgvNK-LjSOyuebtMG0oUfi9aPWi_Mimz6_O8ejY3RJpwRBfJlXPGZNUdJtZIyGJLALZ8mBnzXmJyJueoWGWqaqF62YxbUrH9A-u66QsQ8TQl55keHO0yyC-Ommnjj7_IXWDYUWNQF0Kx1LFF2_O7tNt4KVpy_o0PTqZbthzd37BCczBl2a9tMEeFgPPWm8tmPNNpTjI190qp_yw&h=ubS74hp7Zdwk_B6qPLbEK0ucDxWETpC3QVyPENcFyf0" ], "Retry-After": [ "15" @@ -1692,13 +1722,13 @@ "16499" ], "x-ms-request-id": [ - "7d0f4e40-debc-4124-b606-46ae1438087d" + "a7dffe4e-0f7a-4b6f-b66f-c1cff505115d" ], "x-ms-correlation-request-id": [ - "7d0f4e40-debc-4124-b606-46ae1438087d" + "a7dffe4e-0f7a-4b6f-b66f-c1cff505115d" ], "x-ms-routing-request-id": [ - "EASTUS:20241113T212058Z:7d0f4e40-debc-4124-b606-46ae1438087d" + "WESTUS2:20250911T204357Z:a7dffe4e-0f7a-4b6f-b66f-c1cff505115d" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -1710,10 +1740,10 @@ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: 1717D7A5B9E64C7691B7A51164CA8A79 Ref B: MNZ221060618047 Ref C: 2024-11-13T21:20:57Z" + "Ref A: E4CAB7E8FE274FBC9C360B9B7933FE70 Ref B: CO6AA3150219017 Ref C: 2025-09-11T20:43:57Z" ], "Date": [ - "Wed, 13 Nov 2024 21:20:57 GMT" + "Thu, 11 Sep 2025 20:43:56 GMT" ], "Expires": [ "-1" @@ -1726,15 +1756,15 @@ "StatusCode": 202 }, { - "RequestUri": "/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QUzU2ODgtV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2016-09-01&t=638671296581836599&c=MIIHhzCCBm-gAwIBAgITHgVqhF9GOoUjuyqQWAAABWqEXzANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDYwHhcNMjQwOTIwMjMxMTQxWhcNMjUwMzE5MjMxMTQxWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKRtcYDBXS7zz5tRtvVyhrUAjudYhej1E2D3dp6XWuPdbVMbQZwMlye8vdT-kDhFD7T2mrdWqsoGnTGk0_xOHBfLGnW-0QRUqpeoTNIhu8vc2CfTUtm2t2s_-fzvFtRyhDA4mfCH1cz92EVj0vd3FD4ikW6bdOp1NkYFqUVBhKlbvJk6y-TbLFBLP5Zx4m0Ua-_P7aMzbgvOJgMOTC2jLs5w_lFDJWeP3IKUOiJmrfLpf4ey5Ov94oCE6YncDBSHJZKWcrSxDHgSz9AXrxarL4HLajGbF3MRvfkMN2gNXCoiJXBEqCLDnyQZ0BgXIvuK7vG8Rj0TyhJNj-QPr8taY6UCAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAyLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA2LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MB0GA1UdDgQWBBRKlJQpFyyZKSchkTlshetYOUX7xzAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBTxRmjG8cPwKy19i2rhsvm-NfzRQTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAG0WbzLPsmSSMI7aTe2npixmkdCmwcdZHGd43tUnB8JKrLNJEFcBsQmbcIH0adpnQNrDgRkNBBOTZ4s1LIBlRQapZpPsRItAMUguVpGVRH08T0i43w9xrp_clNbAJrrfRbmYroF0WJKMJ0nwW2rPjxdevSRygGK_nEfywwFi-p1RhHnkiEGL4GnP7PpQcRvAYMdH9LO5MRY7iLbBmosKatS_eWtSJD1CvzglNwy_vQzx81Vnk0CgndqXcVq-loGu7R4U7mkQ2NNqLbp447STxkpP-6Mdyv8J4bdnf1s3vFBNpgvJWKogWcNLlo8jnkbEf6RPNGe1W5lma7JwMKAcPzY&s=XZXwEWdCwvA81RCUcj2l68DKqJz634PqTfGwPOXmfz7jSWWBjo5MmgkG_jzuC2_UpwJjIldkgL7t9TVVxaeZPjeyjhB30T9QHRGyw262QrCsDlJQ8T5DuCgRzUJTaYYx0gu5ia_6hjABSqGBO7DhcJFFKZvf3-IEF-m1MeZCoEKVaPH9CUdjskLWUEJpcsZg2hQN4_YH8kv3OoODEOd5tr3lqPBnEZkEWcvmK3jOaOpkXstAw8E1pFCy2BpayHVHZjg0zM0hyLoZofE3U_5PSl-fxhXm__ZOxK-vshDuzXv2RCCURyyWwdPtc8uSQFzO-Zog6wZnD5ioLLl-i5vg2g&h=AOMxiQf_-FynHdE8cKfexrkIGL-f452sEi3VqufIfxk", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjFhYmQ2NzgtMThjNS00NjYwLTlmZGQtOGM1YmE2YjZmZTFmL29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVXpVMk9EZ3RWMFZUVkZWVE1pSXNJbXB2WWt4dlkyRjBhVzl1SWpvaWQyVnpkSFZ6TWlKOT9hcGktdmVyc2lvbj0yMDE2LTA5LTAxJnQ9NjM4NjcxMjk2NTgxODM2NTk5JmM9TUlJSGh6Q0NCbS1nQXdJQkFnSVRIZ1ZxaEY5R09vVWp1eXFRV0FBQUJXcUVYekFOQmdrcWhraUc5dzBCQVFzRkFEQkVNUk13RVFZS0NaSW1pWlB5TEdRQkdSWURSMEpNTVJNd0VRWUtDWkltaVpQeUxHUUJHUllEUVUxRk1SZ3dGZ1lEVlFRREV3OUJUVVVnU1c1bWNtRWdRMEVnTURZd0hoY05NalF3T1RJd01qTXhNVFF4V2hjTk1qVXdNekU1TWpNeE1UUXhXakJBTVQ0d1BBWURWUVFERXpWaGMzbHVZMjl3WlhKaGRHbHZibk5wWjI1cGJtZGpaWEowYVdacFkyRjBaUzV0WVc1aFoyVnRaVzUwTG1GNmRYSmxMbU52YlRDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBS1J0Y1lEQlhTN3p6NXRSdHZWeWhyVUFqdWRZaGVqMUUyRDNkcDZYV3VQZGJWTWJRWndNbHllOHZkVC1rRGhGRDdUMm1yZFdxc29HblRHazBfeE9IQmZMR25XLTBRUlVxcGVvVE5JaHU4dmMyQ2ZUVXRtMnQyc18tZnp2RnRSeWhEQTRtZkNIMWN6OTJFVmowdmQzRkQ0aWtXNmJkT3AxTmtZRnFVVkJoS2xidkprNnktVGJMRkJMUDVaeDRtMFVhLV9QN2FNemJndk9KZ01PVEMyakxzNXdfbEZESldlUDNJS1VPaUptcmZMcGY0ZXk1T3Y5NG9DRTZZbmNEQlNISlpLV2NyU3hESGdTejlBWHJ4YXJMNEhMYWpHYkYzTVJ2ZmtNTjJnTlhDb2lKWEJFcUNMRG55UVowQmdYSXZ1Szd2RzhSajBUeWhKTmotUVByOHRhWTZVQ0F3RUFBYU9DQkhRd2dnUndNQ2NHQ1NzR0FRUUJnamNWQ2dRYU1CZ3dDZ1lJS3dZQkJRVUhBd0V3Q2dZSUt3WUJCUVVIQXdJd1BRWUpLd1lCQkFHQ054VUhCREF3TGdZbUt3WUJCQUdDTnhVSWhwRGpEWVRWdEhpRThZcy1oWnZkRnM2ZEVvRmdoZm1SUzRXc21UUUNBV1FDQVFjd2dnSExCZ2dyQmdFRkJRY0JBUVNDQWIwd2dnRzVNR01HQ0NzR0FRVUZCekFDaGxkb2RIUndPaTh2WTNKc0xtMXBZM0p2YzI5bWRDNWpiMjB2Y0d0cGFXNW1jbUV2UTJWeWRITXZRa3d5VUV0SlNVNVVRMEV3TWk1QlRVVXVSMEpNWDBGTlJTVXlNRWx1Wm5KaEpUSXdRMEVsTWpBd05pNWpjblF3VXdZSUt3WUJCUVVITUFLR1IyaDBkSEE2THk5amNtd3hMbUZ0WlM1blltd3ZZV2xoTDBKTU1sQkxTVWxPVkVOQk1ESXVRVTFGTGtkQ1RGOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFl1WTNKME1GTUdDQ3NHQVFVRkJ6QUNoa2RvZEhSd09pOHZZM0pzTWk1aGJXVXVaMkpzTDJGcFlTOUNUREpRUzBsSlRsUkRRVEF5TGtGTlJTNUhRa3hmUVUxRkpUSXdTVzVtY21FbE1qQkRRU1V5TURBMkxtTnlkREJUQmdnckJnRUZCUWN3QW9aSGFIUjBjRG92TDJOeWJETXVZVzFsTG1kaWJDOWhhV0V2UWt3eVVFdEpTVTVVUTBFd01pNUJUVVV1UjBKTVgwRk5SU1V5TUVsdVpuSmhKVEl3UTBFbE1qQXdOaTVqY25Rd1V3WUlLd1lCQlFVSE1BS0dSMmgwZEhBNkx5OWpjbXcwTG1GdFpTNW5ZbXd2WVdsaEwwSk1NbEJMU1VsT1ZFTkJNREl1UVUxRkxrZENURjlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURZdVkzSjBNQjBHQTFVZERnUVdCQlJLbEpRcEZ5eVpLU2Noa1Rsc2hldFlPVVg3eHpBT0JnTlZIUThCQWY4RUJBTUNCYUF3Z2dFbUJnTlZIUjhFZ2dFZE1JSUJHVENDQVJXZ2dnRVJvSUlCRFlZX2FIUjBjRG92TDJOeWJDNXRhV055YjNOdlpuUXVZMjl0TDNCcmFXbHVabkpoTDBOU1RDOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFl1WTNKc2hqRm9kSFJ3T2k4dlkzSnNNUzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01EWXVZM0pzaGpGb2RIUndPaTh2WTNKc01pNWhiV1V1WjJKc0wyTnliQzlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURZdVkzSnNoakZvZEhSd09pOHZZM0pzTXk1aGJXVXVaMkpzTDJOeWJDOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFl1WTNKc2hqRm9kSFJ3T2k4dlkzSnNOQzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01EWXVZM0pzTUlHZEJnTlZIU0FFZ1pVd2daSXdEQVlLS3dZQkJBR0NOM3NCQVRCbUJnb3JCZ0VFQVlJM2V3SUNNRmd3VmdZSUt3WUJCUVVIQWdJd1NoNUlBRE1BTXdCbEFEQUFNUUE1QURJQU1RQXRBRFFBWkFBMkFEUUFMUUEwQUdZQU9BQmpBQzBBWVFBd0FEVUFOUUF0QURVQVlnQmtBR0VBWmdCbUFHUUFOUUJsQURNQU13QmtNQXdHQ2lzR0FRUUJnamQ3QXdFd0RBWUtLd1lCQkFHQ04zc0VBakFmQmdOVkhTTUVHREFXZ0JUeFJtakc4Y1B3S3kxOWkycmhzdm0tTmZ6UlFUQWRCZ05WSFNVRUZqQVVCZ2dyQmdFRkJRY0RBUVlJS3dZQkJRVUhBd0l3RFFZSktvWklodmNOQVFFTEJRQURnZ0VCQUcwV2J6TFBzbVNTTUk3YVRlMm5waXhta2RDbXdjZFpIR2Q0M3RVbkI4SktyTE5KRUZjQnNRbWJjSUgwYWRwblFOckRnUmtOQkJPVFo0czFMSUJsUlFhcFpwUHNSSXRBTVVndVZwR1ZSSDA4VDBpNDN3OXhycF9jbE5iQUpycmZSYm1Zcm9GMFdKS01KMG53VzJyUGp4ZGV2U1J5Z0dLX25FZnl3d0ZpLXAxUmhIbmtpRUdMNEduUDdQcFFjUnZBWU1kSDlMTzVNUlk3aUxiQm1vc0thdFNfZVd0U0pEMUN2emdsTnd5X3ZReng4MVZuazBDZ25kcVhjVnEtbG9HdTdSNFU3bWtRMk5OcUxicDQ0N1NUeGtwUC02TWR5djhKNGJkbmYxczN2RkJOcGd2SldLb2dXY05MbG84am5rYkVmNlJQTkdlMVc1bG1hN0p3TUtBY1B6WSZzPVhaWHdFV2RDd3ZBODFSQ1VjajJsNjhES3FKejYzNFBxVGZHd1BPWG1mejdqU1dXQmpvNU1tZ2tHX2p6dUMyX1Vwd0pqSWxka2dMN3Q5VFZWeGFlWlBqZXlqaEIzMFQ5UUhSR3l3MjYyUXJDc0RsSlE4VDVEdUNnUnpVSlRhWVl4MGd1NWlhXzZoakFCU3FHQk83RGhjSkZGS1p2ZjMtSUVGLW0xTWVaQ29FS1ZhUEg5Q1VkanNrTFdVRUpwY3NaZzJoUU40X1lIOGt2M09vT0RFT2Q1dHIzbHFQQm5FWmtFV2N2bUszak9hT3BrWHN0QXc4RTFwRkN5MkJwYXlIVkhaamcwek0waHlMb1pvZkUzVV81UFNsLWZ4aFhtX19aT3hLLXZzaER1elh2MlJDQ1VSeXlXd2RQdGM4dVNRRnpPLVpvZzZ3Wm5ENWlvTExsLWk1dmcyZyZoPUFPTXhpUWZfLUZ5bkhkRThjS2ZleHJrSUdMLWY0NTJzRWkzVnF1ZklmeGs=", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QUzIyODktV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2016-09-01&t=638932202370359426&c=MIIIpTCCBo2gAwIBAgITFgGsmnj73LBE7PaBtQABAayaeDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDMwHhcNMjUwNzE4MTIwNDI4WhcNMjYwMTE0MTIwNDI4WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKYwXiklImL5-WfPWj2FX3_Y-JxCd3XXEOuNXx5ggHubZZamujLTqEBSFsFYiH_9NCaqKTiATXu6fBpzW3ghgYhwr0PL071fQT15KnnNUFjd5hFXB7SYti9IwWu1lxSAz-De7HivujKdlsgcmfoV6upRQ0eva9e74EwLV9pCn4WQAhs-6T8p0CytQsi81qHMWybAbNvfom0ox78IEWdS_6g_d4Jl_I4ccYLMyRTOV2NioM96cRECWCZhbpLl1zwoYGSbU5H0MZaiCBjPlhXN40BqagpamZfP98sPYSBfreh6-iMGU5tNTRkh8RiJqzjhzIUpEv3PqLtWTyPUB8JS7aUCAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9BTTNQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAzKDEpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MB0GA1UdDgQWBBTxzPCXgPzIUiTz94us0y0CCMf8BzAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBRIo61gdWpv7GDzaVXRALEyV_xs5DAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggIBAAqNK9Ejzdnb9L4TyakCpJByRYVTN_6nCGbtUd2E2sELjuJGRGiRmujp_jqNyIofO_ghSaP_tqH-3WRTRUbnt5xM8aBYoYJSOgKgTsNrB6clspdhCCmzhJy6EQuOqfUDm3C7hDru1_bN3DwXt3VpDqfuYtM3MAabKg0oCYVWgFwnAKYmZLZMWMQh7k_hZxy1gOCQmE9U08tf_pU21aI0El6n5A5uG2FT0placwchheFmXAtoPjT7nU53HVmRissxUR_vRCDj_ZCFo3K3nZNXCQOKPAMc9-LC0prb9Slg6siKtSHB3iGjNQlT9-nbSnDgifI8zC1cvT8CdaNLOmUywRIB4wvRn1z123NuyfJaIz95igW9P189vBTJEZREF-MgJEboWKdlGNn6bbBtu0waqAmUU7WVLeZKdtUI6EEKF7wRGYuY_BhZx1ipyXnBHZpsufuH4AwgOO289QKmqg8QAy7HFD9c8H8fNCtR7sTZ4YNP2AhEaES0rkMSQUCNVEz42YEBi2GgrSpnI94SPdb3J3PkCMZ4OgFRjztLO7nrgbPtflhSOo_VOE0_7Y74km43WAMQPKL3-44vQrEQ61Hd_24IcFh_ChNXvUDqp39GzYlO3D0zlau4ozll8BeLUZrJwHTQWZS8XR-EifCl4MW5Y3Y1SxOLrIxnukCzQxL7aGmc&s=IevvlSIBJZYjPTmlWzV9cNZe9QBI9U3Y3AKpHJAKBJa22_pxF17caXnVkPwCVgtgbHXSG_e34bCH6v6zPyP0O15fmr5fxTd4SHzstwQACSjxRZystwIaP7jjioUIqE8oOJZTVwVBgvNK-LjSOyuebtMG0oUfi9aPWi_Mimz6_O8ejY3RJpwRBfJlXPGZNUdJtZIyGJLALZ8mBnzXmJyJueoWGWqaqF62YxbUrH9A-u66QsQ8TQl55keHO0yyC-Ommnjj7_IXWDYUWNQF0Kx1LFF2_O7tNt4KVpy_o0PTqZbthzd37BCczBl2a9tMEeFgPPWm8tmPNNpTjI190qp_yw&h=ubS74hp7Zdwk_B6qPLbEK0ucDxWETpC3QVyPENcFyf0", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVXpJeU9Ea3RWMFZUVkZWVE1pSXNJbXB2WWt4dlkyRjBhVzl1SWpvaWQyVnpkSFZ6TWlKOT9hcGktdmVyc2lvbj0yMDE2LTA5LTAxJnQ9NjM4OTMyMjAyMzcwMzU5NDI2JmM9TUlJSXBUQ0NCbzJnQXdJQkFnSVRGZ0dzbW5qNzNMQkU3UGFCdFFBQkFheWFlREFOQmdrcWhraUc5dzBCQVFzRkFEQkVNUk13RVFZS0NaSW1pWlB5TEdRQkdSWURSMEpNTVJNd0VRWUtDWkltaVpQeUxHUUJHUllEUVUxRk1SZ3dGZ1lEVlFRREV3OUJUVVVnU1c1bWNtRWdRMEVnTURNd0hoY05NalV3TnpFNE1USXdOREk0V2hjTk1qWXdNVEUwTVRJd05ESTRXakJBTVQ0d1BBWURWUVFERXpWaGMzbHVZMjl3WlhKaGRHbHZibk5wWjI1cGJtZGpaWEowYVdacFkyRjBaUzV0WVc1aFoyVnRaVzUwTG1GNmRYSmxMbU52YlRDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBS1l3WGlrbEltTDUtV2ZQV2oyRlgzX1ktSnhDZDNYWEVPdU5YeDVnZ0h1YlpaYW11akxUcUVCU0ZzRllpSF85TkNhcUtUaUFUWHU2ZkJwelczZ2hnWWh3cjBQTDA3MWZRVDE1S25uTlVGamQ1aEZYQjdTWXRpOUl3V3UxbHhTQXotRGU3SGl2dWpLZGxzZ2NtZm9WNnVwUlEwZXZhOWU3NEV3TFY5cENuNFdRQWhzLTZUOHAwQ3l0UXNpODFxSE1XeWJBYk52Zm9tMG94NzhJRVdkU182Z19kNEpsX0k0Y2NZTE15UlRPVjJOaW9NOTZjUkVDV0NaaGJwTGwxendvWUdTYlU1SDBNWmFpQ0JqUGxoWE40MEJxYWdwYW1aZlA5OHNQWVNCZnJlaDYtaU1HVTV0TlRSa2g4UmlKcXpqaHpJVXBFdjNQcUx0V1R5UFVCOEpTN2FVQ0F3RUFBYU9DQkpJd2dnU09NQ2NHQ1NzR0FRUUJnamNWQ2dRYU1CZ3dDZ1lJS3dZQkJRVUhBd0V3Q2dZSUt3WUJCUVVIQXdJd1BRWUpLd1lCQkFHQ054VUhCREF3TGdZbUt3WUJCQUdDTnhVSWhwRGpEWVRWdEhpRThZcy1oWnZkRnM2ZEVvRmdoZm1SUzRXc21UUUNBV1FDQVFjd2dnSGFCZ2dyQmdFRkJRY0JBUVNDQWN3d2dnSElNR1lHQ0NzR0FRVUZCekFDaGxwb2RIUndPaTh2WTNKc0xtMXBZM0p2YzI5bWRDNWpiMjB2Y0d0cGFXNW1jbUV2UTJWeWRITXZRVTB6VUV0SlNVNVVRMEV3TVM1QlRVVXVSMEpNWDBGTlJTVXlNRWx1Wm5KaEpUSXdRMEVsTWpBd015Z3hLUzVqY25Rd1ZnWUlLd1lCQlFVSE1BS0dTbWgwZEhBNkx5OWpjbXd4TG1GdFpTNW5ZbXd2WVdsaEwwRk5NMUJMU1VsT1ZFTkJNREV1UVUxRkxrZENURjlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURNb01Ta3VZM0owTUZZR0NDc0dBUVVGQnpBQ2hrcG9kSFJ3T2k4dlkzSnNNaTVoYldVdVoySnNMMkZwWVM5QlRUTlFTMGxKVGxSRFFUQXhMa0ZOUlM1SFFreGZRVTFGSlRJd1NXNW1jbUVsTWpCRFFTVXlNREF6S0RFcExtTnlkREJXQmdnckJnRUZCUWN3QW9aS2FIUjBjRG92TDJOeWJETXVZVzFsTG1kaWJDOWhhV0V2UVUwelVFdEpTVTVVUTBFd01TNUJUVVV1UjBKTVgwRk5SU1V5TUVsdVpuSmhKVEl3UTBFbE1qQXdNeWd4S1M1amNuUXdWZ1lJS3dZQkJRVUhNQUtHU21oMGRIQTZMeTlqY213MExtRnRaUzVuWW13dllXbGhMMEZOTTFCTFNVbE9WRU5CTURFdVFVMUZMa2RDVEY5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKME1CMEdBMVVkRGdRV0JCVHh6UENYZ1B6SVVpVHo5NHVzMHkwQ0NNZjhCekFPQmdOVkhROEJBZjhFQkFNQ0JhQXdnZ0UxQmdOVkhSOEVnZ0VzTUlJQktEQ0NBU1NnZ2dFZ29JSUJISVpDYUhSMGNEb3ZMMk55YkM1dGFXTnliM052Wm5RdVkyOXRMM0JyYVdsdVpuSmhMME5TVEM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc2hqUm9kSFJ3T2k4dlkzSnNNUzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc2hqUm9kSFJ3T2k4dlkzSnNNaTVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc2hqUm9kSFJ3T2k4dlkzSnNNeTVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc2hqUm9kSFJ3T2k4dlkzSnNOQzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc01JR2RCZ05WSFNBRWdaVXdnWkl3REFZS0t3WUJCQUdDTjNzQkFUQm1CZ29yQmdFRUFZSTNld0lDTUZnd1ZnWUlLd1lCQlFVSEFnSXdTaDVJQURNQU13QmxBREFBTVFBNUFESUFNUUF0QURRQVpBQTJBRFFBTFFBMEFHWUFPQUJqQUMwQVlRQXdBRFVBTlFBdEFEVUFZZ0JrQUdFQVpnQm1BR1FBTlFCbEFETUFNd0JrTUF3R0Npc0dBUVFCZ2pkN0F3SXdEQVlLS3dZQkJBR0NOM3NFQWpBZkJnTlZIU01FR0RBV2dCUklvNjFnZFdwdjdHRHphVlhSQUxFeVZfeHM1REFkQmdOVkhTVUVGakFVQmdnckJnRUZCUWNEQVFZSUt3WUJCUVVIQXdJd0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dJQkFBcU5LOUVqemRuYjlMNFR5YWtDcEpCeVJZVlROXzZuQ0didFVkMkUyc0VManVKR1JHaVJtdWpwX2pxTnlJb2ZPX2doU2FQX3RxSC0zV1JUUlVibnQ1eE04YUJZb1lKU09nS2dUc05yQjZjbHNwZGhDQ216aEp5NkVRdU9xZlVEbTNDN2hEcnUxX2JOM0R3WHQzVnBEcWZ1WXRNM01BYWJLZzBvQ1lWV2dGd25BS1ltWkxaTVdNUWg3a19oWnh5MWdPQ1FtRTlVMDh0Zl9wVTIxYUkwRWw2bjVBNXVHMkZUMHBsYWN3Y2hoZUZtWEF0b1BqVDduVTUzSFZtUmlzc3hVUl92UkNEal9aQ0ZvM0szblpOWENRT0tQQU1jOS1MQzBwcmI5U2xnNnNpS3RTSEIzaUdqTlFsVDktbmJTbkRnaWZJOHpDMWN2VDhDZGFOTE9tVXl3UklCNHd2Um4xejEyM051eWZKYUl6OTVpZ1c5UDE4OXZCVEpFWlJFRi1NZ0pFYm9XS2RsR05uNmJiQnR1MHdhcUFtVVU3V1ZMZVpLZHRVSTZFRUtGN3dSR1l1WV9CaFp4MWlweVhuQkhacHN1ZnVINEF3Z09PMjg5UUttcWc4UUF5N0hGRDljOEg4Zk5DdFI3c1RaNFlOUDJBaEVhRVMwcmtNU1FVQ05WRXo0MllFQmkyR2dyU3BuSTk0U1BkYjNKM1BrQ01aNE9nRlJqenRMTzducmdiUHRmbGhTT29fVk9FMF83WTc0a200M1dBTVFQS0wzLTQ0dlFyRVE2MUhkXzI0SWNGaF9DaE5YdlVEcXAzOUd6WWxPM0QwemxhdTRvemxsOEJlTFVackp3SFRRV1pTOFhSLUVpZkNsNE1XNVkzWTFTeE9Mckl4bnVrQ3pReEw3YUdtYyZzPUlldnZsU0lCSlpZalBUbWxXelY5Y05aZTlRQkk5VTNZM0FLcEhKQUtCSmEyMl9weEYxN2NhWG5Wa1B3Q1ZndGdiSFhTR19lMzRiQ0g2djZ6UHlQME8xNWZtcjVmeFRkNFNIenN0d1FBQ1NqeFJaeXN0d0lhUDdqamlvVUlxRThvT0paVFZ3VkJndk5LLUxqU095dWVidE1HMG9VZmk5YVBXaV9NaW16Nl9POGVqWTNSSnB3UkJmSmxYUEdaTlVkSnRaSXlHSkxBTFo4bUJuelhtSnlKdWVvV0dXcWFxRjYyWXhiVXJIOUEtdTY2UXNROFRRbDU1a2VITzB5eUMtT21tbmpqN19JWFdEWVVXTlFGMEt4MUxGRjJfTzd0TnQ0S1ZweV9vMFBUcVpidGh6ZDM3QkNjekJsMmE5dE1FZUZnUFBXbTh0bVBOTnBUakkxOTBxcF95dyZoPXViUzc0aHA3WmR3a19CNnFQTGJFSzB1Y0R4V0VUcEMzUVZ5UEVOY0Z5ZjA=", "RequestMethod": "GET", "RequestHeaders": { "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.102" + "OSVersion/Microsoft.Windows.10.0.26100", + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.109" ] }, "RequestBody": "", @@ -1752,13 +1782,13 @@ "16499" ], "x-ms-request-id": [ - "743da815-252d-4a33-aa26-581ccaa98851" + "42d1e1ec-569c-43ee-9618-b4bcb7ee8b19" ], "x-ms-correlation-request-id": [ - "743da815-252d-4a33-aa26-581ccaa98851" + "42d1e1ec-569c-43ee-9618-b4bcb7ee8b19" ], "x-ms-routing-request-id": [ - "EASTUS:20241113T212113Z:743da815-252d-4a33-aa26-581ccaa98851" + "WESTUS2:20250911T204412Z:42d1e1ec-569c-43ee-9618-b4bcb7ee8b19" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -1770,10 +1800,10 @@ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: 5C3C194AED9345BEA6061AA3D5904B6F Ref B: MNZ221060618047 Ref C: 2024-11-13T21:21:13Z" + "Ref A: 1F4E1241EAF94FFF83168E5DFA1371E4 Ref B: CO6AA3150219017 Ref C: 2025-09-11T20:44:12Z" ], "Date": [ - "Wed, 13 Nov 2024 21:21:12 GMT" + "Thu, 11 Sep 2025 20:44:11 GMT" ], "Expires": [ "-1" @@ -1786,15 +1816,15 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QUzU2ODgtV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2016-09-01&t=638671296581836599&c=MIIHhzCCBm-gAwIBAgITHgVqhF9GOoUjuyqQWAAABWqEXzANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDYwHhcNMjQwOTIwMjMxMTQxWhcNMjUwMzE5MjMxMTQxWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKRtcYDBXS7zz5tRtvVyhrUAjudYhej1E2D3dp6XWuPdbVMbQZwMlye8vdT-kDhFD7T2mrdWqsoGnTGk0_xOHBfLGnW-0QRUqpeoTNIhu8vc2CfTUtm2t2s_-fzvFtRyhDA4mfCH1cz92EVj0vd3FD4ikW6bdOp1NkYFqUVBhKlbvJk6y-TbLFBLP5Zx4m0Ua-_P7aMzbgvOJgMOTC2jLs5w_lFDJWeP3IKUOiJmrfLpf4ey5Ov94oCE6YncDBSHJZKWcrSxDHgSz9AXrxarL4HLajGbF3MRvfkMN2gNXCoiJXBEqCLDnyQZ0BgXIvuK7vG8Rj0TyhJNj-QPr8taY6UCAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAyLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA2LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MB0GA1UdDgQWBBRKlJQpFyyZKSchkTlshetYOUX7xzAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBTxRmjG8cPwKy19i2rhsvm-NfzRQTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAG0WbzLPsmSSMI7aTe2npixmkdCmwcdZHGd43tUnB8JKrLNJEFcBsQmbcIH0adpnQNrDgRkNBBOTZ4s1LIBlRQapZpPsRItAMUguVpGVRH08T0i43w9xrp_clNbAJrrfRbmYroF0WJKMJ0nwW2rPjxdevSRygGK_nEfywwFi-p1RhHnkiEGL4GnP7PpQcRvAYMdH9LO5MRY7iLbBmosKatS_eWtSJD1CvzglNwy_vQzx81Vnk0CgndqXcVq-loGu7R4U7mkQ2NNqLbp447STxkpP-6Mdyv8J4bdnf1s3vFBNpgvJWKogWcNLlo8jnkbEf6RPNGe1W5lma7JwMKAcPzY&s=XZXwEWdCwvA81RCUcj2l68DKqJz634PqTfGwPOXmfz7jSWWBjo5MmgkG_jzuC2_UpwJjIldkgL7t9TVVxaeZPjeyjhB30T9QHRGyw262QrCsDlJQ8T5DuCgRzUJTaYYx0gu5ia_6hjABSqGBO7DhcJFFKZvf3-IEF-m1MeZCoEKVaPH9CUdjskLWUEJpcsZg2hQN4_YH8kv3OoODEOd5tr3lqPBnEZkEWcvmK3jOaOpkXstAw8E1pFCy2BpayHVHZjg0zM0hyLoZofE3U_5PSl-fxhXm__ZOxK-vshDuzXv2RCCURyyWwdPtc8uSQFzO-Zog6wZnD5ioLLl-i5vg2g&h=AOMxiQf_-FynHdE8cKfexrkIGL-f452sEi3VqufIfxk", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjFhYmQ2NzgtMThjNS00NjYwLTlmZGQtOGM1YmE2YjZmZTFmL29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVXpVMk9EZ3RWMFZUVkZWVE1pSXNJbXB2WWt4dlkyRjBhVzl1SWpvaWQyVnpkSFZ6TWlKOT9hcGktdmVyc2lvbj0yMDE2LTA5LTAxJnQ9NjM4NjcxMjk2NTgxODM2NTk5JmM9TUlJSGh6Q0NCbS1nQXdJQkFnSVRIZ1ZxaEY5R09vVWp1eXFRV0FBQUJXcUVYekFOQmdrcWhraUc5dzBCQVFzRkFEQkVNUk13RVFZS0NaSW1pWlB5TEdRQkdSWURSMEpNTVJNd0VRWUtDWkltaVpQeUxHUUJHUllEUVUxRk1SZ3dGZ1lEVlFRREV3OUJUVVVnU1c1bWNtRWdRMEVnTURZd0hoY05NalF3T1RJd01qTXhNVFF4V2hjTk1qVXdNekU1TWpNeE1UUXhXakJBTVQ0d1BBWURWUVFERXpWaGMzbHVZMjl3WlhKaGRHbHZibk5wWjI1cGJtZGpaWEowYVdacFkyRjBaUzV0WVc1aFoyVnRaVzUwTG1GNmRYSmxMbU52YlRDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBS1J0Y1lEQlhTN3p6NXRSdHZWeWhyVUFqdWRZaGVqMUUyRDNkcDZYV3VQZGJWTWJRWndNbHllOHZkVC1rRGhGRDdUMm1yZFdxc29HblRHazBfeE9IQmZMR25XLTBRUlVxcGVvVE5JaHU4dmMyQ2ZUVXRtMnQyc18tZnp2RnRSeWhEQTRtZkNIMWN6OTJFVmowdmQzRkQ0aWtXNmJkT3AxTmtZRnFVVkJoS2xidkprNnktVGJMRkJMUDVaeDRtMFVhLV9QN2FNemJndk9KZ01PVEMyakxzNXdfbEZESldlUDNJS1VPaUptcmZMcGY0ZXk1T3Y5NG9DRTZZbmNEQlNISlpLV2NyU3hESGdTejlBWHJ4YXJMNEhMYWpHYkYzTVJ2ZmtNTjJnTlhDb2lKWEJFcUNMRG55UVowQmdYSXZ1Szd2RzhSajBUeWhKTmotUVByOHRhWTZVQ0F3RUFBYU9DQkhRd2dnUndNQ2NHQ1NzR0FRUUJnamNWQ2dRYU1CZ3dDZ1lJS3dZQkJRVUhBd0V3Q2dZSUt3WUJCUVVIQXdJd1BRWUpLd1lCQkFHQ054VUhCREF3TGdZbUt3WUJCQUdDTnhVSWhwRGpEWVRWdEhpRThZcy1oWnZkRnM2ZEVvRmdoZm1SUzRXc21UUUNBV1FDQVFjd2dnSExCZ2dyQmdFRkJRY0JBUVNDQWIwd2dnRzVNR01HQ0NzR0FRVUZCekFDaGxkb2RIUndPaTh2WTNKc0xtMXBZM0p2YzI5bWRDNWpiMjB2Y0d0cGFXNW1jbUV2UTJWeWRITXZRa3d5VUV0SlNVNVVRMEV3TWk1QlRVVXVSMEpNWDBGTlJTVXlNRWx1Wm5KaEpUSXdRMEVsTWpBd05pNWpjblF3VXdZSUt3WUJCUVVITUFLR1IyaDBkSEE2THk5amNtd3hMbUZ0WlM1blltd3ZZV2xoTDBKTU1sQkxTVWxPVkVOQk1ESXVRVTFGTGtkQ1RGOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFl1WTNKME1GTUdDQ3NHQVFVRkJ6QUNoa2RvZEhSd09pOHZZM0pzTWk1aGJXVXVaMkpzTDJGcFlTOUNUREpRUzBsSlRsUkRRVEF5TGtGTlJTNUhRa3hmUVUxRkpUSXdTVzVtY21FbE1qQkRRU1V5TURBMkxtTnlkREJUQmdnckJnRUZCUWN3QW9aSGFIUjBjRG92TDJOeWJETXVZVzFsTG1kaWJDOWhhV0V2UWt3eVVFdEpTVTVVUTBFd01pNUJUVVV1UjBKTVgwRk5SU1V5TUVsdVpuSmhKVEl3UTBFbE1qQXdOaTVqY25Rd1V3WUlLd1lCQlFVSE1BS0dSMmgwZEhBNkx5OWpjbXcwTG1GdFpTNW5ZbXd2WVdsaEwwSk1NbEJMU1VsT1ZFTkJNREl1UVUxRkxrZENURjlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURZdVkzSjBNQjBHQTFVZERnUVdCQlJLbEpRcEZ5eVpLU2Noa1Rsc2hldFlPVVg3eHpBT0JnTlZIUThCQWY4RUJBTUNCYUF3Z2dFbUJnTlZIUjhFZ2dFZE1JSUJHVENDQVJXZ2dnRVJvSUlCRFlZX2FIUjBjRG92TDJOeWJDNXRhV055YjNOdlpuUXVZMjl0TDNCcmFXbHVabkpoTDBOU1RDOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFl1WTNKc2hqRm9kSFJ3T2k4dlkzSnNNUzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01EWXVZM0pzaGpGb2RIUndPaTh2WTNKc01pNWhiV1V1WjJKc0wyTnliQzlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURZdVkzSnNoakZvZEhSd09pOHZZM0pzTXk1aGJXVXVaMkpzTDJOeWJDOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFl1WTNKc2hqRm9kSFJ3T2k4dlkzSnNOQzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01EWXVZM0pzTUlHZEJnTlZIU0FFZ1pVd2daSXdEQVlLS3dZQkJBR0NOM3NCQVRCbUJnb3JCZ0VFQVlJM2V3SUNNRmd3VmdZSUt3WUJCUVVIQWdJd1NoNUlBRE1BTXdCbEFEQUFNUUE1QURJQU1RQXRBRFFBWkFBMkFEUUFMUUEwQUdZQU9BQmpBQzBBWVFBd0FEVUFOUUF0QURVQVlnQmtBR0VBWmdCbUFHUUFOUUJsQURNQU13QmtNQXdHQ2lzR0FRUUJnamQ3QXdFd0RBWUtLd1lCQkFHQ04zc0VBakFmQmdOVkhTTUVHREFXZ0JUeFJtakc4Y1B3S3kxOWkycmhzdm0tTmZ6UlFUQWRCZ05WSFNVRUZqQVVCZ2dyQmdFRkJRY0RBUVlJS3dZQkJRVUhBd0l3RFFZSktvWklodmNOQVFFTEJRQURnZ0VCQUcwV2J6TFBzbVNTTUk3YVRlMm5waXhta2RDbXdjZFpIR2Q0M3RVbkI4SktyTE5KRUZjQnNRbWJjSUgwYWRwblFOckRnUmtOQkJPVFo0czFMSUJsUlFhcFpwUHNSSXRBTVVndVZwR1ZSSDA4VDBpNDN3OXhycF9jbE5iQUpycmZSYm1Zcm9GMFdKS01KMG53VzJyUGp4ZGV2U1J5Z0dLX25FZnl3d0ZpLXAxUmhIbmtpRUdMNEduUDdQcFFjUnZBWU1kSDlMTzVNUlk3aUxiQm1vc0thdFNfZVd0U0pEMUN2emdsTnd5X3ZReng4MVZuazBDZ25kcVhjVnEtbG9HdTdSNFU3bWtRMk5OcUxicDQ0N1NUeGtwUC02TWR5djhKNGJkbmYxczN2RkJOcGd2SldLb2dXY05MbG84am5rYkVmNlJQTkdlMVc1bG1hN0p3TUtBY1B6WSZzPVhaWHdFV2RDd3ZBODFSQ1VjajJsNjhES3FKejYzNFBxVGZHd1BPWG1mejdqU1dXQmpvNU1tZ2tHX2p6dUMyX1Vwd0pqSWxka2dMN3Q5VFZWeGFlWlBqZXlqaEIzMFQ5UUhSR3l3MjYyUXJDc0RsSlE4VDVEdUNnUnpVSlRhWVl4MGd1NWlhXzZoakFCU3FHQk83RGhjSkZGS1p2ZjMtSUVGLW0xTWVaQ29FS1ZhUEg5Q1VkanNrTFdVRUpwY3NaZzJoUU40X1lIOGt2M09vT0RFT2Q1dHIzbHFQQm5FWmtFV2N2bUszak9hT3BrWHN0QXc4RTFwRkN5MkJwYXlIVkhaamcwek0waHlMb1pvZkUzVV81UFNsLWZ4aFhtX19aT3hLLXZzaER1elh2MlJDQ1VSeXlXd2RQdGM4dVNRRnpPLVpvZzZ3Wm5ENWlvTExsLWk1dmcyZyZoPUFPTXhpUWZfLUZ5bkhkRThjS2ZleHJrSUdMLWY0NTJzRWkzVnF1ZklmeGs=", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QUzIyODktV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2016-09-01&t=638932202370359426&c=MIIIpTCCBo2gAwIBAgITFgGsmnj73LBE7PaBtQABAayaeDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDMwHhcNMjUwNzE4MTIwNDI4WhcNMjYwMTE0MTIwNDI4WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKYwXiklImL5-WfPWj2FX3_Y-JxCd3XXEOuNXx5ggHubZZamujLTqEBSFsFYiH_9NCaqKTiATXu6fBpzW3ghgYhwr0PL071fQT15KnnNUFjd5hFXB7SYti9IwWu1lxSAz-De7HivujKdlsgcmfoV6upRQ0eva9e74EwLV9pCn4WQAhs-6T8p0CytQsi81qHMWybAbNvfom0ox78IEWdS_6g_d4Jl_I4ccYLMyRTOV2NioM96cRECWCZhbpLl1zwoYGSbU5H0MZaiCBjPlhXN40BqagpamZfP98sPYSBfreh6-iMGU5tNTRkh8RiJqzjhzIUpEv3PqLtWTyPUB8JS7aUCAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9BTTNQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAzKDEpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MB0GA1UdDgQWBBTxzPCXgPzIUiTz94us0y0CCMf8BzAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBRIo61gdWpv7GDzaVXRALEyV_xs5DAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggIBAAqNK9Ejzdnb9L4TyakCpJByRYVTN_6nCGbtUd2E2sELjuJGRGiRmujp_jqNyIofO_ghSaP_tqH-3WRTRUbnt5xM8aBYoYJSOgKgTsNrB6clspdhCCmzhJy6EQuOqfUDm3C7hDru1_bN3DwXt3VpDqfuYtM3MAabKg0oCYVWgFwnAKYmZLZMWMQh7k_hZxy1gOCQmE9U08tf_pU21aI0El6n5A5uG2FT0placwchheFmXAtoPjT7nU53HVmRissxUR_vRCDj_ZCFo3K3nZNXCQOKPAMc9-LC0prb9Slg6siKtSHB3iGjNQlT9-nbSnDgifI8zC1cvT8CdaNLOmUywRIB4wvRn1z123NuyfJaIz95igW9P189vBTJEZREF-MgJEboWKdlGNn6bbBtu0waqAmUU7WVLeZKdtUI6EEKF7wRGYuY_BhZx1ipyXnBHZpsufuH4AwgOO289QKmqg8QAy7HFD9c8H8fNCtR7sTZ4YNP2AhEaES0rkMSQUCNVEz42YEBi2GgrSpnI94SPdb3J3PkCMZ4OgFRjztLO7nrgbPtflhSOo_VOE0_7Y74km43WAMQPKL3-44vQrEQ61Hd_24IcFh_ChNXvUDqp39GzYlO3D0zlau4ozll8BeLUZrJwHTQWZS8XR-EifCl4MW5Y3Y1SxOLrIxnukCzQxL7aGmc&s=IevvlSIBJZYjPTmlWzV9cNZe9QBI9U3Y3AKpHJAKBJa22_pxF17caXnVkPwCVgtgbHXSG_e34bCH6v6zPyP0O15fmr5fxTd4SHzstwQACSjxRZystwIaP7jjioUIqE8oOJZTVwVBgvNK-LjSOyuebtMG0oUfi9aPWi_Mimz6_O8ejY3RJpwRBfJlXPGZNUdJtZIyGJLALZ8mBnzXmJyJueoWGWqaqF62YxbUrH9A-u66QsQ8TQl55keHO0yyC-Ommnjj7_IXWDYUWNQF0Kx1LFF2_O7tNt4KVpy_o0PTqZbthzd37BCczBl2a9tMEeFgPPWm8tmPNNpTjI190qp_yw&h=ubS74hp7Zdwk_B6qPLbEK0ucDxWETpC3QVyPENcFyf0", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVXpJeU9Ea3RWMFZUVkZWVE1pSXNJbXB2WWt4dlkyRjBhVzl1SWpvaWQyVnpkSFZ6TWlKOT9hcGktdmVyc2lvbj0yMDE2LTA5LTAxJnQ9NjM4OTMyMjAyMzcwMzU5NDI2JmM9TUlJSXBUQ0NCbzJnQXdJQkFnSVRGZ0dzbW5qNzNMQkU3UGFCdFFBQkFheWFlREFOQmdrcWhraUc5dzBCQVFzRkFEQkVNUk13RVFZS0NaSW1pWlB5TEdRQkdSWURSMEpNTVJNd0VRWUtDWkltaVpQeUxHUUJHUllEUVUxRk1SZ3dGZ1lEVlFRREV3OUJUVVVnU1c1bWNtRWdRMEVnTURNd0hoY05NalV3TnpFNE1USXdOREk0V2hjTk1qWXdNVEUwTVRJd05ESTRXakJBTVQ0d1BBWURWUVFERXpWaGMzbHVZMjl3WlhKaGRHbHZibk5wWjI1cGJtZGpaWEowYVdacFkyRjBaUzV0WVc1aFoyVnRaVzUwTG1GNmRYSmxMbU52YlRDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBS1l3WGlrbEltTDUtV2ZQV2oyRlgzX1ktSnhDZDNYWEVPdU5YeDVnZ0h1YlpaYW11akxUcUVCU0ZzRllpSF85TkNhcUtUaUFUWHU2ZkJwelczZ2hnWWh3cjBQTDA3MWZRVDE1S25uTlVGamQ1aEZYQjdTWXRpOUl3V3UxbHhTQXotRGU3SGl2dWpLZGxzZ2NtZm9WNnVwUlEwZXZhOWU3NEV3TFY5cENuNFdRQWhzLTZUOHAwQ3l0UXNpODFxSE1XeWJBYk52Zm9tMG94NzhJRVdkU182Z19kNEpsX0k0Y2NZTE15UlRPVjJOaW9NOTZjUkVDV0NaaGJwTGwxendvWUdTYlU1SDBNWmFpQ0JqUGxoWE40MEJxYWdwYW1aZlA5OHNQWVNCZnJlaDYtaU1HVTV0TlRSa2g4UmlKcXpqaHpJVXBFdjNQcUx0V1R5UFVCOEpTN2FVQ0F3RUFBYU9DQkpJd2dnU09NQ2NHQ1NzR0FRUUJnamNWQ2dRYU1CZ3dDZ1lJS3dZQkJRVUhBd0V3Q2dZSUt3WUJCUVVIQXdJd1BRWUpLd1lCQkFHQ054VUhCREF3TGdZbUt3WUJCQUdDTnhVSWhwRGpEWVRWdEhpRThZcy1oWnZkRnM2ZEVvRmdoZm1SUzRXc21UUUNBV1FDQVFjd2dnSGFCZ2dyQmdFRkJRY0JBUVNDQWN3d2dnSElNR1lHQ0NzR0FRVUZCekFDaGxwb2RIUndPaTh2WTNKc0xtMXBZM0p2YzI5bWRDNWpiMjB2Y0d0cGFXNW1jbUV2UTJWeWRITXZRVTB6VUV0SlNVNVVRMEV3TVM1QlRVVXVSMEpNWDBGTlJTVXlNRWx1Wm5KaEpUSXdRMEVsTWpBd015Z3hLUzVqY25Rd1ZnWUlLd1lCQlFVSE1BS0dTbWgwZEhBNkx5OWpjbXd4TG1GdFpTNW5ZbXd2WVdsaEwwRk5NMUJMU1VsT1ZFTkJNREV1UVUxRkxrZENURjlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURNb01Ta3VZM0owTUZZR0NDc0dBUVVGQnpBQ2hrcG9kSFJ3T2k4dlkzSnNNaTVoYldVdVoySnNMMkZwWVM5QlRUTlFTMGxKVGxSRFFUQXhMa0ZOUlM1SFFreGZRVTFGSlRJd1NXNW1jbUVsTWpCRFFTVXlNREF6S0RFcExtTnlkREJXQmdnckJnRUZCUWN3QW9aS2FIUjBjRG92TDJOeWJETXVZVzFsTG1kaWJDOWhhV0V2UVUwelVFdEpTVTVVUTBFd01TNUJUVVV1UjBKTVgwRk5SU1V5TUVsdVpuSmhKVEl3UTBFbE1qQXdNeWd4S1M1amNuUXdWZ1lJS3dZQkJRVUhNQUtHU21oMGRIQTZMeTlqY213MExtRnRaUzVuWW13dllXbGhMMEZOTTFCTFNVbE9WRU5CTURFdVFVMUZMa2RDVEY5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKME1CMEdBMVVkRGdRV0JCVHh6UENYZ1B6SVVpVHo5NHVzMHkwQ0NNZjhCekFPQmdOVkhROEJBZjhFQkFNQ0JhQXdnZ0UxQmdOVkhSOEVnZ0VzTUlJQktEQ0NBU1NnZ2dFZ29JSUJISVpDYUhSMGNEb3ZMMk55YkM1dGFXTnliM052Wm5RdVkyOXRMM0JyYVdsdVpuSmhMME5TVEM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc2hqUm9kSFJ3T2k4dlkzSnNNUzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc2hqUm9kSFJ3T2k4dlkzSnNNaTVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc2hqUm9kSFJ3T2k4dlkzSnNNeTVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc2hqUm9kSFJ3T2k4dlkzSnNOQzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc01JR2RCZ05WSFNBRWdaVXdnWkl3REFZS0t3WUJCQUdDTjNzQkFUQm1CZ29yQmdFRUFZSTNld0lDTUZnd1ZnWUlLd1lCQlFVSEFnSXdTaDVJQURNQU13QmxBREFBTVFBNUFESUFNUUF0QURRQVpBQTJBRFFBTFFBMEFHWUFPQUJqQUMwQVlRQXdBRFVBTlFBdEFEVUFZZ0JrQUdFQVpnQm1BR1FBTlFCbEFETUFNd0JrTUF3R0Npc0dBUVFCZ2pkN0F3SXdEQVlLS3dZQkJBR0NOM3NFQWpBZkJnTlZIU01FR0RBV2dCUklvNjFnZFdwdjdHRHphVlhSQUxFeVZfeHM1REFkQmdOVkhTVUVGakFVQmdnckJnRUZCUWNEQVFZSUt3WUJCUVVIQXdJd0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dJQkFBcU5LOUVqemRuYjlMNFR5YWtDcEpCeVJZVlROXzZuQ0didFVkMkUyc0VManVKR1JHaVJtdWpwX2pxTnlJb2ZPX2doU2FQX3RxSC0zV1JUUlVibnQ1eE04YUJZb1lKU09nS2dUc05yQjZjbHNwZGhDQ216aEp5NkVRdU9xZlVEbTNDN2hEcnUxX2JOM0R3WHQzVnBEcWZ1WXRNM01BYWJLZzBvQ1lWV2dGd25BS1ltWkxaTVdNUWg3a19oWnh5MWdPQ1FtRTlVMDh0Zl9wVTIxYUkwRWw2bjVBNXVHMkZUMHBsYWN3Y2hoZUZtWEF0b1BqVDduVTUzSFZtUmlzc3hVUl92UkNEal9aQ0ZvM0szblpOWENRT0tQQU1jOS1MQzBwcmI5U2xnNnNpS3RTSEIzaUdqTlFsVDktbmJTbkRnaWZJOHpDMWN2VDhDZGFOTE9tVXl3UklCNHd2Um4xejEyM051eWZKYUl6OTVpZ1c5UDE4OXZCVEpFWlJFRi1NZ0pFYm9XS2RsR05uNmJiQnR1MHdhcUFtVVU3V1ZMZVpLZHRVSTZFRUtGN3dSR1l1WV9CaFp4MWlweVhuQkhacHN1ZnVINEF3Z09PMjg5UUttcWc4UUF5N0hGRDljOEg4Zk5DdFI3c1RaNFlOUDJBaEVhRVMwcmtNU1FVQ05WRXo0MllFQmkyR2dyU3BuSTk0U1BkYjNKM1BrQ01aNE9nRlJqenRMTzducmdiUHRmbGhTT29fVk9FMF83WTc0a200M1dBTVFQS0wzLTQ0dlFyRVE2MUhkXzI0SWNGaF9DaE5YdlVEcXAzOUd6WWxPM0QwemxhdTRvemxsOEJlTFVackp3SFRRV1pTOFhSLUVpZkNsNE1XNVkzWTFTeE9Mckl4bnVrQ3pReEw3YUdtYyZzPUlldnZsU0lCSlpZalBUbWxXelY5Y05aZTlRQkk5VTNZM0FLcEhKQUtCSmEyMl9weEYxN2NhWG5Wa1B3Q1ZndGdiSFhTR19lMzRiQ0g2djZ6UHlQME8xNWZtcjVmeFRkNFNIenN0d1FBQ1NqeFJaeXN0d0lhUDdqamlvVUlxRThvT0paVFZ3VkJndk5LLUxqU095dWVidE1HMG9VZmk5YVBXaV9NaW16Nl9POGVqWTNSSnB3UkJmSmxYUEdaTlVkSnRaSXlHSkxBTFo4bUJuelhtSnlKdWVvV0dXcWFxRjYyWXhiVXJIOUEtdTY2UXNROFRRbDU1a2VITzB5eUMtT21tbmpqN19JWFdEWVVXTlFGMEt4MUxGRjJfTzd0TnQ0S1ZweV9vMFBUcVpidGh6ZDM3QkNjekJsMmE5dE1FZUZnUFBXbTh0bVBOTnBUakkxOTBxcF95dyZoPXViUzc0aHA3WmR3a19CNnFQTGJFSzB1Y0R4V0VUcEMzUVZ5UEVOY0Z5ZjA=", "RequestMethod": "GET", "RequestHeaders": { "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.102" + "OSVersion/Microsoft.Windows.10.0.26100", + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.109" ] }, "RequestBody": "", @@ -1812,13 +1842,13 @@ "16499" ], "x-ms-request-id": [ - "7ee2deb3-1dc2-40d1-bb08-4d6fe19d9a24" + "5e215914-0835-49e3-b903-d793f6c95733" ], "x-ms-correlation-request-id": [ - "7ee2deb3-1dc2-40d1-bb08-4d6fe19d9a24" + "5e215914-0835-49e3-b903-d793f6c95733" ], "x-ms-routing-request-id": [ - "EASTUS:20241113T212114Z:7ee2deb3-1dc2-40d1-bb08-4d6fe19d9a24" + "WESTUS2:20250911T204412Z:5e215914-0835-49e3-b903-d793f6c95733" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -1830,10 +1860,10 @@ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: 4B0742E8A32748609A24460951E6DD98 Ref B: MNZ221060618047 Ref C: 2024-11-13T21:21:13Z" + "Ref A: 728B8659C67F4D2EB0E08DA6F321DDE0 Ref B: CO6AA3150219017 Ref C: 2025-09-11T20:44:12Z" ], "Date": [ - "Wed, 13 Nov 2024 21:21:13 GMT" + "Thu, 11 Sep 2025 20:44:11 GMT" ], "Expires": [ "-1" @@ -1848,14 +1878,14 @@ ], "Names": { "Test-CreateNewBatchAccountWithNoPublicIp": [ - "ps9576", - "ps5688" + "ps5017", + "ps2289" ] }, "Variables": { - "SubscriptionId": "21abd678-18c5-4660-9fdd-8c5ba6b6fe1f", - "AZURE_BATCH_ACCOUNT": "dawatrouhobo", - "AZURE_BATCH_ENDPOINT": "https://dawatrouhobo.eastus2.batch.azure.com", - "AZURE_BATCH_RESOURCE_GROUP": "dawatrou-rg" + "SubscriptionId": "94bd7ded-68b4-4ffa-82a5-37ac72caa2ec", + "AZURE_BATCH_ACCOUNT": "dotnotsdkbatchaccount2", + "AZURE_BATCH_ENDPOINT": "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com", + "AZURE_BATCH_RESOURCE_GROUP": "automation" } } \ No newline at end of file diff --git a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchAccountTests/TestCreateNewBatchAccountWithSystemIdentity.json b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchAccountTests/TestCreateNewBatchAccountWithSystemIdentity.json index 09e6c552960b..44ae55a43720 100644 --- a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchAccountTests/TestCreateNewBatchAccountWithSystemIdentity.json +++ b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchAccountTests/TestCreateNewBatchAccountWithSystemIdentity.json @@ -1,21 +1,21 @@ { "Entries": [ { - "RequestUri": "/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/providers/Microsoft.Batch?api-version=2016-09-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjFhYmQ2NzgtMThjNS00NjYwLTlmZGQtOGM1YmE2YjZmZTFmL3Byb3ZpZGVycy9NaWNyb3NvZnQuQmF0Y2g/YXBpLXZlcnNpb249MjAxNi0wOS0wMQ==", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/providers/Microsoft.Batch?api-version=2016-09-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Byb3ZpZGVycy9NaWNyb3NvZnQuQmF0Y2g/YXBpLXZlcnNpb249MjAxNi0wOS0wMQ==", "RequestMethod": "GET", "RequestHeaders": { "x-ms-client-request-id": [ - "3d35726d-51de-4882-8bdd-8c0efdcdddb5" + "4fbca2e0-9b4c-4149-ab1f-136eb5b2058a" ], "Accept-Language": [ "en-US" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.102" + "OSVersion/Microsoft.Windows.10.0.26100", + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.109" ] }, "RequestBody": "", @@ -33,13 +33,13 @@ "16499" ], "x-ms-request-id": [ - "00ef877c-d984-4f9e-890a-8717fbbc96ee" + "498afb7c-ee1e-459e-bcba-b83cc940be3c" ], "x-ms-correlation-request-id": [ - "00ef877c-d984-4f9e-890a-8717fbbc96ee" + "498afb7c-ee1e-459e-bcba-b83cc940be3c" ], "x-ms-routing-request-id": [ - "EASTUS:20241113T211708Z:00ef877c-d984-4f9e-890a-8717fbbc96ee" + "AUSTRALIAEAST:20250911T204621Z:498afb7c-ee1e-459e-bcba-b83cc940be3c" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -51,13 +51,13 @@ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: 00ED7E75A2564B50AD3B95A1AB4ACE00 Ref B: MNZ221060610029 Ref C: 2024-11-13T21:17:08Z" + "Ref A: 6E89AA34958741CF833500598F50C020 Ref B: MWH011020807042 Ref C: 2025-09-11T20:46:21Z" ], "Date": [ - "Wed, 13 Nov 2024 21:17:07 GMT" + "Thu, 11 Sep 2025 20:46:21 GMT" ], "Content-Length": [ - "18599" + "19143" ], "Content-Type": [ "application/json; charset=utf-8" @@ -66,25 +66,25 @@ "-1" ] }, - "ResponseBody": "{\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/providers/Microsoft.Batch\",\r\n \"namespace\": \"Microsoft.Batch\",\r\n \"authorization\": {\r\n \"applicationId\": \"ddbf3205-c6bd-46ae-8127-60eb93363864\",\r\n \"roleDefinitionId\": \"b7f84953-1d03-4eab-9ea4-45f065258ff8\"\r\n },\r\n \"resourceTypes\": [\r\n {\r\n \"resourceType\": \"batchAccounts\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\",\r\n \"East US\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\",\r\n \"2021-01-01\",\r\n \"2020-09-01\",\r\n \"2020-05-01\",\r\n \"2020-03-01-preview\",\r\n \"2020-03-01\",\r\n \"2019-08-01\",\r\n \"2019-04-01\",\r\n \"2018-12-01\",\r\n \"2017-09-01\",\r\n \"2017-05-01\",\r\n \"2017-01-01\",\r\n \"2015-12-01\",\r\n \"2015-09-01\",\r\n \"2015-07-01\",\r\n \"2014-05-01-privatepreview\"\r\n ],\r\n \"capabilities\": \"CrossResourceGroupResourceMove, CrossSubscriptionResourceMove, SystemAssignedResourceIdentity\"\r\n },\r\n {\r\n \"resourceType\": \"batchAccounts/pools\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\",\r\n \"East US\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\",\r\n \"2021-01-01\",\r\n \"2020-09-01\",\r\n \"2020-05-01\",\r\n \"2020-03-01-preview\",\r\n \"2020-03-01\",\r\n \"2019-08-01\",\r\n \"2019-04-01\",\r\n \"2018-12-01\",\r\n \"2017-09-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"batchAccounts/detectors\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\",\r\n \"East US\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"batchAccounts/certificates\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\",\r\n \"East US\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\",\r\n \"2021-01-01\",\r\n \"2020-09-01\",\r\n \"2020-05-01\",\r\n \"2020-03-01-preview\",\r\n \"2020-03-01\",\r\n \"2019-08-01\",\r\n \"2019-04-01\",\r\n \"2018-12-01\",\r\n \"2017-09-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"batchAccounts/operationResults\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\",\r\n \"East US\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\",\r\n \"2021-01-01\",\r\n \"2020-09-01\",\r\n \"2020-05-01\",\r\n \"2020-03-01-preview\",\r\n \"2020-03-01\",\r\n \"2019-08-01\",\r\n \"2019-04-01\",\r\n \"2018-12-01\",\r\n \"2017-09-01\",\r\n \"2017-05-01\",\r\n \"2017-01-01\",\r\n \"2015-12-01\",\r\n \"2015-09-01\",\r\n \"2015-07-01\",\r\n \"2014-05-01-privatepreview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"batchAccounts/poolOperationResults\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\",\r\n \"East US\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\",\r\n \"2021-01-01\",\r\n \"2020-09-01\",\r\n \"2020-05-01\",\r\n \"2020-03-01-preview\",\r\n \"2020-03-01\",\r\n \"2019-08-01\",\r\n \"2019-04-01\",\r\n \"2018-12-01\",\r\n \"2017-09-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"batchAccounts/certificateOperationResults\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\",\r\n \"East US\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\",\r\n \"2021-01-01\",\r\n \"2020-09-01\",\r\n \"2020-05-01\",\r\n \"2020-03-01-preview\",\r\n \"2020-03-01\",\r\n \"2019-08-01\",\r\n \"2019-04-01\",\r\n \"2018-12-01\",\r\n \"2017-09-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"batchAccounts/privateEndpointConnectionProxyResults\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\",\r\n \"East US\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\",\r\n \"2021-01-01\",\r\n \"2020-09-01\",\r\n \"2020-05-01\",\r\n \"2020-03-01-preview\",\r\n \"2020-03-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"batchAccounts/privateEndpointConnectionResults\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\",\r\n \"East US\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\",\r\n \"2021-01-01\",\r\n \"2020-09-01\",\r\n \"2020-05-01\",\r\n \"2020-03-01-preview\",\r\n \"2020-03-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"batchAccounts/networkSecurityPerimeterConfigurationOperationResults\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\",\r\n \"East US\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"operations\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\",\r\n \"East US\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\",\r\n \"2021-01-01\",\r\n \"2020-09-01\",\r\n \"2020-05-01\",\r\n \"2020-03-01-preview\",\r\n \"2020-03-01\",\r\n \"2019-08-01\",\r\n \"2019-04-01\",\r\n \"2018-12-01\",\r\n \"2017-09-01\",\r\n \"2017-05-01\",\r\n \"2017-01-01\",\r\n \"2015-12-01\",\r\n \"2015-09-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations\",\r\n \"locations\": [],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\",\r\n \"2021-01-01\",\r\n \"2020-09-01\",\r\n \"2020-05-01\",\r\n \"2020-03-01-preview\",\r\n \"2020-03-01\",\r\n \"2019-08-01\",\r\n \"2019-04-01\",\r\n \"2018-12-01\",\r\n \"2017-09-01\",\r\n \"2017-05-01\",\r\n \"2017-01-01\",\r\n \"2015-12-01\",\r\n \"2015-09-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/quotas\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\",\r\n \"East US\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\",\r\n \"2021-01-01\",\r\n \"2020-09-01\",\r\n \"2020-05-01\",\r\n \"2020-03-01-preview\",\r\n \"2020-03-01\",\r\n \"2019-08-01\",\r\n \"2019-04-01\",\r\n \"2018-12-01\",\r\n \"2017-09-01\",\r\n \"2017-05-01\",\r\n \"2017-01-01\",\r\n \"2015-12-01\",\r\n \"2015-09-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/checkNameAvailability\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\",\r\n \"East US\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\",\r\n \"2021-01-01\",\r\n \"2020-09-01\",\r\n \"2020-05-01\",\r\n \"2020-03-01-preview\",\r\n \"2020-03-01\",\r\n \"2019-08-01\",\r\n \"2019-04-01\",\r\n \"2018-12-01\",\r\n \"2017-09-01\",\r\n \"2017-05-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/accountOperationResults\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\",\r\n \"East US\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\",\r\n \"2021-01-01\",\r\n \"2020-09-01\",\r\n \"2020-05-01\",\r\n \"2020-03-01-preview\",\r\n \"2020-03-01\",\r\n \"2019-08-01\",\r\n \"2019-04-01\",\r\n \"2018-12-01\",\r\n \"2017-09-01\",\r\n \"2017-05-01\",\r\n \"2017-01-01\",\r\n \"2015-12-01\",\r\n \"2015-09-01\",\r\n \"2015-07-01\",\r\n \"2014-05-01-privatepreview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/virtualMachineSkus\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\",\r\n \"East US\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/cloudServiceSkus\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\",\r\n \"East US\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/notifyNetworkSecurityPerimeterUpdatesAvailable\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\",\r\n \"East US\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\"\r\n ]\r\n }\r\n ],\r\n \"registrationState\": \"Registered\"\r\n}", + "ResponseBody": "{\r\n \"id\": \"/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/providers/Microsoft.Batch\",\r\n \"namespace\": \"Microsoft.Batch\",\r\n \"authorization\": {\r\n \"applicationId\": \"ddbf3205-c6bd-46ae-8127-60eb93363864\",\r\n \"roleDefinitionId\": \"b7f84953-1d03-4eab-9ea4-45f065258ff8\"\r\n },\r\n \"resourceTypes\": [\r\n {\r\n \"resourceType\": \"batchAccounts\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\",\r\n \"2021-01-01\",\r\n \"2020-09-01\",\r\n \"2020-05-01\",\r\n \"2020-03-01-preview\",\r\n \"2020-03-01\",\r\n \"2019-08-01\",\r\n \"2019-04-01\",\r\n \"2018-12-01\",\r\n \"2017-09-01\",\r\n \"2017-05-01\",\r\n \"2017-01-01\",\r\n \"2015-12-01\",\r\n \"2015-09-01\",\r\n \"2015-07-01\",\r\n \"2014-05-01-privatepreview\"\r\n ],\r\n \"capabilities\": \"CrossResourceGroupResourceMove, CrossSubscriptionResourceMove, SystemAssignedResourceIdentity\"\r\n },\r\n {\r\n \"resourceType\": \"batchAccounts/pools\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\",\r\n \"2021-01-01\",\r\n \"2020-09-01\",\r\n \"2020-05-01\",\r\n \"2020-03-01-preview\",\r\n \"2020-03-01\",\r\n \"2019-08-01\",\r\n \"2019-04-01\",\r\n \"2018-12-01\",\r\n \"2017-09-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"batchAccounts/detectors\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"batchAccounts/certificates\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\",\r\n \"2021-01-01\",\r\n \"2020-09-01\",\r\n \"2020-05-01\",\r\n \"2020-03-01-preview\",\r\n \"2020-03-01\",\r\n \"2019-08-01\",\r\n \"2019-04-01\",\r\n \"2018-12-01\",\r\n \"2017-09-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"batchAccounts/operationResults\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\",\r\n \"2021-01-01\",\r\n \"2020-09-01\",\r\n \"2020-05-01\",\r\n \"2020-03-01-preview\",\r\n \"2020-03-01\",\r\n \"2019-08-01\",\r\n \"2019-04-01\",\r\n \"2018-12-01\",\r\n \"2017-09-01\",\r\n \"2017-05-01\",\r\n \"2017-01-01\",\r\n \"2015-12-01\",\r\n \"2015-09-01\",\r\n \"2015-07-01\",\r\n \"2014-05-01-privatepreview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"batchAccounts/poolOperationResults\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\",\r\n \"2021-01-01\",\r\n \"2020-09-01\",\r\n \"2020-05-01\",\r\n \"2020-03-01-preview\",\r\n \"2020-03-01\",\r\n \"2019-08-01\",\r\n \"2019-04-01\",\r\n \"2018-12-01\",\r\n \"2017-09-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"batchAccounts/certificateOperationResults\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\",\r\n \"2021-01-01\",\r\n \"2020-09-01\",\r\n \"2020-05-01\",\r\n \"2020-03-01-preview\",\r\n \"2020-03-01\",\r\n \"2019-08-01\",\r\n \"2019-04-01\",\r\n \"2018-12-01\",\r\n \"2017-09-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"batchAccounts/privateEndpointConnectionProxyResults\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\",\r\n \"2021-01-01\",\r\n \"2020-09-01\",\r\n \"2020-05-01\",\r\n \"2020-03-01-preview\",\r\n \"2020-03-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"batchAccounts/privateEndpointConnectionResults\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\",\r\n \"2021-01-01\",\r\n \"2020-09-01\",\r\n \"2020-05-01\",\r\n \"2020-03-01-preview\",\r\n \"2020-03-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"batchAccounts/networkSecurityPerimeterConfigurationOperationResults\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"operations\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\",\r\n \"2021-01-01\",\r\n \"2020-09-01\",\r\n \"2020-05-01\",\r\n \"2020-03-01-preview\",\r\n \"2020-03-01\",\r\n \"2019-08-01\",\r\n \"2019-04-01\",\r\n \"2018-12-01\",\r\n \"2017-09-01\",\r\n \"2017-05-01\",\r\n \"2017-01-01\",\r\n \"2015-12-01\",\r\n \"2015-09-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations\",\r\n \"locations\": [],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\",\r\n \"2021-01-01\",\r\n \"2020-09-01\",\r\n \"2020-05-01\",\r\n \"2020-03-01-preview\",\r\n \"2020-03-01\",\r\n \"2019-08-01\",\r\n \"2019-04-01\",\r\n \"2018-12-01\",\r\n \"2017-09-01\",\r\n \"2017-05-01\",\r\n \"2017-01-01\",\r\n \"2015-12-01\",\r\n \"2015-09-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/quotas\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\",\r\n \"2021-01-01\",\r\n \"2020-09-01\",\r\n \"2020-05-01\",\r\n \"2020-03-01-preview\",\r\n \"2020-03-01\",\r\n \"2019-08-01\",\r\n \"2019-04-01\",\r\n \"2018-12-01\",\r\n \"2017-09-01\",\r\n \"2017-05-01\",\r\n \"2017-01-01\",\r\n \"2015-12-01\",\r\n \"2015-09-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/checkNameAvailability\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\",\r\n \"2021-01-01\",\r\n \"2020-09-01\",\r\n \"2020-05-01\",\r\n \"2020-03-01-preview\",\r\n \"2020-03-01\",\r\n \"2019-08-01\",\r\n \"2019-04-01\",\r\n \"2018-12-01\",\r\n \"2017-09-01\",\r\n \"2017-05-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/accountOperationResults\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\",\r\n \"2021-01-01\",\r\n \"2020-09-01\",\r\n \"2020-05-01\",\r\n \"2020-03-01-preview\",\r\n \"2020-03-01\",\r\n \"2019-08-01\",\r\n \"2019-04-01\",\r\n \"2018-12-01\",\r\n \"2017-09-01\",\r\n \"2017-05-01\",\r\n \"2017-01-01\",\r\n \"2015-12-01\",\r\n \"2015-09-01\",\r\n \"2015-07-01\",\r\n \"2014-05-01-privatepreview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/virtualMachineSkus\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/cloudServiceSkus\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/notifyNetworkSecurityPerimeterUpdatesAvailable\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\"\r\n ]\r\n }\r\n ],\r\n \"registrationState\": \"Registered\"\r\n}", "StatusCode": 200 }, { - "RequestUri": "/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourcegroups/ps8409?api-version=2016-09-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjFhYmQ2NzgtMThjNS00NjYwLTlmZGQtOGM1YmE2YjZmZTFmL3Jlc291cmNlZ3JvdXBzL3BzODQwOT9hcGktdmVyc2lvbj0yMDE2LTA5LTAx", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourcegroups/ps2521?api-version=2016-09-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlZ3JvdXBzL3BzMjUyMT9hcGktdmVyc2lvbj0yMDE2LTA5LTAx", "RequestMethod": "PUT", "RequestHeaders": { "x-ms-client-request-id": [ - "1c5d4113-9fa2-4c06-b49a-a8efe583f08a" + "56c66095-3916-400f-a477-440c07cf91c7" ], "Accept-Language": [ "en-US" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.102" + "OSVersion/Microsoft.Windows.10.0.26100", + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.109" ], "Content-Type": [ "application/json; charset=utf-8" @@ -108,13 +108,13 @@ "11999" ], "x-ms-request-id": [ - "0619e37b-c8fa-4c90-a33a-3ba1cc502864" + "d0fb86da-8351-4559-97e0-5993d1ada215" ], "x-ms-correlation-request-id": [ - "0619e37b-c8fa-4c90-a33a-3ba1cc502864" + "d0fb86da-8351-4559-97e0-5993d1ada215" ], "x-ms-routing-request-id": [ - "EASTUS:20241113T211708Z:0619e37b-c8fa-4c90-a33a-3ba1cc502864" + "AUSTRALIAEAST:20250911T204624Z:d0fb86da-8351-4559-97e0-5993d1ada215" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -126,10 +126,10 @@ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: 7323D9AEA5194042A7A6DFCD5B2700C1 Ref B: MNZ221060610029 Ref C: 2024-11-13T21:17:08Z" + "Ref A: 1DB70278258A46A7824089EB65F88F60 Ref B: MWH011020807042 Ref C: 2025-09-11T20:46:21Z" ], "Date": [ - "Wed, 13 Nov 2024 21:17:08 GMT" + "Thu, 11 Sep 2025 20:46:24 GMT" ], "Content-Length": [ "166" @@ -141,25 +141,25 @@ "-1" ] }, - "ResponseBody": "{\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/ps8409\",\r\n \"name\": \"ps8409\",\r\n \"location\": \"westus2\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\"\r\n }\r\n}", + "ResponseBody": "{\r\n \"id\": \"/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps2521\",\r\n \"name\": \"ps2521\",\r\n \"location\": \"westus2\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\"\r\n }\r\n}", "StatusCode": 201 }, { - "RequestUri": "/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/ps8409/providers/Microsoft.Batch/batchAccounts/ps239?api-version=2022-10-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjFhYmQ2NzgtMThjNS00NjYwLTlmZGQtOGM1YmE2YjZmZTFmL3Jlc291cmNlR3JvdXBzL3BzODQwOS9wcm92aWRlcnMvTWljcm9zb2Z0LkJhdGNoL2JhdGNoQWNjb3VudHMvcHMyMzk/YXBpLXZlcnNpb249MjAyMi0xMC0wMQ==", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps2521/providers/Microsoft.Batch/batchAccounts/ps3606?api-version=2023-05-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL3BzMjUyMS9wcm92aWRlcnMvTWljcm9zb2Z0LkJhdGNoL2JhdGNoQWNjb3VudHMvcHMzNjA2P2FwaS12ZXJzaW9uPTIwMjMtMDUtMDE=", "RequestMethod": "PUT", "RequestHeaders": { - "x-ms-client-request-id": [ - "9fc8e99c-29e7-40ec-bd88-8b382579601b" - ], "Accept-Language": [ "en-US" ], + "x-ms-client-request-id": [ + "d97ea70e-3295-4148-9a8c-7a4bc41a4411" + ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Management.Batch.BatchManagementClient/3.6.4" + "OSVersion/Microsoft.Windows.10.0.26100", + "Microsoft.Azure.Management.Batch.BatchManagementClient/3.7.0" ], "Content-Type": [ "application/json; charset=utf-8" @@ -177,13 +177,13 @@ "no-cache" ], "Location": [ - "https://management.azure.com/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/ps8409/providers/Microsoft.Batch/batchAccounts/ps239/operationResults/8ee28199-0cfc-42ed-ac62-aefac9725a33?api-version=2022-10-01&t=638671294312444228&c=MIIHhzCCBm-gAwIBAgITHgVqhF9GOoUjuyqQWAAABWqEXzANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDYwHhcNMjQwOTIwMjMxMTQxWhcNMjUwMzE5MjMxMTQxWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKRtcYDBXS7zz5tRtvVyhrUAjudYhej1E2D3dp6XWuPdbVMbQZwMlye8vdT-kDhFD7T2mrdWqsoGnTGk0_xOHBfLGnW-0QRUqpeoTNIhu8vc2CfTUtm2t2s_-fzvFtRyhDA4mfCH1cz92EVj0vd3FD4ikW6bdOp1NkYFqUVBhKlbvJk6y-TbLFBLP5Zx4m0Ua-_P7aMzbgvOJgMOTC2jLs5w_lFDJWeP3IKUOiJmrfLpf4ey5Ov94oCE6YncDBSHJZKWcrSxDHgSz9AXrxarL4HLajGbF3MRvfkMN2gNXCoiJXBEqCLDnyQZ0BgXIvuK7vG8Rj0TyhJNj-QPr8taY6UCAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAyLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA2LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MB0GA1UdDgQWBBRKlJQpFyyZKSchkTlshetYOUX7xzAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBTxRmjG8cPwKy19i2rhsvm-NfzRQTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAG0WbzLPsmSSMI7aTe2npixmkdCmwcdZHGd43tUnB8JKrLNJEFcBsQmbcIH0adpnQNrDgRkNBBOTZ4s1LIBlRQapZpPsRItAMUguVpGVRH08T0i43w9xrp_clNbAJrrfRbmYroF0WJKMJ0nwW2rPjxdevSRygGK_nEfywwFi-p1RhHnkiEGL4GnP7PpQcRvAYMdH9LO5MRY7iLbBmosKatS_eWtSJD1CvzglNwy_vQzx81Vnk0CgndqXcVq-loGu7R4U7mkQ2NNqLbp447STxkpP-6Mdyv8J4bdnf1s3vFBNpgvJWKogWcNLlo8jnkbEf6RPNGe1W5lma7JwMKAcPzY&s=fobw69ObD_mK11qwruYMqb5kp0pIX_uLq-G_nOGsjtyFXWLttFtxgKqeNnR0J2y85ZHRX_ZwU631hzHalXQHOPJ8VhIjinF5lN--iEAd1hoAifx4VgY--r7kmSqf5NBeGYv9JHpB4L0htctwbfuv2aRubtKyLbC_HjIJr0ejP4EXKvkvXt38XBxNULH9eCQ8IZZ8YluLRQN4arnZ5qtHFEBfokdIaMhTQ1oQBZxQtlqoiiT7XvXUpyY3Mq9YXgBktrhGNG4WUj4_3_8W9ntOcHlgr51_i7f9x7FD4MrIbBrelmb-OvPfefp07QuQKOBgwCnoorFm7SuX_6vFDjC_Ag&h=aVqBe8_rdFMLToXFj63gWk0WGGRQsxMX8Pg7mx1eB_0" + "https://management.azure.com/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps2521/providers/Microsoft.Batch/batchAccounts/ps3606/operationResults/52594a4f-4313-44cd-a1a9-e2452733dc31?api-version=2023-05-01&t=638932203870748989&c=MIIIpTCCBo2gAwIBAgITFgGsmnj73LBE7PaBtQABAayaeDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDMwHhcNMjUwNzE4MTIwNDI4WhcNMjYwMTE0MTIwNDI4WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKYwXiklImL5-WfPWj2FX3_Y-JxCd3XXEOuNXx5ggHubZZamujLTqEBSFsFYiH_9NCaqKTiATXu6fBpzW3ghgYhwr0PL071fQT15KnnNUFjd5hFXB7SYti9IwWu1lxSAz-De7HivujKdlsgcmfoV6upRQ0eva9e74EwLV9pCn4WQAhs-6T8p0CytQsi81qHMWybAbNvfom0ox78IEWdS_6g_d4Jl_I4ccYLMyRTOV2NioM96cRECWCZhbpLl1zwoYGSbU5H0MZaiCBjPlhXN40BqagpamZfP98sPYSBfreh6-iMGU5tNTRkh8RiJqzjhzIUpEv3PqLtWTyPUB8JS7aUCAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9BTTNQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAzKDEpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MB0GA1UdDgQWBBTxzPCXgPzIUiTz94us0y0CCMf8BzAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBRIo61gdWpv7GDzaVXRALEyV_xs5DAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggIBAAqNK9Ejzdnb9L4TyakCpJByRYVTN_6nCGbtUd2E2sELjuJGRGiRmujp_jqNyIofO_ghSaP_tqH-3WRTRUbnt5xM8aBYoYJSOgKgTsNrB6clspdhCCmzhJy6EQuOqfUDm3C7hDru1_bN3DwXt3VpDqfuYtM3MAabKg0oCYVWgFwnAKYmZLZMWMQh7k_hZxy1gOCQmE9U08tf_pU21aI0El6n5A5uG2FT0placwchheFmXAtoPjT7nU53HVmRissxUR_vRCDj_ZCFo3K3nZNXCQOKPAMc9-LC0prb9Slg6siKtSHB3iGjNQlT9-nbSnDgifI8zC1cvT8CdaNLOmUywRIB4wvRn1z123NuyfJaIz95igW9P189vBTJEZREF-MgJEboWKdlGNn6bbBtu0waqAmUU7WVLeZKdtUI6EEKF7wRGYuY_BhZx1ipyXnBHZpsufuH4AwgOO289QKmqg8QAy7HFD9c8H8fNCtR7sTZ4YNP2AhEaES0rkMSQUCNVEz42YEBi2GgrSpnI94SPdb3J3PkCMZ4OgFRjztLO7nrgbPtflhSOo_VOE0_7Y74km43WAMQPKL3-44vQrEQ61Hd_24IcFh_ChNXvUDqp39GzYlO3D0zlau4ozll8BeLUZrJwHTQWZS8XR-EifCl4MW5Y3Y1SxOLrIxnukCzQxL7aGmc&s=RDwaOfBt2crFCDxMzmgp2sh2rdlDaYsTWOxDiuwd2MGfgggn711QQj6g_xA3lTeArhksko7YQRk57FFQ8Xdet9l2s5nZAAxxC5iStzTd2jftG5wRhryCfj0c170jEd7s-g7oGIS4ukIuQYSgzmKPbObHzUTCQF7GSS1-dgQ4NvldiInjonH9G65UhZYxKDxaFNUngDP8AlL95TwduPbdjDe2nd8fBoZbgdPOlJEyulfOzbG6SG8VeLR8mmrvCLXKzueHz4w1f6UogTXkWDWZ8SQoaGdVcXRIPBzxTqW7fUu3rObvRYew0L3Ds8RaW9NWdZeKEvdWfN_j2_UoB7tHxQ&h=Smng_2XxXB6ddgVury2V_jXpAHF7SpHmYqBfD4NX0gE" ], "Retry-After": [ "15" ], "x-ms-request-id": [ - "8ee28199-0cfc-42ed-ac62-aefac9725a33" + "52594a4f-4313-44cd-a1a9-e2452733dc31" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -191,6 +191,9 @@ "X-Content-Type-Options": [ "nosniff" ], + "x-ms-operation-identifier": [ + "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=ac839cc2-33ee-4879-a5b5-2895202ccb29/westus2/e3424a1f-cfad-4a2b-b8d9-75ab54c3364c" + ], "x-ms-ratelimit-remaining-subscription-writes": [ "799" ], @@ -198,19 +201,19 @@ "11999" ], "x-ms-correlation-request-id": [ - "58cdad1b-89a2-4ffc-ab3d-c7bb30f44df2" + "6b1a0d22-dafd-482b-9786-19463c3722b3" ], "x-ms-routing-request-id": [ - "EASTUS:20241113T211711Z:58cdad1b-89a2-4ffc-ab3d-c7bb30f44df2" + "WESTUS2:20250911T204627Z:6b1a0d22-dafd-482b-9786-19463c3722b3" ], "X-Cache": [ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: 59B52BA1C55E4E4D827BC702A84117AF Ref B: MNZ221060618031 Ref C: 2024-11-13T21:17:08Z" + "Ref A: 61D5EBACA96D44ADB77D5D36697E0313 Ref B: MWH011020809034 Ref C: 2025-09-11T20:46:25Z" ], "Date": [ - "Wed, 13 Nov 2024 21:17:10 GMT" + "Thu, 11 Sep 2025 20:46:26 GMT" ], "Expires": [ "-1" @@ -223,18 +226,18 @@ "StatusCode": 202 }, { - "RequestUri": "/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/ps8409/providers/Microsoft.Batch/batchAccounts/ps239/operationResults/8ee28199-0cfc-42ed-ac62-aefac9725a33?api-version=2022-10-01&t=638671294312444228&c=MIIHhzCCBm-gAwIBAgITHgVqhF9GOoUjuyqQWAAABWqEXzANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDYwHhcNMjQwOTIwMjMxMTQxWhcNMjUwMzE5MjMxMTQxWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKRtcYDBXS7zz5tRtvVyhrUAjudYhej1E2D3dp6XWuPdbVMbQZwMlye8vdT-kDhFD7T2mrdWqsoGnTGk0_xOHBfLGnW-0QRUqpeoTNIhu8vc2CfTUtm2t2s_-fzvFtRyhDA4mfCH1cz92EVj0vd3FD4ikW6bdOp1NkYFqUVBhKlbvJk6y-TbLFBLP5Zx4m0Ua-_P7aMzbgvOJgMOTC2jLs5w_lFDJWeP3IKUOiJmrfLpf4ey5Ov94oCE6YncDBSHJZKWcrSxDHgSz9AXrxarL4HLajGbF3MRvfkMN2gNXCoiJXBEqCLDnyQZ0BgXIvuK7vG8Rj0TyhJNj-QPr8taY6UCAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAyLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA2LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MB0GA1UdDgQWBBRKlJQpFyyZKSchkTlshetYOUX7xzAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBTxRmjG8cPwKy19i2rhsvm-NfzRQTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAG0WbzLPsmSSMI7aTe2npixmkdCmwcdZHGd43tUnB8JKrLNJEFcBsQmbcIH0adpnQNrDgRkNBBOTZ4s1LIBlRQapZpPsRItAMUguVpGVRH08T0i43w9xrp_clNbAJrrfRbmYroF0WJKMJ0nwW2rPjxdevSRygGK_nEfywwFi-p1RhHnkiEGL4GnP7PpQcRvAYMdH9LO5MRY7iLbBmosKatS_eWtSJD1CvzglNwy_vQzx81Vnk0CgndqXcVq-loGu7R4U7mkQ2NNqLbp447STxkpP-6Mdyv8J4bdnf1s3vFBNpgvJWKogWcNLlo8jnkbEf6RPNGe1W5lma7JwMKAcPzY&s=fobw69ObD_mK11qwruYMqb5kp0pIX_uLq-G_nOGsjtyFXWLttFtxgKqeNnR0J2y85ZHRX_ZwU631hzHalXQHOPJ8VhIjinF5lN--iEAd1hoAifx4VgY--r7kmSqf5NBeGYv9JHpB4L0htctwbfuv2aRubtKyLbC_HjIJr0ejP4EXKvkvXt38XBxNULH9eCQ8IZZ8YluLRQN4arnZ5qtHFEBfokdIaMhTQ1oQBZxQtlqoiiT7XvXUpyY3Mq9YXgBktrhGNG4WUj4_3_8W9ntOcHlgr51_i7f9x7FD4MrIbBrelmb-OvPfefp07QuQKOBgwCnoorFm7SuX_6vFDjC_Ag&h=aVqBe8_rdFMLToXFj63gWk0WGGRQsxMX8Pg7mx1eB_0", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjFhYmQ2NzgtMThjNS00NjYwLTlmZGQtOGM1YmE2YjZmZTFmL3Jlc291cmNlR3JvdXBzL3BzODQwOS9wcm92aWRlcnMvTWljcm9zb2Z0LkJhdGNoL2JhdGNoQWNjb3VudHMvcHMyMzkvb3BlcmF0aW9uUmVzdWx0cy84ZWUyODE5OS0wY2ZjLTQyZWQtYWM2Mi1hZWZhYzk3MjVhMzM/YXBpLXZlcnNpb249MjAyMi0xMC0wMSZ0PTYzODY3MTI5NDMxMjQ0NDIyOCZjPU1JSUhoekNDQm0tZ0F3SUJBZ0lUSGdWcWhGOUdPb1VqdXlxUVdBQUFCV3FFWHpBTkJna3Foa2lHOXcwQkFRc0ZBREJFTVJNd0VRWUtDWkltaVpQeUxHUUJHUllEUjBKTU1STXdFUVlLQ1pJbWlaUHlMR1FCR1JZRFFVMUZNUmd3RmdZRFZRUURFdzlCVFVVZ1NXNW1jbUVnUTBFZ01EWXdIaGNOTWpRd09USXdNak14TVRReFdoY05NalV3TXpFNU1qTXhNVFF4V2pCQU1UNHdQQVlEVlFRREV6VmhjM2x1WTI5d1pYSmhkR2x2Ym5OcFoyNXBibWRqWlhKMGFXWnBZMkYwWlM1dFlXNWhaMlZ0Wlc1MExtRjZkWEpsTG1OdmJUQ0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQUtSdGNZREJYUzd6ejV0UnR2VnloclVBanVkWWhlajFFMkQzZHA2WFd1UGRiVk1iUVp3TWx5ZTh2ZFQta0RoRkQ3VDJtcmRXcXNvR25UR2swX3hPSEJmTEduVy0wUVJVcXBlb1ROSWh1OHZjMkNmVFV0bTJ0MnNfLWZ6dkZ0UnloREE0bWZDSDFjejkyRVZqMHZkM0ZENGlrVzZiZE9wMU5rWUZxVVZCaEtsYnZKazZ5LVRiTEZCTFA1Wng0bTBVYS1fUDdhTXpiZ3ZPSmdNT1RDMmpMczV3X2xGREpXZVAzSUtVT2lKbXJmTHBmNGV5NU92OTRvQ0U2WW5jREJTSEpaS1djclN4REhnU3o5QVhyeGFyTDRITGFqR2JGM01SdmZrTU4yZ05YQ29pSlhCRXFDTERueVFaMEJnWEl2dUs3dkc4UmowVHloSk5qLVFQcjh0YVk2VUNBd0VBQWFPQ0JIUXdnZ1J3TUNjR0NTc0dBUVFCZ2pjVkNnUWFNQmd3Q2dZSUt3WUJCUVVIQXdFd0NnWUlLd1lCQlFVSEF3SXdQUVlKS3dZQkJBR0NOeFVIQkRBd0xnWW1Ld1lCQkFHQ054VUlocERqRFlUVnRIaUU4WXMtaFp2ZEZzNmRFb0ZnaGZtUlM0V3NtVFFDQVdRQ0FRY3dnZ0hMQmdnckJnRUZCUWNCQVFTQ0FiMHdnZ0c1TUdNR0NDc0dBUVVGQnpBQ2hsZG9kSFJ3T2k4dlkzSnNMbTFwWTNKdmMyOW1kQzVqYjIwdmNHdHBhVzVtY21FdlEyVnlkSE12UWt3eVVFdEpTVTVVUTBFd01pNUJUVVV1UjBKTVgwRk5SU1V5TUVsdVpuSmhKVEl3UTBFbE1qQXdOaTVqY25Rd1V3WUlLd1lCQlFVSE1BS0dSMmgwZEhBNkx5OWpjbXd4TG1GdFpTNW5ZbXd2WVdsaEwwSk1NbEJMU1VsT1ZFTkJNREl1UVUxRkxrZENURjlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURZdVkzSjBNRk1HQ0NzR0FRVUZCekFDaGtkb2RIUndPaTh2WTNKc01pNWhiV1V1WjJKc0wyRnBZUzlDVERKUVMwbEpUbFJEUVRBeUxrRk5SUzVIUWt4ZlFVMUZKVEl3U1c1bWNtRWxNakJEUVNVeU1EQTJMbU55ZERCVEJnZ3JCZ0VGQlFjd0FvWkhhSFIwY0RvdkwyTnliRE11WVcxbExtZGliQzloYVdFdlFrd3lVRXRKU1U1VVEwRXdNaTVCVFVVdVIwSk1YMEZOUlNVeU1FbHVabkpoSlRJd1EwRWxNakF3Tmk1amNuUXdVd1lJS3dZQkJRVUhNQUtHUjJoMGRIQTZMeTlqY213MExtRnRaUzVuWW13dllXbGhMMEpNTWxCTFNVbE9WRU5CTURJdVFVMUZMa2RDVEY5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01EWXVZM0owTUIwR0ExVWREZ1FXQkJSS2xKUXBGeXlaS1NjaGtUbHNoZXRZT1VYN3h6QU9CZ05WSFE4QkFmOEVCQU1DQmFBd2dnRW1CZ05WSFI4RWdnRWRNSUlCR1RDQ0FSV2dnZ0VSb0lJQkRZWV9hSFIwY0RvdkwyTnliQzV0YVdOeWIzTnZablF1WTI5dEwzQnJhV2x1Wm5KaEwwTlNUQzlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURZdVkzSnNoakZvZEhSd09pOHZZM0pzTVM1aGJXVXVaMkpzTDJOeWJDOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFl1WTNKc2hqRm9kSFJ3T2k4dlkzSnNNaTVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01EWXVZM0pzaGpGb2RIUndPaTh2WTNKc015NWhiV1V1WjJKc0wyTnliQzlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURZdVkzSnNoakZvZEhSd09pOHZZM0pzTkM1aGJXVXVaMkpzTDJOeWJDOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFl1WTNKc01JR2RCZ05WSFNBRWdaVXdnWkl3REFZS0t3WUJCQUdDTjNzQkFUQm1CZ29yQmdFRUFZSTNld0lDTUZnd1ZnWUlLd1lCQlFVSEFnSXdTaDVJQURNQU13QmxBREFBTVFBNUFESUFNUUF0QURRQVpBQTJBRFFBTFFBMEFHWUFPQUJqQUMwQVlRQXdBRFVBTlFBdEFEVUFZZ0JrQUdFQVpnQm1BR1FBTlFCbEFETUFNd0JrTUF3R0Npc0dBUVFCZ2pkN0F3RXdEQVlLS3dZQkJBR0NOM3NFQWpBZkJnTlZIU01FR0RBV2dCVHhSbWpHOGNQd0t5MTlpMnJoc3ZtLU5melJRVEFkQmdOVkhTVUVGakFVQmdnckJnRUZCUWNEQVFZSUt3WUJCUVVIQXdJd0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dFQkFHMFdiekxQc21TU01JN2FUZTJucGl4bWtkQ213Y2RaSEdkNDN0VW5COEpLckxOSkVGY0JzUW1iY0lIMGFkcG5RTnJEZ1JrTkJCT1RaNHMxTElCbFJRYXBacFBzUkl0QU1VZ3VWcEdWUkgwOFQwaTQzdzl4cnBfY2xOYkFKcnJmUmJtWXJvRjBXSktNSjBud1cyclBqeGRldlNSeWdHS19uRWZ5d3dGaS1wMVJoSG5raUVHTDRHblA3UHBRY1J2QVlNZEg5TE81TVJZN2lMYkJtb3NLYXRTX2VXdFNKRDFDdnpnbE53eV92UXp4ODFWbmswQ2duZHFYY1ZxLWxvR3U3UjRVN21rUTJOTnFMYnA0NDdTVHhrcFAtNk1keXY4SjRiZG5mMXMzdkZCTnBndkpXS29nV2NOTGxvOGpua2JFZjZSUE5HZTFXNWxtYTdKd01LQWNQelkmcz1mb2J3NjlPYkRfbUsxMXF3cnVZTXFiNWtwMHBJWF91THEtR19uT0dzanR5RlhXTHR0RnR4Z0txZU5uUjBKMnk4NVpIUlhfWndVNjMxaHpIYWxYUUhPUEo4VmhJamluRjVsTi0taUVBZDFob0FpZng0VmdZLS1yN2ttU3FmNU5CZUdZdjlKSHBCNEwwaHRjdHdiZnV2MmFSdWJ0S3lMYkNfSGpJSnIwZWpQNEVYS3Zrdlh0MzhYQnhOVUxIOWVDUThJWlo4WWx1TFJRTjRhcm5aNXF0SEZFQmZva2RJYU1oVFExb1FCWnhRdGxxb2lpVDdYdlhVcHlZM01xOVlYZ0JrdHJoR05HNFdVajRfM184VzludE9jSGxncjUxX2k3Zjl4N0ZENE1ySWJCcmVsbWItT3ZQZmVmcDA3UXVRS09CZ3dDbm9vckZtN1N1WF82dkZEakNfQWcmaD1hVnFCZThfcmRGTUxUb1hGajYzZ1drMFdHR1JRc3hNWDhQZzdteDFlQl8w", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps2521/providers/Microsoft.Batch/batchAccounts/ps3606/operationResults/52594a4f-4313-44cd-a1a9-e2452733dc31?api-version=2023-05-01&t=638932203870748989&c=MIIIpTCCBo2gAwIBAgITFgGsmnj73LBE7PaBtQABAayaeDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDMwHhcNMjUwNzE4MTIwNDI4WhcNMjYwMTE0MTIwNDI4WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKYwXiklImL5-WfPWj2FX3_Y-JxCd3XXEOuNXx5ggHubZZamujLTqEBSFsFYiH_9NCaqKTiATXu6fBpzW3ghgYhwr0PL071fQT15KnnNUFjd5hFXB7SYti9IwWu1lxSAz-De7HivujKdlsgcmfoV6upRQ0eva9e74EwLV9pCn4WQAhs-6T8p0CytQsi81qHMWybAbNvfom0ox78IEWdS_6g_d4Jl_I4ccYLMyRTOV2NioM96cRECWCZhbpLl1zwoYGSbU5H0MZaiCBjPlhXN40BqagpamZfP98sPYSBfreh6-iMGU5tNTRkh8RiJqzjhzIUpEv3PqLtWTyPUB8JS7aUCAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9BTTNQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAzKDEpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MB0GA1UdDgQWBBTxzPCXgPzIUiTz94us0y0CCMf8BzAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBRIo61gdWpv7GDzaVXRALEyV_xs5DAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggIBAAqNK9Ejzdnb9L4TyakCpJByRYVTN_6nCGbtUd2E2sELjuJGRGiRmujp_jqNyIofO_ghSaP_tqH-3WRTRUbnt5xM8aBYoYJSOgKgTsNrB6clspdhCCmzhJy6EQuOqfUDm3C7hDru1_bN3DwXt3VpDqfuYtM3MAabKg0oCYVWgFwnAKYmZLZMWMQh7k_hZxy1gOCQmE9U08tf_pU21aI0El6n5A5uG2FT0placwchheFmXAtoPjT7nU53HVmRissxUR_vRCDj_ZCFo3K3nZNXCQOKPAMc9-LC0prb9Slg6siKtSHB3iGjNQlT9-nbSnDgifI8zC1cvT8CdaNLOmUywRIB4wvRn1z123NuyfJaIz95igW9P189vBTJEZREF-MgJEboWKdlGNn6bbBtu0waqAmUU7WVLeZKdtUI6EEKF7wRGYuY_BhZx1ipyXnBHZpsufuH4AwgOO289QKmqg8QAy7HFD9c8H8fNCtR7sTZ4YNP2AhEaES0rkMSQUCNVEz42YEBi2GgrSpnI94SPdb3J3PkCMZ4OgFRjztLO7nrgbPtflhSOo_VOE0_7Y74km43WAMQPKL3-44vQrEQ61Hd_24IcFh_ChNXvUDqp39GzYlO3D0zlau4ozll8BeLUZrJwHTQWZS8XR-EifCl4MW5Y3Y1SxOLrIxnukCzQxL7aGmc&s=RDwaOfBt2crFCDxMzmgp2sh2rdlDaYsTWOxDiuwd2MGfgggn711QQj6g_xA3lTeArhksko7YQRk57FFQ8Xdet9l2s5nZAAxxC5iStzTd2jftG5wRhryCfj0c170jEd7s-g7oGIS4ukIuQYSgzmKPbObHzUTCQF7GSS1-dgQ4NvldiInjonH9G65UhZYxKDxaFNUngDP8AlL95TwduPbdjDe2nd8fBoZbgdPOlJEyulfOzbG6SG8VeLR8mmrvCLXKzueHz4w1f6UogTXkWDWZ8SQoaGdVcXRIPBzxTqW7fUu3rObvRYew0L3Ds8RaW9NWdZeKEvdWfN_j2_UoB7tHxQ&h=Smng_2XxXB6ddgVury2V_jXpAHF7SpHmYqBfD4NX0gE", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL3BzMjUyMS9wcm92aWRlcnMvTWljcm9zb2Z0LkJhdGNoL2JhdGNoQWNjb3VudHMvcHMzNjA2L29wZXJhdGlvblJlc3VsdHMvNTI1OTRhNGYtNDMxMy00NGNkLWExYTktZTI0NTI3MzNkYzMxP2FwaS12ZXJzaW9uPTIwMjMtMDUtMDEmdD02Mzg5MzIyMDM4NzA3NDg5ODkmYz1NSUlJcFRDQ0JvMmdBd0lCQWdJVEZnR3Ntbmo3M0xCRTdQYUJ0UUFCQWF5YWVEQU5CZ2txaGtpRzl3MEJBUXNGQURCRU1STXdFUVlLQ1pJbWlaUHlMR1FCR1JZRFIwSk1NUk13RVFZS0NaSW1pWlB5TEdRQkdSWURRVTFGTVJnd0ZnWURWUVFERXc5QlRVVWdTVzVtY21FZ1EwRWdNRE13SGhjTk1qVXdOekU0TVRJd05ESTRXaGNOTWpZd01URTBNVEl3TkRJNFdqQkFNVDR3UEFZRFZRUURFelZoYzNsdVkyOXdaWEpoZEdsdmJuTnBaMjVwYm1kalpYSjBhV1pwWTJGMFpTNXRZVzVoWjJWdFpXNTBMbUY2ZFhKbExtTnZiVENDQVNJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dFUEFEQ0NBUW9DZ2dFQkFLWXdYaWtsSW1MNS1XZlBXajJGWDNfWS1KeENkM1hYRU91Tlh4NWdnSHViWlphbXVqTFRxRUJTRnNGWWlIXzlOQ2FxS1RpQVRYdTZmQnB6VzNnaGdZaHdyMFBMMDcxZlFUMTVLbm5OVUZqZDVoRlhCN1NZdGk5SXdXdTFseFNBei1EZTdIaXZ1aktkbHNnY21mb1Y2dXBSUTBldmE5ZTc0RXdMVjlwQ240V1FBaHMtNlQ4cDBDeXRRc2k4MXFITVd5YkFiTnZmb20wb3g3OElFV2RTXzZnX2Q0SmxfSTRjY1lMTXlSVE9WMk5pb005NmNSRUNXQ1poYnBMbDF6d29ZR1NiVTVIME1aYWlDQmpQbGhYTjQwQnFhZ3BhbVpmUDk4c1BZU0JmcmVoNi1pTUdVNXROVFJraDhSaUpxempoeklVcEV2M1BxTHRXVHlQVUI4SlM3YVVDQXdFQUFhT0NCSkl3Z2dTT01DY0dDU3NHQVFRQmdqY1ZDZ1FhTUJnd0NnWUlLd1lCQlFVSEF3RXdDZ1lJS3dZQkJRVUhBd0l3UFFZSkt3WUJCQUdDTnhVSEJEQXdMZ1ltS3dZQkJBR0NOeFVJaHBEakRZVFZ0SGlFOFlzLWhadmRGczZkRW9GZ2hmbVJTNFdzbVRRQ0FXUUNBUWN3Z2dIYUJnZ3JCZ0VGQlFjQkFRU0NBY3d3Z2dISU1HWUdDQ3NHQVFVRkJ6QUNobHBvZEhSd09pOHZZM0pzTG0xcFkzSnZjMjltZEM1amIyMHZjR3RwYVc1bWNtRXZRMlZ5ZEhNdlFVMHpVRXRKU1U1VVEwRXdNUzVCVFVVdVIwSk1YMEZOUlNVeU1FbHVabkpoSlRJd1EwRWxNakF3TXlneEtTNWpjblF3VmdZSUt3WUJCUVVITUFLR1NtaDBkSEE2THk5amNtd3hMbUZ0WlM1blltd3ZZV2xoTDBGTk0xQkxTVWxPVkVOQk1ERXVRVTFGTGtkQ1RGOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRE1vTVNrdVkzSjBNRllHQ0NzR0FRVUZCekFDaGtwb2RIUndPaTh2WTNKc01pNWhiV1V1WjJKc0wyRnBZUzlCVFROUVMwbEpUbFJEUVRBeExrRk5SUzVIUWt4ZlFVMUZKVEl3U1c1bWNtRWxNakJEUVNVeU1EQXpLREVwTG1OeWREQldCZ2dyQmdFRkJRY3dBb1pLYUhSMGNEb3ZMMk55YkRNdVlXMWxMbWRpYkM5aGFXRXZRVTB6VUV0SlNVNVVRMEV3TVM1QlRVVXVSMEpNWDBGTlJTVXlNRWx1Wm5KaEpUSXdRMEVsTWpBd015Z3hLUzVqY25Rd1ZnWUlLd1lCQlFVSE1BS0dTbWgwZEhBNkx5OWpjbXcwTG1GdFpTNW5ZbXd2WVdsaEwwRk5NMUJMU1VsT1ZFTkJNREV1UVUxRkxrZENURjlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURNb01Ta3VZM0owTUIwR0ExVWREZ1FXQkJUeHpQQ1hnUHpJVWlUejk0dXMweTBDQ01mOEJ6QU9CZ05WSFE4QkFmOEVCQU1DQmFBd2dnRTFCZ05WSFI4RWdnRXNNSUlCS0RDQ0FTU2dnZ0Vnb0lJQkhJWkNhSFIwY0RvdkwyTnliQzV0YVdOeWIzTnZablF1WTI5dEwzQnJhV2x1Wm5KaEwwTlNUQzlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURNb01Ta3VZM0pzaGpSb2RIUndPaTh2WTNKc01TNWhiV1V1WjJKc0wyTnliQzlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURNb01Ta3VZM0pzaGpSb2RIUndPaTh2WTNKc01pNWhiV1V1WjJKc0wyTnliQzlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURNb01Ta3VZM0pzaGpSb2RIUndPaTh2WTNKc015NWhiV1V1WjJKc0wyTnliQzlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURNb01Ta3VZM0pzaGpSb2RIUndPaTh2WTNKc05DNWhiV1V1WjJKc0wyTnliQzlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURNb01Ta3VZM0pzTUlHZEJnTlZIU0FFZ1pVd2daSXdEQVlLS3dZQkJBR0NOM3NCQVRCbUJnb3JCZ0VFQVlJM2V3SUNNRmd3VmdZSUt3WUJCUVVIQWdJd1NoNUlBRE1BTXdCbEFEQUFNUUE1QURJQU1RQXRBRFFBWkFBMkFEUUFMUUEwQUdZQU9BQmpBQzBBWVFBd0FEVUFOUUF0QURVQVlnQmtBR0VBWmdCbUFHUUFOUUJsQURNQU13QmtNQXdHQ2lzR0FRUUJnamQ3QXdJd0RBWUtLd1lCQkFHQ04zc0VBakFmQmdOVkhTTUVHREFXZ0JSSW82MWdkV3B2N0dEemFWWFJBTEV5Vl94czVEQWRCZ05WSFNVRUZqQVVCZ2dyQmdFRkJRY0RBUVlJS3dZQkJRVUhBd0l3RFFZSktvWklodmNOQVFFTEJRQURnZ0lCQUFxTks5RWp6ZG5iOUw0VHlha0NwSkJ5UllWVE5fNm5DR2J0VWQyRTJzRUxqdUpHUkdpUm11anBfanFOeUlvZk9fZ2hTYVBfdHFILTNXUlRSVWJudDV4TThhQllvWUpTT2dLZ1RzTnJCNmNsc3BkaENDbXpoSnk2RVF1T3FmVURtM0M3aERydTFfYk4zRHdYdDNWcERxZnVZdE0zTUFhYktnMG9DWVZXZ0Z3bkFLWW1aTFpNV01RaDdrX2haeHkxZ09DUW1FOVUwOHRmX3BVMjFhSTBFbDZuNUE1dUcyRlQwcGxhY3djaGhlRm1YQXRvUGpUN25VNTNIVm1SaXNzeFVSX3ZSQ0RqX1pDRm8zSzNuWk5YQ1FPS1BBTWM5LUxDMHByYjlTbGc2c2lLdFNIQjNpR2pOUWxUOS1uYlNuRGdpZkk4ekMxY3ZUOENkYU5MT21VeXdSSUI0d3ZSbjF6MTIzTnV5ZkphSXo5NWlnVzlQMTg5dkJUSkVaUkVGLU1nSkVib1dLZGxHTm42YmJCdHUwd2FxQW1VVTdXVkxlWktkdFVJNkVFS0Y3d1JHWXVZX0JoWngxaXB5WG5CSFpwc3VmdUg0QXdnT08yODlRS21xZzhRQXk3SEZEOWM4SDhmTkN0UjdzVFo0WU5QMkFoRWFFUzBya01TUVVDTlZFejQyWUVCaTJHZ3JTcG5JOTRTUGRiM0ozUGtDTVo0T2dGUmp6dExPN25yZ2JQdGZsaFNPb19WT0UwXzdZNzRrbTQzV0FNUVBLTDMtNDR2UXJFUTYxSGRfMjRJY0ZoX0NoTlh2VURxcDM5R3pZbE8zRDB6bGF1NG96bGw4QmVMVVpySndIVFFXWlM4WFItRWlmQ2w0TVc1WTNZMVN4T0xySXhudWtDelF4TDdhR21jJnM9UkR3YU9mQnQyY3JGQ0R4TXptZ3Ayc2gycmRsRGFZc1RXT3hEaXV3ZDJNR2ZnZ2duNzExUVFqNmdfeEEzbFRlQXJoa3NrbzdZUVJrNTdGRlE4WGRldDlsMnM1blpBQXh4QzVpU3R6VGQyamZ0RzV3UmhyeUNmajBjMTcwakVkN3MtZzdvR0lTNHVrSXVRWVNnem1LUGJPYkh6VVRDUUY3R1NTMS1kZ1E0TnZsZGlJbmpvbkg5RzY1VWhaWXhLRHhhRk5VbmdEUDhBbEw5NVR3ZHVQYmRqRGUybmQ4ZkJvWmJnZFBPbEpFeXVsZk96Ykc2U0c4VmVMUjhtbXJ2Q0xYS3p1ZUh6NHcxZjZVb2dUWGtXRFdaOFNRb2FHZFZjWFJJUEJ6eFRxVzdmVXUzck9idlJZZXcwTDNEczhSYVc5TldkWmVLRXZkV2ZOX2oyX1VvQjd0SHhRJmg9U21uZ18yWHhYQjZkZGdWdXJ5MlZfalhwQUhGN1NwSG1ZcUJmRDROWDBnRQ==", "RequestMethod": "GET", "RequestHeaders": { "x-ms-client-request-id": [ - "9fc8e99c-29e7-40ec-bd88-8b382579601b" + "d97ea70e-3295-4148-9a8c-7a4bc41a4411" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Management.Batch.BatchManagementClient/3.6.4" + "OSVersion/Microsoft.Windows.10.0.26100", + "Microsoft.Azure.Management.Batch.BatchManagementClient/3.7.0" ] }, "RequestBody": "", @@ -246,10 +249,10 @@ "no-cache" ], "ETag": [ - "\"0x8DD042892F4AA83\"" + "\"0x8DDF174505366A5\"" ], "x-ms-request-id": [ - "a665737a-1cc4-4ad2-b63b-05f867628f82" + "01c6ce7e-e2d0-4d2c-888a-615167f20406" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -257,6 +260,9 @@ "X-Content-Type-Options": [ "nosniff" ], + "x-ms-operation-identifier": [ + "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=ac839cc2-33ee-4879-a5b5-2895202ccb29/westus2/08e30b87-8ee9-46e1-8f47-86db9d38d3e8" + ], "x-ms-ratelimit-remaining-subscription-reads": [ "1099" ], @@ -264,22 +270,22 @@ "16499" ], "x-ms-correlation-request-id": [ - "17b1b338-b8ae-48c1-9d45-d3056da0ff9f" + "3b25e508-30d2-4fe9-9f87-d6a68655891f" ], "x-ms-routing-request-id": [ - "EASTUS:20241113T211726Z:17b1b338-b8ae-48c1-9d45-d3056da0ff9f" + "WESTUS2:20250911T204642Z:3b25e508-30d2-4fe9-9f87-d6a68655891f" ], "X-Cache": [ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: 588922E225F9402983D5BBDF45001DC3 Ref B: MNZ221060618031 Ref C: 2024-11-13T21:17:26Z" + "Ref A: 0BC01022E84440E9A173DF4FB72215A3 Ref B: MWH011020809034 Ref C: 2025-09-11T20:46:42Z" ], "Date": [ - "Wed, 13 Nov 2024 21:17:25 GMT" + "Thu, 11 Sep 2025 20:46:41 GMT" ], "Content-Length": [ - "4218" + "4900" ], "Content-Type": [ "application/json; charset=utf-8" @@ -288,28 +294,28 @@ "-1" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:17:26 GMT" + "Thu, 11 Sep 2025 20:46:42 GMT" ] }, - "ResponseBody": "{\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/ps8409/providers/Microsoft.Batch/batchAccounts/ps239\",\r\n \"name\": \"ps239\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"westus2\",\r\n \"properties\": {\r\n \"accountEndpoint\": \"ps239.westus2.batch.azure.com\",\r\n \"nodeManagementEndpoint\": \"4704d2cf-6179-4689-9b5a-d23d4847951d.westus2.service.batch.azure.com\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"dedicatedCoreQuota\": 0,\r\n \"dedicatedCoreQuotaPerVMFamily\": [\r\n {\r\n \"name\": \"standardAv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardESv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardA0_A7Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardA8_A11Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardGFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"basicAFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVPromoFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCPromoFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHPromoFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardMSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardGSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNDSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHCSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBrsv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDAv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDASv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEAv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEASv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardMSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEIv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"Standard NCASv3_T4 Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardXEIDSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"Standard NDASv4_A100 Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standard NDAMSv4_A100Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDCSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNPSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFXMDVSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCADSA100v4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDADSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEADSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardNVADSA10v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEBDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHXFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLASv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCADSH100v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNGADSV620v1Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNDMI300Xv5IBFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCCadsH100v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardECasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardECadsv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDCasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDCadsv5Family\",\r\n \"coreQuota\": 0\r\n }\r\n ],\r\n \"dedicatedCoreQuotaPerVMFamilyEnforced\": true,\r\n \"lowPriorityCoreQuota\": 0,\r\n \"poolQuota\": 100,\r\n \"activeJobAndJobScheduleQuota\": 300,\r\n \"poolAllocationMode\": \"BatchService\",\r\n \"publicNetworkAccess\": \"Enabled\",\r\n \"privateEndpointConnections\": [],\r\n \"encryption\": {\r\n \"keySource\": \"Microsoft.Batch\"\r\n },\r\n \"allowedAuthenticationModes\": [\r\n \"SharedKey\",\r\n \"AAD\",\r\n \"TaskAuthenticationToken\"\r\n ]\r\n },\r\n \"identity\": {\r\n \"principalId\": \"70072bd6-b42f-4396-a759-03fbbc2f1b76\",\r\n \"tenantId\": \"72f988bf-86f1-41af-91ab-2d7cd011db47\",\r\n \"type\": \"SystemAssigned\"\r\n }\r\n}", + "ResponseBody": "{\r\n \"id\": \"/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps2521/providers/Microsoft.Batch/batchAccounts/ps3606\",\r\n \"name\": \"ps3606\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"westus2\",\r\n \"properties\": {\r\n \"accountEndpoint\": \"ps3606.westus2.batch.azure.com\",\r\n \"nodeManagementEndpoint\": \"51b355e9-44b7-4463-b7f9-f850ea2c85a3.westus2.service.batch.azure.com\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"dedicatedCoreQuota\": 0,\r\n \"dedicatedCoreQuotaPerVMFamily\": [\r\n {\r\n \"name\": \"standardAv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardESv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardA0_A7Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardA8_A11Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardGFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"basicAFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVPromoFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCPromoFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHPromoFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardMSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardGSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNDSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHCSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBrsv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDAv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDASv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEAv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEASv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardMSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEIv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"Standard NCASv3_T4 Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardXEIDSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"Standard NDASv4_A100 Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standard NDAMSv4_A100Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDCSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNPSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFXMDVSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCADSA100v4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDADSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEADSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardNVADSA10v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEBDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHXFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLASv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCADSH100v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNGADSV620v1Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNDMI300Xv5IBFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCCadsH100v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardECasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardECadsv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDCasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDCadsv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVadsV710v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDlsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardDasv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardDalsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardEsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEav6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardFasv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardFalsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardFamsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEiasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDasv5Family\",\r\n \"coreQuota\": 0\r\n }\r\n ],\r\n \"dedicatedCoreQuotaPerVMFamilyEnforced\": true,\r\n \"lowPriorityCoreQuota\": 0,\r\n \"poolQuota\": 100,\r\n \"activeJobAndJobScheduleQuota\": 300,\r\n \"poolAllocationMode\": \"BatchService\",\r\n \"publicNetworkAccess\": \"Enabled\",\r\n \"privateEndpointConnections\": [],\r\n \"encryption\": {\r\n \"keySource\": \"Microsoft.Batch\"\r\n },\r\n \"allowedAuthenticationModes\": [\r\n \"SharedKey\",\r\n \"AAD\",\r\n \"TaskAuthenticationToken\"\r\n ]\r\n },\r\n \"identity\": {\r\n \"principalId\": \"ecc97672-66f3-42ce-9f81-567f9d969cf9\",\r\n \"tenantId\": \"72f988bf-86f1-41af-91ab-2d7cd011db47\",\r\n \"type\": \"SystemAssigned\"\r\n }\r\n}", "StatusCode": 200 }, { - "RequestUri": "/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourcegroups/ps8409?api-version=2016-09-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjFhYmQ2NzgtMThjNS00NjYwLTlmZGQtOGM1YmE2YjZmZTFmL3Jlc291cmNlZ3JvdXBzL3BzODQwOT9hcGktdmVyc2lvbj0yMDE2LTA5LTAx", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourcegroups/ps2521?api-version=2016-09-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlZ3JvdXBzL3BzMjUyMT9hcGktdmVyc2lvbj0yMDE2LTA5LTAx", "RequestMethod": "DELETE", "RequestHeaders": { "x-ms-client-request-id": [ - "0198d575-630e-4b62-9f01-373cc2cd566d" + "e0577545-3da6-47b6-8a2d-f66636b2ac24" ], "Accept-Language": [ "en-US" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.102" + "OSVersion/Microsoft.Windows.10.0.26100", + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.109" ] }, "RequestBody": "", @@ -321,7 +327,7 @@ "no-cache" ], "Location": [ - "https://management.azure.com/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QUzg0MDktV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2016-09-01&t=638671294476683744&c=MIIHhzCCBm-gAwIBAgITHgVqhF9GOoUjuyqQWAAABWqEXzANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDYwHhcNMjQwOTIwMjMxMTQxWhcNMjUwMzE5MjMxMTQxWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKRtcYDBXS7zz5tRtvVyhrUAjudYhej1E2D3dp6XWuPdbVMbQZwMlye8vdT-kDhFD7T2mrdWqsoGnTGk0_xOHBfLGnW-0QRUqpeoTNIhu8vc2CfTUtm2t2s_-fzvFtRyhDA4mfCH1cz92EVj0vd3FD4ikW6bdOp1NkYFqUVBhKlbvJk6y-TbLFBLP5Zx4m0Ua-_P7aMzbgvOJgMOTC2jLs5w_lFDJWeP3IKUOiJmrfLpf4ey5Ov94oCE6YncDBSHJZKWcrSxDHgSz9AXrxarL4HLajGbF3MRvfkMN2gNXCoiJXBEqCLDnyQZ0BgXIvuK7vG8Rj0TyhJNj-QPr8taY6UCAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAyLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA2LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MB0GA1UdDgQWBBRKlJQpFyyZKSchkTlshetYOUX7xzAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBTxRmjG8cPwKy19i2rhsvm-NfzRQTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAG0WbzLPsmSSMI7aTe2npixmkdCmwcdZHGd43tUnB8JKrLNJEFcBsQmbcIH0adpnQNrDgRkNBBOTZ4s1LIBlRQapZpPsRItAMUguVpGVRH08T0i43w9xrp_clNbAJrrfRbmYroF0WJKMJ0nwW2rPjxdevSRygGK_nEfywwFi-p1RhHnkiEGL4GnP7PpQcRvAYMdH9LO5MRY7iLbBmosKatS_eWtSJD1CvzglNwy_vQzx81Vnk0CgndqXcVq-loGu7R4U7mkQ2NNqLbp447STxkpP-6Mdyv8J4bdnf1s3vFBNpgvJWKogWcNLlo8jnkbEf6RPNGe1W5lma7JwMKAcPzY&s=XoFwehFvZ6DU25V9wPSYMb1MjyAbBPDICq8IvFc1piUoVaJE21JvwsxZlk00J9wtQgZBtHNq7JmeDEkD810L1wS8bInynjpbobdwGzvsjLS3Ye4lA9hzXy2vk8XlqDLA1LNFUb9k9ggvyCQOvIu8VS4cg-f4RC4MJ-1C5XVCutR7-ZotBWiq9EtjUqkivHNMjxyaR2EFackTQ93C80h-DDkRWhN1FKCRnr-lrV4p3m0UkMPe24mgl-bjkQ5HcK4Nw3eWsigrbavdoBz2C0Em3Dhq3ZGzdtIX6JupGF1p5w1QmZKOe04FYghXbUUakc11rBMGqPm1g1Lg4JxVX8LhmQ&h=dxwcaMkXwyoZRmkmba15q-K2gMiJfVzuZ0kbnXLFuxM" + "https://management.azure.com/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QUzI1MjEtV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2016-09-01&t=638932204053251465&c=MIIHhzCCBm-gAwIBAgITfAiEqRZrgLhPwkUvfgAACISpFjANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDUwHhcNMjUwNzE5MTUxNTU3WhcNMjYwMTE1MTUxNTU3WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANo8JkuCSyYzxbK-6GTWYze3gfPX3W0gGXDNABI0DpWEhe9om3se5tziu1JvncajCytpTguwrHlK0rcquzbDXXvHhbsY73edSvO92c2ADuvWEnNdsmm_eToLFsXFZjZMhgj9jD_wnJ6L9KtxBHW6hwaA6YgFKE3lyA5TXmiyo15CLkHFj02CX4NB1cTIN15yGoCxLyB-Zr3jEH0xfMCQPYlmSTwuQvC4UWEndUzZd_Y-HLo959DU-Ug61g41JksM4dzdEHw2_Yew_EDtac3ERKzqVKC1GxTNXLELU_LFkPdkKBi-JGTX5MxlXWEAVL1gSKy4C0lslOvMVICJ0D5ZPTECAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9DTzFQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA1LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MB0GA1UdDgQWBBTHBRf8ZL9wY__HzSsEXGXuVL8aEDAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBR61hmFKHlscXYeYPjzS--iBUIWHTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAIsWwSMOlrjb5kZTgKGXSVnDyLsC7qm2NFBdhoNUtOxSB-TF88cKGPhwNx59_1_GhsNjXldjQVJ1seRL3Dxf55jqzfXeFBQAIHIRsR8-WJPTpZ3VtWewO_Qvh9h7Bd-gfA0pRXw3Hq4eRpBmAf7gfOki1W-7-m3cozATlPCkEWnBM4qRujLuiQX_Q3tfok25Wmnyq_KkG_0VC3JVUvJnkKpv1qRHWahwVo1wzWyJIoaxA7T0oOonf6ZN3j8AyT_VGFDRmvLuvakI8huZgSbjWvWFT6bx7NRTo6YHkHb5COr1PJTbhpDS-PSv5Ud3SFTnLAZyd3oRW-Lp3Fo6RFoNgBs&s=cQ6xj0rTtzmNAJ0_dAFlgZGF8aLzvXeeI7J5hmFZUwCzLYo1HHmIze9VAfZlD4Cy5YVu3f6rvUBP3igL2HVIOGK95it_41rAerpnGQQ5BMInjp15mKuP2pHNrZT-igjIhZ5wN_N4eLgc_ZwA6j_mXBFVXzaftCGvLOAUWZqU0aEgRSjjYOLiHZu154LjXjdbK_KBrMNOuxnBlJjdXExancxmmW7jkricI3HvFQQOcC9aM-QsTmtMGcBQc8A2QjniZ93LKfYrKRJWL9TI1q3PfQ26KJlVSlf2qPudGBRBvQ-WjiPg3v4dab_QgD_KRhdmPVE6xL07yUHA2J4L7Xu_8Q&h=B_LttPRLDIktNA0qEdmD6P8JDp6DruJ68vw88zxm7DY" ], "Retry-After": [ "15" @@ -333,13 +339,13 @@ "11999" ], "x-ms-request-id": [ - "a7f64aea-6a53-42ee-ad17-880a31437a29" + "079752d4-e4f6-43e6-a4d7-225e4d95a969" ], "x-ms-correlation-request-id": [ - "a7f64aea-6a53-42ee-ad17-880a31437a29" + "079752d4-e4f6-43e6-a4d7-225e4d95a969" ], "x-ms-routing-request-id": [ - "EASTUS:20241113T211727Z:a7f64aea-6a53-42ee-ad17-880a31437a29" + "AUSTRALIAEAST:20250911T204645Z:079752d4-e4f6-43e6-a4d7-225e4d95a969" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -351,10 +357,10 @@ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: F4772BE2E04F47CB99531E7FA730F972 Ref B: MNZ221060610029 Ref C: 2024-11-13T21:17:26Z" + "Ref A: 8DDA166316304D19AE8151D564AAE387 Ref B: MWH011020807042 Ref C: 2025-09-11T20:46:42Z" ], "Date": [ - "Wed, 13 Nov 2024 21:17:26 GMT" + "Thu, 11 Sep 2025 20:46:44 GMT" ], "Expires": [ "-1" @@ -367,15 +373,15 @@ "StatusCode": 202 }, { - "RequestUri": "/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QUzg0MDktV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2016-09-01&t=638671294476683744&c=MIIHhzCCBm-gAwIBAgITHgVqhF9GOoUjuyqQWAAABWqEXzANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDYwHhcNMjQwOTIwMjMxMTQxWhcNMjUwMzE5MjMxMTQxWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKRtcYDBXS7zz5tRtvVyhrUAjudYhej1E2D3dp6XWuPdbVMbQZwMlye8vdT-kDhFD7T2mrdWqsoGnTGk0_xOHBfLGnW-0QRUqpeoTNIhu8vc2CfTUtm2t2s_-fzvFtRyhDA4mfCH1cz92EVj0vd3FD4ikW6bdOp1NkYFqUVBhKlbvJk6y-TbLFBLP5Zx4m0Ua-_P7aMzbgvOJgMOTC2jLs5w_lFDJWeP3IKUOiJmrfLpf4ey5Ov94oCE6YncDBSHJZKWcrSxDHgSz9AXrxarL4HLajGbF3MRvfkMN2gNXCoiJXBEqCLDnyQZ0BgXIvuK7vG8Rj0TyhJNj-QPr8taY6UCAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAyLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA2LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MB0GA1UdDgQWBBRKlJQpFyyZKSchkTlshetYOUX7xzAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBTxRmjG8cPwKy19i2rhsvm-NfzRQTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAG0WbzLPsmSSMI7aTe2npixmkdCmwcdZHGd43tUnB8JKrLNJEFcBsQmbcIH0adpnQNrDgRkNBBOTZ4s1LIBlRQapZpPsRItAMUguVpGVRH08T0i43w9xrp_clNbAJrrfRbmYroF0WJKMJ0nwW2rPjxdevSRygGK_nEfywwFi-p1RhHnkiEGL4GnP7PpQcRvAYMdH9LO5MRY7iLbBmosKatS_eWtSJD1CvzglNwy_vQzx81Vnk0CgndqXcVq-loGu7R4U7mkQ2NNqLbp447STxkpP-6Mdyv8J4bdnf1s3vFBNpgvJWKogWcNLlo8jnkbEf6RPNGe1W5lma7JwMKAcPzY&s=XoFwehFvZ6DU25V9wPSYMb1MjyAbBPDICq8IvFc1piUoVaJE21JvwsxZlk00J9wtQgZBtHNq7JmeDEkD810L1wS8bInynjpbobdwGzvsjLS3Ye4lA9hzXy2vk8XlqDLA1LNFUb9k9ggvyCQOvIu8VS4cg-f4RC4MJ-1C5XVCutR7-ZotBWiq9EtjUqkivHNMjxyaR2EFackTQ93C80h-DDkRWhN1FKCRnr-lrV4p3m0UkMPe24mgl-bjkQ5HcK4Nw3eWsigrbavdoBz2C0Em3Dhq3ZGzdtIX6JupGF1p5w1QmZKOe04FYghXbUUakc11rBMGqPm1g1Lg4JxVX8LhmQ&h=dxwcaMkXwyoZRmkmba15q-K2gMiJfVzuZ0kbnXLFuxM", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjFhYmQ2NzgtMThjNS00NjYwLTlmZGQtOGM1YmE2YjZmZTFmL29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVXpnME1Ea3RWMFZUVkZWVE1pSXNJbXB2WWt4dlkyRjBhVzl1SWpvaWQyVnpkSFZ6TWlKOT9hcGktdmVyc2lvbj0yMDE2LTA5LTAxJnQ9NjM4NjcxMjk0NDc2NjgzNzQ0JmM9TUlJSGh6Q0NCbS1nQXdJQkFnSVRIZ1ZxaEY5R09vVWp1eXFRV0FBQUJXcUVYekFOQmdrcWhraUc5dzBCQVFzRkFEQkVNUk13RVFZS0NaSW1pWlB5TEdRQkdSWURSMEpNTVJNd0VRWUtDWkltaVpQeUxHUUJHUllEUVUxRk1SZ3dGZ1lEVlFRREV3OUJUVVVnU1c1bWNtRWdRMEVnTURZd0hoY05NalF3T1RJd01qTXhNVFF4V2hjTk1qVXdNekU1TWpNeE1UUXhXakJBTVQ0d1BBWURWUVFERXpWaGMzbHVZMjl3WlhKaGRHbHZibk5wWjI1cGJtZGpaWEowYVdacFkyRjBaUzV0WVc1aFoyVnRaVzUwTG1GNmRYSmxMbU52YlRDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBS1J0Y1lEQlhTN3p6NXRSdHZWeWhyVUFqdWRZaGVqMUUyRDNkcDZYV3VQZGJWTWJRWndNbHllOHZkVC1rRGhGRDdUMm1yZFdxc29HblRHazBfeE9IQmZMR25XLTBRUlVxcGVvVE5JaHU4dmMyQ2ZUVXRtMnQyc18tZnp2RnRSeWhEQTRtZkNIMWN6OTJFVmowdmQzRkQ0aWtXNmJkT3AxTmtZRnFVVkJoS2xidkprNnktVGJMRkJMUDVaeDRtMFVhLV9QN2FNemJndk9KZ01PVEMyakxzNXdfbEZESldlUDNJS1VPaUptcmZMcGY0ZXk1T3Y5NG9DRTZZbmNEQlNISlpLV2NyU3hESGdTejlBWHJ4YXJMNEhMYWpHYkYzTVJ2ZmtNTjJnTlhDb2lKWEJFcUNMRG55UVowQmdYSXZ1Szd2RzhSajBUeWhKTmotUVByOHRhWTZVQ0F3RUFBYU9DQkhRd2dnUndNQ2NHQ1NzR0FRUUJnamNWQ2dRYU1CZ3dDZ1lJS3dZQkJRVUhBd0V3Q2dZSUt3WUJCUVVIQXdJd1BRWUpLd1lCQkFHQ054VUhCREF3TGdZbUt3WUJCQUdDTnhVSWhwRGpEWVRWdEhpRThZcy1oWnZkRnM2ZEVvRmdoZm1SUzRXc21UUUNBV1FDQVFjd2dnSExCZ2dyQmdFRkJRY0JBUVNDQWIwd2dnRzVNR01HQ0NzR0FRVUZCekFDaGxkb2RIUndPaTh2WTNKc0xtMXBZM0p2YzI5bWRDNWpiMjB2Y0d0cGFXNW1jbUV2UTJWeWRITXZRa3d5VUV0SlNVNVVRMEV3TWk1QlRVVXVSMEpNWDBGTlJTVXlNRWx1Wm5KaEpUSXdRMEVsTWpBd05pNWpjblF3VXdZSUt3WUJCUVVITUFLR1IyaDBkSEE2THk5amNtd3hMbUZ0WlM1blltd3ZZV2xoTDBKTU1sQkxTVWxPVkVOQk1ESXVRVTFGTGtkQ1RGOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFl1WTNKME1GTUdDQ3NHQVFVRkJ6QUNoa2RvZEhSd09pOHZZM0pzTWk1aGJXVXVaMkpzTDJGcFlTOUNUREpRUzBsSlRsUkRRVEF5TGtGTlJTNUhRa3hmUVUxRkpUSXdTVzVtY21FbE1qQkRRU1V5TURBMkxtTnlkREJUQmdnckJnRUZCUWN3QW9aSGFIUjBjRG92TDJOeWJETXVZVzFsTG1kaWJDOWhhV0V2UWt3eVVFdEpTVTVVUTBFd01pNUJUVVV1UjBKTVgwRk5SU1V5TUVsdVpuSmhKVEl3UTBFbE1qQXdOaTVqY25Rd1V3WUlLd1lCQlFVSE1BS0dSMmgwZEhBNkx5OWpjbXcwTG1GdFpTNW5ZbXd2WVdsaEwwSk1NbEJMU1VsT1ZFTkJNREl1UVUxRkxrZENURjlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURZdVkzSjBNQjBHQTFVZERnUVdCQlJLbEpRcEZ5eVpLU2Noa1Rsc2hldFlPVVg3eHpBT0JnTlZIUThCQWY4RUJBTUNCYUF3Z2dFbUJnTlZIUjhFZ2dFZE1JSUJHVENDQVJXZ2dnRVJvSUlCRFlZX2FIUjBjRG92TDJOeWJDNXRhV055YjNOdlpuUXVZMjl0TDNCcmFXbHVabkpoTDBOU1RDOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFl1WTNKc2hqRm9kSFJ3T2k4dlkzSnNNUzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01EWXVZM0pzaGpGb2RIUndPaTh2WTNKc01pNWhiV1V1WjJKc0wyTnliQzlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURZdVkzSnNoakZvZEhSd09pOHZZM0pzTXk1aGJXVXVaMkpzTDJOeWJDOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFl1WTNKc2hqRm9kSFJ3T2k4dlkzSnNOQzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01EWXVZM0pzTUlHZEJnTlZIU0FFZ1pVd2daSXdEQVlLS3dZQkJBR0NOM3NCQVRCbUJnb3JCZ0VFQVlJM2V3SUNNRmd3VmdZSUt3WUJCUVVIQWdJd1NoNUlBRE1BTXdCbEFEQUFNUUE1QURJQU1RQXRBRFFBWkFBMkFEUUFMUUEwQUdZQU9BQmpBQzBBWVFBd0FEVUFOUUF0QURVQVlnQmtBR0VBWmdCbUFHUUFOUUJsQURNQU13QmtNQXdHQ2lzR0FRUUJnamQ3QXdFd0RBWUtLd1lCQkFHQ04zc0VBakFmQmdOVkhTTUVHREFXZ0JUeFJtakc4Y1B3S3kxOWkycmhzdm0tTmZ6UlFUQWRCZ05WSFNVRUZqQVVCZ2dyQmdFRkJRY0RBUVlJS3dZQkJRVUhBd0l3RFFZSktvWklodmNOQVFFTEJRQURnZ0VCQUcwV2J6TFBzbVNTTUk3YVRlMm5waXhta2RDbXdjZFpIR2Q0M3RVbkI4SktyTE5KRUZjQnNRbWJjSUgwYWRwblFOckRnUmtOQkJPVFo0czFMSUJsUlFhcFpwUHNSSXRBTVVndVZwR1ZSSDA4VDBpNDN3OXhycF9jbE5iQUpycmZSYm1Zcm9GMFdKS01KMG53VzJyUGp4ZGV2U1J5Z0dLX25FZnl3d0ZpLXAxUmhIbmtpRUdMNEduUDdQcFFjUnZBWU1kSDlMTzVNUlk3aUxiQm1vc0thdFNfZVd0U0pEMUN2emdsTnd5X3ZReng4MVZuazBDZ25kcVhjVnEtbG9HdTdSNFU3bWtRMk5OcUxicDQ0N1NUeGtwUC02TWR5djhKNGJkbmYxczN2RkJOcGd2SldLb2dXY05MbG84am5rYkVmNlJQTkdlMVc1bG1hN0p3TUtBY1B6WSZzPVhvRndlaEZ2WjZEVTI1Vjl3UFNZTWIxTWp5QWJCUERJQ3E4SXZGYzFwaVVvVmFKRTIxSnZ3c3habGswMEo5d3RRZ1pCdEhOcTdKbWVERWtEODEwTDF3UzhiSW55bmpwYm9iZHdHenZzakxTM1llNGxBOWh6WHkydms4WGxxRExBMUxORlViOWs5Z2d2eUNRT3ZJdThWUzRjZy1mNFJDNE1KLTFDNVhWQ3V0UjctWm90QldpcTlFdGpVcWtpdkhOTWp4eWFSMkVGYWNrVFE5M0M4MGgtRERrUldoTjFGS0NSbnItbHJWNHAzbTBVa01QZTI0bWdsLWJqa1E1SGNLNE53M2VXc2lncmJhdmRvQnoyQzBFbTNEaHEzWkd6ZHRJWDZKdXBHRjFwNXcxUW1aS09lMDRGWWdoWGJVVWFrYzExckJNR3FQbTFnMUxnNEp4Vlg4TGhtUSZoPWR4d2NhTWtYd3lvWlJta21iYTE1cS1LMmdNaUpmVnp1WjBrYm5YTEZ1eE0=", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QUzI1MjEtV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2016-09-01&t=638932204053251465&c=MIIHhzCCBm-gAwIBAgITfAiEqRZrgLhPwkUvfgAACISpFjANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDUwHhcNMjUwNzE5MTUxNTU3WhcNMjYwMTE1MTUxNTU3WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANo8JkuCSyYzxbK-6GTWYze3gfPX3W0gGXDNABI0DpWEhe9om3se5tziu1JvncajCytpTguwrHlK0rcquzbDXXvHhbsY73edSvO92c2ADuvWEnNdsmm_eToLFsXFZjZMhgj9jD_wnJ6L9KtxBHW6hwaA6YgFKE3lyA5TXmiyo15CLkHFj02CX4NB1cTIN15yGoCxLyB-Zr3jEH0xfMCQPYlmSTwuQvC4UWEndUzZd_Y-HLo959DU-Ug61g41JksM4dzdEHw2_Yew_EDtac3ERKzqVKC1GxTNXLELU_LFkPdkKBi-JGTX5MxlXWEAVL1gSKy4C0lslOvMVICJ0D5ZPTECAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9DTzFQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA1LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MB0GA1UdDgQWBBTHBRf8ZL9wY__HzSsEXGXuVL8aEDAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBR61hmFKHlscXYeYPjzS--iBUIWHTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAIsWwSMOlrjb5kZTgKGXSVnDyLsC7qm2NFBdhoNUtOxSB-TF88cKGPhwNx59_1_GhsNjXldjQVJ1seRL3Dxf55jqzfXeFBQAIHIRsR8-WJPTpZ3VtWewO_Qvh9h7Bd-gfA0pRXw3Hq4eRpBmAf7gfOki1W-7-m3cozATlPCkEWnBM4qRujLuiQX_Q3tfok25Wmnyq_KkG_0VC3JVUvJnkKpv1qRHWahwVo1wzWyJIoaxA7T0oOonf6ZN3j8AyT_VGFDRmvLuvakI8huZgSbjWvWFT6bx7NRTo6YHkHb5COr1PJTbhpDS-PSv5Ud3SFTnLAZyd3oRW-Lp3Fo6RFoNgBs&s=cQ6xj0rTtzmNAJ0_dAFlgZGF8aLzvXeeI7J5hmFZUwCzLYo1HHmIze9VAfZlD4Cy5YVu3f6rvUBP3igL2HVIOGK95it_41rAerpnGQQ5BMInjp15mKuP2pHNrZT-igjIhZ5wN_N4eLgc_ZwA6j_mXBFVXzaftCGvLOAUWZqU0aEgRSjjYOLiHZu154LjXjdbK_KBrMNOuxnBlJjdXExancxmmW7jkricI3HvFQQOcC9aM-QsTmtMGcBQc8A2QjniZ93LKfYrKRJWL9TI1q3PfQ26KJlVSlf2qPudGBRBvQ-WjiPg3v4dab_QgD_KRhdmPVE6xL07yUHA2J4L7Xu_8Q&h=B_LttPRLDIktNA0qEdmD6P8JDp6DruJ68vw88zxm7DY", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVXpJMU1qRXRWMFZUVkZWVE1pSXNJbXB2WWt4dlkyRjBhVzl1SWpvaWQyVnpkSFZ6TWlKOT9hcGktdmVyc2lvbj0yMDE2LTA5LTAxJnQ9NjM4OTMyMjA0MDUzMjUxNDY1JmM9TUlJSGh6Q0NCbS1nQXdJQkFnSVRmQWlFcVJacmdMaFB3a1V2ZmdBQUNJU3BGakFOQmdrcWhraUc5dzBCQVFzRkFEQkVNUk13RVFZS0NaSW1pWlB5TEdRQkdSWURSMEpNTVJNd0VRWUtDWkltaVpQeUxHUUJHUllEUVUxRk1SZ3dGZ1lEVlFRREV3OUJUVVVnU1c1bWNtRWdRMEVnTURVd0hoY05NalV3TnpFNU1UVXhOVFUzV2hjTk1qWXdNVEUxTVRVeE5UVTNXakJBTVQ0d1BBWURWUVFERXpWaGMzbHVZMjl3WlhKaGRHbHZibk5wWjI1cGJtZGpaWEowYVdacFkyRjBaUzV0WVc1aFoyVnRaVzUwTG1GNmRYSmxMbU52YlRDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBTm84Smt1Q1N5WXp4YkstNkdUV1l6ZTNnZlBYM1cwZ0dYRE5BQkkwRHBXRWhlOW9tM3NlNXR6aXUxSnZuY2FqQ3l0cFRndXdySGxLMHJjcXV6YkRYWHZIaGJzWTczZWRTdk85MmMyQUR1dldFbk5kc21tX2VUb0xGc1hGWmpaTWhnajlqRF93bko2TDlLdHhCSFc2aHdhQTZZZ0ZLRTNseUE1VFhtaXlvMTVDTGtIRmowMkNYNE5CMWNUSU4xNXlHb0N4THlCLVpyM2pFSDB4Zk1DUVBZbG1TVHd1UXZDNFVXRW5kVXpaZF9ZLUhMbzk1OURVLVVnNjFnNDFKa3NNNGR6ZEVIdzJfWWV3X0VEdGFjM0VSS3pxVktDMUd4VE5YTEVMVV9MRmtQZGtLQmktSkdUWDVNeGxYV0VBVkwxZ1NLeTRDMGxzbE92TVZJQ0owRDVaUFRFQ0F3RUFBYU9DQkhRd2dnUndNQ2NHQ1NzR0FRUUJnamNWQ2dRYU1CZ3dDZ1lJS3dZQkJRVUhBd0V3Q2dZSUt3WUJCUVVIQXdJd1BRWUpLd1lCQkFHQ054VUhCREF3TGdZbUt3WUJCQUdDTnhVSWhwRGpEWVRWdEhpRThZcy1oWnZkRnM2ZEVvRmdoZm1SUzRXc21UUUNBV1FDQVFjd2dnSExCZ2dyQmdFRkJRY0JBUVNDQWIwd2dnRzVNR01HQ0NzR0FRVUZCekFDaGxkb2RIUndPaTh2WTNKc0xtMXBZM0p2YzI5bWRDNWpiMjB2Y0d0cGFXNW1jbUV2UTJWeWRITXZRMDh4VUV0SlNVNVVRMEV3TVM1QlRVVXVSMEpNWDBGTlJTVXlNRWx1Wm5KaEpUSXdRMEVsTWpBd05TNWpjblF3VXdZSUt3WUJCUVVITUFLR1IyaDBkSEE2THk5amNtd3hMbUZ0WlM1blltd3ZZV2xoTDBOUE1WQkxTVWxPVkVOQk1ERXVRVTFGTGtkQ1RGOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFV1WTNKME1GTUdDQ3NHQVFVRkJ6QUNoa2RvZEhSd09pOHZZM0pzTWk1aGJXVXVaMkpzTDJGcFlTOURUekZRUzBsSlRsUkRRVEF4TGtGTlJTNUhRa3hmUVUxRkpUSXdTVzVtY21FbE1qQkRRU1V5TURBMUxtTnlkREJUQmdnckJnRUZCUWN3QW9aSGFIUjBjRG92TDJOeWJETXVZVzFsTG1kaWJDOWhhV0V2UTA4eFVFdEpTVTVVUTBFd01TNUJUVVV1UjBKTVgwRk5SU1V5TUVsdVpuSmhKVEl3UTBFbE1qQXdOUzVqY25Rd1V3WUlLd1lCQlFVSE1BS0dSMmgwZEhBNkx5OWpjbXcwTG1GdFpTNW5ZbXd2WVdsaEwwTlBNVkJMU1VsT1ZFTkJNREV1UVUxRkxrZENURjlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURVdVkzSjBNQjBHQTFVZERnUVdCQlRIQlJmOFpMOXdZX19IelNzRVhHWHVWTDhhRURBT0JnTlZIUThCQWY4RUJBTUNCYUF3Z2dFbUJnTlZIUjhFZ2dFZE1JSUJHVENDQVJXZ2dnRVJvSUlCRFlZX2FIUjBjRG92TDJOeWJDNXRhV055YjNOdlpuUXVZMjl0TDNCcmFXbHVabkpoTDBOU1RDOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFV1WTNKc2hqRm9kSFJ3T2k4dlkzSnNNUzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01EVXVZM0pzaGpGb2RIUndPaTh2WTNKc01pNWhiV1V1WjJKc0wyTnliQzlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURVdVkzSnNoakZvZEhSd09pOHZZM0pzTXk1aGJXVXVaMkpzTDJOeWJDOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFV1WTNKc2hqRm9kSFJ3T2k4dlkzSnNOQzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01EVXVZM0pzTUlHZEJnTlZIU0FFZ1pVd2daSXdEQVlLS3dZQkJBR0NOM3NCQVRCbUJnb3JCZ0VFQVlJM2V3SUNNRmd3VmdZSUt3WUJCUVVIQWdJd1NoNUlBRE1BTXdCbEFEQUFNUUE1QURJQU1RQXRBRFFBWkFBMkFEUUFMUUEwQUdZQU9BQmpBQzBBWVFBd0FEVUFOUUF0QURVQVlnQmtBR0VBWmdCbUFHUUFOUUJsQURNQU13QmtNQXdHQ2lzR0FRUUJnamQ3QXdJd0RBWUtLd1lCQkFHQ04zc0VBakFmQmdOVkhTTUVHREFXZ0JSNjFobUZLSGxzY1hZZVlQanpTLS1pQlVJV0hUQWRCZ05WSFNVRUZqQVVCZ2dyQmdFRkJRY0RBUVlJS3dZQkJRVUhBd0l3RFFZSktvWklodmNOQVFFTEJRQURnZ0VCQUlzV3dTTU9scmpiNWtaVGdLR1hTVm5EeUxzQzdxbTJORkJkaG9OVXRPeFNCLVRGODhjS0dQaHdOeDU5XzFfR2hzTmpYbGRqUVZKMXNlUkwzRHhmNTVqcXpmWGVGQlFBSUhJUnNSOC1XSlBUcFozVnRXZXdPX1F2aDloN0JkLWdmQTBwUlh3M0hxNGVScEJtQWY3Z2ZPa2kxVy03LW0zY296QVRsUENrRVduQk00cVJ1akx1aVFYX1EzdGZvazI1V21ueXFfS2tHXzBWQzNKVlV2Sm5rS3B2MXFSSFdhaHdWbzF3eld5SklvYXhBN1Qwb09vbmY2Wk4zajhBeVRfVkdGRFJtdkx1dmFrSThodVpnU2JqV3ZXRlQ2Yng3TlJUbzZZSGtIYjVDT3IxUEpUYmhwRFMtUFN2NVVkM1NGVG5MQVp5ZDNvUlctTHAzRm82UkZvTmdCcyZzPWNRNnhqMHJUdHptTkFKMF9kQUZsZ1pHRjhhTHp2WGVlSTdKNWhtRlpVd0N6TFlvMUhIbUl6ZTlWQWZabEQ0Q3k1WVZ1M2Y2cnZVQlAzaWdMMkhWSU9HSzk1aXRfNDFyQWVycG5HUVE1Qk1JbmpwMTVtS3VQMnBITnJaVC1pZ2pJaFo1d05fTjRlTGdjX1p3QTZqX21YQkZWWHphZnRDR3ZMT0FVV1pxVTBhRWdSU2pqWU9MaUhadTE1NExqWGpkYktfS0JyTU5PdXhuQmxKamRYRXhhbmN4bW1XN2prcmljSTNIdkZRUU9jQzlhTS1Rc1RtdE1HY0JRYzhBMlFqbmlaOTNMS2ZZcktSSldMOVRJMXEzUGZRMjZLSmxWU2xmMnFQdWRHQlJCdlEtV2ppUGczdjRkYWJfUWdEX0tSaGRtUFZFNnhMMDd5VUhBMko0TDdYdV84USZoPUJfTHR0UFJMRElrdE5BMHFFZG1ENlA4SkRwNkRydUo2OHZ3ODh6eG03RFk=", "RequestMethod": "GET", "RequestHeaders": { "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.102" + "OSVersion/Microsoft.Windows.10.0.26100", + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.109" ] }, "RequestBody": "", @@ -387,7 +393,7 @@ "no-cache" ], "Location": [ - "https://management.azure.com/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QUzg0MDktV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2016-09-01&t=638671294633330348&c=MIIHhzCCBm-gAwIBAgITHgVqhF9GOoUjuyqQWAAABWqEXzANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDYwHhcNMjQwOTIwMjMxMTQxWhcNMjUwMzE5MjMxMTQxWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKRtcYDBXS7zz5tRtvVyhrUAjudYhej1E2D3dp6XWuPdbVMbQZwMlye8vdT-kDhFD7T2mrdWqsoGnTGk0_xOHBfLGnW-0QRUqpeoTNIhu8vc2CfTUtm2t2s_-fzvFtRyhDA4mfCH1cz92EVj0vd3FD4ikW6bdOp1NkYFqUVBhKlbvJk6y-TbLFBLP5Zx4m0Ua-_P7aMzbgvOJgMOTC2jLs5w_lFDJWeP3IKUOiJmrfLpf4ey5Ov94oCE6YncDBSHJZKWcrSxDHgSz9AXrxarL4HLajGbF3MRvfkMN2gNXCoiJXBEqCLDnyQZ0BgXIvuK7vG8Rj0TyhJNj-QPr8taY6UCAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAyLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA2LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MB0GA1UdDgQWBBRKlJQpFyyZKSchkTlshetYOUX7xzAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBTxRmjG8cPwKy19i2rhsvm-NfzRQTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAG0WbzLPsmSSMI7aTe2npixmkdCmwcdZHGd43tUnB8JKrLNJEFcBsQmbcIH0adpnQNrDgRkNBBOTZ4s1LIBlRQapZpPsRItAMUguVpGVRH08T0i43w9xrp_clNbAJrrfRbmYroF0WJKMJ0nwW2rPjxdevSRygGK_nEfywwFi-p1RhHnkiEGL4GnP7PpQcRvAYMdH9LO5MRY7iLbBmosKatS_eWtSJD1CvzglNwy_vQzx81Vnk0CgndqXcVq-loGu7R4U7mkQ2NNqLbp447STxkpP-6Mdyv8J4bdnf1s3vFBNpgvJWKogWcNLlo8jnkbEf6RPNGe1W5lma7JwMKAcPzY&s=HkX6nHKVmtnohwddY1p_MvBYUuu42gVTD-BHGt-IMC4X8Ra5FAFHJqZCsoFu1hha9HfDwjTo2iCeJ2Ft8x_vEpgDjz7bS-na_DoijOjTkpugFy05N4nr1YgG4ZB8P9qfv2VeZFU16vhRL_5mvXK3V5KU3EVZdz-jSk1TyQLH0zZpSecEv-x5BEbEiwHnSvT_wmBUIz_jtt0INawl5jgmp6PNKhSb8Pq8A7d_LlG9ZgzB5BO6VPUXRweutME2H2LD_gIzZSQG67R4uc_n_cjnAJ2Ga9Q_6WW9xx1kzrzdl888y6Dex2JXZDt5eZ5Yk7eLrVgRF28dYJYOeEpbXCQ0Gw&h=FgYYzM93upmcfYYTd-quZzpBdBv1hlDyzDFdShy3rVc" + "https://management.azure.com/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QUzI1MjEtV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2016-09-01&t=638932204204935636&c=MIIIpTCCBo2gAwIBAgITFgGsmnj73LBE7PaBtQABAayaeDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDMwHhcNMjUwNzE4MTIwNDI4WhcNMjYwMTE0MTIwNDI4WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKYwXiklImL5-WfPWj2FX3_Y-JxCd3XXEOuNXx5ggHubZZamujLTqEBSFsFYiH_9NCaqKTiATXu6fBpzW3ghgYhwr0PL071fQT15KnnNUFjd5hFXB7SYti9IwWu1lxSAz-De7HivujKdlsgcmfoV6upRQ0eva9e74EwLV9pCn4WQAhs-6T8p0CytQsi81qHMWybAbNvfom0ox78IEWdS_6g_d4Jl_I4ccYLMyRTOV2NioM96cRECWCZhbpLl1zwoYGSbU5H0MZaiCBjPlhXN40BqagpamZfP98sPYSBfreh6-iMGU5tNTRkh8RiJqzjhzIUpEv3PqLtWTyPUB8JS7aUCAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9BTTNQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAzKDEpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MB0GA1UdDgQWBBTxzPCXgPzIUiTz94us0y0CCMf8BzAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBRIo61gdWpv7GDzaVXRALEyV_xs5DAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggIBAAqNK9Ejzdnb9L4TyakCpJByRYVTN_6nCGbtUd2E2sELjuJGRGiRmujp_jqNyIofO_ghSaP_tqH-3WRTRUbnt5xM8aBYoYJSOgKgTsNrB6clspdhCCmzhJy6EQuOqfUDm3C7hDru1_bN3DwXt3VpDqfuYtM3MAabKg0oCYVWgFwnAKYmZLZMWMQh7k_hZxy1gOCQmE9U08tf_pU21aI0El6n5A5uG2FT0placwchheFmXAtoPjT7nU53HVmRissxUR_vRCDj_ZCFo3K3nZNXCQOKPAMc9-LC0prb9Slg6siKtSHB3iGjNQlT9-nbSnDgifI8zC1cvT8CdaNLOmUywRIB4wvRn1z123NuyfJaIz95igW9P189vBTJEZREF-MgJEboWKdlGNn6bbBtu0waqAmUU7WVLeZKdtUI6EEKF7wRGYuY_BhZx1ipyXnBHZpsufuH4AwgOO289QKmqg8QAy7HFD9c8H8fNCtR7sTZ4YNP2AhEaES0rkMSQUCNVEz42YEBi2GgrSpnI94SPdb3J3PkCMZ4OgFRjztLO7nrgbPtflhSOo_VOE0_7Y74km43WAMQPKL3-44vQrEQ61Hd_24IcFh_ChNXvUDqp39GzYlO3D0zlau4ozll8BeLUZrJwHTQWZS8XR-EifCl4MW5Y3Y1SxOLrIxnukCzQxL7aGmc&s=OzP3TYovghkM50OVxdpp9WQz0o6FtUHUzmfNQz5vRz6c87335yj25EUhMI97xZbsLQFhWEk7FMFnzWNiCPbVI96QBB5jXs2xvkJh_eF8AlKTxQ8f2ep92faehpMydWP2Mk0aKxsRI5OkSiS824LHP89YFUlOnzLnzBSqi6f0IYkr3p3-DvBh35rpoAoGskahUHQqn8DokEVisWOU2lexElnJ7qzRwLFz50T9Nf4HC2a1bqnWjwxTJFQEeQUMHdR3nin88_DCV33yy0TNompOencWJuXC67xtf-qjKP-nrIocCJlOilXkp7QQ7oXUEm0bKhEqP2QjZ1JkLUKE1Ptagg&h=254X44yCuFSnoptjV8jJiikkzjJXJms96YF4uUkIbWk" ], "Retry-After": [ "15" @@ -399,13 +405,13 @@ "16499" ], "x-ms-request-id": [ - "c194d4d4-f1be-4016-97f3-7377a23f92b9" + "ca235cbc-f079-4844-ad3f-a8cb8815717b" ], "x-ms-correlation-request-id": [ - "c194d4d4-f1be-4016-97f3-7377a23f92b9" + "ca235cbc-f079-4844-ad3f-a8cb8815717b" ], "x-ms-routing-request-id": [ - "EASTUS:20241113T211743Z:c194d4d4-f1be-4016-97f3-7377a23f92b9" + "WESTUS2:20250911T204700Z:ca235cbc-f079-4844-ad3f-a8cb8815717b" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -417,10 +423,10 @@ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: 7176314855AA40B2A66B62B87915292D Ref B: MNZ221060610029 Ref C: 2024-11-13T21:17:42Z" + "Ref A: 886FEA3E924F497D91A83A1762C40B09 Ref B: MWH011020807042 Ref C: 2025-09-11T20:47:00Z" ], "Date": [ - "Wed, 13 Nov 2024 21:17:42 GMT" + "Thu, 11 Sep 2025 20:47:00 GMT" ], "Expires": [ "-1" @@ -433,15 +439,15 @@ "StatusCode": 202 }, { - "RequestUri": "/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QUzg0MDktV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2016-09-01&t=638671294633330348&c=MIIHhzCCBm-gAwIBAgITHgVqhF9GOoUjuyqQWAAABWqEXzANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDYwHhcNMjQwOTIwMjMxMTQxWhcNMjUwMzE5MjMxMTQxWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKRtcYDBXS7zz5tRtvVyhrUAjudYhej1E2D3dp6XWuPdbVMbQZwMlye8vdT-kDhFD7T2mrdWqsoGnTGk0_xOHBfLGnW-0QRUqpeoTNIhu8vc2CfTUtm2t2s_-fzvFtRyhDA4mfCH1cz92EVj0vd3FD4ikW6bdOp1NkYFqUVBhKlbvJk6y-TbLFBLP5Zx4m0Ua-_P7aMzbgvOJgMOTC2jLs5w_lFDJWeP3IKUOiJmrfLpf4ey5Ov94oCE6YncDBSHJZKWcrSxDHgSz9AXrxarL4HLajGbF3MRvfkMN2gNXCoiJXBEqCLDnyQZ0BgXIvuK7vG8Rj0TyhJNj-QPr8taY6UCAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAyLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA2LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MB0GA1UdDgQWBBRKlJQpFyyZKSchkTlshetYOUX7xzAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBTxRmjG8cPwKy19i2rhsvm-NfzRQTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAG0WbzLPsmSSMI7aTe2npixmkdCmwcdZHGd43tUnB8JKrLNJEFcBsQmbcIH0adpnQNrDgRkNBBOTZ4s1LIBlRQapZpPsRItAMUguVpGVRH08T0i43w9xrp_clNbAJrrfRbmYroF0WJKMJ0nwW2rPjxdevSRygGK_nEfywwFi-p1RhHnkiEGL4GnP7PpQcRvAYMdH9LO5MRY7iLbBmosKatS_eWtSJD1CvzglNwy_vQzx81Vnk0CgndqXcVq-loGu7R4U7mkQ2NNqLbp447STxkpP-6Mdyv8J4bdnf1s3vFBNpgvJWKogWcNLlo8jnkbEf6RPNGe1W5lma7JwMKAcPzY&s=HkX6nHKVmtnohwddY1p_MvBYUuu42gVTD-BHGt-IMC4X8Ra5FAFHJqZCsoFu1hha9HfDwjTo2iCeJ2Ft8x_vEpgDjz7bS-na_DoijOjTkpugFy05N4nr1YgG4ZB8P9qfv2VeZFU16vhRL_5mvXK3V5KU3EVZdz-jSk1TyQLH0zZpSecEv-x5BEbEiwHnSvT_wmBUIz_jtt0INawl5jgmp6PNKhSb8Pq8A7d_LlG9ZgzB5BO6VPUXRweutME2H2LD_gIzZSQG67R4uc_n_cjnAJ2Ga9Q_6WW9xx1kzrzdl888y6Dex2JXZDt5eZ5Yk7eLrVgRF28dYJYOeEpbXCQ0Gw&h=FgYYzM93upmcfYYTd-quZzpBdBv1hlDyzDFdShy3rVc", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjFhYmQ2NzgtMThjNS00NjYwLTlmZGQtOGM1YmE2YjZmZTFmL29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVXpnME1Ea3RWMFZUVkZWVE1pSXNJbXB2WWt4dlkyRjBhVzl1SWpvaWQyVnpkSFZ6TWlKOT9hcGktdmVyc2lvbj0yMDE2LTA5LTAxJnQ9NjM4NjcxMjk0NjMzMzMwMzQ4JmM9TUlJSGh6Q0NCbS1nQXdJQkFnSVRIZ1ZxaEY5R09vVWp1eXFRV0FBQUJXcUVYekFOQmdrcWhraUc5dzBCQVFzRkFEQkVNUk13RVFZS0NaSW1pWlB5TEdRQkdSWURSMEpNTVJNd0VRWUtDWkltaVpQeUxHUUJHUllEUVUxRk1SZ3dGZ1lEVlFRREV3OUJUVVVnU1c1bWNtRWdRMEVnTURZd0hoY05NalF3T1RJd01qTXhNVFF4V2hjTk1qVXdNekU1TWpNeE1UUXhXakJBTVQ0d1BBWURWUVFERXpWaGMzbHVZMjl3WlhKaGRHbHZibk5wWjI1cGJtZGpaWEowYVdacFkyRjBaUzV0WVc1aFoyVnRaVzUwTG1GNmRYSmxMbU52YlRDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBS1J0Y1lEQlhTN3p6NXRSdHZWeWhyVUFqdWRZaGVqMUUyRDNkcDZYV3VQZGJWTWJRWndNbHllOHZkVC1rRGhGRDdUMm1yZFdxc29HblRHazBfeE9IQmZMR25XLTBRUlVxcGVvVE5JaHU4dmMyQ2ZUVXRtMnQyc18tZnp2RnRSeWhEQTRtZkNIMWN6OTJFVmowdmQzRkQ0aWtXNmJkT3AxTmtZRnFVVkJoS2xidkprNnktVGJMRkJMUDVaeDRtMFVhLV9QN2FNemJndk9KZ01PVEMyakxzNXdfbEZESldlUDNJS1VPaUptcmZMcGY0ZXk1T3Y5NG9DRTZZbmNEQlNISlpLV2NyU3hESGdTejlBWHJ4YXJMNEhMYWpHYkYzTVJ2ZmtNTjJnTlhDb2lKWEJFcUNMRG55UVowQmdYSXZ1Szd2RzhSajBUeWhKTmotUVByOHRhWTZVQ0F3RUFBYU9DQkhRd2dnUndNQ2NHQ1NzR0FRUUJnamNWQ2dRYU1CZ3dDZ1lJS3dZQkJRVUhBd0V3Q2dZSUt3WUJCUVVIQXdJd1BRWUpLd1lCQkFHQ054VUhCREF3TGdZbUt3WUJCQUdDTnhVSWhwRGpEWVRWdEhpRThZcy1oWnZkRnM2ZEVvRmdoZm1SUzRXc21UUUNBV1FDQVFjd2dnSExCZ2dyQmdFRkJRY0JBUVNDQWIwd2dnRzVNR01HQ0NzR0FRVUZCekFDaGxkb2RIUndPaTh2WTNKc0xtMXBZM0p2YzI5bWRDNWpiMjB2Y0d0cGFXNW1jbUV2UTJWeWRITXZRa3d5VUV0SlNVNVVRMEV3TWk1QlRVVXVSMEpNWDBGTlJTVXlNRWx1Wm5KaEpUSXdRMEVsTWpBd05pNWpjblF3VXdZSUt3WUJCUVVITUFLR1IyaDBkSEE2THk5amNtd3hMbUZ0WlM1blltd3ZZV2xoTDBKTU1sQkxTVWxPVkVOQk1ESXVRVTFGTGtkQ1RGOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFl1WTNKME1GTUdDQ3NHQVFVRkJ6QUNoa2RvZEhSd09pOHZZM0pzTWk1aGJXVXVaMkpzTDJGcFlTOUNUREpRUzBsSlRsUkRRVEF5TGtGTlJTNUhRa3hmUVUxRkpUSXdTVzVtY21FbE1qQkRRU1V5TURBMkxtTnlkREJUQmdnckJnRUZCUWN3QW9aSGFIUjBjRG92TDJOeWJETXVZVzFsTG1kaWJDOWhhV0V2UWt3eVVFdEpTVTVVUTBFd01pNUJUVVV1UjBKTVgwRk5SU1V5TUVsdVpuSmhKVEl3UTBFbE1qQXdOaTVqY25Rd1V3WUlLd1lCQlFVSE1BS0dSMmgwZEhBNkx5OWpjbXcwTG1GdFpTNW5ZbXd2WVdsaEwwSk1NbEJMU1VsT1ZFTkJNREl1UVUxRkxrZENURjlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURZdVkzSjBNQjBHQTFVZERnUVdCQlJLbEpRcEZ5eVpLU2Noa1Rsc2hldFlPVVg3eHpBT0JnTlZIUThCQWY4RUJBTUNCYUF3Z2dFbUJnTlZIUjhFZ2dFZE1JSUJHVENDQVJXZ2dnRVJvSUlCRFlZX2FIUjBjRG92TDJOeWJDNXRhV055YjNOdlpuUXVZMjl0TDNCcmFXbHVabkpoTDBOU1RDOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFl1WTNKc2hqRm9kSFJ3T2k4dlkzSnNNUzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01EWXVZM0pzaGpGb2RIUndPaTh2WTNKc01pNWhiV1V1WjJKc0wyTnliQzlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURZdVkzSnNoakZvZEhSd09pOHZZM0pzTXk1aGJXVXVaMkpzTDJOeWJDOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFl1WTNKc2hqRm9kSFJ3T2k4dlkzSnNOQzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01EWXVZM0pzTUlHZEJnTlZIU0FFZ1pVd2daSXdEQVlLS3dZQkJBR0NOM3NCQVRCbUJnb3JCZ0VFQVlJM2V3SUNNRmd3VmdZSUt3WUJCUVVIQWdJd1NoNUlBRE1BTXdCbEFEQUFNUUE1QURJQU1RQXRBRFFBWkFBMkFEUUFMUUEwQUdZQU9BQmpBQzBBWVFBd0FEVUFOUUF0QURVQVlnQmtBR0VBWmdCbUFHUUFOUUJsQURNQU13QmtNQXdHQ2lzR0FRUUJnamQ3QXdFd0RBWUtLd1lCQkFHQ04zc0VBakFmQmdOVkhTTUVHREFXZ0JUeFJtakc4Y1B3S3kxOWkycmhzdm0tTmZ6UlFUQWRCZ05WSFNVRUZqQVVCZ2dyQmdFRkJRY0RBUVlJS3dZQkJRVUhBd0l3RFFZSktvWklodmNOQVFFTEJRQURnZ0VCQUcwV2J6TFBzbVNTTUk3YVRlMm5waXhta2RDbXdjZFpIR2Q0M3RVbkI4SktyTE5KRUZjQnNRbWJjSUgwYWRwblFOckRnUmtOQkJPVFo0czFMSUJsUlFhcFpwUHNSSXRBTVVndVZwR1ZSSDA4VDBpNDN3OXhycF9jbE5iQUpycmZSYm1Zcm9GMFdKS01KMG53VzJyUGp4ZGV2U1J5Z0dLX25FZnl3d0ZpLXAxUmhIbmtpRUdMNEduUDdQcFFjUnZBWU1kSDlMTzVNUlk3aUxiQm1vc0thdFNfZVd0U0pEMUN2emdsTnd5X3ZReng4MVZuazBDZ25kcVhjVnEtbG9HdTdSNFU3bWtRMk5OcUxicDQ0N1NUeGtwUC02TWR5djhKNGJkbmYxczN2RkJOcGd2SldLb2dXY05MbG84am5rYkVmNlJQTkdlMVc1bG1hN0p3TUtBY1B6WSZzPUhrWDZuSEtWbXRub2h3ZGRZMXBfTXZCWVV1dTQyZ1ZURC1CSEd0LUlNQzRYOFJhNUZBRkhKcVpDc29GdTFoaGE5SGZEd2pUbzJpQ2VKMkZ0OHhfdkVwZ0RqejdiUy1uYV9Eb2lqT2pUa3B1Z0Z5MDVONG5yMVlnRzRaQjhQOXFmdjJWZVpGVTE2dmhSTF81bXZYSzNWNUtVM0VWWmR6LWpTazFUeVFMSDB6WnBTZWNFdi14NUJFYkVpd0huU3ZUX3dtQlVJel9qdHQwSU5hd2w1amdtcDZQTktoU2I4UHE4QTdkX0xsRzlaZ3pCNUJPNlZQVVhSd2V1dE1FMkgyTERfZ0l6WlNRRzY3UjR1Y19uX2NqbkFKMkdhOVFfNldXOXh4MWt6cnpkbDg4OHk2RGV4MkpYWkR0NWVaNVlrN2VMclZnUkYyOGRZSllPZUVwYlhDUTBHdyZoPUZnWVl6TTkzdXBtY2ZZWVRkLXF1WnpwQmRCdjFobER5ekRGZFNoeTNyVmM=", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QUzI1MjEtV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2016-09-01&t=638932204204935636&c=MIIIpTCCBo2gAwIBAgITFgGsmnj73LBE7PaBtQABAayaeDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDMwHhcNMjUwNzE4MTIwNDI4WhcNMjYwMTE0MTIwNDI4WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKYwXiklImL5-WfPWj2FX3_Y-JxCd3XXEOuNXx5ggHubZZamujLTqEBSFsFYiH_9NCaqKTiATXu6fBpzW3ghgYhwr0PL071fQT15KnnNUFjd5hFXB7SYti9IwWu1lxSAz-De7HivujKdlsgcmfoV6upRQ0eva9e74EwLV9pCn4WQAhs-6T8p0CytQsi81qHMWybAbNvfom0ox78IEWdS_6g_d4Jl_I4ccYLMyRTOV2NioM96cRECWCZhbpLl1zwoYGSbU5H0MZaiCBjPlhXN40BqagpamZfP98sPYSBfreh6-iMGU5tNTRkh8RiJqzjhzIUpEv3PqLtWTyPUB8JS7aUCAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9BTTNQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAzKDEpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MB0GA1UdDgQWBBTxzPCXgPzIUiTz94us0y0CCMf8BzAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBRIo61gdWpv7GDzaVXRALEyV_xs5DAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggIBAAqNK9Ejzdnb9L4TyakCpJByRYVTN_6nCGbtUd2E2sELjuJGRGiRmujp_jqNyIofO_ghSaP_tqH-3WRTRUbnt5xM8aBYoYJSOgKgTsNrB6clspdhCCmzhJy6EQuOqfUDm3C7hDru1_bN3DwXt3VpDqfuYtM3MAabKg0oCYVWgFwnAKYmZLZMWMQh7k_hZxy1gOCQmE9U08tf_pU21aI0El6n5A5uG2FT0placwchheFmXAtoPjT7nU53HVmRissxUR_vRCDj_ZCFo3K3nZNXCQOKPAMc9-LC0prb9Slg6siKtSHB3iGjNQlT9-nbSnDgifI8zC1cvT8CdaNLOmUywRIB4wvRn1z123NuyfJaIz95igW9P189vBTJEZREF-MgJEboWKdlGNn6bbBtu0waqAmUU7WVLeZKdtUI6EEKF7wRGYuY_BhZx1ipyXnBHZpsufuH4AwgOO289QKmqg8QAy7HFD9c8H8fNCtR7sTZ4YNP2AhEaES0rkMSQUCNVEz42YEBi2GgrSpnI94SPdb3J3PkCMZ4OgFRjztLO7nrgbPtflhSOo_VOE0_7Y74km43WAMQPKL3-44vQrEQ61Hd_24IcFh_ChNXvUDqp39GzYlO3D0zlau4ozll8BeLUZrJwHTQWZS8XR-EifCl4MW5Y3Y1SxOLrIxnukCzQxL7aGmc&s=OzP3TYovghkM50OVxdpp9WQz0o6FtUHUzmfNQz5vRz6c87335yj25EUhMI97xZbsLQFhWEk7FMFnzWNiCPbVI96QBB5jXs2xvkJh_eF8AlKTxQ8f2ep92faehpMydWP2Mk0aKxsRI5OkSiS824LHP89YFUlOnzLnzBSqi6f0IYkr3p3-DvBh35rpoAoGskahUHQqn8DokEVisWOU2lexElnJ7qzRwLFz50T9Nf4HC2a1bqnWjwxTJFQEeQUMHdR3nin88_DCV33yy0TNompOencWJuXC67xtf-qjKP-nrIocCJlOilXkp7QQ7oXUEm0bKhEqP2QjZ1JkLUKE1Ptagg&h=254X44yCuFSnoptjV8jJiikkzjJXJms96YF4uUkIbWk", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVXpJMU1qRXRWMFZUVkZWVE1pSXNJbXB2WWt4dlkyRjBhVzl1SWpvaWQyVnpkSFZ6TWlKOT9hcGktdmVyc2lvbj0yMDE2LTA5LTAxJnQ9NjM4OTMyMjA0MjA0OTM1NjM2JmM9TUlJSXBUQ0NCbzJnQXdJQkFnSVRGZ0dzbW5qNzNMQkU3UGFCdFFBQkFheWFlREFOQmdrcWhraUc5dzBCQVFzRkFEQkVNUk13RVFZS0NaSW1pWlB5TEdRQkdSWURSMEpNTVJNd0VRWUtDWkltaVpQeUxHUUJHUllEUVUxRk1SZ3dGZ1lEVlFRREV3OUJUVVVnU1c1bWNtRWdRMEVnTURNd0hoY05NalV3TnpFNE1USXdOREk0V2hjTk1qWXdNVEUwTVRJd05ESTRXakJBTVQ0d1BBWURWUVFERXpWaGMzbHVZMjl3WlhKaGRHbHZibk5wWjI1cGJtZGpaWEowYVdacFkyRjBaUzV0WVc1aFoyVnRaVzUwTG1GNmRYSmxMbU52YlRDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBS1l3WGlrbEltTDUtV2ZQV2oyRlgzX1ktSnhDZDNYWEVPdU5YeDVnZ0h1YlpaYW11akxUcUVCU0ZzRllpSF85TkNhcUtUaUFUWHU2ZkJwelczZ2hnWWh3cjBQTDA3MWZRVDE1S25uTlVGamQ1aEZYQjdTWXRpOUl3V3UxbHhTQXotRGU3SGl2dWpLZGxzZ2NtZm9WNnVwUlEwZXZhOWU3NEV3TFY5cENuNFdRQWhzLTZUOHAwQ3l0UXNpODFxSE1XeWJBYk52Zm9tMG94NzhJRVdkU182Z19kNEpsX0k0Y2NZTE15UlRPVjJOaW9NOTZjUkVDV0NaaGJwTGwxendvWUdTYlU1SDBNWmFpQ0JqUGxoWE40MEJxYWdwYW1aZlA5OHNQWVNCZnJlaDYtaU1HVTV0TlRSa2g4UmlKcXpqaHpJVXBFdjNQcUx0V1R5UFVCOEpTN2FVQ0F3RUFBYU9DQkpJd2dnU09NQ2NHQ1NzR0FRUUJnamNWQ2dRYU1CZ3dDZ1lJS3dZQkJRVUhBd0V3Q2dZSUt3WUJCUVVIQXdJd1BRWUpLd1lCQkFHQ054VUhCREF3TGdZbUt3WUJCQUdDTnhVSWhwRGpEWVRWdEhpRThZcy1oWnZkRnM2ZEVvRmdoZm1SUzRXc21UUUNBV1FDQVFjd2dnSGFCZ2dyQmdFRkJRY0JBUVNDQWN3d2dnSElNR1lHQ0NzR0FRVUZCekFDaGxwb2RIUndPaTh2WTNKc0xtMXBZM0p2YzI5bWRDNWpiMjB2Y0d0cGFXNW1jbUV2UTJWeWRITXZRVTB6VUV0SlNVNVVRMEV3TVM1QlRVVXVSMEpNWDBGTlJTVXlNRWx1Wm5KaEpUSXdRMEVsTWpBd015Z3hLUzVqY25Rd1ZnWUlLd1lCQlFVSE1BS0dTbWgwZEhBNkx5OWpjbXd4TG1GdFpTNW5ZbXd2WVdsaEwwRk5NMUJMU1VsT1ZFTkJNREV1UVUxRkxrZENURjlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURNb01Ta3VZM0owTUZZR0NDc0dBUVVGQnpBQ2hrcG9kSFJ3T2k4dlkzSnNNaTVoYldVdVoySnNMMkZwWVM5QlRUTlFTMGxKVGxSRFFUQXhMa0ZOUlM1SFFreGZRVTFGSlRJd1NXNW1jbUVsTWpCRFFTVXlNREF6S0RFcExtTnlkREJXQmdnckJnRUZCUWN3QW9aS2FIUjBjRG92TDJOeWJETXVZVzFsTG1kaWJDOWhhV0V2UVUwelVFdEpTVTVVUTBFd01TNUJUVVV1UjBKTVgwRk5SU1V5TUVsdVpuSmhKVEl3UTBFbE1qQXdNeWd4S1M1amNuUXdWZ1lJS3dZQkJRVUhNQUtHU21oMGRIQTZMeTlqY213MExtRnRaUzVuWW13dllXbGhMMEZOTTFCTFNVbE9WRU5CTURFdVFVMUZMa2RDVEY5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKME1CMEdBMVVkRGdRV0JCVHh6UENYZ1B6SVVpVHo5NHVzMHkwQ0NNZjhCekFPQmdOVkhROEJBZjhFQkFNQ0JhQXdnZ0UxQmdOVkhSOEVnZ0VzTUlJQktEQ0NBU1NnZ2dFZ29JSUJISVpDYUhSMGNEb3ZMMk55YkM1dGFXTnliM052Wm5RdVkyOXRMM0JyYVdsdVpuSmhMME5TVEM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc2hqUm9kSFJ3T2k4dlkzSnNNUzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc2hqUm9kSFJ3T2k4dlkzSnNNaTVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc2hqUm9kSFJ3T2k4dlkzSnNNeTVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc2hqUm9kSFJ3T2k4dlkzSnNOQzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc01JR2RCZ05WSFNBRWdaVXdnWkl3REFZS0t3WUJCQUdDTjNzQkFUQm1CZ29yQmdFRUFZSTNld0lDTUZnd1ZnWUlLd1lCQlFVSEFnSXdTaDVJQURNQU13QmxBREFBTVFBNUFESUFNUUF0QURRQVpBQTJBRFFBTFFBMEFHWUFPQUJqQUMwQVlRQXdBRFVBTlFBdEFEVUFZZ0JrQUdFQVpnQm1BR1FBTlFCbEFETUFNd0JrTUF3R0Npc0dBUVFCZ2pkN0F3SXdEQVlLS3dZQkJBR0NOM3NFQWpBZkJnTlZIU01FR0RBV2dCUklvNjFnZFdwdjdHRHphVlhSQUxFeVZfeHM1REFkQmdOVkhTVUVGakFVQmdnckJnRUZCUWNEQVFZSUt3WUJCUVVIQXdJd0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dJQkFBcU5LOUVqemRuYjlMNFR5YWtDcEpCeVJZVlROXzZuQ0didFVkMkUyc0VManVKR1JHaVJtdWpwX2pxTnlJb2ZPX2doU2FQX3RxSC0zV1JUUlVibnQ1eE04YUJZb1lKU09nS2dUc05yQjZjbHNwZGhDQ216aEp5NkVRdU9xZlVEbTNDN2hEcnUxX2JOM0R3WHQzVnBEcWZ1WXRNM01BYWJLZzBvQ1lWV2dGd25BS1ltWkxaTVdNUWg3a19oWnh5MWdPQ1FtRTlVMDh0Zl9wVTIxYUkwRWw2bjVBNXVHMkZUMHBsYWN3Y2hoZUZtWEF0b1BqVDduVTUzSFZtUmlzc3hVUl92UkNEal9aQ0ZvM0szblpOWENRT0tQQU1jOS1MQzBwcmI5U2xnNnNpS3RTSEIzaUdqTlFsVDktbmJTbkRnaWZJOHpDMWN2VDhDZGFOTE9tVXl3UklCNHd2Um4xejEyM051eWZKYUl6OTVpZ1c5UDE4OXZCVEpFWlJFRi1NZ0pFYm9XS2RsR05uNmJiQnR1MHdhcUFtVVU3V1ZMZVpLZHRVSTZFRUtGN3dSR1l1WV9CaFp4MWlweVhuQkhacHN1ZnVINEF3Z09PMjg5UUttcWc4UUF5N0hGRDljOEg4Zk5DdFI3c1RaNFlOUDJBaEVhRVMwcmtNU1FVQ05WRXo0MllFQmkyR2dyU3BuSTk0U1BkYjNKM1BrQ01aNE9nRlJqenRMTzducmdiUHRmbGhTT29fVk9FMF83WTc0a200M1dBTVFQS0wzLTQ0dlFyRVE2MUhkXzI0SWNGaF9DaE5YdlVEcXAzOUd6WWxPM0QwemxhdTRvemxsOEJlTFVackp3SFRRV1pTOFhSLUVpZkNsNE1XNVkzWTFTeE9Mckl4bnVrQ3pReEw3YUdtYyZzPU96UDNUWW92Z2hrTTUwT1Z4ZHBwOVdRejBvNkZ0VUhVem1mTlF6NXZSejZjODczMzV5ajI1RVVoTUk5N3haYnNMUUZoV0VrN0ZNRm56V05pQ1BiVkk5NlFCQjVqWHMyeHZrSmhfZUY4QWxLVHhROGYyZXA5MmZhZWhwTXlkV1AyTWswYUt4c1JJNU9rU2lTODI0TEhQODlZRlVsT256TG56QlNxaTZmMElZa3IzcDMtRHZCaDM1cnBvQW9Hc2thaFVIUXFuOERva0VWaXNXT1UybGV4RWxuSjdxelJ3TEZ6NTBUOU5mNEhDMmExYnFuV2p3eFRKRlFFZVFVTUhkUjNuaW44OF9EQ1YzM3l5MFROb21wT2VuY1dKdVhDNjd4dGYtcWpLUC1ucklvY0NKbE9pbFhrcDdRUTdvWFVFbTBiS2hFcVAyUWpaMUprTFVLRTFQdGFnZyZoPTI1NFg0NHlDdUZTbm9wdGpWOGpKaWlra3pqSlhKbXM5NllGNHVVa0liV2s=", "RequestMethod": "GET", "RequestHeaders": { "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.102" + "OSVersion/Microsoft.Windows.10.0.26100", + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.109" ] }, "RequestBody": "", @@ -453,7 +459,7 @@ "no-cache" ], "Location": [ - "https://management.azure.com/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QUzg0MDktV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2016-09-01&t=638671294786727432&c=MIIHhzCCBm-gAwIBAgITHgVqhF9GOoUjuyqQWAAABWqEXzANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDYwHhcNMjQwOTIwMjMxMTQxWhcNMjUwMzE5MjMxMTQxWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKRtcYDBXS7zz5tRtvVyhrUAjudYhej1E2D3dp6XWuPdbVMbQZwMlye8vdT-kDhFD7T2mrdWqsoGnTGk0_xOHBfLGnW-0QRUqpeoTNIhu8vc2CfTUtm2t2s_-fzvFtRyhDA4mfCH1cz92EVj0vd3FD4ikW6bdOp1NkYFqUVBhKlbvJk6y-TbLFBLP5Zx4m0Ua-_P7aMzbgvOJgMOTC2jLs5w_lFDJWeP3IKUOiJmrfLpf4ey5Ov94oCE6YncDBSHJZKWcrSxDHgSz9AXrxarL4HLajGbF3MRvfkMN2gNXCoiJXBEqCLDnyQZ0BgXIvuK7vG8Rj0TyhJNj-QPr8taY6UCAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAyLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA2LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MB0GA1UdDgQWBBRKlJQpFyyZKSchkTlshetYOUX7xzAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBTxRmjG8cPwKy19i2rhsvm-NfzRQTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAG0WbzLPsmSSMI7aTe2npixmkdCmwcdZHGd43tUnB8JKrLNJEFcBsQmbcIH0adpnQNrDgRkNBBOTZ4s1LIBlRQapZpPsRItAMUguVpGVRH08T0i43w9xrp_clNbAJrrfRbmYroF0WJKMJ0nwW2rPjxdevSRygGK_nEfywwFi-p1RhHnkiEGL4GnP7PpQcRvAYMdH9LO5MRY7iLbBmosKatS_eWtSJD1CvzglNwy_vQzx81Vnk0CgndqXcVq-loGu7R4U7mkQ2NNqLbp447STxkpP-6Mdyv8J4bdnf1s3vFBNpgvJWKogWcNLlo8jnkbEf6RPNGe1W5lma7JwMKAcPzY&s=MLSq8s7F_QT783wSdgrbm2d02cpSaM4WibcmkCwHE3TgKgDWHKitff5NilVP6g8qle15WqlD4njnZYfXJfDqW9hK215yPg6GkXYvRr0BTgjs0nMzEKR10PTozN0dzNemV7XGaAMUCGKXJRBob_2cLrujqKhXBm4U_wFGLetc5xhdqNBJtoAMi-zEkODvcq8veUhfTtgngGbXnMJdqgjZIA6woJsPA7nUpqxMwC4E7sCjjXjCK6rF6S183YEfb1YH3b2sSTIftJzh3Ej9DuRBPoB7fFxN8g8Kx0esm569znbebUrup_TLjQkely4jga9dIqRpCo2yUXdI4iNaWI68gA&h=tvxjM2zaqMvJSrS6qkL0RHsvuJNfkimZ_dMLRtP1_vg" + "https://management.azure.com/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QUzI1MjEtV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2016-09-01&t=638932204355621313&c=MIIIpTCCBo2gAwIBAgITFgGsmnj73LBE7PaBtQABAayaeDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDMwHhcNMjUwNzE4MTIwNDI4WhcNMjYwMTE0MTIwNDI4WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKYwXiklImL5-WfPWj2FX3_Y-JxCd3XXEOuNXx5ggHubZZamujLTqEBSFsFYiH_9NCaqKTiATXu6fBpzW3ghgYhwr0PL071fQT15KnnNUFjd5hFXB7SYti9IwWu1lxSAz-De7HivujKdlsgcmfoV6upRQ0eva9e74EwLV9pCn4WQAhs-6T8p0CytQsi81qHMWybAbNvfom0ox78IEWdS_6g_d4Jl_I4ccYLMyRTOV2NioM96cRECWCZhbpLl1zwoYGSbU5H0MZaiCBjPlhXN40BqagpamZfP98sPYSBfreh6-iMGU5tNTRkh8RiJqzjhzIUpEv3PqLtWTyPUB8JS7aUCAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9BTTNQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAzKDEpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MB0GA1UdDgQWBBTxzPCXgPzIUiTz94us0y0CCMf8BzAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBRIo61gdWpv7GDzaVXRALEyV_xs5DAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggIBAAqNK9Ejzdnb9L4TyakCpJByRYVTN_6nCGbtUd2E2sELjuJGRGiRmujp_jqNyIofO_ghSaP_tqH-3WRTRUbnt5xM8aBYoYJSOgKgTsNrB6clspdhCCmzhJy6EQuOqfUDm3C7hDru1_bN3DwXt3VpDqfuYtM3MAabKg0oCYVWgFwnAKYmZLZMWMQh7k_hZxy1gOCQmE9U08tf_pU21aI0El6n5A5uG2FT0placwchheFmXAtoPjT7nU53HVmRissxUR_vRCDj_ZCFo3K3nZNXCQOKPAMc9-LC0prb9Slg6siKtSHB3iGjNQlT9-nbSnDgifI8zC1cvT8CdaNLOmUywRIB4wvRn1z123NuyfJaIz95igW9P189vBTJEZREF-MgJEboWKdlGNn6bbBtu0waqAmUU7WVLeZKdtUI6EEKF7wRGYuY_BhZx1ipyXnBHZpsufuH4AwgOO289QKmqg8QAy7HFD9c8H8fNCtR7sTZ4YNP2AhEaES0rkMSQUCNVEz42YEBi2GgrSpnI94SPdb3J3PkCMZ4OgFRjztLO7nrgbPtflhSOo_VOE0_7Y74km43WAMQPKL3-44vQrEQ61Hd_24IcFh_ChNXvUDqp39GzYlO3D0zlau4ozll8BeLUZrJwHTQWZS8XR-EifCl4MW5Y3Y1SxOLrIxnukCzQxL7aGmc&s=ca16Qcjw1PwuhpWdpyWmJgq_UoH0C5zXcwUauFnVmVAy4HCnwVGBKw08bg8eDqx-_m5jnmW65oqKD9yKcu35-yDCIit9hghideGOCOW5mqDSnbUl00QznSVV8HYHylq0Mb4nEcxC1X0KoF65rqqvHTIYZGkGJHIiMuK-DCuWr7DWwIuNSDGhXqYAOyaLzYcomiSc-SZRQKmO09rxQ66gRlgewTX2UIiXVpZ8Mbb7QKkp2f6H4sduyMUR7E5clExIehtjqmXgurzmtGHjlhI0D50sgAkvVa2I8-OCd02SLZhTVa8hyz6a3URhAL8GcpZBMj5LJbEMvrXzZQoblWpbGA&h=Tde3DvvvXAXVvYY5ZdIzgZi2xzZnO8PHUZz_-xSoc2o" ], "Retry-After": [ "15" @@ -465,13 +471,13 @@ "16499" ], "x-ms-request-id": [ - "c8cc8a49-fbbe-42fb-ab51-2617823b8420" + "d439edd4-1530-4583-b6a5-9172ed49832d" ], "x-ms-correlation-request-id": [ - "c8cc8a49-fbbe-42fb-ab51-2617823b8420" + "d439edd4-1530-4583-b6a5-9172ed49832d" ], "x-ms-routing-request-id": [ - "EASTUS:20241113T211758Z:c8cc8a49-fbbe-42fb-ab51-2617823b8420" + "WESTUS2:20250911T204715Z:d439edd4-1530-4583-b6a5-9172ed49832d" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -483,10 +489,10 @@ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: 3E2A154A082B4973B04DE64EB9846AFE Ref B: MNZ221060610029 Ref C: 2024-11-13T21:17:58Z" + "Ref A: 4501229AA074437C8B218695A52F9474 Ref B: MWH011020807042 Ref C: 2025-09-11T20:47:15Z" ], "Date": [ - "Wed, 13 Nov 2024 21:17:57 GMT" + "Thu, 11 Sep 2025 20:47:15 GMT" ], "Expires": [ "-1" @@ -499,15 +505,15 @@ "StatusCode": 202 }, { - "RequestUri": "/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QUzg0MDktV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2016-09-01&t=638671294786727432&c=MIIHhzCCBm-gAwIBAgITHgVqhF9GOoUjuyqQWAAABWqEXzANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDYwHhcNMjQwOTIwMjMxMTQxWhcNMjUwMzE5MjMxMTQxWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKRtcYDBXS7zz5tRtvVyhrUAjudYhej1E2D3dp6XWuPdbVMbQZwMlye8vdT-kDhFD7T2mrdWqsoGnTGk0_xOHBfLGnW-0QRUqpeoTNIhu8vc2CfTUtm2t2s_-fzvFtRyhDA4mfCH1cz92EVj0vd3FD4ikW6bdOp1NkYFqUVBhKlbvJk6y-TbLFBLP5Zx4m0Ua-_P7aMzbgvOJgMOTC2jLs5w_lFDJWeP3IKUOiJmrfLpf4ey5Ov94oCE6YncDBSHJZKWcrSxDHgSz9AXrxarL4HLajGbF3MRvfkMN2gNXCoiJXBEqCLDnyQZ0BgXIvuK7vG8Rj0TyhJNj-QPr8taY6UCAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAyLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA2LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MB0GA1UdDgQWBBRKlJQpFyyZKSchkTlshetYOUX7xzAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBTxRmjG8cPwKy19i2rhsvm-NfzRQTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAG0WbzLPsmSSMI7aTe2npixmkdCmwcdZHGd43tUnB8JKrLNJEFcBsQmbcIH0adpnQNrDgRkNBBOTZ4s1LIBlRQapZpPsRItAMUguVpGVRH08T0i43w9xrp_clNbAJrrfRbmYroF0WJKMJ0nwW2rPjxdevSRygGK_nEfywwFi-p1RhHnkiEGL4GnP7PpQcRvAYMdH9LO5MRY7iLbBmosKatS_eWtSJD1CvzglNwy_vQzx81Vnk0CgndqXcVq-loGu7R4U7mkQ2NNqLbp447STxkpP-6Mdyv8J4bdnf1s3vFBNpgvJWKogWcNLlo8jnkbEf6RPNGe1W5lma7JwMKAcPzY&s=MLSq8s7F_QT783wSdgrbm2d02cpSaM4WibcmkCwHE3TgKgDWHKitff5NilVP6g8qle15WqlD4njnZYfXJfDqW9hK215yPg6GkXYvRr0BTgjs0nMzEKR10PTozN0dzNemV7XGaAMUCGKXJRBob_2cLrujqKhXBm4U_wFGLetc5xhdqNBJtoAMi-zEkODvcq8veUhfTtgngGbXnMJdqgjZIA6woJsPA7nUpqxMwC4E7sCjjXjCK6rF6S183YEfb1YH3b2sSTIftJzh3Ej9DuRBPoB7fFxN8g8Kx0esm569znbebUrup_TLjQkely4jga9dIqRpCo2yUXdI4iNaWI68gA&h=tvxjM2zaqMvJSrS6qkL0RHsvuJNfkimZ_dMLRtP1_vg", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjFhYmQ2NzgtMThjNS00NjYwLTlmZGQtOGM1YmE2YjZmZTFmL29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVXpnME1Ea3RWMFZUVkZWVE1pSXNJbXB2WWt4dlkyRjBhVzl1SWpvaWQyVnpkSFZ6TWlKOT9hcGktdmVyc2lvbj0yMDE2LTA5LTAxJnQ9NjM4NjcxMjk0Nzg2NzI3NDMyJmM9TUlJSGh6Q0NCbS1nQXdJQkFnSVRIZ1ZxaEY5R09vVWp1eXFRV0FBQUJXcUVYekFOQmdrcWhraUc5dzBCQVFzRkFEQkVNUk13RVFZS0NaSW1pWlB5TEdRQkdSWURSMEpNTVJNd0VRWUtDWkltaVpQeUxHUUJHUllEUVUxRk1SZ3dGZ1lEVlFRREV3OUJUVVVnU1c1bWNtRWdRMEVnTURZd0hoY05NalF3T1RJd01qTXhNVFF4V2hjTk1qVXdNekU1TWpNeE1UUXhXakJBTVQ0d1BBWURWUVFERXpWaGMzbHVZMjl3WlhKaGRHbHZibk5wWjI1cGJtZGpaWEowYVdacFkyRjBaUzV0WVc1aFoyVnRaVzUwTG1GNmRYSmxMbU52YlRDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBS1J0Y1lEQlhTN3p6NXRSdHZWeWhyVUFqdWRZaGVqMUUyRDNkcDZYV3VQZGJWTWJRWndNbHllOHZkVC1rRGhGRDdUMm1yZFdxc29HblRHazBfeE9IQmZMR25XLTBRUlVxcGVvVE5JaHU4dmMyQ2ZUVXRtMnQyc18tZnp2RnRSeWhEQTRtZkNIMWN6OTJFVmowdmQzRkQ0aWtXNmJkT3AxTmtZRnFVVkJoS2xidkprNnktVGJMRkJMUDVaeDRtMFVhLV9QN2FNemJndk9KZ01PVEMyakxzNXdfbEZESldlUDNJS1VPaUptcmZMcGY0ZXk1T3Y5NG9DRTZZbmNEQlNISlpLV2NyU3hESGdTejlBWHJ4YXJMNEhMYWpHYkYzTVJ2ZmtNTjJnTlhDb2lKWEJFcUNMRG55UVowQmdYSXZ1Szd2RzhSajBUeWhKTmotUVByOHRhWTZVQ0F3RUFBYU9DQkhRd2dnUndNQ2NHQ1NzR0FRUUJnamNWQ2dRYU1CZ3dDZ1lJS3dZQkJRVUhBd0V3Q2dZSUt3WUJCUVVIQXdJd1BRWUpLd1lCQkFHQ054VUhCREF3TGdZbUt3WUJCQUdDTnhVSWhwRGpEWVRWdEhpRThZcy1oWnZkRnM2ZEVvRmdoZm1SUzRXc21UUUNBV1FDQVFjd2dnSExCZ2dyQmdFRkJRY0JBUVNDQWIwd2dnRzVNR01HQ0NzR0FRVUZCekFDaGxkb2RIUndPaTh2WTNKc0xtMXBZM0p2YzI5bWRDNWpiMjB2Y0d0cGFXNW1jbUV2UTJWeWRITXZRa3d5VUV0SlNVNVVRMEV3TWk1QlRVVXVSMEpNWDBGTlJTVXlNRWx1Wm5KaEpUSXdRMEVsTWpBd05pNWpjblF3VXdZSUt3WUJCUVVITUFLR1IyaDBkSEE2THk5amNtd3hMbUZ0WlM1blltd3ZZV2xoTDBKTU1sQkxTVWxPVkVOQk1ESXVRVTFGTGtkQ1RGOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFl1WTNKME1GTUdDQ3NHQVFVRkJ6QUNoa2RvZEhSd09pOHZZM0pzTWk1aGJXVXVaMkpzTDJGcFlTOUNUREpRUzBsSlRsUkRRVEF5TGtGTlJTNUhRa3hmUVUxRkpUSXdTVzVtY21FbE1qQkRRU1V5TURBMkxtTnlkREJUQmdnckJnRUZCUWN3QW9aSGFIUjBjRG92TDJOeWJETXVZVzFsTG1kaWJDOWhhV0V2UWt3eVVFdEpTVTVVUTBFd01pNUJUVVV1UjBKTVgwRk5SU1V5TUVsdVpuSmhKVEl3UTBFbE1qQXdOaTVqY25Rd1V3WUlLd1lCQlFVSE1BS0dSMmgwZEhBNkx5OWpjbXcwTG1GdFpTNW5ZbXd2WVdsaEwwSk1NbEJMU1VsT1ZFTkJNREl1UVUxRkxrZENURjlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURZdVkzSjBNQjBHQTFVZERnUVdCQlJLbEpRcEZ5eVpLU2Noa1Rsc2hldFlPVVg3eHpBT0JnTlZIUThCQWY4RUJBTUNCYUF3Z2dFbUJnTlZIUjhFZ2dFZE1JSUJHVENDQVJXZ2dnRVJvSUlCRFlZX2FIUjBjRG92TDJOeWJDNXRhV055YjNOdlpuUXVZMjl0TDNCcmFXbHVabkpoTDBOU1RDOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFl1WTNKc2hqRm9kSFJ3T2k4dlkzSnNNUzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01EWXVZM0pzaGpGb2RIUndPaTh2WTNKc01pNWhiV1V1WjJKc0wyTnliQzlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURZdVkzSnNoakZvZEhSd09pOHZZM0pzTXk1aGJXVXVaMkpzTDJOeWJDOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFl1WTNKc2hqRm9kSFJ3T2k4dlkzSnNOQzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01EWXVZM0pzTUlHZEJnTlZIU0FFZ1pVd2daSXdEQVlLS3dZQkJBR0NOM3NCQVRCbUJnb3JCZ0VFQVlJM2V3SUNNRmd3VmdZSUt3WUJCUVVIQWdJd1NoNUlBRE1BTXdCbEFEQUFNUUE1QURJQU1RQXRBRFFBWkFBMkFEUUFMUUEwQUdZQU9BQmpBQzBBWVFBd0FEVUFOUUF0QURVQVlnQmtBR0VBWmdCbUFHUUFOUUJsQURNQU13QmtNQXdHQ2lzR0FRUUJnamQ3QXdFd0RBWUtLd1lCQkFHQ04zc0VBakFmQmdOVkhTTUVHREFXZ0JUeFJtakc4Y1B3S3kxOWkycmhzdm0tTmZ6UlFUQWRCZ05WSFNVRUZqQVVCZ2dyQmdFRkJRY0RBUVlJS3dZQkJRVUhBd0l3RFFZSktvWklodmNOQVFFTEJRQURnZ0VCQUcwV2J6TFBzbVNTTUk3YVRlMm5waXhta2RDbXdjZFpIR2Q0M3RVbkI4SktyTE5KRUZjQnNRbWJjSUgwYWRwblFOckRnUmtOQkJPVFo0czFMSUJsUlFhcFpwUHNSSXRBTVVndVZwR1ZSSDA4VDBpNDN3OXhycF9jbE5iQUpycmZSYm1Zcm9GMFdKS01KMG53VzJyUGp4ZGV2U1J5Z0dLX25FZnl3d0ZpLXAxUmhIbmtpRUdMNEduUDdQcFFjUnZBWU1kSDlMTzVNUlk3aUxiQm1vc0thdFNfZVd0U0pEMUN2emdsTnd5X3ZReng4MVZuazBDZ25kcVhjVnEtbG9HdTdSNFU3bWtRMk5OcUxicDQ0N1NUeGtwUC02TWR5djhKNGJkbmYxczN2RkJOcGd2SldLb2dXY05MbG84am5rYkVmNlJQTkdlMVc1bG1hN0p3TUtBY1B6WSZzPU1MU3E4czdGX1FUNzgzd1NkZ3JibTJkMDJjcFNhTTRXaWJjbWtDd0hFM1RnS2dEV0hLaXRmZjVOaWxWUDZnOHFsZTE1V3FsRDRuam5aWWZYSmZEcVc5aEsyMTV5UGc2R2tYWXZScjBCVGdqczBuTXpFS1IxMFBUb3pOMGR6TmVtVjdYR2FBTVVDR0tYSlJCb2JfMmNMcnVqcUtoWEJtNFVfd0ZHTGV0YzV4aGRxTkJKdG9BTWktekVrT0R2Y3E4dmVVaGZUdGduZ0diWG5NSmRxZ2paSUE2d29Kc1BBN25VcHF4TXdDNEU3c0NqalhqQ0s2ckY2UzE4M1lFZmIxWUgzYjJzU1RJZnRKemgzRWo5RHVSQlBvQjdmRnhOOGc4S3gwZXNtNTY5em5iZWJVcnVwX1RMalFrZWx5NGpnYTlkSXFScENvMnlVWGRJNGlOYVdJNjhnQSZoPXR2eGpNMnphcU12SlNyUzZxa0wwUkhzdnVKTmZraW1aX2RNTFJ0UDFfdmc=", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QUzI1MjEtV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2016-09-01&t=638932204355621313&c=MIIIpTCCBo2gAwIBAgITFgGsmnj73LBE7PaBtQABAayaeDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDMwHhcNMjUwNzE4MTIwNDI4WhcNMjYwMTE0MTIwNDI4WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKYwXiklImL5-WfPWj2FX3_Y-JxCd3XXEOuNXx5ggHubZZamujLTqEBSFsFYiH_9NCaqKTiATXu6fBpzW3ghgYhwr0PL071fQT15KnnNUFjd5hFXB7SYti9IwWu1lxSAz-De7HivujKdlsgcmfoV6upRQ0eva9e74EwLV9pCn4WQAhs-6T8p0CytQsi81qHMWybAbNvfom0ox78IEWdS_6g_d4Jl_I4ccYLMyRTOV2NioM96cRECWCZhbpLl1zwoYGSbU5H0MZaiCBjPlhXN40BqagpamZfP98sPYSBfreh6-iMGU5tNTRkh8RiJqzjhzIUpEv3PqLtWTyPUB8JS7aUCAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9BTTNQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAzKDEpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MB0GA1UdDgQWBBTxzPCXgPzIUiTz94us0y0CCMf8BzAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBRIo61gdWpv7GDzaVXRALEyV_xs5DAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggIBAAqNK9Ejzdnb9L4TyakCpJByRYVTN_6nCGbtUd2E2sELjuJGRGiRmujp_jqNyIofO_ghSaP_tqH-3WRTRUbnt5xM8aBYoYJSOgKgTsNrB6clspdhCCmzhJy6EQuOqfUDm3C7hDru1_bN3DwXt3VpDqfuYtM3MAabKg0oCYVWgFwnAKYmZLZMWMQh7k_hZxy1gOCQmE9U08tf_pU21aI0El6n5A5uG2FT0placwchheFmXAtoPjT7nU53HVmRissxUR_vRCDj_ZCFo3K3nZNXCQOKPAMc9-LC0prb9Slg6siKtSHB3iGjNQlT9-nbSnDgifI8zC1cvT8CdaNLOmUywRIB4wvRn1z123NuyfJaIz95igW9P189vBTJEZREF-MgJEboWKdlGNn6bbBtu0waqAmUU7WVLeZKdtUI6EEKF7wRGYuY_BhZx1ipyXnBHZpsufuH4AwgOO289QKmqg8QAy7HFD9c8H8fNCtR7sTZ4YNP2AhEaES0rkMSQUCNVEz42YEBi2GgrSpnI94SPdb3J3PkCMZ4OgFRjztLO7nrgbPtflhSOo_VOE0_7Y74km43WAMQPKL3-44vQrEQ61Hd_24IcFh_ChNXvUDqp39GzYlO3D0zlau4ozll8BeLUZrJwHTQWZS8XR-EifCl4MW5Y3Y1SxOLrIxnukCzQxL7aGmc&s=ca16Qcjw1PwuhpWdpyWmJgq_UoH0C5zXcwUauFnVmVAy4HCnwVGBKw08bg8eDqx-_m5jnmW65oqKD9yKcu35-yDCIit9hghideGOCOW5mqDSnbUl00QznSVV8HYHylq0Mb4nEcxC1X0KoF65rqqvHTIYZGkGJHIiMuK-DCuWr7DWwIuNSDGhXqYAOyaLzYcomiSc-SZRQKmO09rxQ66gRlgewTX2UIiXVpZ8Mbb7QKkp2f6H4sduyMUR7E5clExIehtjqmXgurzmtGHjlhI0D50sgAkvVa2I8-OCd02SLZhTVa8hyz6a3URhAL8GcpZBMj5LJbEMvrXzZQoblWpbGA&h=Tde3DvvvXAXVvYY5ZdIzgZi2xzZnO8PHUZz_-xSoc2o", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVXpJMU1qRXRWMFZUVkZWVE1pSXNJbXB2WWt4dlkyRjBhVzl1SWpvaWQyVnpkSFZ6TWlKOT9hcGktdmVyc2lvbj0yMDE2LTA5LTAxJnQ9NjM4OTMyMjA0MzU1NjIxMzEzJmM9TUlJSXBUQ0NCbzJnQXdJQkFnSVRGZ0dzbW5qNzNMQkU3UGFCdFFBQkFheWFlREFOQmdrcWhraUc5dzBCQVFzRkFEQkVNUk13RVFZS0NaSW1pWlB5TEdRQkdSWURSMEpNTVJNd0VRWUtDWkltaVpQeUxHUUJHUllEUVUxRk1SZ3dGZ1lEVlFRREV3OUJUVVVnU1c1bWNtRWdRMEVnTURNd0hoY05NalV3TnpFNE1USXdOREk0V2hjTk1qWXdNVEUwTVRJd05ESTRXakJBTVQ0d1BBWURWUVFERXpWaGMzbHVZMjl3WlhKaGRHbHZibk5wWjI1cGJtZGpaWEowYVdacFkyRjBaUzV0WVc1aFoyVnRaVzUwTG1GNmRYSmxMbU52YlRDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBS1l3WGlrbEltTDUtV2ZQV2oyRlgzX1ktSnhDZDNYWEVPdU5YeDVnZ0h1YlpaYW11akxUcUVCU0ZzRllpSF85TkNhcUtUaUFUWHU2ZkJwelczZ2hnWWh3cjBQTDA3MWZRVDE1S25uTlVGamQ1aEZYQjdTWXRpOUl3V3UxbHhTQXotRGU3SGl2dWpLZGxzZ2NtZm9WNnVwUlEwZXZhOWU3NEV3TFY5cENuNFdRQWhzLTZUOHAwQ3l0UXNpODFxSE1XeWJBYk52Zm9tMG94NzhJRVdkU182Z19kNEpsX0k0Y2NZTE15UlRPVjJOaW9NOTZjUkVDV0NaaGJwTGwxendvWUdTYlU1SDBNWmFpQ0JqUGxoWE40MEJxYWdwYW1aZlA5OHNQWVNCZnJlaDYtaU1HVTV0TlRSa2g4UmlKcXpqaHpJVXBFdjNQcUx0V1R5UFVCOEpTN2FVQ0F3RUFBYU9DQkpJd2dnU09NQ2NHQ1NzR0FRUUJnamNWQ2dRYU1CZ3dDZ1lJS3dZQkJRVUhBd0V3Q2dZSUt3WUJCUVVIQXdJd1BRWUpLd1lCQkFHQ054VUhCREF3TGdZbUt3WUJCQUdDTnhVSWhwRGpEWVRWdEhpRThZcy1oWnZkRnM2ZEVvRmdoZm1SUzRXc21UUUNBV1FDQVFjd2dnSGFCZ2dyQmdFRkJRY0JBUVNDQWN3d2dnSElNR1lHQ0NzR0FRVUZCekFDaGxwb2RIUndPaTh2WTNKc0xtMXBZM0p2YzI5bWRDNWpiMjB2Y0d0cGFXNW1jbUV2UTJWeWRITXZRVTB6VUV0SlNVNVVRMEV3TVM1QlRVVXVSMEpNWDBGTlJTVXlNRWx1Wm5KaEpUSXdRMEVsTWpBd015Z3hLUzVqY25Rd1ZnWUlLd1lCQlFVSE1BS0dTbWgwZEhBNkx5OWpjbXd4TG1GdFpTNW5ZbXd2WVdsaEwwRk5NMUJMU1VsT1ZFTkJNREV1UVUxRkxrZENURjlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURNb01Ta3VZM0owTUZZR0NDc0dBUVVGQnpBQ2hrcG9kSFJ3T2k4dlkzSnNNaTVoYldVdVoySnNMMkZwWVM5QlRUTlFTMGxKVGxSRFFUQXhMa0ZOUlM1SFFreGZRVTFGSlRJd1NXNW1jbUVsTWpCRFFTVXlNREF6S0RFcExtTnlkREJXQmdnckJnRUZCUWN3QW9aS2FIUjBjRG92TDJOeWJETXVZVzFsTG1kaWJDOWhhV0V2UVUwelVFdEpTVTVVUTBFd01TNUJUVVV1UjBKTVgwRk5SU1V5TUVsdVpuSmhKVEl3UTBFbE1qQXdNeWd4S1M1amNuUXdWZ1lJS3dZQkJRVUhNQUtHU21oMGRIQTZMeTlqY213MExtRnRaUzVuWW13dllXbGhMMEZOTTFCTFNVbE9WRU5CTURFdVFVMUZMa2RDVEY5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKME1CMEdBMVVkRGdRV0JCVHh6UENYZ1B6SVVpVHo5NHVzMHkwQ0NNZjhCekFPQmdOVkhROEJBZjhFQkFNQ0JhQXdnZ0UxQmdOVkhSOEVnZ0VzTUlJQktEQ0NBU1NnZ2dFZ29JSUJISVpDYUhSMGNEb3ZMMk55YkM1dGFXTnliM052Wm5RdVkyOXRMM0JyYVdsdVpuSmhMME5TVEM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc2hqUm9kSFJ3T2k4dlkzSnNNUzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc2hqUm9kSFJ3T2k4dlkzSnNNaTVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc2hqUm9kSFJ3T2k4dlkzSnNNeTVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc2hqUm9kSFJ3T2k4dlkzSnNOQzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc01JR2RCZ05WSFNBRWdaVXdnWkl3REFZS0t3WUJCQUdDTjNzQkFUQm1CZ29yQmdFRUFZSTNld0lDTUZnd1ZnWUlLd1lCQlFVSEFnSXdTaDVJQURNQU13QmxBREFBTVFBNUFESUFNUUF0QURRQVpBQTJBRFFBTFFBMEFHWUFPQUJqQUMwQVlRQXdBRFVBTlFBdEFEVUFZZ0JrQUdFQVpnQm1BR1FBTlFCbEFETUFNd0JrTUF3R0Npc0dBUVFCZ2pkN0F3SXdEQVlLS3dZQkJBR0NOM3NFQWpBZkJnTlZIU01FR0RBV2dCUklvNjFnZFdwdjdHRHphVlhSQUxFeVZfeHM1REFkQmdOVkhTVUVGakFVQmdnckJnRUZCUWNEQVFZSUt3WUJCUVVIQXdJd0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dJQkFBcU5LOUVqemRuYjlMNFR5YWtDcEpCeVJZVlROXzZuQ0didFVkMkUyc0VManVKR1JHaVJtdWpwX2pxTnlJb2ZPX2doU2FQX3RxSC0zV1JUUlVibnQ1eE04YUJZb1lKU09nS2dUc05yQjZjbHNwZGhDQ216aEp5NkVRdU9xZlVEbTNDN2hEcnUxX2JOM0R3WHQzVnBEcWZ1WXRNM01BYWJLZzBvQ1lWV2dGd25BS1ltWkxaTVdNUWg3a19oWnh5MWdPQ1FtRTlVMDh0Zl9wVTIxYUkwRWw2bjVBNXVHMkZUMHBsYWN3Y2hoZUZtWEF0b1BqVDduVTUzSFZtUmlzc3hVUl92UkNEal9aQ0ZvM0szblpOWENRT0tQQU1jOS1MQzBwcmI5U2xnNnNpS3RTSEIzaUdqTlFsVDktbmJTbkRnaWZJOHpDMWN2VDhDZGFOTE9tVXl3UklCNHd2Um4xejEyM051eWZKYUl6OTVpZ1c5UDE4OXZCVEpFWlJFRi1NZ0pFYm9XS2RsR05uNmJiQnR1MHdhcUFtVVU3V1ZMZVpLZHRVSTZFRUtGN3dSR1l1WV9CaFp4MWlweVhuQkhacHN1ZnVINEF3Z09PMjg5UUttcWc4UUF5N0hGRDljOEg4Zk5DdFI3c1RaNFlOUDJBaEVhRVMwcmtNU1FVQ05WRXo0MllFQmkyR2dyU3BuSTk0U1BkYjNKM1BrQ01aNE9nRlJqenRMTzducmdiUHRmbGhTT29fVk9FMF83WTc0a200M1dBTVFQS0wzLTQ0dlFyRVE2MUhkXzI0SWNGaF9DaE5YdlVEcXAzOUd6WWxPM0QwemxhdTRvemxsOEJlTFVackp3SFRRV1pTOFhSLUVpZkNsNE1XNVkzWTFTeE9Mckl4bnVrQ3pReEw3YUdtYyZzPWNhMTZRY2p3MVB3dWhwV2RweVdtSmdxX1VvSDBDNXpYY3dVYXVGblZtVkF5NEhDbndWR0JLdzA4Ymc4ZURxeC1fbTVqbm1XNjVvcUtEOXlLY3UzNS15RENJaXQ5aGdoaWRlR09DT1c1bXFEU25iVWwwMFF6blNWVjhIWUh5bHEwTWI0bkVjeEMxWDBLb0Y2NXJxcXZIVElZWkdrR0pISWlNdUstREN1V3I3RFd3SXVOU0RHaFhxWUFPeWFMelljb21pU2MtU1pSUUttTzA5cnhRNjZnUmxnZXdUWDJVSWlYVnBaOE1iYjdRS2twMmY2SDRzZHV5TVVSN0U1Y2xFeEllaHRqcW1YZ3Vyem10R0hqbGhJMEQ1MHNnQWt2VmEySTgtT0NkMDJTTFpoVFZhOGh5ejZhM1VSaEFMOEdjcFpCTWo1TEpiRU12clh6WlFvYmxXcGJHQSZoPVRkZTNEdnZ2WEFYVnZZWTVaZEl6Z1ppMnh6Wm5POFBIVVp6Xy14U29jMm8=", "RequestMethod": "GET", "RequestHeaders": { "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.102" + "OSVersion/Microsoft.Windows.10.0.26100", + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.109" ] }, "RequestBody": "", @@ -519,7 +525,7 @@ "no-cache" ], "Location": [ - "https://management.azure.com/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QUzg0MDktV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2016-09-01&t=638671294940874786&c=MIIHhzCCBm-gAwIBAgITHgVqhF9GOoUjuyqQWAAABWqEXzANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDYwHhcNMjQwOTIwMjMxMTQxWhcNMjUwMzE5MjMxMTQxWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKRtcYDBXS7zz5tRtvVyhrUAjudYhej1E2D3dp6XWuPdbVMbQZwMlye8vdT-kDhFD7T2mrdWqsoGnTGk0_xOHBfLGnW-0QRUqpeoTNIhu8vc2CfTUtm2t2s_-fzvFtRyhDA4mfCH1cz92EVj0vd3FD4ikW6bdOp1NkYFqUVBhKlbvJk6y-TbLFBLP5Zx4m0Ua-_P7aMzbgvOJgMOTC2jLs5w_lFDJWeP3IKUOiJmrfLpf4ey5Ov94oCE6YncDBSHJZKWcrSxDHgSz9AXrxarL4HLajGbF3MRvfkMN2gNXCoiJXBEqCLDnyQZ0BgXIvuK7vG8Rj0TyhJNj-QPr8taY6UCAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAyLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA2LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MB0GA1UdDgQWBBRKlJQpFyyZKSchkTlshetYOUX7xzAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBTxRmjG8cPwKy19i2rhsvm-NfzRQTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAG0WbzLPsmSSMI7aTe2npixmkdCmwcdZHGd43tUnB8JKrLNJEFcBsQmbcIH0adpnQNrDgRkNBBOTZ4s1LIBlRQapZpPsRItAMUguVpGVRH08T0i43w9xrp_clNbAJrrfRbmYroF0WJKMJ0nwW2rPjxdevSRygGK_nEfywwFi-p1RhHnkiEGL4GnP7PpQcRvAYMdH9LO5MRY7iLbBmosKatS_eWtSJD1CvzglNwy_vQzx81Vnk0CgndqXcVq-loGu7R4U7mkQ2NNqLbp447STxkpP-6Mdyv8J4bdnf1s3vFBNpgvJWKogWcNLlo8jnkbEf6RPNGe1W5lma7JwMKAcPzY&s=SAfA26HlBmSIQqtdaB86MVAJ1Q5b87xe4JSl-FuleFBchzrEmTUF_6m3tSgxaWrcOFIxYsuX_eJCGdOScdARm0zmR-ZvF9O_yV-UQ1PS3T4OjaGKMBaxypm8euuhpsXbmxSu0kaVkSitRevGh4v6XW5ZvJjv2CraM5JFXirCRst5CYGsBrr2ZkkB9036v-Di_evD5jQ7HRY1KwGN9pZsvws4nIyofo0wGlz8q2z5XmmXboxVI_0VXRsBmoejCFRfkrMhkZVc6Ygh65SI6cHrCVNhp2G5G4nSSQHroInE1Id1WFM5MCirav_bLF1lnW_dqQ3NrY1_1wG1NbZ51sjRpA&h=Un7mgBibzMZT-HM3vcfzwZpe9FtK74HUtnclKkK0i70" + "https://management.azure.com/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QUzI1MjEtV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2016-09-01&t=638932204506267428&c=MIIIpTCCBo2gAwIBAgITFgGsmnj73LBE7PaBtQABAayaeDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDMwHhcNMjUwNzE4MTIwNDI4WhcNMjYwMTE0MTIwNDI4WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKYwXiklImL5-WfPWj2FX3_Y-JxCd3XXEOuNXx5ggHubZZamujLTqEBSFsFYiH_9NCaqKTiATXu6fBpzW3ghgYhwr0PL071fQT15KnnNUFjd5hFXB7SYti9IwWu1lxSAz-De7HivujKdlsgcmfoV6upRQ0eva9e74EwLV9pCn4WQAhs-6T8p0CytQsi81qHMWybAbNvfom0ox78IEWdS_6g_d4Jl_I4ccYLMyRTOV2NioM96cRECWCZhbpLl1zwoYGSbU5H0MZaiCBjPlhXN40BqagpamZfP98sPYSBfreh6-iMGU5tNTRkh8RiJqzjhzIUpEv3PqLtWTyPUB8JS7aUCAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9BTTNQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAzKDEpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MB0GA1UdDgQWBBTxzPCXgPzIUiTz94us0y0CCMf8BzAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBRIo61gdWpv7GDzaVXRALEyV_xs5DAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggIBAAqNK9Ejzdnb9L4TyakCpJByRYVTN_6nCGbtUd2E2sELjuJGRGiRmujp_jqNyIofO_ghSaP_tqH-3WRTRUbnt5xM8aBYoYJSOgKgTsNrB6clspdhCCmzhJy6EQuOqfUDm3C7hDru1_bN3DwXt3VpDqfuYtM3MAabKg0oCYVWgFwnAKYmZLZMWMQh7k_hZxy1gOCQmE9U08tf_pU21aI0El6n5A5uG2FT0placwchheFmXAtoPjT7nU53HVmRissxUR_vRCDj_ZCFo3K3nZNXCQOKPAMc9-LC0prb9Slg6siKtSHB3iGjNQlT9-nbSnDgifI8zC1cvT8CdaNLOmUywRIB4wvRn1z123NuyfJaIz95igW9P189vBTJEZREF-MgJEboWKdlGNn6bbBtu0waqAmUU7WVLeZKdtUI6EEKF7wRGYuY_BhZx1ipyXnBHZpsufuH4AwgOO289QKmqg8QAy7HFD9c8H8fNCtR7sTZ4YNP2AhEaES0rkMSQUCNVEz42YEBi2GgrSpnI94SPdb3J3PkCMZ4OgFRjztLO7nrgbPtflhSOo_VOE0_7Y74km43WAMQPKL3-44vQrEQ61Hd_24IcFh_ChNXvUDqp39GzYlO3D0zlau4ozll8BeLUZrJwHTQWZS8XR-EifCl4MW5Y3Y1SxOLrIxnukCzQxL7aGmc&s=IUyTHA86JImlW2sccFw-H-Bliy2u6V58zATKjSptQ5sICz_mGyGXcPIU5bwrazsVVVVOyJFlEiga4Ubzk8928jXqgkiZOz3nV1GWHLY4AltG5MAUyksukGu-moJal4sRcA1alFzX9aQJDZwmv4ItG15FClCv9UUb0nW1Po2YSM3wUmb1OUwQdpIMZyytROreD1J7fPYZPN5ksUvYyBMnQQYAkdzead3A5jTUORVUs8zwd9XNXU5ZYVmlgKEvmarHjeXjiETmoCyA0aQb3viwAkfeBVO6zKqWw3vh--2dIVRqKItMBN2Kb8NevU7MF8w6p38WOGM_9MHd1uDeD254Cw&h=k24azlsDiQ6GjBZsVxJmm1uAaYquxsvzd29UOg2U1vQ" ], "Retry-After": [ "15" @@ -531,13 +537,13 @@ "16499" ], "x-ms-request-id": [ - "1831e500-65ea-4a72-8679-066cd17fed8e" + "19141f9b-ca89-4d90-a069-b480b6edeead" ], "x-ms-correlation-request-id": [ - "1831e500-65ea-4a72-8679-066cd17fed8e" + "19141f9b-ca89-4d90-a069-b480b6edeead" ], "x-ms-routing-request-id": [ - "EASTUS:20241113T211814Z:1831e500-65ea-4a72-8679-066cd17fed8e" + "WESTUS2:20250911T204730Z:19141f9b-ca89-4d90-a069-b480b6edeead" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -549,10 +555,10 @@ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: 9DFFE5B0C5F94902827CCA3251F0B96E Ref B: MNZ221060610029 Ref C: 2024-11-13T21:18:13Z" + "Ref A: 5EFF9E57371A41659C33DE83F064CAAC Ref B: MWH011020807042 Ref C: 2025-09-11T20:47:30Z" ], "Date": [ - "Wed, 13 Nov 2024 21:18:13 GMT" + "Thu, 11 Sep 2025 20:47:30 GMT" ], "Expires": [ "-1" @@ -565,15 +571,15 @@ "StatusCode": 202 }, { - "RequestUri": "/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QUzg0MDktV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2016-09-01&t=638671294940874786&c=MIIHhzCCBm-gAwIBAgITHgVqhF9GOoUjuyqQWAAABWqEXzANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDYwHhcNMjQwOTIwMjMxMTQxWhcNMjUwMzE5MjMxMTQxWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKRtcYDBXS7zz5tRtvVyhrUAjudYhej1E2D3dp6XWuPdbVMbQZwMlye8vdT-kDhFD7T2mrdWqsoGnTGk0_xOHBfLGnW-0QRUqpeoTNIhu8vc2CfTUtm2t2s_-fzvFtRyhDA4mfCH1cz92EVj0vd3FD4ikW6bdOp1NkYFqUVBhKlbvJk6y-TbLFBLP5Zx4m0Ua-_P7aMzbgvOJgMOTC2jLs5w_lFDJWeP3IKUOiJmrfLpf4ey5Ov94oCE6YncDBSHJZKWcrSxDHgSz9AXrxarL4HLajGbF3MRvfkMN2gNXCoiJXBEqCLDnyQZ0BgXIvuK7vG8Rj0TyhJNj-QPr8taY6UCAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAyLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA2LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MB0GA1UdDgQWBBRKlJQpFyyZKSchkTlshetYOUX7xzAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBTxRmjG8cPwKy19i2rhsvm-NfzRQTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAG0WbzLPsmSSMI7aTe2npixmkdCmwcdZHGd43tUnB8JKrLNJEFcBsQmbcIH0adpnQNrDgRkNBBOTZ4s1LIBlRQapZpPsRItAMUguVpGVRH08T0i43w9xrp_clNbAJrrfRbmYroF0WJKMJ0nwW2rPjxdevSRygGK_nEfywwFi-p1RhHnkiEGL4GnP7PpQcRvAYMdH9LO5MRY7iLbBmosKatS_eWtSJD1CvzglNwy_vQzx81Vnk0CgndqXcVq-loGu7R4U7mkQ2NNqLbp447STxkpP-6Mdyv8J4bdnf1s3vFBNpgvJWKogWcNLlo8jnkbEf6RPNGe1W5lma7JwMKAcPzY&s=SAfA26HlBmSIQqtdaB86MVAJ1Q5b87xe4JSl-FuleFBchzrEmTUF_6m3tSgxaWrcOFIxYsuX_eJCGdOScdARm0zmR-ZvF9O_yV-UQ1PS3T4OjaGKMBaxypm8euuhpsXbmxSu0kaVkSitRevGh4v6XW5ZvJjv2CraM5JFXirCRst5CYGsBrr2ZkkB9036v-Di_evD5jQ7HRY1KwGN9pZsvws4nIyofo0wGlz8q2z5XmmXboxVI_0VXRsBmoejCFRfkrMhkZVc6Ygh65SI6cHrCVNhp2G5G4nSSQHroInE1Id1WFM5MCirav_bLF1lnW_dqQ3NrY1_1wG1NbZ51sjRpA&h=Un7mgBibzMZT-HM3vcfzwZpe9FtK74HUtnclKkK0i70", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjFhYmQ2NzgtMThjNS00NjYwLTlmZGQtOGM1YmE2YjZmZTFmL29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVXpnME1Ea3RWMFZUVkZWVE1pSXNJbXB2WWt4dlkyRjBhVzl1SWpvaWQyVnpkSFZ6TWlKOT9hcGktdmVyc2lvbj0yMDE2LTA5LTAxJnQ9NjM4NjcxMjk0OTQwODc0Nzg2JmM9TUlJSGh6Q0NCbS1nQXdJQkFnSVRIZ1ZxaEY5R09vVWp1eXFRV0FBQUJXcUVYekFOQmdrcWhraUc5dzBCQVFzRkFEQkVNUk13RVFZS0NaSW1pWlB5TEdRQkdSWURSMEpNTVJNd0VRWUtDWkltaVpQeUxHUUJHUllEUVUxRk1SZ3dGZ1lEVlFRREV3OUJUVVVnU1c1bWNtRWdRMEVnTURZd0hoY05NalF3T1RJd01qTXhNVFF4V2hjTk1qVXdNekU1TWpNeE1UUXhXakJBTVQ0d1BBWURWUVFERXpWaGMzbHVZMjl3WlhKaGRHbHZibk5wWjI1cGJtZGpaWEowYVdacFkyRjBaUzV0WVc1aFoyVnRaVzUwTG1GNmRYSmxMbU52YlRDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBS1J0Y1lEQlhTN3p6NXRSdHZWeWhyVUFqdWRZaGVqMUUyRDNkcDZYV3VQZGJWTWJRWndNbHllOHZkVC1rRGhGRDdUMm1yZFdxc29HblRHazBfeE9IQmZMR25XLTBRUlVxcGVvVE5JaHU4dmMyQ2ZUVXRtMnQyc18tZnp2RnRSeWhEQTRtZkNIMWN6OTJFVmowdmQzRkQ0aWtXNmJkT3AxTmtZRnFVVkJoS2xidkprNnktVGJMRkJMUDVaeDRtMFVhLV9QN2FNemJndk9KZ01PVEMyakxzNXdfbEZESldlUDNJS1VPaUptcmZMcGY0ZXk1T3Y5NG9DRTZZbmNEQlNISlpLV2NyU3hESGdTejlBWHJ4YXJMNEhMYWpHYkYzTVJ2ZmtNTjJnTlhDb2lKWEJFcUNMRG55UVowQmdYSXZ1Szd2RzhSajBUeWhKTmotUVByOHRhWTZVQ0F3RUFBYU9DQkhRd2dnUndNQ2NHQ1NzR0FRUUJnamNWQ2dRYU1CZ3dDZ1lJS3dZQkJRVUhBd0V3Q2dZSUt3WUJCUVVIQXdJd1BRWUpLd1lCQkFHQ054VUhCREF3TGdZbUt3WUJCQUdDTnhVSWhwRGpEWVRWdEhpRThZcy1oWnZkRnM2ZEVvRmdoZm1SUzRXc21UUUNBV1FDQVFjd2dnSExCZ2dyQmdFRkJRY0JBUVNDQWIwd2dnRzVNR01HQ0NzR0FRVUZCekFDaGxkb2RIUndPaTh2WTNKc0xtMXBZM0p2YzI5bWRDNWpiMjB2Y0d0cGFXNW1jbUV2UTJWeWRITXZRa3d5VUV0SlNVNVVRMEV3TWk1QlRVVXVSMEpNWDBGTlJTVXlNRWx1Wm5KaEpUSXdRMEVsTWpBd05pNWpjblF3VXdZSUt3WUJCUVVITUFLR1IyaDBkSEE2THk5amNtd3hMbUZ0WlM1blltd3ZZV2xoTDBKTU1sQkxTVWxPVkVOQk1ESXVRVTFGTGtkQ1RGOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFl1WTNKME1GTUdDQ3NHQVFVRkJ6QUNoa2RvZEhSd09pOHZZM0pzTWk1aGJXVXVaMkpzTDJGcFlTOUNUREpRUzBsSlRsUkRRVEF5TGtGTlJTNUhRa3hmUVUxRkpUSXdTVzVtY21FbE1qQkRRU1V5TURBMkxtTnlkREJUQmdnckJnRUZCUWN3QW9aSGFIUjBjRG92TDJOeWJETXVZVzFsTG1kaWJDOWhhV0V2UWt3eVVFdEpTVTVVUTBFd01pNUJUVVV1UjBKTVgwRk5SU1V5TUVsdVpuSmhKVEl3UTBFbE1qQXdOaTVqY25Rd1V3WUlLd1lCQlFVSE1BS0dSMmgwZEhBNkx5OWpjbXcwTG1GdFpTNW5ZbXd2WVdsaEwwSk1NbEJMU1VsT1ZFTkJNREl1UVUxRkxrZENURjlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURZdVkzSjBNQjBHQTFVZERnUVdCQlJLbEpRcEZ5eVpLU2Noa1Rsc2hldFlPVVg3eHpBT0JnTlZIUThCQWY4RUJBTUNCYUF3Z2dFbUJnTlZIUjhFZ2dFZE1JSUJHVENDQVJXZ2dnRVJvSUlCRFlZX2FIUjBjRG92TDJOeWJDNXRhV055YjNOdlpuUXVZMjl0TDNCcmFXbHVabkpoTDBOU1RDOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFl1WTNKc2hqRm9kSFJ3T2k4dlkzSnNNUzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01EWXVZM0pzaGpGb2RIUndPaTh2WTNKc01pNWhiV1V1WjJKc0wyTnliQzlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURZdVkzSnNoakZvZEhSd09pOHZZM0pzTXk1aGJXVXVaMkpzTDJOeWJDOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFl1WTNKc2hqRm9kSFJ3T2k4dlkzSnNOQzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01EWXVZM0pzTUlHZEJnTlZIU0FFZ1pVd2daSXdEQVlLS3dZQkJBR0NOM3NCQVRCbUJnb3JCZ0VFQVlJM2V3SUNNRmd3VmdZSUt3WUJCUVVIQWdJd1NoNUlBRE1BTXdCbEFEQUFNUUE1QURJQU1RQXRBRFFBWkFBMkFEUUFMUUEwQUdZQU9BQmpBQzBBWVFBd0FEVUFOUUF0QURVQVlnQmtBR0VBWmdCbUFHUUFOUUJsQURNQU13QmtNQXdHQ2lzR0FRUUJnamQ3QXdFd0RBWUtLd1lCQkFHQ04zc0VBakFmQmdOVkhTTUVHREFXZ0JUeFJtakc4Y1B3S3kxOWkycmhzdm0tTmZ6UlFUQWRCZ05WSFNVRUZqQVVCZ2dyQmdFRkJRY0RBUVlJS3dZQkJRVUhBd0l3RFFZSktvWklodmNOQVFFTEJRQURnZ0VCQUcwV2J6TFBzbVNTTUk3YVRlMm5waXhta2RDbXdjZFpIR2Q0M3RVbkI4SktyTE5KRUZjQnNRbWJjSUgwYWRwblFOckRnUmtOQkJPVFo0czFMSUJsUlFhcFpwUHNSSXRBTVVndVZwR1ZSSDA4VDBpNDN3OXhycF9jbE5iQUpycmZSYm1Zcm9GMFdKS01KMG53VzJyUGp4ZGV2U1J5Z0dLX25FZnl3d0ZpLXAxUmhIbmtpRUdMNEduUDdQcFFjUnZBWU1kSDlMTzVNUlk3aUxiQm1vc0thdFNfZVd0U0pEMUN2emdsTnd5X3ZReng4MVZuazBDZ25kcVhjVnEtbG9HdTdSNFU3bWtRMk5OcUxicDQ0N1NUeGtwUC02TWR5djhKNGJkbmYxczN2RkJOcGd2SldLb2dXY05MbG84am5rYkVmNlJQTkdlMVc1bG1hN0p3TUtBY1B6WSZzPVNBZkEyNkhsQm1TSVFxdGRhQjg2TVZBSjFRNWI4N3hlNEpTbC1GdWxlRkJjaHpyRW1UVUZfNm0zdFNneGFXcmNPRkl4WXN1WF9lSkNHZE9TY2RBUm0wem1SLVp2RjlPX3lWLVVRMVBTM1Q0T2phR0tNQmF4eXBtOGV1dWhwc1hibXhTdTBrYVZrU2l0UmV2R2g0djZYVzVadkpqdjJDcmFNNUpGWGlyQ1JzdDVDWUdzQnJyMlpra0I5MDM2di1EaV9ldkQ1alE3SFJZMUt3R045cFpzdndzNG5JeW9mbzB3R2x6OHEyejVYbW1YYm94VklfMFZYUnNCbW9lakNGUmZrck1oa1pWYzZZZ2g2NVNJNmNIckNWTmhwMkc1RzRuU1NRSHJvSW5FMUlkMVdGTTVNQ2lyYXZfYkxGMWxuV19kcVEzTnJZMV8xd0cxTmJaNTFzalJwQSZoPVVuN21nQmliek1aVC1ITTN2Y2Z6d1pwZTlGdEs3NEhVdG5jbEtrSzBpNzA=", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QUzI1MjEtV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2016-09-01&t=638932204506267428&c=MIIIpTCCBo2gAwIBAgITFgGsmnj73LBE7PaBtQABAayaeDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDMwHhcNMjUwNzE4MTIwNDI4WhcNMjYwMTE0MTIwNDI4WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKYwXiklImL5-WfPWj2FX3_Y-JxCd3XXEOuNXx5ggHubZZamujLTqEBSFsFYiH_9NCaqKTiATXu6fBpzW3ghgYhwr0PL071fQT15KnnNUFjd5hFXB7SYti9IwWu1lxSAz-De7HivujKdlsgcmfoV6upRQ0eva9e74EwLV9pCn4WQAhs-6T8p0CytQsi81qHMWybAbNvfom0ox78IEWdS_6g_d4Jl_I4ccYLMyRTOV2NioM96cRECWCZhbpLl1zwoYGSbU5H0MZaiCBjPlhXN40BqagpamZfP98sPYSBfreh6-iMGU5tNTRkh8RiJqzjhzIUpEv3PqLtWTyPUB8JS7aUCAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9BTTNQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAzKDEpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MB0GA1UdDgQWBBTxzPCXgPzIUiTz94us0y0CCMf8BzAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBRIo61gdWpv7GDzaVXRALEyV_xs5DAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggIBAAqNK9Ejzdnb9L4TyakCpJByRYVTN_6nCGbtUd2E2sELjuJGRGiRmujp_jqNyIofO_ghSaP_tqH-3WRTRUbnt5xM8aBYoYJSOgKgTsNrB6clspdhCCmzhJy6EQuOqfUDm3C7hDru1_bN3DwXt3VpDqfuYtM3MAabKg0oCYVWgFwnAKYmZLZMWMQh7k_hZxy1gOCQmE9U08tf_pU21aI0El6n5A5uG2FT0placwchheFmXAtoPjT7nU53HVmRissxUR_vRCDj_ZCFo3K3nZNXCQOKPAMc9-LC0prb9Slg6siKtSHB3iGjNQlT9-nbSnDgifI8zC1cvT8CdaNLOmUywRIB4wvRn1z123NuyfJaIz95igW9P189vBTJEZREF-MgJEboWKdlGNn6bbBtu0waqAmUU7WVLeZKdtUI6EEKF7wRGYuY_BhZx1ipyXnBHZpsufuH4AwgOO289QKmqg8QAy7HFD9c8H8fNCtR7sTZ4YNP2AhEaES0rkMSQUCNVEz42YEBi2GgrSpnI94SPdb3J3PkCMZ4OgFRjztLO7nrgbPtflhSOo_VOE0_7Y74km43WAMQPKL3-44vQrEQ61Hd_24IcFh_ChNXvUDqp39GzYlO3D0zlau4ozll8BeLUZrJwHTQWZS8XR-EifCl4MW5Y3Y1SxOLrIxnukCzQxL7aGmc&s=IUyTHA86JImlW2sccFw-H-Bliy2u6V58zATKjSptQ5sICz_mGyGXcPIU5bwrazsVVVVOyJFlEiga4Ubzk8928jXqgkiZOz3nV1GWHLY4AltG5MAUyksukGu-moJal4sRcA1alFzX9aQJDZwmv4ItG15FClCv9UUb0nW1Po2YSM3wUmb1OUwQdpIMZyytROreD1J7fPYZPN5ksUvYyBMnQQYAkdzead3A5jTUORVUs8zwd9XNXU5ZYVmlgKEvmarHjeXjiETmoCyA0aQb3viwAkfeBVO6zKqWw3vh--2dIVRqKItMBN2Kb8NevU7MF8w6p38WOGM_9MHd1uDeD254Cw&h=k24azlsDiQ6GjBZsVxJmm1uAaYquxsvzd29UOg2U1vQ", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVXpJMU1qRXRWMFZUVkZWVE1pSXNJbXB2WWt4dlkyRjBhVzl1SWpvaWQyVnpkSFZ6TWlKOT9hcGktdmVyc2lvbj0yMDE2LTA5LTAxJnQ9NjM4OTMyMjA0NTA2MjY3NDI4JmM9TUlJSXBUQ0NCbzJnQXdJQkFnSVRGZ0dzbW5qNzNMQkU3UGFCdFFBQkFheWFlREFOQmdrcWhraUc5dzBCQVFzRkFEQkVNUk13RVFZS0NaSW1pWlB5TEdRQkdSWURSMEpNTVJNd0VRWUtDWkltaVpQeUxHUUJHUllEUVUxRk1SZ3dGZ1lEVlFRREV3OUJUVVVnU1c1bWNtRWdRMEVnTURNd0hoY05NalV3TnpFNE1USXdOREk0V2hjTk1qWXdNVEUwTVRJd05ESTRXakJBTVQ0d1BBWURWUVFERXpWaGMzbHVZMjl3WlhKaGRHbHZibk5wWjI1cGJtZGpaWEowYVdacFkyRjBaUzV0WVc1aFoyVnRaVzUwTG1GNmRYSmxMbU52YlRDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBS1l3WGlrbEltTDUtV2ZQV2oyRlgzX1ktSnhDZDNYWEVPdU5YeDVnZ0h1YlpaYW11akxUcUVCU0ZzRllpSF85TkNhcUtUaUFUWHU2ZkJwelczZ2hnWWh3cjBQTDA3MWZRVDE1S25uTlVGamQ1aEZYQjdTWXRpOUl3V3UxbHhTQXotRGU3SGl2dWpLZGxzZ2NtZm9WNnVwUlEwZXZhOWU3NEV3TFY5cENuNFdRQWhzLTZUOHAwQ3l0UXNpODFxSE1XeWJBYk52Zm9tMG94NzhJRVdkU182Z19kNEpsX0k0Y2NZTE15UlRPVjJOaW9NOTZjUkVDV0NaaGJwTGwxendvWUdTYlU1SDBNWmFpQ0JqUGxoWE40MEJxYWdwYW1aZlA5OHNQWVNCZnJlaDYtaU1HVTV0TlRSa2g4UmlKcXpqaHpJVXBFdjNQcUx0V1R5UFVCOEpTN2FVQ0F3RUFBYU9DQkpJd2dnU09NQ2NHQ1NzR0FRUUJnamNWQ2dRYU1CZ3dDZ1lJS3dZQkJRVUhBd0V3Q2dZSUt3WUJCUVVIQXdJd1BRWUpLd1lCQkFHQ054VUhCREF3TGdZbUt3WUJCQUdDTnhVSWhwRGpEWVRWdEhpRThZcy1oWnZkRnM2ZEVvRmdoZm1SUzRXc21UUUNBV1FDQVFjd2dnSGFCZ2dyQmdFRkJRY0JBUVNDQWN3d2dnSElNR1lHQ0NzR0FRVUZCekFDaGxwb2RIUndPaTh2WTNKc0xtMXBZM0p2YzI5bWRDNWpiMjB2Y0d0cGFXNW1jbUV2UTJWeWRITXZRVTB6VUV0SlNVNVVRMEV3TVM1QlRVVXVSMEpNWDBGTlJTVXlNRWx1Wm5KaEpUSXdRMEVsTWpBd015Z3hLUzVqY25Rd1ZnWUlLd1lCQlFVSE1BS0dTbWgwZEhBNkx5OWpjbXd4TG1GdFpTNW5ZbXd2WVdsaEwwRk5NMUJMU1VsT1ZFTkJNREV1UVUxRkxrZENURjlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURNb01Ta3VZM0owTUZZR0NDc0dBUVVGQnpBQ2hrcG9kSFJ3T2k4dlkzSnNNaTVoYldVdVoySnNMMkZwWVM5QlRUTlFTMGxKVGxSRFFUQXhMa0ZOUlM1SFFreGZRVTFGSlRJd1NXNW1jbUVsTWpCRFFTVXlNREF6S0RFcExtTnlkREJXQmdnckJnRUZCUWN3QW9aS2FIUjBjRG92TDJOeWJETXVZVzFsTG1kaWJDOWhhV0V2UVUwelVFdEpTVTVVUTBFd01TNUJUVVV1UjBKTVgwRk5SU1V5TUVsdVpuSmhKVEl3UTBFbE1qQXdNeWd4S1M1amNuUXdWZ1lJS3dZQkJRVUhNQUtHU21oMGRIQTZMeTlqY213MExtRnRaUzVuWW13dllXbGhMMEZOTTFCTFNVbE9WRU5CTURFdVFVMUZMa2RDVEY5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKME1CMEdBMVVkRGdRV0JCVHh6UENYZ1B6SVVpVHo5NHVzMHkwQ0NNZjhCekFPQmdOVkhROEJBZjhFQkFNQ0JhQXdnZ0UxQmdOVkhSOEVnZ0VzTUlJQktEQ0NBU1NnZ2dFZ29JSUJISVpDYUhSMGNEb3ZMMk55YkM1dGFXTnliM052Wm5RdVkyOXRMM0JyYVdsdVpuSmhMME5TVEM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc2hqUm9kSFJ3T2k4dlkzSnNNUzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc2hqUm9kSFJ3T2k4dlkzSnNNaTVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc2hqUm9kSFJ3T2k4dlkzSnNNeTVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc2hqUm9kSFJ3T2k4dlkzSnNOQzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc01JR2RCZ05WSFNBRWdaVXdnWkl3REFZS0t3WUJCQUdDTjNzQkFUQm1CZ29yQmdFRUFZSTNld0lDTUZnd1ZnWUlLd1lCQlFVSEFnSXdTaDVJQURNQU13QmxBREFBTVFBNUFESUFNUUF0QURRQVpBQTJBRFFBTFFBMEFHWUFPQUJqQUMwQVlRQXdBRFVBTlFBdEFEVUFZZ0JrQUdFQVpnQm1BR1FBTlFCbEFETUFNd0JrTUF3R0Npc0dBUVFCZ2pkN0F3SXdEQVlLS3dZQkJBR0NOM3NFQWpBZkJnTlZIU01FR0RBV2dCUklvNjFnZFdwdjdHRHphVlhSQUxFeVZfeHM1REFkQmdOVkhTVUVGakFVQmdnckJnRUZCUWNEQVFZSUt3WUJCUVVIQXdJd0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dJQkFBcU5LOUVqemRuYjlMNFR5YWtDcEpCeVJZVlROXzZuQ0didFVkMkUyc0VManVKR1JHaVJtdWpwX2pxTnlJb2ZPX2doU2FQX3RxSC0zV1JUUlVibnQ1eE04YUJZb1lKU09nS2dUc05yQjZjbHNwZGhDQ216aEp5NkVRdU9xZlVEbTNDN2hEcnUxX2JOM0R3WHQzVnBEcWZ1WXRNM01BYWJLZzBvQ1lWV2dGd25BS1ltWkxaTVdNUWg3a19oWnh5MWdPQ1FtRTlVMDh0Zl9wVTIxYUkwRWw2bjVBNXVHMkZUMHBsYWN3Y2hoZUZtWEF0b1BqVDduVTUzSFZtUmlzc3hVUl92UkNEal9aQ0ZvM0szblpOWENRT0tQQU1jOS1MQzBwcmI5U2xnNnNpS3RTSEIzaUdqTlFsVDktbmJTbkRnaWZJOHpDMWN2VDhDZGFOTE9tVXl3UklCNHd2Um4xejEyM051eWZKYUl6OTVpZ1c5UDE4OXZCVEpFWlJFRi1NZ0pFYm9XS2RsR05uNmJiQnR1MHdhcUFtVVU3V1ZMZVpLZHRVSTZFRUtGN3dSR1l1WV9CaFp4MWlweVhuQkhacHN1ZnVINEF3Z09PMjg5UUttcWc4UUF5N0hGRDljOEg4Zk5DdFI3c1RaNFlOUDJBaEVhRVMwcmtNU1FVQ05WRXo0MllFQmkyR2dyU3BuSTk0U1BkYjNKM1BrQ01aNE9nRlJqenRMTzducmdiUHRmbGhTT29fVk9FMF83WTc0a200M1dBTVFQS0wzLTQ0dlFyRVE2MUhkXzI0SWNGaF9DaE5YdlVEcXAzOUd6WWxPM0QwemxhdTRvemxsOEJlTFVackp3SFRRV1pTOFhSLUVpZkNsNE1XNVkzWTFTeE9Mckl4bnVrQ3pReEw3YUdtYyZzPUlVeVRIQTg2SkltbFcyc2NjRnctSC1CbGl5MnU2VjU4ekFUS2pTcHRRNXNJQ3pfbUd5R1hjUElVNWJ3cmF6c1ZWVlZPeUpGbEVpZ2E0VWJ6azg5MjhqWHFna2laT3ozblYxR1dITFk0QWx0RzVNQVV5a3N1a0d1LW1vSmFsNHNSY0ExYWxGelg5YVFKRFp3bXY0SXRHMTVGQ2xDdjlVVWIwblcxUG8yWVNNM3dVbWIxT1V3UWRwSU1aeXl0Uk9yZUQxSjdmUFlaUE41a3NVdll5Qk1uUVFZQWtkemVhZDNBNWpUVU9SVlVzOHp3ZDlYTlhVNVpZVm1sZ0tFdm1hckhqZVhqaUVUbW9DeUEwYVFiM3Zpd0FrZmVCVk82ektxV3czdmgtLTJkSVZScUtJdE1CTjJLYjhOZXZVN01GOHc2cDM4V09HTV85TUhkMXVEZUQyNTRDdyZoPWsyNGF6bHNEaVE2R2pCWnNWeEptbTF1QWFZcXV4c3Z6ZDI5VU9nMlUxdlE=", "RequestMethod": "GET", "RequestHeaders": { "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.102" + "OSVersion/Microsoft.Windows.10.0.26100", + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.109" ] }, "RequestBody": "", @@ -585,7 +591,7 @@ "no-cache" ], "Location": [ - "https://management.azure.com/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QUzg0MDktV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2016-09-01&t=638671295093416445&c=MIIHhzCCBm-gAwIBAgITHgVqhF9GOoUjuyqQWAAABWqEXzANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDYwHhcNMjQwOTIwMjMxMTQxWhcNMjUwMzE5MjMxMTQxWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKRtcYDBXS7zz5tRtvVyhrUAjudYhej1E2D3dp6XWuPdbVMbQZwMlye8vdT-kDhFD7T2mrdWqsoGnTGk0_xOHBfLGnW-0QRUqpeoTNIhu8vc2CfTUtm2t2s_-fzvFtRyhDA4mfCH1cz92EVj0vd3FD4ikW6bdOp1NkYFqUVBhKlbvJk6y-TbLFBLP5Zx4m0Ua-_P7aMzbgvOJgMOTC2jLs5w_lFDJWeP3IKUOiJmrfLpf4ey5Ov94oCE6YncDBSHJZKWcrSxDHgSz9AXrxarL4HLajGbF3MRvfkMN2gNXCoiJXBEqCLDnyQZ0BgXIvuK7vG8Rj0TyhJNj-QPr8taY6UCAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAyLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA2LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MB0GA1UdDgQWBBRKlJQpFyyZKSchkTlshetYOUX7xzAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBTxRmjG8cPwKy19i2rhsvm-NfzRQTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAG0WbzLPsmSSMI7aTe2npixmkdCmwcdZHGd43tUnB8JKrLNJEFcBsQmbcIH0adpnQNrDgRkNBBOTZ4s1LIBlRQapZpPsRItAMUguVpGVRH08T0i43w9xrp_clNbAJrrfRbmYroF0WJKMJ0nwW2rPjxdevSRygGK_nEfywwFi-p1RhHnkiEGL4GnP7PpQcRvAYMdH9LO5MRY7iLbBmosKatS_eWtSJD1CvzglNwy_vQzx81Vnk0CgndqXcVq-loGu7R4U7mkQ2NNqLbp447STxkpP-6Mdyv8J4bdnf1s3vFBNpgvJWKogWcNLlo8jnkbEf6RPNGe1W5lma7JwMKAcPzY&s=VjadaR4kbJQmCxNULX5QfkCrZVLfkszK0Mvt6KZ-Y8wD1wZqmARxm78Q2WWEhGXqB8XTQRY9MCRIlRO5W4oG4IX7WSt_YQ637hv0sZsSqgr1gEwO6iwyCesSdcr_dOxqyxWJOebXu_8A7Vid6E-IfuS4hWyozC08ysNzq5L4Zm3cIq869JY_7sP97YXmbzwJ5VKRLIIqGQCqcbeo75lbb_RmCTyf44x5LkjJNd3gKqE2LvJLRDtAMaK2rzeIY89HJ1h7VL4zHHZ2RCSVBpS39VkvSn13EzU4yY2yorDoWVPSQkk9mXVJuJID5fDVK4O3H19Hsa6pyGzk-q7SedoEww&h=Ca1NGJEvSOqrc9nvuAJ0f_WuZ6H7ZeoqsHlupwGt9sc" + "https://management.azure.com/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QUzI1MjEtV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2016-09-01&t=638932204657322272&c=MIIIpTCCBo2gAwIBAgITFgGsmnj73LBE7PaBtQABAayaeDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDMwHhcNMjUwNzE4MTIwNDI4WhcNMjYwMTE0MTIwNDI4WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKYwXiklImL5-WfPWj2FX3_Y-JxCd3XXEOuNXx5ggHubZZamujLTqEBSFsFYiH_9NCaqKTiATXu6fBpzW3ghgYhwr0PL071fQT15KnnNUFjd5hFXB7SYti9IwWu1lxSAz-De7HivujKdlsgcmfoV6upRQ0eva9e74EwLV9pCn4WQAhs-6T8p0CytQsi81qHMWybAbNvfom0ox78IEWdS_6g_d4Jl_I4ccYLMyRTOV2NioM96cRECWCZhbpLl1zwoYGSbU5H0MZaiCBjPlhXN40BqagpamZfP98sPYSBfreh6-iMGU5tNTRkh8RiJqzjhzIUpEv3PqLtWTyPUB8JS7aUCAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9BTTNQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAzKDEpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MB0GA1UdDgQWBBTxzPCXgPzIUiTz94us0y0CCMf8BzAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBRIo61gdWpv7GDzaVXRALEyV_xs5DAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggIBAAqNK9Ejzdnb9L4TyakCpJByRYVTN_6nCGbtUd2E2sELjuJGRGiRmujp_jqNyIofO_ghSaP_tqH-3WRTRUbnt5xM8aBYoYJSOgKgTsNrB6clspdhCCmzhJy6EQuOqfUDm3C7hDru1_bN3DwXt3VpDqfuYtM3MAabKg0oCYVWgFwnAKYmZLZMWMQh7k_hZxy1gOCQmE9U08tf_pU21aI0El6n5A5uG2FT0placwchheFmXAtoPjT7nU53HVmRissxUR_vRCDj_ZCFo3K3nZNXCQOKPAMc9-LC0prb9Slg6siKtSHB3iGjNQlT9-nbSnDgifI8zC1cvT8CdaNLOmUywRIB4wvRn1z123NuyfJaIz95igW9P189vBTJEZREF-MgJEboWKdlGNn6bbBtu0waqAmUU7WVLeZKdtUI6EEKF7wRGYuY_BhZx1ipyXnBHZpsufuH4AwgOO289QKmqg8QAy7HFD9c8H8fNCtR7sTZ4YNP2AhEaES0rkMSQUCNVEz42YEBi2GgrSpnI94SPdb3J3PkCMZ4OgFRjztLO7nrgbPtflhSOo_VOE0_7Y74km43WAMQPKL3-44vQrEQ61Hd_24IcFh_ChNXvUDqp39GzYlO3D0zlau4ozll8BeLUZrJwHTQWZS8XR-EifCl4MW5Y3Y1SxOLrIxnukCzQxL7aGmc&s=HxFtqxIAlMl0Rui_sCtYIHfeG3zjFM1wZZCb4a2xkhHknBDWU7daVEt7B_7Q4kv38oOSX5TQeIWlsZK4vCDMa2PQ1mHIsBTrtW15anTpGGS_u6hR8dSGzYCE9QpasOJo6oylki3bv3VnkVc-ICXaAuGQMiCebStWjqO_cu-l8ZJy2c-aeaH-6Vy19gwJJYkKCrv1Y2W2w3ROBLJv-BLSt1tsUuJdsjxEk-FZXBQwkPCAdcau4hAHOCyvWEFRX2Fv1SV2dRP5uxU2nO83UhIsSyUc4NIHcEWlqOkhMqzC4utBuR40PsGz2so3FTT932G00g9HKoLMwoK0ZpUpiljtvg&h=fK94JmkBG8OTcaGFe7edpgE4u6_eGTf5n1saDhwgYK8" ], "Retry-After": [ "15" @@ -594,16 +600,16 @@ "1099" ], "x-ms-ratelimit-remaining-subscription-global-reads": [ - "16497" + "16499" ], "x-ms-request-id": [ - "36ec422b-e085-43f4-98c7-5bc298cf2bd1" + "ccde2341-ad5b-455c-9297-6888e7ad3c57" ], "x-ms-correlation-request-id": [ - "36ec422b-e085-43f4-98c7-5bc298cf2bd1" + "ccde2341-ad5b-455c-9297-6888e7ad3c57" ], "x-ms-routing-request-id": [ - "EASTUS:20241113T211829Z:36ec422b-e085-43f4-98c7-5bc298cf2bd1" + "WESTUS2:20250911T204745Z:ccde2341-ad5b-455c-9297-6888e7ad3c57" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -615,10 +621,10 @@ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: B21A9C852BF8469FB9C17ABEA793C282 Ref B: MNZ221060610029 Ref C: 2024-11-13T21:18:29Z" + "Ref A: 16FE0C728B254B768D8F4CC24ED355AA Ref B: MWH011020807042 Ref C: 2025-09-11T20:47:45Z" ], "Date": [ - "Wed, 13 Nov 2024 21:18:28 GMT" + "Thu, 11 Sep 2025 20:47:45 GMT" ], "Expires": [ "-1" @@ -631,15 +637,15 @@ "StatusCode": 202 }, { - "RequestUri": "/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QUzg0MDktV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2016-09-01&t=638671295093416445&c=MIIHhzCCBm-gAwIBAgITHgVqhF9GOoUjuyqQWAAABWqEXzANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDYwHhcNMjQwOTIwMjMxMTQxWhcNMjUwMzE5MjMxMTQxWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKRtcYDBXS7zz5tRtvVyhrUAjudYhej1E2D3dp6XWuPdbVMbQZwMlye8vdT-kDhFD7T2mrdWqsoGnTGk0_xOHBfLGnW-0QRUqpeoTNIhu8vc2CfTUtm2t2s_-fzvFtRyhDA4mfCH1cz92EVj0vd3FD4ikW6bdOp1NkYFqUVBhKlbvJk6y-TbLFBLP5Zx4m0Ua-_P7aMzbgvOJgMOTC2jLs5w_lFDJWeP3IKUOiJmrfLpf4ey5Ov94oCE6YncDBSHJZKWcrSxDHgSz9AXrxarL4HLajGbF3MRvfkMN2gNXCoiJXBEqCLDnyQZ0BgXIvuK7vG8Rj0TyhJNj-QPr8taY6UCAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAyLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA2LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MB0GA1UdDgQWBBRKlJQpFyyZKSchkTlshetYOUX7xzAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBTxRmjG8cPwKy19i2rhsvm-NfzRQTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAG0WbzLPsmSSMI7aTe2npixmkdCmwcdZHGd43tUnB8JKrLNJEFcBsQmbcIH0adpnQNrDgRkNBBOTZ4s1LIBlRQapZpPsRItAMUguVpGVRH08T0i43w9xrp_clNbAJrrfRbmYroF0WJKMJ0nwW2rPjxdevSRygGK_nEfywwFi-p1RhHnkiEGL4GnP7PpQcRvAYMdH9LO5MRY7iLbBmosKatS_eWtSJD1CvzglNwy_vQzx81Vnk0CgndqXcVq-loGu7R4U7mkQ2NNqLbp447STxkpP-6Mdyv8J4bdnf1s3vFBNpgvJWKogWcNLlo8jnkbEf6RPNGe1W5lma7JwMKAcPzY&s=VjadaR4kbJQmCxNULX5QfkCrZVLfkszK0Mvt6KZ-Y8wD1wZqmARxm78Q2WWEhGXqB8XTQRY9MCRIlRO5W4oG4IX7WSt_YQ637hv0sZsSqgr1gEwO6iwyCesSdcr_dOxqyxWJOebXu_8A7Vid6E-IfuS4hWyozC08ysNzq5L4Zm3cIq869JY_7sP97YXmbzwJ5VKRLIIqGQCqcbeo75lbb_RmCTyf44x5LkjJNd3gKqE2LvJLRDtAMaK2rzeIY89HJ1h7VL4zHHZ2RCSVBpS39VkvSn13EzU4yY2yorDoWVPSQkk9mXVJuJID5fDVK4O3H19Hsa6pyGzk-q7SedoEww&h=Ca1NGJEvSOqrc9nvuAJ0f_WuZ6H7ZeoqsHlupwGt9sc", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjFhYmQ2NzgtMThjNS00NjYwLTlmZGQtOGM1YmE2YjZmZTFmL29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVXpnME1Ea3RWMFZUVkZWVE1pSXNJbXB2WWt4dlkyRjBhVzl1SWpvaWQyVnpkSFZ6TWlKOT9hcGktdmVyc2lvbj0yMDE2LTA5LTAxJnQ9NjM4NjcxMjk1MDkzNDE2NDQ1JmM9TUlJSGh6Q0NCbS1nQXdJQkFnSVRIZ1ZxaEY5R09vVWp1eXFRV0FBQUJXcUVYekFOQmdrcWhraUc5dzBCQVFzRkFEQkVNUk13RVFZS0NaSW1pWlB5TEdRQkdSWURSMEpNTVJNd0VRWUtDWkltaVpQeUxHUUJHUllEUVUxRk1SZ3dGZ1lEVlFRREV3OUJUVVVnU1c1bWNtRWdRMEVnTURZd0hoY05NalF3T1RJd01qTXhNVFF4V2hjTk1qVXdNekU1TWpNeE1UUXhXakJBTVQ0d1BBWURWUVFERXpWaGMzbHVZMjl3WlhKaGRHbHZibk5wWjI1cGJtZGpaWEowYVdacFkyRjBaUzV0WVc1aFoyVnRaVzUwTG1GNmRYSmxMbU52YlRDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBS1J0Y1lEQlhTN3p6NXRSdHZWeWhyVUFqdWRZaGVqMUUyRDNkcDZYV3VQZGJWTWJRWndNbHllOHZkVC1rRGhGRDdUMm1yZFdxc29HblRHazBfeE9IQmZMR25XLTBRUlVxcGVvVE5JaHU4dmMyQ2ZUVXRtMnQyc18tZnp2RnRSeWhEQTRtZkNIMWN6OTJFVmowdmQzRkQ0aWtXNmJkT3AxTmtZRnFVVkJoS2xidkprNnktVGJMRkJMUDVaeDRtMFVhLV9QN2FNemJndk9KZ01PVEMyakxzNXdfbEZESldlUDNJS1VPaUptcmZMcGY0ZXk1T3Y5NG9DRTZZbmNEQlNISlpLV2NyU3hESGdTejlBWHJ4YXJMNEhMYWpHYkYzTVJ2ZmtNTjJnTlhDb2lKWEJFcUNMRG55UVowQmdYSXZ1Szd2RzhSajBUeWhKTmotUVByOHRhWTZVQ0F3RUFBYU9DQkhRd2dnUndNQ2NHQ1NzR0FRUUJnamNWQ2dRYU1CZ3dDZ1lJS3dZQkJRVUhBd0V3Q2dZSUt3WUJCUVVIQXdJd1BRWUpLd1lCQkFHQ054VUhCREF3TGdZbUt3WUJCQUdDTnhVSWhwRGpEWVRWdEhpRThZcy1oWnZkRnM2ZEVvRmdoZm1SUzRXc21UUUNBV1FDQVFjd2dnSExCZ2dyQmdFRkJRY0JBUVNDQWIwd2dnRzVNR01HQ0NzR0FRVUZCekFDaGxkb2RIUndPaTh2WTNKc0xtMXBZM0p2YzI5bWRDNWpiMjB2Y0d0cGFXNW1jbUV2UTJWeWRITXZRa3d5VUV0SlNVNVVRMEV3TWk1QlRVVXVSMEpNWDBGTlJTVXlNRWx1Wm5KaEpUSXdRMEVsTWpBd05pNWpjblF3VXdZSUt3WUJCUVVITUFLR1IyaDBkSEE2THk5amNtd3hMbUZ0WlM1blltd3ZZV2xoTDBKTU1sQkxTVWxPVkVOQk1ESXVRVTFGTGtkQ1RGOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFl1WTNKME1GTUdDQ3NHQVFVRkJ6QUNoa2RvZEhSd09pOHZZM0pzTWk1aGJXVXVaMkpzTDJGcFlTOUNUREpRUzBsSlRsUkRRVEF5TGtGTlJTNUhRa3hmUVUxRkpUSXdTVzVtY21FbE1qQkRRU1V5TURBMkxtTnlkREJUQmdnckJnRUZCUWN3QW9aSGFIUjBjRG92TDJOeWJETXVZVzFsTG1kaWJDOWhhV0V2UWt3eVVFdEpTVTVVUTBFd01pNUJUVVV1UjBKTVgwRk5SU1V5TUVsdVpuSmhKVEl3UTBFbE1qQXdOaTVqY25Rd1V3WUlLd1lCQlFVSE1BS0dSMmgwZEhBNkx5OWpjbXcwTG1GdFpTNW5ZbXd2WVdsaEwwSk1NbEJMU1VsT1ZFTkJNREl1UVUxRkxrZENURjlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURZdVkzSjBNQjBHQTFVZERnUVdCQlJLbEpRcEZ5eVpLU2Noa1Rsc2hldFlPVVg3eHpBT0JnTlZIUThCQWY4RUJBTUNCYUF3Z2dFbUJnTlZIUjhFZ2dFZE1JSUJHVENDQVJXZ2dnRVJvSUlCRFlZX2FIUjBjRG92TDJOeWJDNXRhV055YjNOdlpuUXVZMjl0TDNCcmFXbHVabkpoTDBOU1RDOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFl1WTNKc2hqRm9kSFJ3T2k4dlkzSnNNUzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01EWXVZM0pzaGpGb2RIUndPaTh2WTNKc01pNWhiV1V1WjJKc0wyTnliQzlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURZdVkzSnNoakZvZEhSd09pOHZZM0pzTXk1aGJXVXVaMkpzTDJOeWJDOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFl1WTNKc2hqRm9kSFJ3T2k4dlkzSnNOQzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01EWXVZM0pzTUlHZEJnTlZIU0FFZ1pVd2daSXdEQVlLS3dZQkJBR0NOM3NCQVRCbUJnb3JCZ0VFQVlJM2V3SUNNRmd3VmdZSUt3WUJCUVVIQWdJd1NoNUlBRE1BTXdCbEFEQUFNUUE1QURJQU1RQXRBRFFBWkFBMkFEUUFMUUEwQUdZQU9BQmpBQzBBWVFBd0FEVUFOUUF0QURVQVlnQmtBR0VBWmdCbUFHUUFOUUJsQURNQU13QmtNQXdHQ2lzR0FRUUJnamQ3QXdFd0RBWUtLd1lCQkFHQ04zc0VBakFmQmdOVkhTTUVHREFXZ0JUeFJtakc4Y1B3S3kxOWkycmhzdm0tTmZ6UlFUQWRCZ05WSFNVRUZqQVVCZ2dyQmdFRkJRY0RBUVlJS3dZQkJRVUhBd0l3RFFZSktvWklodmNOQVFFTEJRQURnZ0VCQUcwV2J6TFBzbVNTTUk3YVRlMm5waXhta2RDbXdjZFpIR2Q0M3RVbkI4SktyTE5KRUZjQnNRbWJjSUgwYWRwblFOckRnUmtOQkJPVFo0czFMSUJsUlFhcFpwUHNSSXRBTVVndVZwR1ZSSDA4VDBpNDN3OXhycF9jbE5iQUpycmZSYm1Zcm9GMFdKS01KMG53VzJyUGp4ZGV2U1J5Z0dLX25FZnl3d0ZpLXAxUmhIbmtpRUdMNEduUDdQcFFjUnZBWU1kSDlMTzVNUlk3aUxiQm1vc0thdFNfZVd0U0pEMUN2emdsTnd5X3ZReng4MVZuazBDZ25kcVhjVnEtbG9HdTdSNFU3bWtRMk5OcUxicDQ0N1NUeGtwUC02TWR5djhKNGJkbmYxczN2RkJOcGd2SldLb2dXY05MbG84am5rYkVmNlJQTkdlMVc1bG1hN0p3TUtBY1B6WSZzPVZqYWRhUjRrYkpRbUN4TlVMWDVRZmtDclpWTGZrc3pLME12dDZLWi1ZOHdEMXdacW1BUnhtNzhRMldXRWhHWHFCOFhUUVJZOU1DUklsUk81VzRvRzRJWDdXU3RfWVE2MzdodjBzWnNTcWdyMWdFd082aXd5Q2VzU2Rjcl9kT3hxeXhXSk9lYlh1XzhBN1ZpZDZFLUlmdVM0aFd5b3pDMDh5c056cTVMNFptM2NJcTg2OUpZXzdzUDk3WVhtYnp3SjVWS1JMSUlxR1FDcWNiZW83NWxiYl9SbUNUeWY0NHg1TGtqSk5kM2dLcUUyTHZKTFJEdEFNYUsycnplSVk4OUhKMWg3Vkw0ekhIWjJSQ1NWQnBTMzlWa3ZTbjEzRXpVNHlZMnlvckRvV1ZQU1FrazltWFZKdUpJRDVmRFZLNE8zSDE5SHNhNnB5R3prLXE3U2Vkb0V3dyZoPUNhMU5HSkV2U09xcmM5bnZ1QUowZl9XdVo2SDdaZW9xc0hsdXB3R3Q5c2M=", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QUzI1MjEtV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2016-09-01&t=638932204657322272&c=MIIIpTCCBo2gAwIBAgITFgGsmnj73LBE7PaBtQABAayaeDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDMwHhcNMjUwNzE4MTIwNDI4WhcNMjYwMTE0MTIwNDI4WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKYwXiklImL5-WfPWj2FX3_Y-JxCd3XXEOuNXx5ggHubZZamujLTqEBSFsFYiH_9NCaqKTiATXu6fBpzW3ghgYhwr0PL071fQT15KnnNUFjd5hFXB7SYti9IwWu1lxSAz-De7HivujKdlsgcmfoV6upRQ0eva9e74EwLV9pCn4WQAhs-6T8p0CytQsi81qHMWybAbNvfom0ox78IEWdS_6g_d4Jl_I4ccYLMyRTOV2NioM96cRECWCZhbpLl1zwoYGSbU5H0MZaiCBjPlhXN40BqagpamZfP98sPYSBfreh6-iMGU5tNTRkh8RiJqzjhzIUpEv3PqLtWTyPUB8JS7aUCAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9BTTNQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAzKDEpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MB0GA1UdDgQWBBTxzPCXgPzIUiTz94us0y0CCMf8BzAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBRIo61gdWpv7GDzaVXRALEyV_xs5DAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggIBAAqNK9Ejzdnb9L4TyakCpJByRYVTN_6nCGbtUd2E2sELjuJGRGiRmujp_jqNyIofO_ghSaP_tqH-3WRTRUbnt5xM8aBYoYJSOgKgTsNrB6clspdhCCmzhJy6EQuOqfUDm3C7hDru1_bN3DwXt3VpDqfuYtM3MAabKg0oCYVWgFwnAKYmZLZMWMQh7k_hZxy1gOCQmE9U08tf_pU21aI0El6n5A5uG2FT0placwchheFmXAtoPjT7nU53HVmRissxUR_vRCDj_ZCFo3K3nZNXCQOKPAMc9-LC0prb9Slg6siKtSHB3iGjNQlT9-nbSnDgifI8zC1cvT8CdaNLOmUywRIB4wvRn1z123NuyfJaIz95igW9P189vBTJEZREF-MgJEboWKdlGNn6bbBtu0waqAmUU7WVLeZKdtUI6EEKF7wRGYuY_BhZx1ipyXnBHZpsufuH4AwgOO289QKmqg8QAy7HFD9c8H8fNCtR7sTZ4YNP2AhEaES0rkMSQUCNVEz42YEBi2GgrSpnI94SPdb3J3PkCMZ4OgFRjztLO7nrgbPtflhSOo_VOE0_7Y74km43WAMQPKL3-44vQrEQ61Hd_24IcFh_ChNXvUDqp39GzYlO3D0zlau4ozll8BeLUZrJwHTQWZS8XR-EifCl4MW5Y3Y1SxOLrIxnukCzQxL7aGmc&s=HxFtqxIAlMl0Rui_sCtYIHfeG3zjFM1wZZCb4a2xkhHknBDWU7daVEt7B_7Q4kv38oOSX5TQeIWlsZK4vCDMa2PQ1mHIsBTrtW15anTpGGS_u6hR8dSGzYCE9QpasOJo6oylki3bv3VnkVc-ICXaAuGQMiCebStWjqO_cu-l8ZJy2c-aeaH-6Vy19gwJJYkKCrv1Y2W2w3ROBLJv-BLSt1tsUuJdsjxEk-FZXBQwkPCAdcau4hAHOCyvWEFRX2Fv1SV2dRP5uxU2nO83UhIsSyUc4NIHcEWlqOkhMqzC4utBuR40PsGz2so3FTT932G00g9HKoLMwoK0ZpUpiljtvg&h=fK94JmkBG8OTcaGFe7edpgE4u6_eGTf5n1saDhwgYK8", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVXpJMU1qRXRWMFZUVkZWVE1pSXNJbXB2WWt4dlkyRjBhVzl1SWpvaWQyVnpkSFZ6TWlKOT9hcGktdmVyc2lvbj0yMDE2LTA5LTAxJnQ9NjM4OTMyMjA0NjU3MzIyMjcyJmM9TUlJSXBUQ0NCbzJnQXdJQkFnSVRGZ0dzbW5qNzNMQkU3UGFCdFFBQkFheWFlREFOQmdrcWhraUc5dzBCQVFzRkFEQkVNUk13RVFZS0NaSW1pWlB5TEdRQkdSWURSMEpNTVJNd0VRWUtDWkltaVpQeUxHUUJHUllEUVUxRk1SZ3dGZ1lEVlFRREV3OUJUVVVnU1c1bWNtRWdRMEVnTURNd0hoY05NalV3TnpFNE1USXdOREk0V2hjTk1qWXdNVEUwTVRJd05ESTRXakJBTVQ0d1BBWURWUVFERXpWaGMzbHVZMjl3WlhKaGRHbHZibk5wWjI1cGJtZGpaWEowYVdacFkyRjBaUzV0WVc1aFoyVnRaVzUwTG1GNmRYSmxMbU52YlRDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBS1l3WGlrbEltTDUtV2ZQV2oyRlgzX1ktSnhDZDNYWEVPdU5YeDVnZ0h1YlpaYW11akxUcUVCU0ZzRllpSF85TkNhcUtUaUFUWHU2ZkJwelczZ2hnWWh3cjBQTDA3MWZRVDE1S25uTlVGamQ1aEZYQjdTWXRpOUl3V3UxbHhTQXotRGU3SGl2dWpLZGxzZ2NtZm9WNnVwUlEwZXZhOWU3NEV3TFY5cENuNFdRQWhzLTZUOHAwQ3l0UXNpODFxSE1XeWJBYk52Zm9tMG94NzhJRVdkU182Z19kNEpsX0k0Y2NZTE15UlRPVjJOaW9NOTZjUkVDV0NaaGJwTGwxendvWUdTYlU1SDBNWmFpQ0JqUGxoWE40MEJxYWdwYW1aZlA5OHNQWVNCZnJlaDYtaU1HVTV0TlRSa2g4UmlKcXpqaHpJVXBFdjNQcUx0V1R5UFVCOEpTN2FVQ0F3RUFBYU9DQkpJd2dnU09NQ2NHQ1NzR0FRUUJnamNWQ2dRYU1CZ3dDZ1lJS3dZQkJRVUhBd0V3Q2dZSUt3WUJCUVVIQXdJd1BRWUpLd1lCQkFHQ054VUhCREF3TGdZbUt3WUJCQUdDTnhVSWhwRGpEWVRWdEhpRThZcy1oWnZkRnM2ZEVvRmdoZm1SUzRXc21UUUNBV1FDQVFjd2dnSGFCZ2dyQmdFRkJRY0JBUVNDQWN3d2dnSElNR1lHQ0NzR0FRVUZCekFDaGxwb2RIUndPaTh2WTNKc0xtMXBZM0p2YzI5bWRDNWpiMjB2Y0d0cGFXNW1jbUV2UTJWeWRITXZRVTB6VUV0SlNVNVVRMEV3TVM1QlRVVXVSMEpNWDBGTlJTVXlNRWx1Wm5KaEpUSXdRMEVsTWpBd015Z3hLUzVqY25Rd1ZnWUlLd1lCQlFVSE1BS0dTbWgwZEhBNkx5OWpjbXd4TG1GdFpTNW5ZbXd2WVdsaEwwRk5NMUJMU1VsT1ZFTkJNREV1UVUxRkxrZENURjlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURNb01Ta3VZM0owTUZZR0NDc0dBUVVGQnpBQ2hrcG9kSFJ3T2k4dlkzSnNNaTVoYldVdVoySnNMMkZwWVM5QlRUTlFTMGxKVGxSRFFUQXhMa0ZOUlM1SFFreGZRVTFGSlRJd1NXNW1jbUVsTWpCRFFTVXlNREF6S0RFcExtTnlkREJXQmdnckJnRUZCUWN3QW9aS2FIUjBjRG92TDJOeWJETXVZVzFsTG1kaWJDOWhhV0V2UVUwelVFdEpTVTVVUTBFd01TNUJUVVV1UjBKTVgwRk5SU1V5TUVsdVpuSmhKVEl3UTBFbE1qQXdNeWd4S1M1amNuUXdWZ1lJS3dZQkJRVUhNQUtHU21oMGRIQTZMeTlqY213MExtRnRaUzVuWW13dllXbGhMMEZOTTFCTFNVbE9WRU5CTURFdVFVMUZMa2RDVEY5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKME1CMEdBMVVkRGdRV0JCVHh6UENYZ1B6SVVpVHo5NHVzMHkwQ0NNZjhCekFPQmdOVkhROEJBZjhFQkFNQ0JhQXdnZ0UxQmdOVkhSOEVnZ0VzTUlJQktEQ0NBU1NnZ2dFZ29JSUJISVpDYUhSMGNEb3ZMMk55YkM1dGFXTnliM052Wm5RdVkyOXRMM0JyYVdsdVpuSmhMME5TVEM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc2hqUm9kSFJ3T2k4dlkzSnNNUzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc2hqUm9kSFJ3T2k4dlkzSnNNaTVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc2hqUm9kSFJ3T2k4dlkzSnNNeTVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc2hqUm9kSFJ3T2k4dlkzSnNOQzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc01JR2RCZ05WSFNBRWdaVXdnWkl3REFZS0t3WUJCQUdDTjNzQkFUQm1CZ29yQmdFRUFZSTNld0lDTUZnd1ZnWUlLd1lCQlFVSEFnSXdTaDVJQURNQU13QmxBREFBTVFBNUFESUFNUUF0QURRQVpBQTJBRFFBTFFBMEFHWUFPQUJqQUMwQVlRQXdBRFVBTlFBdEFEVUFZZ0JrQUdFQVpnQm1BR1FBTlFCbEFETUFNd0JrTUF3R0Npc0dBUVFCZ2pkN0F3SXdEQVlLS3dZQkJBR0NOM3NFQWpBZkJnTlZIU01FR0RBV2dCUklvNjFnZFdwdjdHRHphVlhSQUxFeVZfeHM1REFkQmdOVkhTVUVGakFVQmdnckJnRUZCUWNEQVFZSUt3WUJCUVVIQXdJd0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dJQkFBcU5LOUVqemRuYjlMNFR5YWtDcEpCeVJZVlROXzZuQ0didFVkMkUyc0VManVKR1JHaVJtdWpwX2pxTnlJb2ZPX2doU2FQX3RxSC0zV1JUUlVibnQ1eE04YUJZb1lKU09nS2dUc05yQjZjbHNwZGhDQ216aEp5NkVRdU9xZlVEbTNDN2hEcnUxX2JOM0R3WHQzVnBEcWZ1WXRNM01BYWJLZzBvQ1lWV2dGd25BS1ltWkxaTVdNUWg3a19oWnh5MWdPQ1FtRTlVMDh0Zl9wVTIxYUkwRWw2bjVBNXVHMkZUMHBsYWN3Y2hoZUZtWEF0b1BqVDduVTUzSFZtUmlzc3hVUl92UkNEal9aQ0ZvM0szblpOWENRT0tQQU1jOS1MQzBwcmI5U2xnNnNpS3RTSEIzaUdqTlFsVDktbmJTbkRnaWZJOHpDMWN2VDhDZGFOTE9tVXl3UklCNHd2Um4xejEyM051eWZKYUl6OTVpZ1c5UDE4OXZCVEpFWlJFRi1NZ0pFYm9XS2RsR05uNmJiQnR1MHdhcUFtVVU3V1ZMZVpLZHRVSTZFRUtGN3dSR1l1WV9CaFp4MWlweVhuQkhacHN1ZnVINEF3Z09PMjg5UUttcWc4UUF5N0hGRDljOEg4Zk5DdFI3c1RaNFlOUDJBaEVhRVMwcmtNU1FVQ05WRXo0MllFQmkyR2dyU3BuSTk0U1BkYjNKM1BrQ01aNE9nRlJqenRMTzducmdiUHRmbGhTT29fVk9FMF83WTc0a200M1dBTVFQS0wzLTQ0dlFyRVE2MUhkXzI0SWNGaF9DaE5YdlVEcXAzOUd6WWxPM0QwemxhdTRvemxsOEJlTFVackp3SFRRV1pTOFhSLUVpZkNsNE1XNVkzWTFTeE9Mckl4bnVrQ3pReEw3YUdtYyZzPUh4RnRxeElBbE1sMFJ1aV9zQ3RZSUhmZUczempGTTF3WlpDYjRhMnhraEhrbkJEV1U3ZGFWRXQ3Ql83UTRrdjM4b09TWDVUUWVJV2xzWks0dkNETWEyUFExbUhJc0JUcnRXMTVhblRwR0dTX3U2aFI4ZFNHellDRTlRcGFzT0pvNm95bGtpM2J2M1Zua1ZjLUlDWGFBdUdRTWlDZWJTdFdqcU9fY3UtbDhaSnkyYy1hZWFILTZWeTE5Z3dKSllrS0NydjFZMlcydzNST0JMSnYtQkxTdDF0c1V1SmRzanhFay1GWlhCUXdrUENBZGNhdTRoQUhPQ3l2V0VGUlgyRnYxU1YyZFJQNXV4VTJuTzgzVWhJc1N5VWM0TklIY0VXbHFPa2hNcXpDNHV0QnVSNDBQc0d6MnNvM0ZUVDkzMkcwMGc5SEtvTE13b0swWnBVcGlsanR2ZyZoPWZLOTRKbWtCRzhPVGNhR0ZlN2VkcGdFNHU2X2VHVGY1bjFzYURod2dZSzg=", "RequestMethod": "GET", "RequestHeaders": { "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.102" + "OSVersion/Microsoft.Windows.10.0.26100", + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.109" ] }, "RequestBody": "", @@ -657,13 +663,13 @@ "16499" ], "x-ms-request-id": [ - "ea5a3084-d3a5-4318-9a9e-1e8aefe02ca2" + "41a9b525-19da-42d8-9ddd-0b79cd6d68fe" ], "x-ms-correlation-request-id": [ - "ea5a3084-d3a5-4318-9a9e-1e8aefe02ca2" + "41a9b525-19da-42d8-9ddd-0b79cd6d68fe" ], "x-ms-routing-request-id": [ - "EASTUS:20241113T211844Z:ea5a3084-d3a5-4318-9a9e-1e8aefe02ca2" + "WESTUS2:20250911T204800Z:41a9b525-19da-42d8-9ddd-0b79cd6d68fe" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -675,10 +681,10 @@ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: 9AA0FEEF869E4337AF6CE7A0DE742DC8 Ref B: MNZ221060610029 Ref C: 2024-11-13T21:18:44Z" + "Ref A: 348985C976214DDBA46763E6B0D40185 Ref B: MWH011020807042 Ref C: 2025-09-11T20:48:00Z" ], "Date": [ - "Wed, 13 Nov 2024 21:18:43 GMT" + "Thu, 11 Sep 2025 20:48:00 GMT" ], "Expires": [ "-1" @@ -691,15 +697,15 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QUzg0MDktV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2016-09-01&t=638671295093416445&c=MIIHhzCCBm-gAwIBAgITHgVqhF9GOoUjuyqQWAAABWqEXzANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDYwHhcNMjQwOTIwMjMxMTQxWhcNMjUwMzE5MjMxMTQxWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKRtcYDBXS7zz5tRtvVyhrUAjudYhej1E2D3dp6XWuPdbVMbQZwMlye8vdT-kDhFD7T2mrdWqsoGnTGk0_xOHBfLGnW-0QRUqpeoTNIhu8vc2CfTUtm2t2s_-fzvFtRyhDA4mfCH1cz92EVj0vd3FD4ikW6bdOp1NkYFqUVBhKlbvJk6y-TbLFBLP5Zx4m0Ua-_P7aMzbgvOJgMOTC2jLs5w_lFDJWeP3IKUOiJmrfLpf4ey5Ov94oCE6YncDBSHJZKWcrSxDHgSz9AXrxarL4HLajGbF3MRvfkMN2gNXCoiJXBEqCLDnyQZ0BgXIvuK7vG8Rj0TyhJNj-QPr8taY6UCAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAyLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA2LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MB0GA1UdDgQWBBRKlJQpFyyZKSchkTlshetYOUX7xzAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBTxRmjG8cPwKy19i2rhsvm-NfzRQTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAG0WbzLPsmSSMI7aTe2npixmkdCmwcdZHGd43tUnB8JKrLNJEFcBsQmbcIH0adpnQNrDgRkNBBOTZ4s1LIBlRQapZpPsRItAMUguVpGVRH08T0i43w9xrp_clNbAJrrfRbmYroF0WJKMJ0nwW2rPjxdevSRygGK_nEfywwFi-p1RhHnkiEGL4GnP7PpQcRvAYMdH9LO5MRY7iLbBmosKatS_eWtSJD1CvzglNwy_vQzx81Vnk0CgndqXcVq-loGu7R4U7mkQ2NNqLbp447STxkpP-6Mdyv8J4bdnf1s3vFBNpgvJWKogWcNLlo8jnkbEf6RPNGe1W5lma7JwMKAcPzY&s=VjadaR4kbJQmCxNULX5QfkCrZVLfkszK0Mvt6KZ-Y8wD1wZqmARxm78Q2WWEhGXqB8XTQRY9MCRIlRO5W4oG4IX7WSt_YQ637hv0sZsSqgr1gEwO6iwyCesSdcr_dOxqyxWJOebXu_8A7Vid6E-IfuS4hWyozC08ysNzq5L4Zm3cIq869JY_7sP97YXmbzwJ5VKRLIIqGQCqcbeo75lbb_RmCTyf44x5LkjJNd3gKqE2LvJLRDtAMaK2rzeIY89HJ1h7VL4zHHZ2RCSVBpS39VkvSn13EzU4yY2yorDoWVPSQkk9mXVJuJID5fDVK4O3H19Hsa6pyGzk-q7SedoEww&h=Ca1NGJEvSOqrc9nvuAJ0f_WuZ6H7ZeoqsHlupwGt9sc", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjFhYmQ2NzgtMThjNS00NjYwLTlmZGQtOGM1YmE2YjZmZTFmL29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVXpnME1Ea3RWMFZUVkZWVE1pSXNJbXB2WWt4dlkyRjBhVzl1SWpvaWQyVnpkSFZ6TWlKOT9hcGktdmVyc2lvbj0yMDE2LTA5LTAxJnQ9NjM4NjcxMjk1MDkzNDE2NDQ1JmM9TUlJSGh6Q0NCbS1nQXdJQkFnSVRIZ1ZxaEY5R09vVWp1eXFRV0FBQUJXcUVYekFOQmdrcWhraUc5dzBCQVFzRkFEQkVNUk13RVFZS0NaSW1pWlB5TEdRQkdSWURSMEpNTVJNd0VRWUtDWkltaVpQeUxHUUJHUllEUVUxRk1SZ3dGZ1lEVlFRREV3OUJUVVVnU1c1bWNtRWdRMEVnTURZd0hoY05NalF3T1RJd01qTXhNVFF4V2hjTk1qVXdNekU1TWpNeE1UUXhXakJBTVQ0d1BBWURWUVFERXpWaGMzbHVZMjl3WlhKaGRHbHZibk5wWjI1cGJtZGpaWEowYVdacFkyRjBaUzV0WVc1aFoyVnRaVzUwTG1GNmRYSmxMbU52YlRDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBS1J0Y1lEQlhTN3p6NXRSdHZWeWhyVUFqdWRZaGVqMUUyRDNkcDZYV3VQZGJWTWJRWndNbHllOHZkVC1rRGhGRDdUMm1yZFdxc29HblRHazBfeE9IQmZMR25XLTBRUlVxcGVvVE5JaHU4dmMyQ2ZUVXRtMnQyc18tZnp2RnRSeWhEQTRtZkNIMWN6OTJFVmowdmQzRkQ0aWtXNmJkT3AxTmtZRnFVVkJoS2xidkprNnktVGJMRkJMUDVaeDRtMFVhLV9QN2FNemJndk9KZ01PVEMyakxzNXdfbEZESldlUDNJS1VPaUptcmZMcGY0ZXk1T3Y5NG9DRTZZbmNEQlNISlpLV2NyU3hESGdTejlBWHJ4YXJMNEhMYWpHYkYzTVJ2ZmtNTjJnTlhDb2lKWEJFcUNMRG55UVowQmdYSXZ1Szd2RzhSajBUeWhKTmotUVByOHRhWTZVQ0F3RUFBYU9DQkhRd2dnUndNQ2NHQ1NzR0FRUUJnamNWQ2dRYU1CZ3dDZ1lJS3dZQkJRVUhBd0V3Q2dZSUt3WUJCUVVIQXdJd1BRWUpLd1lCQkFHQ054VUhCREF3TGdZbUt3WUJCQUdDTnhVSWhwRGpEWVRWdEhpRThZcy1oWnZkRnM2ZEVvRmdoZm1SUzRXc21UUUNBV1FDQVFjd2dnSExCZ2dyQmdFRkJRY0JBUVNDQWIwd2dnRzVNR01HQ0NzR0FRVUZCekFDaGxkb2RIUndPaTh2WTNKc0xtMXBZM0p2YzI5bWRDNWpiMjB2Y0d0cGFXNW1jbUV2UTJWeWRITXZRa3d5VUV0SlNVNVVRMEV3TWk1QlRVVXVSMEpNWDBGTlJTVXlNRWx1Wm5KaEpUSXdRMEVsTWpBd05pNWpjblF3VXdZSUt3WUJCUVVITUFLR1IyaDBkSEE2THk5amNtd3hMbUZ0WlM1blltd3ZZV2xoTDBKTU1sQkxTVWxPVkVOQk1ESXVRVTFGTGtkQ1RGOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFl1WTNKME1GTUdDQ3NHQVFVRkJ6QUNoa2RvZEhSd09pOHZZM0pzTWk1aGJXVXVaMkpzTDJGcFlTOUNUREpRUzBsSlRsUkRRVEF5TGtGTlJTNUhRa3hmUVUxRkpUSXdTVzVtY21FbE1qQkRRU1V5TURBMkxtTnlkREJUQmdnckJnRUZCUWN3QW9aSGFIUjBjRG92TDJOeWJETXVZVzFsTG1kaWJDOWhhV0V2UWt3eVVFdEpTVTVVUTBFd01pNUJUVVV1UjBKTVgwRk5SU1V5TUVsdVpuSmhKVEl3UTBFbE1qQXdOaTVqY25Rd1V3WUlLd1lCQlFVSE1BS0dSMmgwZEhBNkx5OWpjbXcwTG1GdFpTNW5ZbXd2WVdsaEwwSk1NbEJMU1VsT1ZFTkJNREl1UVUxRkxrZENURjlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURZdVkzSjBNQjBHQTFVZERnUVdCQlJLbEpRcEZ5eVpLU2Noa1Rsc2hldFlPVVg3eHpBT0JnTlZIUThCQWY4RUJBTUNCYUF3Z2dFbUJnTlZIUjhFZ2dFZE1JSUJHVENDQVJXZ2dnRVJvSUlCRFlZX2FIUjBjRG92TDJOeWJDNXRhV055YjNOdlpuUXVZMjl0TDNCcmFXbHVabkpoTDBOU1RDOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFl1WTNKc2hqRm9kSFJ3T2k4dlkzSnNNUzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01EWXVZM0pzaGpGb2RIUndPaTh2WTNKc01pNWhiV1V1WjJKc0wyTnliQzlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURZdVkzSnNoakZvZEhSd09pOHZZM0pzTXk1aGJXVXVaMkpzTDJOeWJDOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRFl1WTNKc2hqRm9kSFJ3T2k4dlkzSnNOQzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01EWXVZM0pzTUlHZEJnTlZIU0FFZ1pVd2daSXdEQVlLS3dZQkJBR0NOM3NCQVRCbUJnb3JCZ0VFQVlJM2V3SUNNRmd3VmdZSUt3WUJCUVVIQWdJd1NoNUlBRE1BTXdCbEFEQUFNUUE1QURJQU1RQXRBRFFBWkFBMkFEUUFMUUEwQUdZQU9BQmpBQzBBWVFBd0FEVUFOUUF0QURVQVlnQmtBR0VBWmdCbUFHUUFOUUJsQURNQU13QmtNQXdHQ2lzR0FRUUJnamQ3QXdFd0RBWUtLd1lCQkFHQ04zc0VBakFmQmdOVkhTTUVHREFXZ0JUeFJtakc4Y1B3S3kxOWkycmhzdm0tTmZ6UlFUQWRCZ05WSFNVRUZqQVVCZ2dyQmdFRkJRY0RBUVlJS3dZQkJRVUhBd0l3RFFZSktvWklodmNOQVFFTEJRQURnZ0VCQUcwV2J6TFBzbVNTTUk3YVRlMm5waXhta2RDbXdjZFpIR2Q0M3RVbkI4SktyTE5KRUZjQnNRbWJjSUgwYWRwblFOckRnUmtOQkJPVFo0czFMSUJsUlFhcFpwUHNSSXRBTVVndVZwR1ZSSDA4VDBpNDN3OXhycF9jbE5iQUpycmZSYm1Zcm9GMFdKS01KMG53VzJyUGp4ZGV2U1J5Z0dLX25FZnl3d0ZpLXAxUmhIbmtpRUdMNEduUDdQcFFjUnZBWU1kSDlMTzVNUlk3aUxiQm1vc0thdFNfZVd0U0pEMUN2emdsTnd5X3ZReng4MVZuazBDZ25kcVhjVnEtbG9HdTdSNFU3bWtRMk5OcUxicDQ0N1NUeGtwUC02TWR5djhKNGJkbmYxczN2RkJOcGd2SldLb2dXY05MbG84am5rYkVmNlJQTkdlMVc1bG1hN0p3TUtBY1B6WSZzPVZqYWRhUjRrYkpRbUN4TlVMWDVRZmtDclpWTGZrc3pLME12dDZLWi1ZOHdEMXdacW1BUnhtNzhRMldXRWhHWHFCOFhUUVJZOU1DUklsUk81VzRvRzRJWDdXU3RfWVE2MzdodjBzWnNTcWdyMWdFd082aXd5Q2VzU2Rjcl9kT3hxeXhXSk9lYlh1XzhBN1ZpZDZFLUlmdVM0aFd5b3pDMDh5c056cTVMNFptM2NJcTg2OUpZXzdzUDk3WVhtYnp3SjVWS1JMSUlxR1FDcWNiZW83NWxiYl9SbUNUeWY0NHg1TGtqSk5kM2dLcUUyTHZKTFJEdEFNYUsycnplSVk4OUhKMWg3Vkw0ekhIWjJSQ1NWQnBTMzlWa3ZTbjEzRXpVNHlZMnlvckRvV1ZQU1FrazltWFZKdUpJRDVmRFZLNE8zSDE5SHNhNnB5R3prLXE3U2Vkb0V3dyZoPUNhMU5HSkV2U09xcmM5bnZ1QUowZl9XdVo2SDdaZW9xc0hsdXB3R3Q5c2M=", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QUzI1MjEtV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2016-09-01&t=638932204657322272&c=MIIIpTCCBo2gAwIBAgITFgGsmnj73LBE7PaBtQABAayaeDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDMwHhcNMjUwNzE4MTIwNDI4WhcNMjYwMTE0MTIwNDI4WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKYwXiklImL5-WfPWj2FX3_Y-JxCd3XXEOuNXx5ggHubZZamujLTqEBSFsFYiH_9NCaqKTiATXu6fBpzW3ghgYhwr0PL071fQT15KnnNUFjd5hFXB7SYti9IwWu1lxSAz-De7HivujKdlsgcmfoV6upRQ0eva9e74EwLV9pCn4WQAhs-6T8p0CytQsi81qHMWybAbNvfom0ox78IEWdS_6g_d4Jl_I4ccYLMyRTOV2NioM96cRECWCZhbpLl1zwoYGSbU5H0MZaiCBjPlhXN40BqagpamZfP98sPYSBfreh6-iMGU5tNTRkh8RiJqzjhzIUpEv3PqLtWTyPUB8JS7aUCAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9BTTNQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAzKDEpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MB0GA1UdDgQWBBTxzPCXgPzIUiTz94us0y0CCMf8BzAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBRIo61gdWpv7GDzaVXRALEyV_xs5DAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggIBAAqNK9Ejzdnb9L4TyakCpJByRYVTN_6nCGbtUd2E2sELjuJGRGiRmujp_jqNyIofO_ghSaP_tqH-3WRTRUbnt5xM8aBYoYJSOgKgTsNrB6clspdhCCmzhJy6EQuOqfUDm3C7hDru1_bN3DwXt3VpDqfuYtM3MAabKg0oCYVWgFwnAKYmZLZMWMQh7k_hZxy1gOCQmE9U08tf_pU21aI0El6n5A5uG2FT0placwchheFmXAtoPjT7nU53HVmRissxUR_vRCDj_ZCFo3K3nZNXCQOKPAMc9-LC0prb9Slg6siKtSHB3iGjNQlT9-nbSnDgifI8zC1cvT8CdaNLOmUywRIB4wvRn1z123NuyfJaIz95igW9P189vBTJEZREF-MgJEboWKdlGNn6bbBtu0waqAmUU7WVLeZKdtUI6EEKF7wRGYuY_BhZx1ipyXnBHZpsufuH4AwgOO289QKmqg8QAy7HFD9c8H8fNCtR7sTZ4YNP2AhEaES0rkMSQUCNVEz42YEBi2GgrSpnI94SPdb3J3PkCMZ4OgFRjztLO7nrgbPtflhSOo_VOE0_7Y74km43WAMQPKL3-44vQrEQ61Hd_24IcFh_ChNXvUDqp39GzYlO3D0zlau4ozll8BeLUZrJwHTQWZS8XR-EifCl4MW5Y3Y1SxOLrIxnukCzQxL7aGmc&s=HxFtqxIAlMl0Rui_sCtYIHfeG3zjFM1wZZCb4a2xkhHknBDWU7daVEt7B_7Q4kv38oOSX5TQeIWlsZK4vCDMa2PQ1mHIsBTrtW15anTpGGS_u6hR8dSGzYCE9QpasOJo6oylki3bv3VnkVc-ICXaAuGQMiCebStWjqO_cu-l8ZJy2c-aeaH-6Vy19gwJJYkKCrv1Y2W2w3ROBLJv-BLSt1tsUuJdsjxEk-FZXBQwkPCAdcau4hAHOCyvWEFRX2Fv1SV2dRP5uxU2nO83UhIsSyUc4NIHcEWlqOkhMqzC4utBuR40PsGz2so3FTT932G00g9HKoLMwoK0ZpUpiljtvg&h=fK94JmkBG8OTcaGFe7edpgE4u6_eGTf5n1saDhwgYK8", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVXpJMU1qRXRWMFZUVkZWVE1pSXNJbXB2WWt4dlkyRjBhVzl1SWpvaWQyVnpkSFZ6TWlKOT9hcGktdmVyc2lvbj0yMDE2LTA5LTAxJnQ9NjM4OTMyMjA0NjU3MzIyMjcyJmM9TUlJSXBUQ0NCbzJnQXdJQkFnSVRGZ0dzbW5qNzNMQkU3UGFCdFFBQkFheWFlREFOQmdrcWhraUc5dzBCQVFzRkFEQkVNUk13RVFZS0NaSW1pWlB5TEdRQkdSWURSMEpNTVJNd0VRWUtDWkltaVpQeUxHUUJHUllEUVUxRk1SZ3dGZ1lEVlFRREV3OUJUVVVnU1c1bWNtRWdRMEVnTURNd0hoY05NalV3TnpFNE1USXdOREk0V2hjTk1qWXdNVEUwTVRJd05ESTRXakJBTVQ0d1BBWURWUVFERXpWaGMzbHVZMjl3WlhKaGRHbHZibk5wWjI1cGJtZGpaWEowYVdacFkyRjBaUzV0WVc1aFoyVnRaVzUwTG1GNmRYSmxMbU52YlRDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBS1l3WGlrbEltTDUtV2ZQV2oyRlgzX1ktSnhDZDNYWEVPdU5YeDVnZ0h1YlpaYW11akxUcUVCU0ZzRllpSF85TkNhcUtUaUFUWHU2ZkJwelczZ2hnWWh3cjBQTDA3MWZRVDE1S25uTlVGamQ1aEZYQjdTWXRpOUl3V3UxbHhTQXotRGU3SGl2dWpLZGxzZ2NtZm9WNnVwUlEwZXZhOWU3NEV3TFY5cENuNFdRQWhzLTZUOHAwQ3l0UXNpODFxSE1XeWJBYk52Zm9tMG94NzhJRVdkU182Z19kNEpsX0k0Y2NZTE15UlRPVjJOaW9NOTZjUkVDV0NaaGJwTGwxendvWUdTYlU1SDBNWmFpQ0JqUGxoWE40MEJxYWdwYW1aZlA5OHNQWVNCZnJlaDYtaU1HVTV0TlRSa2g4UmlKcXpqaHpJVXBFdjNQcUx0V1R5UFVCOEpTN2FVQ0F3RUFBYU9DQkpJd2dnU09NQ2NHQ1NzR0FRUUJnamNWQ2dRYU1CZ3dDZ1lJS3dZQkJRVUhBd0V3Q2dZSUt3WUJCUVVIQXdJd1BRWUpLd1lCQkFHQ054VUhCREF3TGdZbUt3WUJCQUdDTnhVSWhwRGpEWVRWdEhpRThZcy1oWnZkRnM2ZEVvRmdoZm1SUzRXc21UUUNBV1FDQVFjd2dnSGFCZ2dyQmdFRkJRY0JBUVNDQWN3d2dnSElNR1lHQ0NzR0FRVUZCekFDaGxwb2RIUndPaTh2WTNKc0xtMXBZM0p2YzI5bWRDNWpiMjB2Y0d0cGFXNW1jbUV2UTJWeWRITXZRVTB6VUV0SlNVNVVRMEV3TVM1QlRVVXVSMEpNWDBGTlJTVXlNRWx1Wm5KaEpUSXdRMEVsTWpBd015Z3hLUzVqY25Rd1ZnWUlLd1lCQlFVSE1BS0dTbWgwZEhBNkx5OWpjbXd4TG1GdFpTNW5ZbXd2WVdsaEwwRk5NMUJMU1VsT1ZFTkJNREV1UVUxRkxrZENURjlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURNb01Ta3VZM0owTUZZR0NDc0dBUVVGQnpBQ2hrcG9kSFJ3T2k4dlkzSnNNaTVoYldVdVoySnNMMkZwWVM5QlRUTlFTMGxKVGxSRFFUQXhMa0ZOUlM1SFFreGZRVTFGSlRJd1NXNW1jbUVsTWpCRFFTVXlNREF6S0RFcExtTnlkREJXQmdnckJnRUZCUWN3QW9aS2FIUjBjRG92TDJOeWJETXVZVzFsTG1kaWJDOWhhV0V2UVUwelVFdEpTVTVVUTBFd01TNUJUVVV1UjBKTVgwRk5SU1V5TUVsdVpuSmhKVEl3UTBFbE1qQXdNeWd4S1M1amNuUXdWZ1lJS3dZQkJRVUhNQUtHU21oMGRIQTZMeTlqY213MExtRnRaUzVuWW13dllXbGhMMEZOTTFCTFNVbE9WRU5CTURFdVFVMUZMa2RDVEY5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKME1CMEdBMVVkRGdRV0JCVHh6UENYZ1B6SVVpVHo5NHVzMHkwQ0NNZjhCekFPQmdOVkhROEJBZjhFQkFNQ0JhQXdnZ0UxQmdOVkhSOEVnZ0VzTUlJQktEQ0NBU1NnZ2dFZ29JSUJISVpDYUhSMGNEb3ZMMk55YkM1dGFXTnliM052Wm5RdVkyOXRMM0JyYVdsdVpuSmhMME5TVEM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc2hqUm9kSFJ3T2k4dlkzSnNNUzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc2hqUm9kSFJ3T2k4dlkzSnNNaTVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc2hqUm9kSFJ3T2k4dlkzSnNNeTVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc2hqUm9kSFJ3T2k4dlkzSnNOQzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc01JR2RCZ05WSFNBRWdaVXdnWkl3REFZS0t3WUJCQUdDTjNzQkFUQm1CZ29yQmdFRUFZSTNld0lDTUZnd1ZnWUlLd1lCQlFVSEFnSXdTaDVJQURNQU13QmxBREFBTVFBNUFESUFNUUF0QURRQVpBQTJBRFFBTFFBMEFHWUFPQUJqQUMwQVlRQXdBRFVBTlFBdEFEVUFZZ0JrQUdFQVpnQm1BR1FBTlFCbEFETUFNd0JrTUF3R0Npc0dBUVFCZ2pkN0F3SXdEQVlLS3dZQkJBR0NOM3NFQWpBZkJnTlZIU01FR0RBV2dCUklvNjFnZFdwdjdHRHphVlhSQUxFeVZfeHM1REFkQmdOVkhTVUVGakFVQmdnckJnRUZCUWNEQVFZSUt3WUJCUVVIQXdJd0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dJQkFBcU5LOUVqemRuYjlMNFR5YWtDcEpCeVJZVlROXzZuQ0didFVkMkUyc0VManVKR1JHaVJtdWpwX2pxTnlJb2ZPX2doU2FQX3RxSC0zV1JUUlVibnQ1eE04YUJZb1lKU09nS2dUc05yQjZjbHNwZGhDQ216aEp5NkVRdU9xZlVEbTNDN2hEcnUxX2JOM0R3WHQzVnBEcWZ1WXRNM01BYWJLZzBvQ1lWV2dGd25BS1ltWkxaTVdNUWg3a19oWnh5MWdPQ1FtRTlVMDh0Zl9wVTIxYUkwRWw2bjVBNXVHMkZUMHBsYWN3Y2hoZUZtWEF0b1BqVDduVTUzSFZtUmlzc3hVUl92UkNEal9aQ0ZvM0szblpOWENRT0tQQU1jOS1MQzBwcmI5U2xnNnNpS3RTSEIzaUdqTlFsVDktbmJTbkRnaWZJOHpDMWN2VDhDZGFOTE9tVXl3UklCNHd2Um4xejEyM051eWZKYUl6OTVpZ1c5UDE4OXZCVEpFWlJFRi1NZ0pFYm9XS2RsR05uNmJiQnR1MHdhcUFtVVU3V1ZMZVpLZHRVSTZFRUtGN3dSR1l1WV9CaFp4MWlweVhuQkhacHN1ZnVINEF3Z09PMjg5UUttcWc4UUF5N0hGRDljOEg4Zk5DdFI3c1RaNFlOUDJBaEVhRVMwcmtNU1FVQ05WRXo0MllFQmkyR2dyU3BuSTk0U1BkYjNKM1BrQ01aNE9nRlJqenRMTzducmdiUHRmbGhTT29fVk9FMF83WTc0a200M1dBTVFQS0wzLTQ0dlFyRVE2MUhkXzI0SWNGaF9DaE5YdlVEcXAzOUd6WWxPM0QwemxhdTRvemxsOEJlTFVackp3SFRRV1pTOFhSLUVpZkNsNE1XNVkzWTFTeE9Mckl4bnVrQ3pReEw3YUdtYyZzPUh4RnRxeElBbE1sMFJ1aV9zQ3RZSUhmZUczempGTTF3WlpDYjRhMnhraEhrbkJEV1U3ZGFWRXQ3Ql83UTRrdjM4b09TWDVUUWVJV2xzWks0dkNETWEyUFExbUhJc0JUcnRXMTVhblRwR0dTX3U2aFI4ZFNHellDRTlRcGFzT0pvNm95bGtpM2J2M1Zua1ZjLUlDWGFBdUdRTWlDZWJTdFdqcU9fY3UtbDhaSnkyYy1hZWFILTZWeTE5Z3dKSllrS0NydjFZMlcydzNST0JMSnYtQkxTdDF0c1V1SmRzanhFay1GWlhCUXdrUENBZGNhdTRoQUhPQ3l2V0VGUlgyRnYxU1YyZFJQNXV4VTJuTzgzVWhJc1N5VWM0TklIY0VXbHFPa2hNcXpDNHV0QnVSNDBQc0d6MnNvM0ZUVDkzMkcwMGc5SEtvTE13b0swWnBVcGlsanR2ZyZoPWZLOTRKbWtCRzhPVGNhR0ZlN2VkcGdFNHU2X2VHVGY1bjFzYURod2dZSzg=", "RequestMethod": "GET", "RequestHeaders": { "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.102" + "OSVersion/Microsoft.Windows.10.0.26100", + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.109" ] }, "RequestBody": "", @@ -717,13 +723,13 @@ "16499" ], "x-ms-request-id": [ - "be7f9de9-e46a-4536-b7e9-7e2cc2265d87" + "0b6642fe-facb-40cd-b86f-3af58682d161" ], "x-ms-correlation-request-id": [ - "be7f9de9-e46a-4536-b7e9-7e2cc2265d87" + "0b6642fe-facb-40cd-b86f-3af58682d161" ], "x-ms-routing-request-id": [ - "EASTUS:20241113T211844Z:be7f9de9-e46a-4536-b7e9-7e2cc2265d87" + "WESTUS2:20250911T204800Z:0b6642fe-facb-40cd-b86f-3af58682d161" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -735,10 +741,10 @@ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: CF1D3EB9308F478293C08C5530151CEA Ref B: MNZ221060610029 Ref C: 2024-11-13T21:18:44Z" + "Ref A: 8D23669EE1E1432BA2A40D35F422E434 Ref B: MWH011020807042 Ref C: 2025-09-11T20:48:00Z" ], "Date": [ - "Wed, 13 Nov 2024 21:18:43 GMT" + "Thu, 11 Sep 2025 20:48:00 GMT" ], "Expires": [ "-1" @@ -753,14 +759,14 @@ ], "Names": { "Test-CreateNewBatchAccountWithSystemIdentity": [ - "ps239", - "ps8409" + "ps3606", + "ps2521" ] }, "Variables": { - "SubscriptionId": "21abd678-18c5-4660-9fdd-8c5ba6b6fe1f", - "AZURE_BATCH_ACCOUNT": "dawatrouhobo", - "AZURE_BATCH_ENDPOINT": "https://dawatrouhobo.eastus2.batch.azure.com", - "AZURE_BATCH_RESOURCE_GROUP": "dawatrou-rg" + "SubscriptionId": "94bd7ded-68b4-4ffa-82a5-37ac72caa2ec", + "AZURE_BATCH_ACCOUNT": "dotnotsdkbatchaccount2", + "AZURE_BATCH_ENDPOINT": "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com", + "AZURE_BATCH_RESOURCE_GROUP": "automation" } } \ No newline at end of file diff --git a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchAccountTests/TestGetBatchSupportedImages.json b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchAccountTests/TestGetBatchSupportedImages.json index e6198142196a..a2d71826c06e 100644 --- a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchAccountTests/TestGetBatchSupportedImages.json +++ b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchAccountTests/TestGetBatchSupportedImages.json @@ -5,22 +5,22 @@ "EncodedRequestUri": "L3N1cHBvcnRlZGltYWdlcz9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjA=", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "f79cb56d-4d6b-41de-9bc0-9bad335b6436" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "4f0fd03e-e8a5-4fcb-9b16-fa3ff9697b07" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:16:08 GMT" + "Thu, 11 Sep 2025 20:48:39 GMT" ], "x-ms-client-request-id": [ - "60158908-fa2a-4b92-806e-ef87c1242e83" + "052db33c-2af8-4549-8ed6-cf7b2eee92bc" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -34,7 +34,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "89921d02-32f3-48e6-835a-dafa513a0de7" + "91f3b47c-3046-46cb-b349-bfb613750229" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -46,21 +46,21 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:16:07 GMT" + "Thu, 11 Sep 2025 20:48:39 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#supportedimages\",\r\n \"value\": [\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"almalinux\",\r\n \"offer\": \"almalinux\",\r\n \"sku\": \"8-gen1\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"unverified\",\r\n \"nodeAgentSKUId\": \"batch.node.el 8\",\r\n \"batchSupportEndOfLife\": \"2024-12-29T00:00:00Z\",\r\n \"osType\": \"linux\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"almalinux\",\r\n \"offer\": \"almalinux\",\r\n \"sku\": \"8-gen2\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"unverified\",\r\n \"nodeAgentSKUId\": \"batch.node.el 8\",\r\n \"capabilities\": [\r\n \"Generation2VMImage\"\r\n ],\r\n \"batchSupportEndOfLife\": \"2024-12-29T00:00:00Z\",\r\n \"osType\": \"linux\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"almalinux\",\r\n \"offer\": \"almalinux\",\r\n \"sku\": \"8_5\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"unverified\",\r\n \"nodeAgentSKUId\": \"batch.node.el 8\",\r\n \"batchSupportEndOfLife\": \"2024-12-29T00:00:00Z\",\r\n \"osType\": \"linux\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"almalinux\",\r\n \"offer\": \"almalinux\",\r\n \"sku\": \"8_5-gen2\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"unverified\",\r\n \"nodeAgentSKUId\": \"batch.node.el 8\",\r\n \"capabilities\": [\r\n \"Generation2VMImage\"\r\n ],\r\n \"batchSupportEndOfLife\": \"2024-12-29T00:00:00Z\",\r\n \"osType\": \"linux\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"almalinux\",\r\n \"offer\": \"almalinux\",\r\n \"sku\": \"9-gen1\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"unverified\",\r\n \"nodeAgentSKUId\": \"batch.node.el 9\",\r\n \"batchSupportEndOfLife\": \"2024-12-29T00:00:00Z\",\r\n \"osType\": \"linux\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"almalinux\",\r\n \"offer\": \"almalinux\",\r\n \"sku\": \"9-gen2\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"unverified\",\r\n \"nodeAgentSKUId\": \"batch.node.el 9\",\r\n \"capabilities\": [\r\n \"Generation2VMImage\"\r\n ],\r\n \"batchSupportEndOfLife\": \"2024-12-29T00:00:00Z\",\r\n \"osType\": \"linux\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"almalinux\",\r\n \"offer\": \"almalinux-hpc\",\r\n \"sku\": \"8-hpc-gen1\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"unverified\",\r\n \"nodeAgentSKUId\": \"batch.node.el 8\",\r\n \"capabilities\": [\r\n \"DockerCompatible\",\r\n \"SupportsRDMAOnly\",\r\n \"IntelMPIRuntimeInstalled\"\r\n ],\r\n \"osType\": \"linux\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"almalinux\",\r\n \"offer\": \"almalinux-hpc\",\r\n \"sku\": \"8-hpc-gen2\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"unverified\",\r\n \"nodeAgentSKUId\": \"batch.node.el 8\",\r\n \"capabilities\": [\r\n \"DockerCompatible\",\r\n \"SupportsRDMAOnly\",\r\n \"IntelMPIRuntimeInstalled\",\r\n \"Generation2VMImage\"\r\n ],\r\n \"osType\": \"linux\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"almalinux\",\r\n \"offer\": \"almalinux-x86_64\",\r\n \"sku\": \"8-gen1\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"verified\",\r\n \"nodeAgentSKUId\": \"batch.node.el 8\",\r\n \"osType\": \"linux\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"almalinux\",\r\n \"offer\": \"almalinux-x86_64\",\r\n \"sku\": \"8-gen2\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"verified\",\r\n \"nodeAgentSKUId\": \"batch.node.el 8\",\r\n \"capabilities\": [\r\n \"Generation2VMImage\"\r\n ],\r\n \"osType\": \"linux\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"almalinux\",\r\n \"offer\": \"almalinux-x86_64\",\r\n \"sku\": \"9-gen1\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"verified\",\r\n \"nodeAgentSKUId\": \"batch.node.el 9\",\r\n \"osType\": \"linux\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"almalinux\",\r\n \"offer\": \"almalinux-x86_64\",\r\n \"sku\": \"9-gen2\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"verified\",\r\n \"nodeAgentSKUId\": \"batch.node.el 9\",\r\n \"capabilities\": [\r\n \"Generation2VMImage\"\r\n ],\r\n \"osType\": \"linux\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-confidential-vm-jammy\",\r\n \"sku\": \"22_04-lts-cvm\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"unverified\",\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 22.04\",\r\n \"capabilities\": [\r\n \"ConfidentialVMCompatible\",\r\n \"Generation2VMImage\"\r\n ],\r\n \"osType\": \"linux\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"verified\",\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"batchSupportEndOfLife\": \"2025-04-23T00:00:00Z\",\r\n \"osType\": \"linux\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts-gen2\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"verified\",\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"capabilities\": [\r\n \"Generation2VMImage\"\r\n ],\r\n \"batchSupportEndOfLife\": \"2025-04-23T00:00:00Z\",\r\n \"osType\": \"linux\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-jammy\",\r\n \"sku\": \"22_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"verified\",\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 22.04\",\r\n \"osType\": \"linux\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-jammy\",\r\n \"sku\": \"22_04-lts-gen2\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"verified\",\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 22.04\",\r\n \"capabilities\": [\r\n \"Generation2VMImage\"\r\n ],\r\n \"osType\": \"linux\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"ubuntu-24_04-lts\",\r\n \"sku\": \"cvm\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"unverified\",\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 24.04\",\r\n \"capabilities\": [\r\n \"ConfidentialVMCompatible\",\r\n \"Generation2VMImage\"\r\n ],\r\n \"osType\": \"linux\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"ubuntu-24_04-lts\",\r\n \"sku\": \"server\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"verified\",\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 24.04\",\r\n \"capabilities\": [\r\n \"Generation2VMImage\"\r\n ],\r\n \"osType\": \"linux\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"ubuntu-24_04-lts\",\r\n \"sku\": \"server-gen1\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"verified\",\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 24.04\",\r\n \"osType\": \"linux\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoft-azure-batch\",\r\n \"offer\": \"ubuntu-server-container\",\r\n \"sku\": \"20-04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"verified\",\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"capabilities\": [\r\n \"DockerCompatible\",\r\n \"NvidiaTeslaDriverInstalled\",\r\n \"NvidiaGridDriverInstalled\"\r\n ],\r\n \"batchSupportEndOfLife\": \"2025-04-23T00:00:00Z\",\r\n \"osType\": \"linux\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoft-azure-batch\",\r\n \"offer\": \"ubuntu-server-container-rdma\",\r\n \"sku\": \"20-04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"verified\",\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"capabilities\": [\r\n \"DockerCompatible\",\r\n \"NvidiaTeslaDriverInstalled\",\r\n \"SupportsRDMAOnly\",\r\n \"IntelMPIRuntimeInstalled\"\r\n ],\r\n \"batchSupportEndOfLife\": \"2025-04-23T00:00:00Z\",\r\n \"osType\": \"linux\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoft-dsvm\",\r\n \"offer\": \"dsvm-win-2019\",\r\n \"sku\": \"winserver-2019\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"unverified\",\r\n \"nodeAgentSKUId\": \"batch.node.windows amd64\",\r\n \"capabilities\": [\r\n \"DockerCompatible\"\r\n ],\r\n \"osType\": \"windows\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoft-dsvm\",\r\n \"offer\": \"ubuntu-2004\",\r\n \"sku\": \"2004\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"unverified\",\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"capabilities\": [\r\n \"NvidiaTeslaDriverInstalled\"\r\n ],\r\n \"batchSupportEndOfLife\": \"2025-04-23T00:00:00Z\",\r\n \"osType\": \"linux\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoft-dsvm\",\r\n \"offer\": \"ubuntu-2004\",\r\n \"sku\": \"2004-gen2\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"unverified\",\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"capabilities\": [\r\n \"NvidiaTeslaDriverInstalled\"\r\n ],\r\n \"batchSupportEndOfLife\": \"2025-04-23T00:00:00Z\",\r\n \"osType\": \"linux\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoft-dsvm\",\r\n \"offer\": \"ubuntu-hpc\",\r\n \"sku\": \"2004\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"verified\",\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"capabilities\": [\r\n \"DockerCompatible\",\r\n \"SupportsRDMAOnly\",\r\n \"Generation2VMImage\",\r\n \"IntelMPIRuntimeInstalled\"\r\n ],\r\n \"batchSupportEndOfLife\": \"2025-04-23T00:00:00Z\",\r\n \"osType\": \"linux\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoft-dsvm\",\r\n \"offer\": \"ubuntu-hpc\",\r\n \"sku\": \"2204\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"verified\",\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 22.04\",\r\n \"capabilities\": [\r\n \"DockerCompatible\",\r\n \"SupportsRDMAOnly\",\r\n \"Generation2VMImage\",\r\n \"IntelMPIRuntimeInstalled\"\r\n ],\r\n \"osType\": \"linux\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoftcblmariner\",\r\n \"offer\": \"cbl-mariner\",\r\n \"sku\": \"cbl-mariner-2\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"verified\",\r\n \"nodeAgentSKUId\": \"batch.node.mariner 2.0\",\r\n \"osType\": \"linux\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoftcblmariner\",\r\n \"offer\": \"cbl-mariner\",\r\n \"sku\": \"cbl-mariner-2-gen2\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"verified\",\r\n \"nodeAgentSKUId\": \"batch.node.mariner 2.0\",\r\n \"capabilities\": [\r\n \"Generation2VMImage\"\r\n ],\r\n \"osType\": \"linux\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoftwindowsserver\",\r\n \"offer\": \"windowsserver\",\r\n \"sku\": \"2012-datacenter\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"unverified\",\r\n \"nodeAgentSKUId\": \"batch.node.windows amd64\",\r\n \"batchSupportEndOfLife\": \"2023-10-10T00:00:00Z\",\r\n \"osType\": \"windows\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoftwindowsserver\",\r\n \"offer\": \"windowsserver\",\r\n \"sku\": \"2012-datacenter-smalldisk\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"unverified\",\r\n \"nodeAgentSKUId\": \"batch.node.windows amd64\",\r\n \"batchSupportEndOfLife\": \"2023-10-10T00:00:00Z\",\r\n \"osType\": \"windows\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoftwindowsserver\",\r\n \"offer\": \"windowsserver\",\r\n \"sku\": \"2012-r2-datacenter\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"unverified\",\r\n \"nodeAgentSKUId\": \"batch.node.windows amd64\",\r\n \"batchSupportEndOfLife\": \"2023-10-10T00:00:00Z\",\r\n \"osType\": \"windows\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoftwindowsserver\",\r\n \"offer\": \"windowsserver\",\r\n \"sku\": \"2012-r2-datacenter-smalldisk\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"unverified\",\r\n \"nodeAgentSKUId\": \"batch.node.windows amd64\",\r\n \"batchSupportEndOfLife\": \"2023-10-10T00:00:00Z\",\r\n \"osType\": \"windows\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoftwindowsserver\",\r\n \"offer\": \"windowsserver\",\r\n \"sku\": \"2016-datacenter\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"verified\",\r\n \"nodeAgentSKUId\": \"batch.node.windows amd64\",\r\n \"osType\": \"windows\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoftwindowsserver\",\r\n \"offer\": \"windowsserver\",\r\n \"sku\": \"2016-datacenter-gensecond\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"verified\",\r\n \"nodeAgentSKUId\": \"batch.node.windows amd64\",\r\n \"capabilities\": [\r\n \"Generation2VMImage\"\r\n ],\r\n \"osType\": \"windows\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoftwindowsserver\",\r\n \"offer\": \"windowsserver\",\r\n \"sku\": \"2016-datacenter-gs\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"unverified\",\r\n \"nodeAgentSKUId\": \"batch.node.windows amd64\",\r\n \"osType\": \"windows\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoftwindowsserver\",\r\n \"offer\": \"windowsserver\",\r\n \"sku\": \"2016-datacenter-smalldisk\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"verified\",\r\n \"nodeAgentSKUId\": \"batch.node.windows amd64\",\r\n \"osType\": \"windows\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoftwindowsserver\",\r\n \"offer\": \"windowsserver\",\r\n \"sku\": \"2016-datacenter-smalldisk-g2\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"verified\",\r\n \"nodeAgentSKUId\": \"batch.node.windows amd64\",\r\n \"capabilities\": [\r\n \"Generation2VMImage\"\r\n ],\r\n \"osType\": \"windows\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoftwindowsserver\",\r\n \"offer\": \"windowsserver\",\r\n \"sku\": \"2019-datacenter\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"verified\",\r\n \"nodeAgentSKUId\": \"batch.node.windows amd64\",\r\n \"osType\": \"windows\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoftwindowsserver\",\r\n \"offer\": \"windowsserver\",\r\n \"sku\": \"2019-datacenter-core\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"verified\",\r\n \"nodeAgentSKUId\": \"batch.node.windows amd64\",\r\n \"osType\": \"windows\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoftwindowsserver\",\r\n \"offer\": \"windowsserver\",\r\n \"sku\": \"2019-datacenter-core-g2\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"verified\",\r\n \"nodeAgentSKUId\": \"batch.node.windows amd64\",\r\n \"capabilities\": [\r\n \"ConfidentialVMCompatible\",\r\n \"Generation2VMImage\"\r\n ],\r\n \"osType\": \"windows\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoftwindowsserver\",\r\n \"offer\": \"windowsserver\",\r\n \"sku\": \"2019-datacenter-core-smalldisk\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"verified\",\r\n \"nodeAgentSKUId\": \"batch.node.windows amd64\",\r\n \"osType\": \"windows\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoftwindowsserver\",\r\n \"offer\": \"windowsserver\",\r\n \"sku\": \"2019-datacenter-core-smalldisk-g2\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"verified\",\r\n \"nodeAgentSKUId\": \"batch.node.windows amd64\",\r\n \"capabilities\": [\r\n \"ConfidentialVMCompatible\",\r\n \"Generation2VMImage\"\r\n ],\r\n \"osType\": \"windows\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoftwindowsserver\",\r\n \"offer\": \"windowsserver\",\r\n \"sku\": \"2019-datacenter-gensecond\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"verified\",\r\n \"nodeAgentSKUId\": \"batch.node.windows amd64\",\r\n \"capabilities\": [\r\n \"ConfidentialVMCompatible\",\r\n \"Generation2VMImage\"\r\n ],\r\n \"osType\": \"windows\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoftwindowsserver\",\r\n \"offer\": \"windowsserver\",\r\n \"sku\": \"2019-datacenter-gs\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"unverified\",\r\n \"nodeAgentSKUId\": \"batch.node.windows amd64\",\r\n \"osType\": \"windows\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoftwindowsserver\",\r\n \"offer\": \"windowsserver\",\r\n \"sku\": \"2019-datacenter-smalldisk\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"verified\",\r\n \"nodeAgentSKUId\": \"batch.node.windows amd64\",\r\n \"osType\": \"windows\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoftwindowsserver\",\r\n \"offer\": \"windowsserver\",\r\n \"sku\": \"2019-datacenter-smalldisk-g2\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"verified\",\r\n \"nodeAgentSKUId\": \"batch.node.windows amd64\",\r\n \"capabilities\": [\r\n \"ConfidentialVMCompatible\",\r\n \"Generation2VMImage\"\r\n ],\r\n \"osType\": \"windows\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoftwindowsserver\",\r\n \"offer\": \"windowsserver\",\r\n \"sku\": \"2022-datacenter\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"verified\",\r\n \"nodeAgentSKUId\": \"batch.node.windows amd64\",\r\n \"osType\": \"windows\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoftwindowsserver\",\r\n \"offer\": \"windowsserver\",\r\n \"sku\": \"2022-datacenter-azure-edition\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"verified\",\r\n \"nodeAgentSKUId\": \"batch.node.windows amd64\",\r\n \"capabilities\": [\r\n \"ConfidentialVMCompatible\",\r\n \"Generation2VMImage\"\r\n ],\r\n \"osType\": \"windows\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoftwindowsserver\",\r\n \"offer\": \"windowsserver\",\r\n \"sku\": \"2022-datacenter-azure-edition-smalldisk\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"verified\",\r\n \"nodeAgentSKUId\": \"batch.node.windows amd64\",\r\n \"capabilities\": [\r\n \"ConfidentialVMCompatible\",\r\n \"Generation2VMImage\"\r\n ],\r\n \"osType\": \"windows\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoftwindowsserver\",\r\n \"offer\": \"windowsserver\",\r\n \"sku\": \"2022-datacenter-core\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"verified\",\r\n \"nodeAgentSKUId\": \"batch.node.windows amd64\",\r\n \"osType\": \"windows\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoftwindowsserver\",\r\n \"offer\": \"windowsserver\",\r\n \"sku\": \"2022-datacenter-core-g2\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"verified\",\r\n \"nodeAgentSKUId\": \"batch.node.windows amd64\",\r\n \"capabilities\": [\r\n \"ConfidentialVMCompatible\",\r\n \"Generation2VMImage\"\r\n ],\r\n \"osType\": \"windows\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoftwindowsserver\",\r\n \"offer\": \"windowsserver\",\r\n \"sku\": \"2022-datacenter-core-smalldisk\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"verified\",\r\n \"nodeAgentSKUId\": \"batch.node.windows amd64\",\r\n \"osType\": \"windows\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoftwindowsserver\",\r\n \"offer\": \"windowsserver\",\r\n \"sku\": \"2022-datacenter-core-smalldisk-g2\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"verified\",\r\n \"nodeAgentSKUId\": \"batch.node.windows amd64\",\r\n \"capabilities\": [\r\n \"ConfidentialVMCompatible\",\r\n \"Generation2VMImage\"\r\n ],\r\n \"osType\": \"windows\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoftwindowsserver\",\r\n \"offer\": \"windowsserver\",\r\n \"sku\": \"2022-datacenter-g2\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"verified\",\r\n \"nodeAgentSKUId\": \"batch.node.windows amd64\",\r\n \"capabilities\": [\r\n \"ConfidentialVMCompatible\",\r\n \"Generation2VMImage\"\r\n ],\r\n \"osType\": \"windows\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoftwindowsserver\",\r\n \"offer\": \"windowsserver\",\r\n \"sku\": \"2022-datacenter-smalldisk\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"verified\",\r\n \"nodeAgentSKUId\": \"batch.node.windows amd64\",\r\n \"osType\": \"windows\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoftwindowsserver\",\r\n \"offer\": \"windowsserver\",\r\n \"sku\": \"2022-datacenter-smalldisk-g2\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"verified\",\r\n \"nodeAgentSKUId\": \"batch.node.windows amd64\",\r\n \"capabilities\": [\r\n \"ConfidentialVMCompatible\",\r\n \"Generation2VMImage\"\r\n ],\r\n \"osType\": \"windows\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"oracle\",\r\n \"offer\": \"oracle-linux\",\r\n \"sku\": \"81\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"unverified\",\r\n \"nodeAgentSKUId\": \"batch.node.el 8\",\r\n \"osType\": \"linux\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"xilinx\",\r\n \"offer\": \"xilinx_alveo_u250_deployment_vm_ubuntu2004_062421\",\r\n \"sku\": \"xilinx_alveo_u250_deployment_vm_ubuntu_2004_062421\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"unverified\",\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"batchSupportEndOfLife\": \"2025-04-23T00:00:00Z\",\r\n \"osType\": \"linux\"\r\n }\r\n ]\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#supportedimages\",\r\n \"value\": [\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"almalinux\",\r\n \"offer\": \"almalinux-hpc\",\r\n \"sku\": \"8-hpc-gen1\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"unverified\",\r\n \"nodeAgentSKUId\": \"batch.node.el 8\",\r\n \"capabilities\": [\r\n \"DockerCompatible\",\r\n \"SupportsRDMAOnly\",\r\n \"IntelMPIRuntimeInstalled\"\r\n ],\r\n \"osType\": \"linux\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"almalinux\",\r\n \"offer\": \"almalinux-hpc\",\r\n \"sku\": \"8-hpc-gen2\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"unverified\",\r\n \"nodeAgentSKUId\": \"batch.node.el 8\",\r\n \"capabilities\": [\r\n \"DockerCompatible\",\r\n \"SupportsRDMAOnly\",\r\n \"IntelMPIRuntimeInstalled\",\r\n \"Generation2VMImage\"\r\n ],\r\n \"osType\": \"linux\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"almalinux\",\r\n \"offer\": \"almalinux-x86_64\",\r\n \"sku\": \"8-gen1\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"verified\",\r\n \"nodeAgentSKUId\": \"batch.node.el 8\",\r\n \"osType\": \"linux\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"almalinux\",\r\n \"offer\": \"almalinux-x86_64\",\r\n \"sku\": \"8-gen2\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"verified\",\r\n \"nodeAgentSKUId\": \"batch.node.el 8\",\r\n \"capabilities\": [\r\n \"Generation2VMImage\"\r\n ],\r\n \"osType\": \"linux\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"almalinux\",\r\n \"offer\": \"almalinux-x86_64\",\r\n \"sku\": \"9-gen1\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"verified\",\r\n \"nodeAgentSKUId\": \"batch.node.el 9\",\r\n \"osType\": \"linux\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"almalinux\",\r\n \"offer\": \"almalinux-x86_64\",\r\n \"sku\": \"9-gen2\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"verified\",\r\n \"nodeAgentSKUId\": \"batch.node.el 9\",\r\n \"capabilities\": [\r\n \"Generation2VMImage\"\r\n ],\r\n \"osType\": \"linux\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-confidential-vm-jammy\",\r\n \"sku\": \"22_04-lts-cvm\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"unverified\",\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 22.04\",\r\n \"capabilities\": [\r\n \"ConfidentialVMCompatible\",\r\n \"Generation2VMImage\"\r\n ],\r\n \"osType\": \"linux\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"verified\",\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"batchSupportEndOfLife\": \"2025-04-23T00:00:00Z\",\r\n \"osType\": \"linux\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts-gen2\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"verified\",\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"capabilities\": [\r\n \"Generation2VMImage\"\r\n ],\r\n \"batchSupportEndOfLife\": \"2025-04-23T00:00:00Z\",\r\n \"osType\": \"linux\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-jammy\",\r\n \"sku\": \"22_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"verified\",\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 22.04\",\r\n \"osType\": \"linux\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-jammy\",\r\n \"sku\": \"22_04-lts-gen2\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"verified\",\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 22.04\",\r\n \"capabilities\": [\r\n \"Generation2VMImage\"\r\n ],\r\n \"osType\": \"linux\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"ubuntu-24_04-lts\",\r\n \"sku\": \"cvm\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"unverified\",\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 24.04\",\r\n \"capabilities\": [\r\n \"ConfidentialVMCompatible\",\r\n \"Generation2VMImage\"\r\n ],\r\n \"osType\": \"linux\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"ubuntu-24_04-lts\",\r\n \"sku\": \"server\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"verified\",\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 24.04\",\r\n \"capabilities\": [\r\n \"Generation2VMImage\"\r\n ],\r\n \"osType\": \"linux\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"ubuntu-24_04-lts\",\r\n \"sku\": \"server-gen1\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"verified\",\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 24.04\",\r\n \"osType\": \"linux\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoft-azure-batch\",\r\n \"offer\": \"ubuntu-server-container\",\r\n \"sku\": \"20-04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"verified\",\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"capabilities\": [\r\n \"DockerCompatible\",\r\n \"NvidiaTeslaDriverInstalled\",\r\n \"NvidiaGridDriverInstalled\"\r\n ],\r\n \"batchSupportEndOfLife\": \"2025-04-23T00:00:00Z\",\r\n \"osType\": \"linux\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoft-azure-batch\",\r\n \"offer\": \"ubuntu-server-container-rdma\",\r\n \"sku\": \"20-04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"verified\",\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"capabilities\": [\r\n \"DockerCompatible\",\r\n \"NvidiaTeslaDriverInstalled\",\r\n \"SupportsRDMAOnly\",\r\n \"IntelMPIRuntimeInstalled\"\r\n ],\r\n \"batchSupportEndOfLife\": \"2025-04-23T00:00:00Z\",\r\n \"osType\": \"linux\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoft-dsvm\",\r\n \"offer\": \"dsvm-win-2019\",\r\n \"sku\": \"winserver-2019\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"unverified\",\r\n \"nodeAgentSKUId\": \"batch.node.windows amd64\",\r\n \"capabilities\": [\r\n \"DockerCompatible\"\r\n ],\r\n \"osType\": \"windows\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoft-dsvm\",\r\n \"offer\": \"ubuntu-2004\",\r\n \"sku\": \"2004\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"unverified\",\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"capabilities\": [\r\n \"NvidiaTeslaDriverInstalled\"\r\n ],\r\n \"batchSupportEndOfLife\": \"2025-04-23T00:00:00Z\",\r\n \"osType\": \"linux\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoft-dsvm\",\r\n \"offer\": \"ubuntu-2004\",\r\n \"sku\": \"2004-gen2\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"unverified\",\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"capabilities\": [\r\n \"NvidiaTeslaDriverInstalled\"\r\n ],\r\n \"batchSupportEndOfLife\": \"2025-04-23T00:00:00Z\",\r\n \"osType\": \"linux\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoft-dsvm\",\r\n \"offer\": \"ubuntu-hpc\",\r\n \"sku\": \"2004\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"verified\",\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"capabilities\": [\r\n \"DockerCompatible\",\r\n \"SupportsRDMAOnly\",\r\n \"Generation2VMImage\",\r\n \"IntelMPIRuntimeInstalled\"\r\n ],\r\n \"batchSupportEndOfLife\": \"2025-04-23T00:00:00Z\",\r\n \"osType\": \"linux\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoft-dsvm\",\r\n \"offer\": \"ubuntu-hpc\",\r\n \"sku\": \"2204\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"verified\",\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 22.04\",\r\n \"capabilities\": [\r\n \"DockerCompatible\",\r\n \"SupportsRDMAOnly\",\r\n \"Generation2VMImage\",\r\n \"IntelMPIRuntimeInstalled\"\r\n ],\r\n \"osType\": \"linux\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoft-dsvm\",\r\n \"offer\": \"ubuntu-hpc\",\r\n \"sku\": \"2204-rocm\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"verified\",\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 22.04\",\r\n \"capabilities\": [\r\n \"DockerCompatible\",\r\n \"SupportsRDMAOnly\",\r\n \"Generation2VMImage\",\r\n \"IntelMPIRuntimeInstalled\"\r\n ],\r\n \"osType\": \"linux\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoftcblmariner\",\r\n \"offer\": \"azure-linux-3\",\r\n \"sku\": \"azure-linux-3\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"verified\",\r\n \"nodeAgentSKUId\": \"batch.node.azurelinux 3.0\",\r\n \"osType\": \"linux\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoftcblmariner\",\r\n \"offer\": \"azure-linux-3\",\r\n \"sku\": \"azure-linux-3-gen2\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"verified\",\r\n \"nodeAgentSKUId\": \"batch.node.azurelinux 3.0\",\r\n \"capabilities\": [\r\n \"Generation2VMImage\"\r\n ],\r\n \"osType\": \"linux\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoftcblmariner\",\r\n \"offer\": \"cbl-mariner\",\r\n \"sku\": \"cbl-mariner-2\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"verified\",\r\n \"nodeAgentSKUId\": \"batch.node.mariner 2.0\",\r\n \"batchSupportEndOfLife\": \"2025-07-30T00:00:00Z\",\r\n \"osType\": \"linux\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoftcblmariner\",\r\n \"offer\": \"cbl-mariner\",\r\n \"sku\": \"cbl-mariner-2-gen2\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"verified\",\r\n \"nodeAgentSKUId\": \"batch.node.mariner 2.0\",\r\n \"capabilities\": [\r\n \"Generation2VMImage\"\r\n ],\r\n \"batchSupportEndOfLife\": \"2025-07-30T00:00:00Z\",\r\n \"osType\": \"linux\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoftwindowsserver\",\r\n \"offer\": \"windowsserver\",\r\n \"sku\": \"2016-datacenter\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"verified\",\r\n \"nodeAgentSKUId\": \"batch.node.windows amd64\",\r\n \"osType\": \"windows\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoftwindowsserver\",\r\n \"offer\": \"windowsserver\",\r\n \"sku\": \"2016-datacenter-gensecond\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"verified\",\r\n \"nodeAgentSKUId\": \"batch.node.windows amd64\",\r\n \"capabilities\": [\r\n \"Generation2VMImage\"\r\n ],\r\n \"osType\": \"windows\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoftwindowsserver\",\r\n \"offer\": \"windowsserver\",\r\n \"sku\": \"2016-datacenter-gs\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"unverified\",\r\n \"nodeAgentSKUId\": \"batch.node.windows amd64\",\r\n \"osType\": \"windows\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoftwindowsserver\",\r\n \"offer\": \"windowsserver\",\r\n \"sku\": \"2016-datacenter-smalldisk\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"verified\",\r\n \"nodeAgentSKUId\": \"batch.node.windows amd64\",\r\n \"osType\": \"windows\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoftwindowsserver\",\r\n \"offer\": \"windowsserver\",\r\n \"sku\": \"2016-datacenter-smalldisk-g2\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"verified\",\r\n \"nodeAgentSKUId\": \"batch.node.windows amd64\",\r\n \"capabilities\": [\r\n \"Generation2VMImage\"\r\n ],\r\n \"osType\": \"windows\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoftwindowsserver\",\r\n \"offer\": \"windowsserver\",\r\n \"sku\": \"2019-datacenter\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"verified\",\r\n \"nodeAgentSKUId\": \"batch.node.windows amd64\",\r\n \"osType\": \"windows\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoftwindowsserver\",\r\n \"offer\": \"windowsserver\",\r\n \"sku\": \"2019-datacenter-core\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"verified\",\r\n \"nodeAgentSKUId\": \"batch.node.windows amd64\",\r\n \"osType\": \"windows\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoftwindowsserver\",\r\n \"offer\": \"windowsserver\",\r\n \"sku\": \"2019-datacenter-core-g2\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"verified\",\r\n \"nodeAgentSKUId\": \"batch.node.windows amd64\",\r\n \"capabilities\": [\r\n \"ConfidentialVMCompatible\",\r\n \"Generation2VMImage\"\r\n ],\r\n \"osType\": \"windows\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoftwindowsserver\",\r\n \"offer\": \"windowsserver\",\r\n \"sku\": \"2019-datacenter-core-smalldisk\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"verified\",\r\n \"nodeAgentSKUId\": \"batch.node.windows amd64\",\r\n \"osType\": \"windows\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoftwindowsserver\",\r\n \"offer\": \"windowsserver\",\r\n \"sku\": \"2019-datacenter-core-smalldisk-g2\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"verified\",\r\n \"nodeAgentSKUId\": \"batch.node.windows amd64\",\r\n \"capabilities\": [\r\n \"ConfidentialVMCompatible\",\r\n \"Generation2VMImage\"\r\n ],\r\n \"osType\": \"windows\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoftwindowsserver\",\r\n \"offer\": \"windowsserver\",\r\n \"sku\": \"2019-datacenter-gensecond\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"verified\",\r\n \"nodeAgentSKUId\": \"batch.node.windows amd64\",\r\n \"capabilities\": [\r\n \"ConfidentialVMCompatible\",\r\n \"Generation2VMImage\"\r\n ],\r\n \"osType\": \"windows\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoftwindowsserver\",\r\n \"offer\": \"windowsserver\",\r\n \"sku\": \"2019-datacenter-gs\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"unverified\",\r\n \"nodeAgentSKUId\": \"batch.node.windows amd64\",\r\n \"osType\": \"windows\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoftwindowsserver\",\r\n \"offer\": \"windowsserver\",\r\n \"sku\": \"2019-datacenter-smalldisk\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"verified\",\r\n \"nodeAgentSKUId\": \"batch.node.windows amd64\",\r\n \"osType\": \"windows\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoftwindowsserver\",\r\n \"offer\": \"windowsserver\",\r\n \"sku\": \"2019-datacenter-smalldisk-g2\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"verified\",\r\n \"nodeAgentSKUId\": \"batch.node.windows amd64\",\r\n \"capabilities\": [\r\n \"ConfidentialVMCompatible\",\r\n \"Generation2VMImage\"\r\n ],\r\n \"osType\": \"windows\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoftwindowsserver\",\r\n \"offer\": \"windowsserver\",\r\n \"sku\": \"2022-datacenter\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"verified\",\r\n \"nodeAgentSKUId\": \"batch.node.windows amd64\",\r\n \"osType\": \"windows\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoftwindowsserver\",\r\n \"offer\": \"windowsserver\",\r\n \"sku\": \"2022-datacenter-azure-edition\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"verified\",\r\n \"nodeAgentSKUId\": \"batch.node.windows amd64\",\r\n \"capabilities\": [\r\n \"ConfidentialVMCompatible\",\r\n \"Generation2VMImage\"\r\n ],\r\n \"osType\": \"windows\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoftwindowsserver\",\r\n \"offer\": \"windowsserver\",\r\n \"sku\": \"2022-datacenter-azure-edition-smalldisk\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"verified\",\r\n \"nodeAgentSKUId\": \"batch.node.windows amd64\",\r\n \"capabilities\": [\r\n \"ConfidentialVMCompatible\",\r\n \"Generation2VMImage\"\r\n ],\r\n \"osType\": \"windows\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoftwindowsserver\",\r\n \"offer\": \"windowsserver\",\r\n \"sku\": \"2022-datacenter-core\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"verified\",\r\n \"nodeAgentSKUId\": \"batch.node.windows amd64\",\r\n \"osType\": \"windows\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoftwindowsserver\",\r\n \"offer\": \"windowsserver\",\r\n \"sku\": \"2022-datacenter-core-g2\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"verified\",\r\n \"nodeAgentSKUId\": \"batch.node.windows amd64\",\r\n \"capabilities\": [\r\n \"ConfidentialVMCompatible\",\r\n \"Generation2VMImage\"\r\n ],\r\n \"osType\": \"windows\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoftwindowsserver\",\r\n \"offer\": \"windowsserver\",\r\n \"sku\": \"2022-datacenter-core-smalldisk\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"verified\",\r\n \"nodeAgentSKUId\": \"batch.node.windows amd64\",\r\n \"osType\": \"windows\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoftwindowsserver\",\r\n \"offer\": \"windowsserver\",\r\n \"sku\": \"2022-datacenter-core-smalldisk-g2\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"verified\",\r\n \"nodeAgentSKUId\": \"batch.node.windows amd64\",\r\n \"capabilities\": [\r\n \"ConfidentialVMCompatible\",\r\n \"Generation2VMImage\"\r\n ],\r\n \"osType\": \"windows\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoftwindowsserver\",\r\n \"offer\": \"windowsserver\",\r\n \"sku\": \"2022-datacenter-g2\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"verified\",\r\n \"nodeAgentSKUId\": \"batch.node.windows amd64\",\r\n \"capabilities\": [\r\n \"ConfidentialVMCompatible\",\r\n \"Generation2VMImage\"\r\n ],\r\n \"osType\": \"windows\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoftwindowsserver\",\r\n \"offer\": \"windowsserver\",\r\n \"sku\": \"2022-datacenter-smalldisk\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"verified\",\r\n \"nodeAgentSKUId\": \"batch.node.windows amd64\",\r\n \"osType\": \"windows\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoftwindowsserver\",\r\n \"offer\": \"windowsserver\",\r\n \"sku\": \"2022-datacenter-smalldisk-g2\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"verified\",\r\n \"nodeAgentSKUId\": \"batch.node.windows amd64\",\r\n \"capabilities\": [\r\n \"ConfidentialVMCompatible\",\r\n \"Generation2VMImage\"\r\n ],\r\n \"osType\": \"windows\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoftwindowsserver\",\r\n \"offer\": \"windowsserver\",\r\n \"sku\": \"2025-datacenter\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"verified\",\r\n \"nodeAgentSKUId\": \"batch.node.windows amd64\",\r\n \"osType\": \"windows\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoftwindowsserver\",\r\n \"offer\": \"windowsserver\",\r\n \"sku\": \"2025-datacenter-azure-edition\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"verified\",\r\n \"nodeAgentSKUId\": \"batch.node.windows amd64\",\r\n \"capabilities\": [\r\n \"Generation2VMImage\"\r\n ],\r\n \"osType\": \"windows\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoftwindowsserver\",\r\n \"offer\": \"windowsserver\",\r\n \"sku\": \"2025-datacenter-azure-edition-smalldisk\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"verified\",\r\n \"nodeAgentSKUId\": \"batch.node.windows amd64\",\r\n \"capabilities\": [\r\n \"Generation2VMImage\"\r\n ],\r\n \"osType\": \"windows\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoftwindowsserver\",\r\n \"offer\": \"windowsserver\",\r\n \"sku\": \"2025-datacenter-core\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"verified\",\r\n \"nodeAgentSKUId\": \"batch.node.windows amd64\",\r\n \"osType\": \"windows\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoftwindowsserver\",\r\n \"offer\": \"windowsserver\",\r\n \"sku\": \"2025-datacenter-core-g2\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"verified\",\r\n \"nodeAgentSKUId\": \"batch.node.windows amd64\",\r\n \"capabilities\": [\r\n \"Generation2VMImage\"\r\n ],\r\n \"osType\": \"windows\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoftwindowsserver\",\r\n \"offer\": \"windowsserver\",\r\n \"sku\": \"2025-datacenter-core-smalldisk\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"verified\",\r\n \"nodeAgentSKUId\": \"batch.node.windows amd64\",\r\n \"osType\": \"windows\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoftwindowsserver\",\r\n \"offer\": \"windowsserver\",\r\n \"sku\": \"2025-datacenter-core-smalldisk-g2\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"verified\",\r\n \"nodeAgentSKUId\": \"batch.node.windows amd64\",\r\n \"capabilities\": [\r\n \"Generation2VMImage\"\r\n ],\r\n \"osType\": \"windows\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoftwindowsserver\",\r\n \"offer\": \"windowsserver\",\r\n \"sku\": \"2025-datacenter-g2\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"verified\",\r\n \"nodeAgentSKUId\": \"batch.node.windows amd64\",\r\n \"capabilities\": [\r\n \"Generation2VMImage\"\r\n ],\r\n \"osType\": \"windows\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoftwindowsserver\",\r\n \"offer\": \"windowsserver\",\r\n \"sku\": \"2025-datacenter-smalldisk\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"verified\",\r\n \"nodeAgentSKUId\": \"batch.node.windows amd64\",\r\n \"osType\": \"windows\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoftwindowsserver\",\r\n \"offer\": \"windowsserver\",\r\n \"sku\": \"2025-datacenter-smalldisk-g2\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"verified\",\r\n \"nodeAgentSKUId\": \"batch.node.windows amd64\",\r\n \"capabilities\": [\r\n \"Generation2VMImage\"\r\n ],\r\n \"osType\": \"windows\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"oracle\",\r\n \"offer\": \"oracle-linux\",\r\n \"sku\": \"81\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"unverified\",\r\n \"nodeAgentSKUId\": \"batch.node.el 8\",\r\n \"osType\": \"linux\"\r\n },\r\n {\r\n \"imageReference\": {\r\n \"publisher\": \"xilinx\",\r\n \"offer\": \"xilinx_alveo_u250_deployment_vm_ubuntu2004_062421\",\r\n \"sku\": \"xilinx_alveo_u250_deployment_vm_ubuntu_2004_062421\",\r\n \"version\": \"latest\"\r\n },\r\n \"verificationType\": \"unverified\",\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"batchSupportEndOfLife\": \"2025-04-23T00:00:00Z\",\r\n \"osType\": \"linux\"\r\n }\r\n ]\r\n}", "StatusCode": 200 } ], "Names": {}, "Variables": { - "SubscriptionId": "21abd678-18c5-4660-9fdd-8c5ba6b6fe1f", - "AZURE_BATCH_ACCOUNT": "dawatrouhobo", - "AZURE_BATCH_ENDPOINT": "https://dawatrouhobo.eastus2.batch.azure.com", - "AZURE_BATCH_RESOURCE_GROUP": "dawatrou-rg" + "SubscriptionId": "94bd7ded-68b4-4ffa-82a5-37ac72caa2ec", + "AZURE_BATCH_ACCOUNT": "dotnotsdkbatchaccount2", + "AZURE_BATCH_ENDPOINT": "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com", + "AZURE_BATCH_RESOURCE_GROUP": "automation" } } \ No newline at end of file diff --git a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchApplicationPackageTests/TestCreatePoolWithApplicationPackage.json b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchApplicationPackageTests/TestCreatePoolWithApplicationPackage.json index eaa6c56317c8..cc99e1083e06 100644 --- a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchApplicationPackageTests/TestCreatePoolWithApplicationPackage.json +++ b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchApplicationPackageTests/TestCreatePoolWithApplicationPackage.json @@ -1,21 +1,21 @@ { "Entries": [ { - "RequestUri": "/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/dawatrou-rg/providers/Microsoft.Batch/batchAccounts/dawatrouhobo/applications/createPoolWithApplicationPackage/versions/foo?api-version=2022-10-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjFhYmQ2NzgtMThjNS00NjYwLTlmZGQtOGM1YmE2YjZmZTFmL3Jlc291cmNlR3JvdXBzL2Rhd2F0cm91LXJnL3Byb3ZpZGVycy9NaWNyb3NvZnQuQmF0Y2gvYmF0Y2hBY2NvdW50cy9kYXdhdHJvdWhvYm8vYXBwbGljYXRpb25zL2NyZWF0ZVBvb2xXaXRoQXBwbGljYXRpb25QYWNrYWdlL3ZlcnNpb25zL2Zvbz9hcGktdmVyc2lvbj0yMDIyLTEwLTAx", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/createPoolWithApplicationPackage/versions/foo?api-version=2023-05-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvYXBwbGljYXRpb25zL2NyZWF0ZVBvb2xXaXRoQXBwbGljYXRpb25QYWNrYWdlL3ZlcnNpb25zL2Zvbz9hcGktdmVyc2lvbj0yMDIzLTA1LTAx", "RequestMethod": "PUT", "RequestHeaders": { "x-ms-client-request-id": [ - "50c33c76-32d9-45f9-8f30-e5f25871a41c" + "73773c1c-7de7-4b81-b63c-8c80072a81e9" ], "Accept-Language": [ "en-US" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Management.Batch.BatchManagementClient/3.6.4" + "OSVersion/Microsoft.Windows.10.0.26100", + "Microsoft.Azure.Management.Batch.BatchManagementClient/3.7.0" ], "Content-Type": [ "application/json; charset=utf-8" @@ -33,10 +33,10 @@ "no-cache" ], "ETag": [ - "W/\"0x8DD04291B133365\"" + "W/\"0x8DDF175BC581D3B\"" ], "x-ms-request-id": [ - "e278a387-4941-4444-8620-ac830804064b" + "6d3e6b9d-5386-47f2-9a61-21543e6ad9b8" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -44,6 +44,9 @@ "X-Content-Type-Options": [ "nosniff" ], + "x-ms-operation-identifier": [ + "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=ac839cc2-33ee-4879-a5b5-2895202ccb29/westus2/35c177c1-5e34-445f-a907-aa13546c941e" + ], "x-ms-ratelimit-remaining-subscription-writes": [ "799" ], @@ -51,22 +54,22 @@ "11999" ], "x-ms-correlation-request-id": [ - "9dc84b1c-3aa9-4e5d-86a3-aa501c6b073d" + "d41bc9ff-4313-41f9-859a-9001e110c928" ], "x-ms-routing-request-id": [ - "EASTUS:20241113T212115Z:9dc84b1c-3aa9-4e5d-86a3-aa501c6b073d" + "WESTUS2:20250911T205653Z:d41bc9ff-4313-41f9-859a-9001e110c928" ], "X-Cache": [ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: 50BC030A0D25438888C52CD9081F78B2 Ref B: MNZ221060608045 Ref C: 2024-11-13T21:21:14Z" + "Ref A: 4EE067C151124A25B4383945CD9570A5 Ref B: MWH011020807054 Ref C: 2025-09-11T20:56:52Z" ], "Date": [ - "Wed, 13 Nov 2024 21:21:14 GMT" + "Thu, 11 Sep 2025 20:56:52 GMT" ], "Content-Length": [ - "651" + "662" ], "Content-Type": [ "application/json; charset=utf-8" @@ -75,28 +78,28 @@ "-1" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:21:15 GMT" + "Thu, 11 Sep 2025 20:56:52 GMT" ] }, - "ResponseBody": "{\r\n \"type\": \"Microsoft.Batch/batchAccounts/applications/versions\",\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/dawatrou-rg/providers/Microsoft.Batch/batchAccounts/dawatrouhobo/applications/createPoolWithApplicationPackage/versions/foo\",\r\n \"name\": \"foo\",\r\n \"etag\": \"W/\\\"0x8DD04291B133365\\\"\",\r\n \"properties\": {\r\n \"storageUrl\": \"https://dawatroustorage.blob.core.windows.net/app-createpoolwithapplicationp-8e8bd15c690b4b0dafdc70d909e9588a/foo?sv=2018-03-28&sr=b&sig=JYTsgkSDdbvhYemcVlQnrQmuKMvExB%2F1oJQrS5zjQ78%3D&st=2024-11-13T21%3A16%3A15Z&se=2024-11-14T01%3A21%3A15Z&sp=rw\",\r\n \"storageUrlExpiry\": \"2024-11-14T01:21:15.095557Z\",\r\n \"state\": \"Pending\"\r\n }\r\n}", + "ResponseBody": "{\r\n \"type\": \"Microsoft.Batch/batchAccounts/applications/versions\",\r\n \"id\": \"/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/createPoolWithApplicationPackage/versions/foo\",\r\n \"name\": \"foo\",\r\n \"etag\": \"W/\\\"0x8DDF175BC581D3B\\\"\",\r\n \"properties\": {\r\n \"storageUrl\": \"https://dotnotsdkstorage.blob.core.windows.net/app-createpoolwithapplicationp-a7f0e19f41d44e138d21342717baae0d/foo?sv=2018-03-28&sr=b&sig=lgXT%2FwcBoZht3z2ru2HKyA3NToWvDDlOgChYHApjexc%3D&st=2025-09-11T20%3A51%3A52Z&se=2025-09-12T00%3A56%3A52Z&sp=rw\",\r\n \"storageUrlExpiry\": \"2025-09-12T00:56:52.9874553Z\",\r\n \"state\": \"Pending\"\r\n }\r\n}", "StatusCode": 200 }, { - "RequestUri": "/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/dawatrou-rg/providers/Microsoft.Batch/batchAccounts/dawatrouhobo/applications/createPoolWithApplicationPackage/versions/foo/activate?api-version=2022-10-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjFhYmQ2NzgtMThjNS00NjYwLTlmZGQtOGM1YmE2YjZmZTFmL3Jlc291cmNlR3JvdXBzL2Rhd2F0cm91LXJnL3Byb3ZpZGVycy9NaWNyb3NvZnQuQmF0Y2gvYmF0Y2hBY2NvdW50cy9kYXdhdHJvdWhvYm8vYXBwbGljYXRpb25zL2NyZWF0ZVBvb2xXaXRoQXBwbGljYXRpb25QYWNrYWdlL3ZlcnNpb25zL2Zvby9hY3RpdmF0ZT9hcGktdmVyc2lvbj0yMDIyLTEwLTAx", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/createPoolWithApplicationPackage/versions/foo/activate?api-version=2023-05-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvYXBwbGljYXRpb25zL2NyZWF0ZVBvb2xXaXRoQXBwbGljYXRpb25QYWNrYWdlL3ZlcnNpb25zL2Zvby9hY3RpdmF0ZT9hcGktdmVyc2lvbj0yMDIzLTA1LTAx", "RequestMethod": "POST", "RequestHeaders": { - "x-ms-client-request-id": [ - "1d2826f3-ddd9-4d94-8dcd-d98a52fbbff1" - ], "Accept-Language": [ "en-US" ], + "x-ms-client-request-id": [ + "1b4f1117-0e86-454e-81ee-3ad903ac9f97" + ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Management.Batch.BatchManagementClient/3.6.4" + "OSVersion/Microsoft.Windows.10.0.26100", + "Microsoft.Azure.Management.Batch.BatchManagementClient/3.7.0" ], "Content-Type": [ "application/json; charset=utf-8" @@ -114,10 +117,10 @@ "no-cache" ], "ETag": [ - "W/\"0x8DD04291BABBA8A\"" + "W/\"0x8DDF175C5174BEB\"" ], "x-ms-request-id": [ - "9529fcfa-d4f2-41d4-99d0-852d16595473" + "9f0cf8c9-979b-458f-b501-eda8d950de95" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -125,29 +128,32 @@ "X-Content-Type-Options": [ "nosniff" ], + "x-ms-operation-identifier": [ + "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=ac839cc2-33ee-4879-a5b5-2895202ccb29/eastus2/f064031d-b165-4001-aa8f-f94eb5fe0286" + ], "x-ms-ratelimit-remaining-subscription-writes": [ "799" ], "x-ms-ratelimit-remaining-subscription-global-writes": [ - "11998" + "11999" ], "x-ms-correlation-request-id": [ - "c735526b-691a-4604-8c8a-b48836ea6186" + "9174c6ac-fbe7-4cfc-ae5f-7d9be8dd2335" ], "x-ms-routing-request-id": [ - "EASTUS:20241113T212116Z:c735526b-691a-4604-8c8a-b48836ea6186" + "EASTUS2:20250911T205707Z:9174c6ac-fbe7-4cfc-ae5f-7d9be8dd2335" ], "X-Cache": [ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: BAFC83D65D5A454F9DACE8834BBA74E4 Ref B: MNZ221060608045 Ref C: 2024-11-13T21:21:15Z" + "Ref A: FC2DEBD9B3394A6D855F9B154DCF895F Ref B: MWH011020807054 Ref C: 2025-09-11T20:57:07Z" ], "Date": [ - "Wed, 13 Nov 2024 21:21:15 GMT" + "Thu, 11 Sep 2025 20:57:07 GMT" ], "Content-Length": [ - "718" + "728" ], "Content-Type": [ "application/json; charset=utf-8" @@ -156,28 +162,28 @@ "-1" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:21:16 GMT" + "Thu, 11 Sep 2025 20:57:07 GMT" ] }, - "ResponseBody": "{\r\n \"type\": \"Microsoft.Batch/batchAccounts/applications/versions\",\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/dawatrou-rg/providers/Microsoft.Batch/batchAccounts/dawatrouhobo/applications/createPoolWithApplicationPackage/versions/foo\",\r\n \"name\": \"foo\",\r\n \"etag\": \"W/\\\"0x8DD04291BABBA8A\\\"\",\r\n \"properties\": {\r\n \"storageUrl\": \"https://dawatroustorage.blob.core.windows.net/app-createpoolwithapplicationp-8e8bd15c690b4b0dafdc70d909e9588a/foo?sv=2018-03-28&sr=b&sig=XtEeGHuabUpkEbeXL0p2gpFoQ5Lo0%2FKPXdZC8iQzEso%3D&st=2024-11-13T21%3A16%3A16Z&se=2024-11-14T01%3A21%3A16Z&sp=rw\",\r\n \"storageUrlExpiry\": \"2024-11-14T01:21:16.1108972Z\",\r\n \"state\": \"Active\",\r\n \"format\": \"zip\",\r\n \"lastActivationTime\": \"2024-11-13T21:21:16.0848028Z\"\r\n }\r\n}", + "ResponseBody": "{\r\n \"type\": \"Microsoft.Batch/batchAccounts/applications/versions\",\r\n \"id\": \"/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/createPoolWithApplicationPackage/versions/foo\",\r\n \"name\": \"foo\",\r\n \"etag\": \"W/\\\"0x8DDF175C5174BEB\\\"\",\r\n \"properties\": {\r\n \"storageUrl\": \"https://dotnotsdkstorage.blob.core.windows.net/app-createpoolwithapplicationp-a7f0e19f41d44e138d21342717baae0d/foo?sv=2018-03-28&sr=b&sig=mtRXmLaWlCT2mxgoqOdu%2FKSP9F2wsHknL8g65tEBCkw%3D&st=2025-09-11T20%3A52%3A07Z&se=2025-09-12T00%3A57%3A07Z&sp=rw\",\r\n \"storageUrlExpiry\": \"2025-09-12T00:57:07.6829576Z\",\r\n \"state\": \"Active\",\r\n \"format\": \"zip\",\r\n \"lastActivationTime\": \"2025-09-11T20:57:07.6450632Z\"\r\n }\r\n}", "StatusCode": 200 }, { - "RequestUri": "/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/dawatrou-rg/providers/Microsoft.Batch/batchAccounts/dawatrouhobo/applications/createPoolWithApplicationPackage/versions/foo?api-version=2022-10-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjFhYmQ2NzgtMThjNS00NjYwLTlmZGQtOGM1YmE2YjZmZTFmL3Jlc291cmNlR3JvdXBzL2Rhd2F0cm91LXJnL3Byb3ZpZGVycy9NaWNyb3NvZnQuQmF0Y2gvYmF0Y2hBY2NvdW50cy9kYXdhdHJvdWhvYm8vYXBwbGljYXRpb25zL2NyZWF0ZVBvb2xXaXRoQXBwbGljYXRpb25QYWNrYWdlL3ZlcnNpb25zL2Zvbz9hcGktdmVyc2lvbj0yMDIyLTEwLTAx", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/createPoolWithApplicationPackage/versions/foo?api-version=2023-05-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvYXBwbGljYXRpb25zL2NyZWF0ZVBvb2xXaXRoQXBwbGljYXRpb25QYWNrYWdlL3ZlcnNpb25zL2Zvbz9hcGktdmVyc2lvbj0yMDIzLTA1LTAx", "RequestMethod": "GET", "RequestHeaders": { - "x-ms-client-request-id": [ - "1d2826f3-ddd9-4d94-8dcd-d98a52fbbff1" - ], "Accept-Language": [ "en-US" ], + "x-ms-client-request-id": [ + "1b4f1117-0e86-454e-81ee-3ad903ac9f97" + ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Management.Batch.BatchManagementClient/3.6.4" + "OSVersion/Microsoft.Windows.10.0.26100", + "Microsoft.Azure.Management.Batch.BatchManagementClient/3.7.0" ] }, "RequestBody": "", @@ -189,10 +195,10 @@ "no-cache" ], "ETag": [ - "W/\"0x8DD04291BABBA8A\"" + "W/\"0x8DDF175C5174BEB\"" ], "x-ms-request-id": [ - "baf13e23-5f89-45e4-8607-7be5ab730e85" + "e902b553-7c1c-478b-89a7-ef59fd3854f2" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -200,6 +206,9 @@ "X-Content-Type-Options": [ "nosniff" ], + "x-ms-operation-identifier": [ + "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=ac839cc2-33ee-4879-a5b5-2895202ccb29/eastus2/4718d130-e168-4942-8e18-37d2df97bea1" + ], "x-ms-ratelimit-remaining-subscription-reads": [ "1099" ], @@ -207,22 +216,22 @@ "16499" ], "x-ms-correlation-request-id": [ - "1cdfa81b-b9b2-41bc-8b56-2b57a211e992" + "348b6f20-d7cd-466f-9269-2c0f2aabd568" ], "x-ms-routing-request-id": [ - "EASTUS:20241113T212116Z:1cdfa81b-b9b2-41bc-8b56-2b57a211e992" + "EASTUS2:20250911T205707Z:348b6f20-d7cd-466f-9269-2c0f2aabd568" ], "X-Cache": [ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: BCCF13C85EED4A2A920095EAE7478A91 Ref B: MNZ221060608045 Ref C: 2024-11-13T21:21:16Z" + "Ref A: C2BA5C6A1C7742128BBF7272535C77BC Ref B: MWH011020807054 Ref C: 2025-09-11T20:57:07Z" ], "Date": [ - "Wed, 13 Nov 2024 21:21:15 GMT" + "Thu, 11 Sep 2025 20:57:07 GMT" ], "Content-Length": [ - "718" + "728" ], "Content-Type": [ "application/json; charset=utf-8" @@ -231,10 +240,10 @@ "-1" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:21:16 GMT" + "Thu, 11 Sep 2025 20:57:07 GMT" ] }, - "ResponseBody": "{\r\n \"type\": \"Microsoft.Batch/batchAccounts/applications/versions\",\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/dawatrou-rg/providers/Microsoft.Batch/batchAccounts/dawatrouhobo/applications/createPoolWithApplicationPackage/versions/foo\",\r\n \"name\": \"foo\",\r\n \"etag\": \"W/\\\"0x8DD04291BABBA8A\\\"\",\r\n \"properties\": {\r\n \"storageUrl\": \"https://dawatroustorage.blob.core.windows.net/app-createpoolwithapplicationp-8e8bd15c690b4b0dafdc70d909e9588a/foo?sv=2018-03-28&sr=b&sig=XtEeGHuabUpkEbeXL0p2gpFoQ5Lo0%2FKPXdZC8iQzEso%3D&st=2024-11-13T21%3A16%3A16Z&se=2024-11-14T01%3A21%3A16Z&sp=rw\",\r\n \"storageUrlExpiry\": \"2024-11-14T01:21:16.2802511Z\",\r\n \"state\": \"Active\",\r\n \"format\": \"zip\",\r\n \"lastActivationTime\": \"2024-11-13T21:21:16.0848028Z\"\r\n }\r\n}", + "ResponseBody": "{\r\n \"type\": \"Microsoft.Batch/batchAccounts/applications/versions\",\r\n \"id\": \"/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/createPoolWithApplicationPackage/versions/foo\",\r\n \"name\": \"foo\",\r\n \"etag\": \"W/\\\"0x8DDF175C5174BEB\\\"\",\r\n \"properties\": {\r\n \"storageUrl\": \"https://dotnotsdkstorage.blob.core.windows.net/app-createpoolwithapplicationp-a7f0e19f41d44e138d21342717baae0d/foo?sv=2018-03-28&sr=b&sig=mtRXmLaWlCT2mxgoqOdu%2FKSP9F2wsHknL8g65tEBCkw%3D&st=2025-09-11T20%3A52%3A07Z&se=2025-09-12T00%3A57%3A07Z&sp=rw\",\r\n \"storageUrlExpiry\": \"2025-09-12T00:57:07.8689142Z\",\r\n \"state\": \"Active\",\r\n \"format\": \"zip\",\r\n \"lastActivationTime\": \"2025-09-11T20:57:07.6450632Z\"\r\n }\r\n}", "StatusCode": 200 }, { @@ -242,22 +251,22 @@ "EncodedRequestUri": "L3Bvb2xzP2FwaS12ZXJzaW9uPTIwMjQtMDItMDEuMTkuMA==", "RequestMethod": "POST", "RequestHeaders": { - "client-request-id": [ - "8aef4021-d598-4b81-bea6-857b6de43391" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "6ddf68b0-c6ce-49b8-a86c-9ec24ec34300" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:21:16 GMT" + "Thu, 11 Sep 2025 20:57:08 GMT" ], "x-ms-client-request-id": [ - "021a9c95-4807-4a9d-9642-8334e6ea0f21" + "18f06104-c0a9-4055-9522-463f6d0be95f" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ], @@ -274,16 +283,16 @@ "chunked" ], "ETag": [ - "0x8DD04291BFCA8D4" + "0x8DDF175C5FDD995" ], "Location": [ - "https://dawatrouhobo.eastus2.batch.azure.com/pools/testCreatePoolWithAppPackages" + "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/testCreatePoolWithAppPackages" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "0c9b7d4d-12eb-4bfc-a29a-87103e807f7f" + "0232bc86-681b-44e0-82ca-0c2d1d05c294" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -295,34 +304,34 @@ "3.0" ], "DataServiceId": [ - "https://dawatrouhobo.eastus2.batch.azure.com/pools/testCreatePoolWithAppPackages" + "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/testCreatePoolWithAppPackages" ], "Date": [ - "Wed, 13 Nov 2024 21:21:16 GMT" + "Thu, 11 Sep 2025 20:57:08 GMT" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:21:16 GMT" + "Thu, 11 Sep 2025 20:57:09 GMT" ] }, "ResponseBody": "", "StatusCode": 201 }, { - "RequestUri": "/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/dawatrou-rg/providers/Microsoft.Batch/batchAccounts/dawatrouhobo/applications/createPoolWithApplicationPackage/versions/foo?api-version=2022-10-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjFhYmQ2NzgtMThjNS00NjYwLTlmZGQtOGM1YmE2YjZmZTFmL3Jlc291cmNlR3JvdXBzL2Rhd2F0cm91LXJnL3Byb3ZpZGVycy9NaWNyb3NvZnQuQmF0Y2gvYmF0Y2hBY2NvdW50cy9kYXdhdHJvdWhvYm8vYXBwbGljYXRpb25zL2NyZWF0ZVBvb2xXaXRoQXBwbGljYXRpb25QYWNrYWdlL3ZlcnNpb25zL2Zvbz9hcGktdmVyc2lvbj0yMDIyLTEwLTAx", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/createPoolWithApplicationPackage/versions/foo?api-version=2023-05-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvYXBwbGljYXRpb25zL2NyZWF0ZVBvb2xXaXRoQXBwbGljYXRpb25QYWNrYWdlL3ZlcnNpb25zL2Zvbz9hcGktdmVyc2lvbj0yMDIzLTA1LTAx", "RequestMethod": "DELETE", "RequestHeaders": { - "x-ms-client-request-id": [ - "dceb1fb1-eba6-461c-9894-8704883f0781" - ], "Accept-Language": [ "en-US" ], + "x-ms-client-request-id": [ + "d023f90d-dfbc-4f8f-a35d-57e7e6075112" + ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Management.Batch.BatchManagementClient/3.6.4" + "OSVersion/Microsoft.Windows.10.0.26100", + "Microsoft.Azure.Management.Batch.BatchManagementClient/3.7.0" ] }, "RequestBody": "", @@ -334,7 +343,7 @@ "no-cache" ], "x-ms-request-id": [ - "e9ba4535-76a4-4881-9eb5-cc1f5dd962e9" + "e2f7ce81-668c-406c-a8fb-68b09d768418" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -342,6 +351,9 @@ "X-Content-Type-Options": [ "nosniff" ], + "x-ms-operation-identifier": [ + "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=ac839cc2-33ee-4879-a5b5-2895202ccb29/eastus2/13cf38e9-84b2-4266-a58b-516f643597fc" + ], "x-ms-ratelimit-remaining-subscription-deletes": [ "799" ], @@ -349,19 +361,19 @@ "11999" ], "x-ms-correlation-request-id": [ - "0a564d2d-661a-4709-9718-e40f644c4bf7" + "f1a86ded-9c03-4e97-948e-ba5d144c3aac" ], "x-ms-routing-request-id": [ - "EASTUS:20241113T212117Z:0a564d2d-661a-4709-9718-e40f644c4bf7" + "EASTUS2:20250911T205709Z:f1a86ded-9c03-4e97-948e-ba5d144c3aac" ], "X-Cache": [ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: 1AEF2C67E2504C9CAA4B5FFA8B329F06 Ref B: MNZ221060608045 Ref C: 2024-11-13T21:21:16Z" + "Ref A: 322EF470718946FB963741A08CD91894 Ref B: MWH011020807054 Ref C: 2025-09-11T20:57:09Z" ], "Date": [ - "Wed, 13 Nov 2024 21:21:16 GMT" + "Thu, 11 Sep 2025 20:57:09 GMT" ], "Expires": [ "-1" @@ -374,21 +386,21 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/dawatrou-rg/providers/Microsoft.Batch/batchAccounts/dawatrouhobo/applications/createPoolWithApplicationPackage?api-version=2022-10-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjFhYmQ2NzgtMThjNS00NjYwLTlmZGQtOGM1YmE2YjZmZTFmL3Jlc291cmNlR3JvdXBzL2Rhd2F0cm91LXJnL3Byb3ZpZGVycy9NaWNyb3NvZnQuQmF0Y2gvYmF0Y2hBY2NvdW50cy9kYXdhdHJvdWhvYm8vYXBwbGljYXRpb25zL2NyZWF0ZVBvb2xXaXRoQXBwbGljYXRpb25QYWNrYWdlP2FwaS12ZXJzaW9uPTIwMjItMTAtMDE=", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/createPoolWithApplicationPackage?api-version=2023-05-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvYXBwbGljYXRpb25zL2NyZWF0ZVBvb2xXaXRoQXBwbGljYXRpb25QYWNrYWdlP2FwaS12ZXJzaW9uPTIwMjMtMDUtMDE=", "RequestMethod": "DELETE", "RequestHeaders": { - "x-ms-client-request-id": [ - "afcd4b5d-affe-4bce-8c80-88227ff03df6" - ], "Accept-Language": [ "en-US" ], + "x-ms-client-request-id": [ + "dc9f8f28-86c4-47b6-a0e3-777290bb65aa" + ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Management.Batch.BatchManagementClient/3.6.4" + "OSVersion/Microsoft.Windows.10.0.26100", + "Microsoft.Azure.Management.Batch.BatchManagementClient/3.7.0" ] }, "RequestBody": "", @@ -400,7 +412,7 @@ "no-cache" ], "x-ms-request-id": [ - "4627edff-2e3c-4e61-8d50-2d77e814af01" + "56059bbc-826c-4411-8ad6-6e1db3fc1735" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -408,6 +420,9 @@ "X-Content-Type-Options": [ "nosniff" ], + "x-ms-operation-identifier": [ + "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=ac839cc2-33ee-4879-a5b5-2895202ccb29/eastus2/10dc13f7-378f-4158-8580-cba2fb74b5f9" + ], "x-ms-ratelimit-remaining-subscription-deletes": [ "799" ], @@ -415,19 +430,19 @@ "11999" ], "x-ms-correlation-request-id": [ - "b0993cd0-38a0-4f1d-a8ec-c7a1a5d9b58e" + "ff43bfef-d1a8-4187-a633-708aafdb8dc1" ], "x-ms-routing-request-id": [ - "EASTUS:20241113T212117Z:b0993cd0-38a0-4f1d-a8ec-c7a1a5d9b58e" + "EASTUS2:20250911T205709Z:ff43bfef-d1a8-4187-a633-708aafdb8dc1" ], "X-Cache": [ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: 53CE7C87D52A44B480792C755407E5A4 Ref B: MNZ221060608045 Ref C: 2024-11-13T21:21:17Z" + "Ref A: 53B14347BD624A709F2950F84BCB9DBB Ref B: MWH011020807054 Ref C: 2025-09-11T20:57:09Z" ], "Date": [ - "Wed, 13 Nov 2024 21:21:16 GMT" + "Thu, 11 Sep 2025 20:57:09 GMT" ], "Expires": [ "-1" @@ -444,22 +459,22 @@ "EncodedRequestUri": "L3Bvb2xzL3Rlc3RDcmVhdGVQb29sV2l0aEFwcFBhY2thZ2VzP2FwaS12ZXJzaW9uPTIwMjQtMDItMDEuMTkuMA==", "RequestMethod": "DELETE", "RequestHeaders": { - "client-request-id": [ - "a12435d8-06e6-4ec3-9af6-e2e1af253d54" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "5ba6b24b-ddc1-4053-bf2f-e5999cfd6b24" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:21:17 GMT" + "Thu, 11 Sep 2025 20:57:09 GMT" ], "x-ms-client-request-id": [ - "4cc6c1a7-cf2a-4b2d-9d3d-741cd005f481" + "3605e26d-2fba-4a90-94a8-11bd0050ec17" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ], @@ -476,7 +491,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "40c0e206-c02c-42d7-9bf6-e46d8e95deec" + "92f249ad-b707-4222-90da-87ec12630ab7" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -488,7 +503,7 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:21:18 GMT" + "Thu, 11 Sep 2025 20:57:10 GMT" ] }, "ResponseBody": "", @@ -497,9 +512,9 @@ ], "Names": {}, "Variables": { - "SubscriptionId": "21abd678-18c5-4660-9fdd-8c5ba6b6fe1f", - "AZURE_BATCH_ACCOUNT": "dawatrouhobo", - "AZURE_BATCH_ENDPOINT": "https://dawatrouhobo.eastus2.batch.azure.com", - "AZURE_BATCH_RESOURCE_GROUP": "dawatrou-rg" + "SubscriptionId": "94bd7ded-68b4-4ffa-82a5-37ac72caa2ec", + "AZURE_BATCH_ACCOUNT": "dotnotsdkbatchaccount2", + "AZURE_BATCH_ENDPOINT": "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com", + "AZURE_BATCH_RESOURCE_GROUP": "automation" } } \ No newline at end of file diff --git a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchApplicationPackageTests/TestUpdateApplicationPackage.json b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchApplicationPackageTests/TestUpdateApplicationPackage.json index 9ca5f35577b8..3675256321cc 100644 --- a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchApplicationPackageTests/TestUpdateApplicationPackage.json +++ b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchApplicationPackageTests/TestUpdateApplicationPackage.json @@ -1,21 +1,21 @@ { "Entries": [ { - "RequestUri": "/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/dawatrou-rg/providers/Microsoft.Batch/batchAccounts/dawatrouhobo/applications/updateApplicationPackage/versions/foo?api-version=2022-10-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjFhYmQ2NzgtMThjNS00NjYwLTlmZGQtOGM1YmE2YjZmZTFmL3Jlc291cmNlR3JvdXBzL2Rhd2F0cm91LXJnL3Byb3ZpZGVycy9NaWNyb3NvZnQuQmF0Y2gvYmF0Y2hBY2NvdW50cy9kYXdhdHJvdWhvYm8vYXBwbGljYXRpb25zL3VwZGF0ZUFwcGxpY2F0aW9uUGFja2FnZS92ZXJzaW9ucy9mb28/YXBpLXZlcnNpb249MjAyMi0xMC0wMQ==", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/updateApplicationPackage/versions/foo?api-version=2023-05-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvYXBwbGljYXRpb25zL3VwZGF0ZUFwcGxpY2F0aW9uUGFja2FnZS92ZXJzaW9ucy9mb28/YXBpLXZlcnNpb249MjAyMy0wNS0wMQ==", "RequestMethod": "PUT", "RequestHeaders": { "x-ms-client-request-id": [ - "7144e9d5-ff3e-4c8d-a69c-3ee3f1bdd005" + "3dfeac14-a5d3-481f-b41f-659a6ccafe55" ], "Accept-Language": [ "en-US" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Management.Batch.BatchManagementClient/3.6.4" + "OSVersion/Microsoft.Windows.10.0.26100", + "Microsoft.Azure.Management.Batch.BatchManagementClient/3.7.0" ], "Content-Type": [ "application/json; charset=utf-8" @@ -33,10 +33,10 @@ "no-cache" ], "ETag": [ - "W/\"0x8DD04291D7C9AA5\"" + "W/\"0x8DDF175ED4640A4\"" ], "x-ms-request-id": [ - "433d2013-5dbe-43d0-9730-8202db9efaed" + "61e36548-138f-4093-9006-3164c3ed400c" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -44,6 +44,9 @@ "X-Content-Type-Options": [ "nosniff" ], + "x-ms-operation-identifier": [ + "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=ac839cc2-33ee-4879-a5b5-2895202ccb29/eastus2/72775aa6-59de-440a-b0df-2954d57fb587" + ], "x-ms-ratelimit-remaining-subscription-writes": [ "799" ], @@ -51,22 +54,22 @@ "11999" ], "x-ms-correlation-request-id": [ - "019e3b0a-c64f-4537-9176-7ee2356a086f" + "02644eec-0afb-4bc9-bd32-acd9c193fc77" ], "x-ms-routing-request-id": [ - "EASTUS:20241113T212119Z:019e3b0a-c64f-4537-9176-7ee2356a086f" + "EASTUS2:20250911T205815Z:02644eec-0afb-4bc9-bd32-acd9c193fc77" ], "X-Cache": [ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: 9C262CAB574E40A495C84B78E1372C97 Ref B: MNZ221060608047 Ref C: 2024-11-13T21:21:18Z" + "Ref A: 4ECD5E82975D427C97CCFCAABC903A5B Ref B: MWH011020806034 Ref C: 2025-09-11T20:58:14Z" ], "Date": [ - "Wed, 13 Nov 2024 21:21:18 GMT" + "Thu, 11 Sep 2025 20:58:14 GMT" ], "Content-Length": [ - "642" + "654" ], "Content-Type": [ "application/json; charset=utf-8" @@ -75,28 +78,28 @@ "-1" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:21:19 GMT" + "Thu, 11 Sep 2025 20:58:15 GMT" ] }, - "ResponseBody": "{\r\n \"type\": \"Microsoft.Batch/batchAccounts/applications/versions\",\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/dawatrou-rg/providers/Microsoft.Batch/batchAccounts/dawatrouhobo/applications/updateApplicationPackage/versions/foo\",\r\n \"name\": \"foo\",\r\n \"etag\": \"W/\\\"0x8DD04291D7C9AA5\\\"\",\r\n \"properties\": {\r\n \"storageUrl\": \"https://dawatroustorage.blob.core.windows.net/app-updateapplicationpackage-b968dc792fbb494092c3150f4f5a0751/foo?sv=2018-03-28&sr=b&sig=31LkLlgvUEsB3CZZOpZcHRjYRydg3a4xV487a9%2BFl1E%3D&st=2024-11-13T21%3A16%3A19Z&se=2024-11-14T01%3A21%3A19Z&sp=rw\",\r\n \"storageUrlExpiry\": \"2024-11-14T01:21:19.1403448Z\",\r\n \"state\": \"Pending\"\r\n }\r\n}", + "ResponseBody": "{\r\n \"type\": \"Microsoft.Batch/batchAccounts/applications/versions\",\r\n \"id\": \"/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/updateApplicationPackage/versions/foo\",\r\n \"name\": \"foo\",\r\n \"etag\": \"W/\\\"0x8DDF175ED4640A4\\\"\",\r\n \"properties\": {\r\n \"storageUrl\": \"https://dotnotsdkstorage.blob.core.windows.net/app-updateapplicationpackage-fb04abd74ed641449cfb0b4494229d8e/foo?sv=2018-03-28&sr=b&sig=SGfP0BpQ6tUv%2BxRQzds%2FiUg5RqlKcz4YUeHHP5qtpko%3D&st=2025-09-11T20%3A53%3A15Z&se=2025-09-12T00%3A58%3A15Z&sp=rw\",\r\n \"storageUrlExpiry\": \"2025-09-12T00:58:15.0798058Z\",\r\n \"state\": \"Pending\"\r\n }\r\n}", "StatusCode": 200 }, { - "RequestUri": "/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/dawatrou-rg/providers/Microsoft.Batch/batchAccounts/dawatrouhobo/applications/updateApplicationPackage?api-version=2022-10-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjFhYmQ2NzgtMThjNS00NjYwLTlmZGQtOGM1YmE2YjZmZTFmL3Jlc291cmNlR3JvdXBzL2Rhd2F0cm91LXJnL3Byb3ZpZGVycy9NaWNyb3NvZnQuQmF0Y2gvYmF0Y2hBY2NvdW50cy9kYXdhdHJvdWhvYm8vYXBwbGljYXRpb25zL3VwZGF0ZUFwcGxpY2F0aW9uUGFja2FnZT9hcGktdmVyc2lvbj0yMDIyLTEwLTAx", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/updateApplicationPackage?api-version=2023-05-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvYXBwbGljYXRpb25zL3VwZGF0ZUFwcGxpY2F0aW9uUGFja2FnZT9hcGktdmVyc2lvbj0yMDIzLTA1LTAx", "RequestMethod": "GET", "RequestHeaders": { - "x-ms-client-request-id": [ - "ebb9ef99-553e-4cfa-942f-cf1af4ede0bd" - ], "Accept-Language": [ "en-US" ], + "x-ms-client-request-id": [ + "3985ae74-c44c-4760-ac3b-6c8396103276" + ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Management.Batch.BatchManagementClient/3.6.4" + "OSVersion/Microsoft.Windows.10.0.26100", + "Microsoft.Azure.Management.Batch.BatchManagementClient/3.7.0" ] }, "RequestBody": "", @@ -108,10 +111,10 @@ "no-cache" ], "ETag": [ - "W/\"0x8DD04291D7B1686\"" + "W/\"0x8DDF175ED44E8D5\"" ], "x-ms-request-id": [ - "437db336-9e03-4aba-86fc-a91e762dd399" + "0ef6b42e-f7a9-4200-8678-34a384813a5e" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -119,6 +122,9 @@ "X-Content-Type-Options": [ "nosniff" ], + "x-ms-operation-identifier": [ + "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=ac839cc2-33ee-4879-a5b5-2895202ccb29/eastus2/083a48b5-552d-4bcd-ae06-f8cd383483d4" + ], "x-ms-ratelimit-remaining-subscription-reads": [ "1099" ], @@ -126,22 +132,22 @@ "16499" ], "x-ms-correlation-request-id": [ - "92eff5e7-9836-4302-a7fc-4b8291ffddfe" + "5b390fb5-166e-4cda-a8a3-e03ffde377c2" ], "x-ms-routing-request-id": [ - "EASTUS:20241113T212120Z:92eff5e7-9836-4302-a7fc-4b8291ffddfe" + "EASTUS2:20250911T205818Z:5b390fb5-166e-4cda-a8a3-e03ffde377c2" ], "X-Cache": [ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: 69AADD67A03A424A81E8D2FCE9EDEA0B Ref B: MNZ221060608047 Ref C: 2024-11-13T21:21:19Z" + "Ref A: CEC0535D089145C6A401CAB1D39B163A Ref B: MWH011020806034 Ref C: 2025-09-11T20:58:18Z" ], "Date": [ - "Wed, 13 Nov 2024 21:21:19 GMT" + "Thu, 11 Sep 2025 20:58:17 GMT" ], "Content-Length": [ - "332" + "341" ], "Content-Type": [ "application/json; charset=utf-8" @@ -150,28 +156,28 @@ "-1" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:21:19 GMT" + "Thu, 11 Sep 2025 20:58:15 GMT" ] }, - "ResponseBody": "{\r\n \"type\": \"Microsoft.Batch/batchAccounts/applications\",\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/dawatrou-rg/providers/Microsoft.Batch/batchAccounts/dawatrouhobo/applications/updateApplicationPackage\",\r\n \"name\": \"updateApplicationPackage\",\r\n \"etag\": \"W/\\\"0x8DD04291D7B1686\\\"\",\r\n \"properties\": {\r\n \"allowUpdates\": true\r\n }\r\n}", + "ResponseBody": "{\r\n \"type\": \"Microsoft.Batch/batchAccounts/applications\",\r\n \"id\": \"/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/updateApplicationPackage\",\r\n \"name\": \"updateApplicationPackage\",\r\n \"etag\": \"W/\\\"0x8DDF175ED44E8D5\\\"\",\r\n \"properties\": {\r\n \"allowUpdates\": true\r\n }\r\n}", "StatusCode": 200 }, { - "RequestUri": "/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/dawatrou-rg/providers/Microsoft.Batch/batchAccounts/dawatrouhobo/applications/updateApplicationPackage?api-version=2022-10-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjFhYmQ2NzgtMThjNS00NjYwLTlmZGQtOGM1YmE2YjZmZTFmL3Jlc291cmNlR3JvdXBzL2Rhd2F0cm91LXJnL3Byb3ZpZGVycy9NaWNyb3NvZnQuQmF0Y2gvYmF0Y2hBY2NvdW50cy9kYXdhdHJvdWhvYm8vYXBwbGljYXRpb25zL3VwZGF0ZUFwcGxpY2F0aW9uUGFja2FnZT9hcGktdmVyc2lvbj0yMDIyLTEwLTAx", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/updateApplicationPackage?api-version=2023-05-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvYXBwbGljYXRpb25zL3VwZGF0ZUFwcGxpY2F0aW9uUGFja2FnZT9hcGktdmVyc2lvbj0yMDIzLTA1LTAx", "RequestMethod": "GET", "RequestHeaders": { - "x-ms-client-request-id": [ - "e6840ebc-12e2-4f58-8d0e-373a2b0d6be6" - ], "Accept-Language": [ "en-US" ], + "x-ms-client-request-id": [ + "4031a4f4-5373-4a7c-b94a-16a76d00528d" + ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Management.Batch.BatchManagementClient/3.6.4" + "OSVersion/Microsoft.Windows.10.0.26100", + "Microsoft.Azure.Management.Batch.BatchManagementClient/3.7.0" ] }, "RequestBody": "", @@ -183,10 +189,10 @@ "no-cache" ], "ETag": [ - "W/\"0x8DD04291F0357B0\"" + "W/\"0x8DDF175EF9B9C33\"" ], "x-ms-request-id": [ - "811ea96d-4378-46eb-aaed-2df2a95c4a59" + "3fcbe9fe-fbd2-455f-bfcb-be43b3a4aaed" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -194,6 +200,9 @@ "X-Content-Type-Options": [ "nosniff" ], + "x-ms-operation-identifier": [ + "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=ac839cc2-33ee-4879-a5b5-2895202ccb29/eastus2/b7e0cbbb-bfb4-4e98-b08f-a86adaf32a47" + ], "x-ms-ratelimit-remaining-subscription-reads": [ "1099" ], @@ -201,22 +210,22 @@ "16499" ], "x-ms-correlation-request-id": [ - "4dbe3145-2a88-481f-aba0-04d197fa2025" + "3481e62f-9b6c-4042-8d81-fe658f194f50" ], "x-ms-routing-request-id": [ - "EASTUS:20241113T212121Z:4dbe3145-2a88-481f-aba0-04d197fa2025" + "EASTUS2:20250911T205819Z:3481e62f-9b6c-4042-8d81-fe658f194f50" ], "X-Cache": [ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: A918E19D77E94D6D89694EE0B2554B9A Ref B: MNZ221060608047 Ref C: 2024-11-13T21:21:21Z" + "Ref A: 25D690EC98914FDC979D157FDC70CA01 Ref B: MWH011020806034 Ref C: 2025-09-11T20:58:19Z" ], "Date": [ - "Wed, 13 Nov 2024 21:21:20 GMT" + "Thu, 11 Sep 2025 20:58:18 GMT" ], "Content-Length": [ - "396" + "405" ], "Content-Type": [ "application/json; charset=utf-8" @@ -225,28 +234,28 @@ "-1" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:21:21 GMT" + "Thu, 11 Sep 2025 20:58:18 GMT" ] }, - "ResponseBody": "{\r\n \"type\": \"Microsoft.Batch/batchAccounts/applications\",\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/dawatrou-rg/providers/Microsoft.Batch/batchAccounts/dawatrouhobo/applications/updateApplicationPackage\",\r\n \"name\": \"updateApplicationPackage\",\r\n \"etag\": \"W/\\\"0x8DD04291F0357B0\\\"\",\r\n \"properties\": {\r\n \"displayName\": \"application-display-name\",\r\n \"allowUpdates\": true,\r\n \"defaultVersion\": \"foo\"\r\n }\r\n}", + "ResponseBody": "{\r\n \"type\": \"Microsoft.Batch/batchAccounts/applications\",\r\n \"id\": \"/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/updateApplicationPackage\",\r\n \"name\": \"updateApplicationPackage\",\r\n \"etag\": \"W/\\\"0x8DDF175EF9B9C33\\\"\",\r\n \"properties\": {\r\n \"displayName\": \"application-display-name\",\r\n \"allowUpdates\": true,\r\n \"defaultVersion\": \"foo\"\r\n }\r\n}", "StatusCode": 200 }, { - "RequestUri": "/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/dawatrou-rg/providers/Microsoft.Batch/batchAccounts/dawatrouhobo/applications/updateApplicationPackage/versions/foo/activate?api-version=2022-10-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjFhYmQ2NzgtMThjNS00NjYwLTlmZGQtOGM1YmE2YjZmZTFmL3Jlc291cmNlR3JvdXBzL2Rhd2F0cm91LXJnL3Byb3ZpZGVycy9NaWNyb3NvZnQuQmF0Y2gvYmF0Y2hBY2NvdW50cy9kYXdhdHJvdWhvYm8vYXBwbGljYXRpb25zL3VwZGF0ZUFwcGxpY2F0aW9uUGFja2FnZS92ZXJzaW9ucy9mb28vYWN0aXZhdGU/YXBpLXZlcnNpb249MjAyMi0xMC0wMQ==", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/updateApplicationPackage/versions/foo/activate?api-version=2023-05-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvYXBwbGljYXRpb25zL3VwZGF0ZUFwcGxpY2F0aW9uUGFja2FnZS92ZXJzaW9ucy9mb28vYWN0aXZhdGU/YXBpLXZlcnNpb249MjAyMy0wNS0wMQ==", "RequestMethod": "POST", "RequestHeaders": { - "x-ms-client-request-id": [ - "36787d85-33f1-4f49-b510-5b8467719311" - ], "Accept-Language": [ "en-US" ], + "x-ms-client-request-id": [ + "7b492722-9133-46db-bdc8-36090f44e6f4" + ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Management.Batch.BatchManagementClient/3.6.4" + "OSVersion/Microsoft.Windows.10.0.26100", + "Microsoft.Azure.Management.Batch.BatchManagementClient/3.7.0" ], "Content-Type": [ "application/json; charset=utf-8" @@ -264,10 +273,10 @@ "no-cache" ], "ETag": [ - "W/\"0x8DD04291E91B4CD\"" + "W/\"0x8DDF175EF48346B\"" ], "x-ms-request-id": [ - "b1629e3c-335d-4f02-8dfd-edcfdce5e541" + "d8e3ada5-baf6-4b47-b6b5-b7a0e73def50" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -275,6 +284,9 @@ "X-Content-Type-Options": [ "nosniff" ], + "x-ms-operation-identifier": [ + "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=ac839cc2-33ee-4879-a5b5-2895202ccb29/eastus2/7dd0aba0-8bd5-4b83-b925-09839b5f91e9" + ], "x-ms-ratelimit-remaining-subscription-writes": [ "799" ], @@ -282,22 +294,22 @@ "11999" ], "x-ms-correlation-request-id": [ - "64d06e67-6c93-44b1-9acd-3c406fd44e0a" + "0efd7fa4-1ebc-4c85-b79c-a8f4a70805d3" ], "x-ms-routing-request-id": [ - "EASTUS:20241113T212120Z:64d06e67-6c93-44b1-9acd-3c406fd44e0a" + "EASTUS2:20250911T205818Z:0efd7fa4-1ebc-4c85-b79c-a8f4a70805d3" ], "X-Cache": [ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: 3F35106B48D84A5A83C785B36AE286D1 Ref B: MNZ221060608047 Ref C: 2024-11-13T21:21:20Z" + "Ref A: 7384DDA26D5E4E988194B814426D7CBF Ref B: MWH011020806034 Ref C: 2025-09-11T20:58:18Z" ], "Date": [ - "Wed, 13 Nov 2024 21:21:20 GMT" + "Thu, 11 Sep 2025 20:58:18 GMT" ], "Content-Length": [ - "708" + "720" ], "Content-Type": [ "application/json; charset=utf-8" @@ -306,28 +318,28 @@ "-1" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:21:20 GMT" + "Thu, 11 Sep 2025 20:58:18 GMT" ] }, - "ResponseBody": "{\r\n \"type\": \"Microsoft.Batch/batchAccounts/applications/versions\",\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/dawatrou-rg/providers/Microsoft.Batch/batchAccounts/dawatrouhobo/applications/updateApplicationPackage/versions/foo\",\r\n \"name\": \"foo\",\r\n \"etag\": \"W/\\\"0x8DD04291E91B4CD\\\"\",\r\n \"properties\": {\r\n \"storageUrl\": \"https://dawatroustorage.blob.core.windows.net/app-updateapplicationpackage-b968dc792fbb494092c3150f4f5a0751/foo?sv=2018-03-28&sr=b&sig=rJCCky5UdCTQ0DivteEpb%2F5ox9ZBOBZN2iCqgB0CCbs%3D&st=2024-11-13T21%3A16%3A20Z&se=2024-11-14T01%3A21%3A20Z&sp=rw\",\r\n \"storageUrlExpiry\": \"2024-11-14T01:21:20.9753695Z\",\r\n \"state\": \"Active\",\r\n \"format\": \"zip\",\r\n \"lastActivationTime\": \"2024-11-13T21:21:20.9479923Z\"\r\n }\r\n}", + "ResponseBody": "{\r\n \"type\": \"Microsoft.Batch/batchAccounts/applications/versions\",\r\n \"id\": \"/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/updateApplicationPackage/versions/foo\",\r\n \"name\": \"foo\",\r\n \"etag\": \"W/\\\"0x8DDF175EF48346B\\\"\",\r\n \"properties\": {\r\n \"storageUrl\": \"https://dotnotsdkstorage.blob.core.windows.net/app-updateapplicationpackage-fb04abd74ed641449cfb0b4494229d8e/foo?sv=2018-03-28&sr=b&sig=Tzs9%2FwkP2voUWSqHZji0%2BNhUOhqjQdreHQQd0wgr3NA%3D&st=2025-09-11T20%3A53%3A18Z&se=2025-09-12T00%3A58%3A18Z&sp=rw\",\r\n \"storageUrlExpiry\": \"2025-09-12T00:58:18.4679805Z\",\r\n \"state\": \"Active\",\r\n \"format\": \"zip\",\r\n \"lastActivationTime\": \"2025-09-11T20:58:18.4302424Z\"\r\n }\r\n}", "StatusCode": 200 }, { - "RequestUri": "/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/dawatrou-rg/providers/Microsoft.Batch/batchAccounts/dawatrouhobo/applications/updateApplicationPackage/versions/foo?api-version=2022-10-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjFhYmQ2NzgtMThjNS00NjYwLTlmZGQtOGM1YmE2YjZmZTFmL3Jlc291cmNlR3JvdXBzL2Rhd2F0cm91LXJnL3Byb3ZpZGVycy9NaWNyb3NvZnQuQmF0Y2gvYmF0Y2hBY2NvdW50cy9kYXdhdHJvdWhvYm8vYXBwbGljYXRpb25zL3VwZGF0ZUFwcGxpY2F0aW9uUGFja2FnZS92ZXJzaW9ucy9mb28/YXBpLXZlcnNpb249MjAyMi0xMC0wMQ==", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/updateApplicationPackage/versions/foo?api-version=2023-05-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvYXBwbGljYXRpb25zL3VwZGF0ZUFwcGxpY2F0aW9uUGFja2FnZS92ZXJzaW9ucy9mb28/YXBpLXZlcnNpb249MjAyMy0wNS0wMQ==", "RequestMethod": "GET", "RequestHeaders": { - "x-ms-client-request-id": [ - "36787d85-33f1-4f49-b510-5b8467719311" - ], "Accept-Language": [ "en-US" ], + "x-ms-client-request-id": [ + "7b492722-9133-46db-bdc8-36090f44e6f4" + ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Management.Batch.BatchManagementClient/3.6.4" + "OSVersion/Microsoft.Windows.10.0.26100", + "Microsoft.Azure.Management.Batch.BatchManagementClient/3.7.0" ] }, "RequestBody": "", @@ -339,10 +351,10 @@ "no-cache" ], "ETag": [ - "W/\"0x8DD04291E91B4CD\"" + "W/\"0x8DDF175EF48346B\"" ], "x-ms-request-id": [ - "d7b1e095-5250-4e27-80e6-2b402490fadc" + "87196437-fbf1-4cdc-8a59-cc79507ab569" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -350,6 +362,9 @@ "X-Content-Type-Options": [ "nosniff" ], + "x-ms-operation-identifier": [ + "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=ac839cc2-33ee-4879-a5b5-2895202ccb29/eastus2/7933a9c7-fcd3-456b-ae97-ce0381ca35a2" + ], "x-ms-ratelimit-remaining-subscription-reads": [ "1099" ], @@ -357,22 +372,22 @@ "16499" ], "x-ms-correlation-request-id": [ - "c9c89303-d6d6-42f0-a050-003423290a98" + "3e07dad8-380f-40d2-ae6a-60463e63d5c0" ], "x-ms-routing-request-id": [ - "EASTUS:20241113T212121Z:c9c89303-d6d6-42f0-a050-003423290a98" + "EASTUS2:20250911T205818Z:3e07dad8-380f-40d2-ae6a-60463e63d5c0" ], "X-Cache": [ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: 61E37093EC474978A6E5703356F321D0 Ref B: MNZ221060608047 Ref C: 2024-11-13T21:21:21Z" + "Ref A: 769E29EA1E924387894A2014A83D9B1C Ref B: MWH011020806034 Ref C: 2025-09-11T20:58:18Z" ], "Date": [ - "Wed, 13 Nov 2024 21:21:20 GMT" + "Thu, 11 Sep 2025 20:58:18 GMT" ], "Content-Length": [ - "712" + "720" ], "Content-Type": [ "application/json; charset=utf-8" @@ -381,28 +396,28 @@ "-1" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:21:20 GMT" + "Thu, 11 Sep 2025 20:58:18 GMT" ] }, - "ResponseBody": "{\r\n \"type\": \"Microsoft.Batch/batchAccounts/applications/versions\",\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/dawatrou-rg/providers/Microsoft.Batch/batchAccounts/dawatrouhobo/applications/updateApplicationPackage/versions/foo\",\r\n \"name\": \"foo\",\r\n \"etag\": \"W/\\\"0x8DD04291E91B4CD\\\"\",\r\n \"properties\": {\r\n \"storageUrl\": \"https://dawatroustorage.blob.core.windows.net/app-updateapplicationpackage-b968dc792fbb494092c3150f4f5a0751/foo?sv=2018-03-28&sr=b&sig=Klg2I1VwUVPEmdjqG0s4FwBJYV%2BxQ3Q%2Fkh7%2F1tCMfWg%3D&st=2024-11-13T21%3A16%3A21Z&se=2024-11-14T01%3A21%3A21Z&sp=rw\",\r\n \"storageUrlExpiry\": \"2024-11-14T01:21:21.1941041Z\",\r\n \"state\": \"Active\",\r\n \"format\": \"zip\",\r\n \"lastActivationTime\": \"2024-11-13T21:21:20.9479923Z\"\r\n }\r\n}", + "ResponseBody": "{\r\n \"type\": \"Microsoft.Batch/batchAccounts/applications/versions\",\r\n \"id\": \"/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/updateApplicationPackage/versions/foo\",\r\n \"name\": \"foo\",\r\n \"etag\": \"W/\\\"0x8DDF175EF48346B\\\"\",\r\n \"properties\": {\r\n \"storageUrl\": \"https://dotnotsdkstorage.blob.core.windows.net/app-updateapplicationpackage-fb04abd74ed641449cfb0b4494229d8e/foo?sv=2018-03-28&sr=b&sig=Tzs9%2FwkP2voUWSqHZji0%2BNhUOhqjQdreHQQd0wgr3NA%3D&st=2025-09-11T20%3A53%3A18Z&se=2025-09-12T00%3A58%3A18Z&sp=rw\",\r\n \"storageUrlExpiry\": \"2025-09-12T00:58:18.7158005Z\",\r\n \"state\": \"Active\",\r\n \"format\": \"zip\",\r\n \"lastActivationTime\": \"2025-09-11T20:58:18.4302424Z\"\r\n }\r\n}", "StatusCode": 200 }, { - "RequestUri": "/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/dawatrou-rg/providers/Microsoft.Batch/batchAccounts/dawatrouhobo/applications/updateApplicationPackage?api-version=2022-10-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjFhYmQ2NzgtMThjNS00NjYwLTlmZGQtOGM1YmE2YjZmZTFmL3Jlc291cmNlR3JvdXBzL2Rhd2F0cm91LXJnL3Byb3ZpZGVycy9NaWNyb3NvZnQuQmF0Y2gvYmF0Y2hBY2NvdW50cy9kYXdhdHJvdWhvYm8vYXBwbGljYXRpb25zL3VwZGF0ZUFwcGxpY2F0aW9uUGFja2FnZT9hcGktdmVyc2lvbj0yMDIyLTEwLTAx", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/updateApplicationPackage?api-version=2023-05-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvYXBwbGljYXRpb25zL3VwZGF0ZUFwcGxpY2F0aW9uUGFja2FnZT9hcGktdmVyc2lvbj0yMDIzLTA1LTAx", "RequestMethod": "PATCH", "RequestHeaders": { - "x-ms-client-request-id": [ - "c6324abc-c189-4ab9-a4f6-7612fa65babf" - ], "Accept-Language": [ "en-US" ], + "x-ms-client-request-id": [ + "a4adcdcf-bc4a-4163-8ba6-1b9b9b3c946b" + ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Management.Batch.BatchManagementClient/3.6.4" + "OSVersion/Microsoft.Windows.10.0.26100", + "Microsoft.Azure.Management.Batch.BatchManagementClient/3.7.0" ], "Content-Type": [ "application/json; charset=utf-8" @@ -420,10 +435,10 @@ "no-cache" ], "ETag": [ - "W/\"0x8DD04291F0357B0\"" + "W/\"0x8DDF175EF9B9C33\"" ], "x-ms-request-id": [ - "8f0ca0f1-f1b6-4cf3-8e3b-f7cbe1dbafd8" + "ce1e8c6c-374e-406f-9c6f-dee922273fc2" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -431,6 +446,9 @@ "X-Content-Type-Options": [ "nosniff" ], + "x-ms-operation-identifier": [ + "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=ac839cc2-33ee-4879-a5b5-2895202ccb29/eastus2/c9dee41b-0d76-4d22-aeb3-a016d2ae14bf" + ], "x-ms-ratelimit-remaining-subscription-writes": [ "799" ], @@ -438,22 +456,22 @@ "11999" ], "x-ms-correlation-request-id": [ - "40b24663-8935-451f-9e57-70fb0ebb3f81" + "63a28b4b-dfe6-41eb-a0db-24deb71ccf18" ], "x-ms-routing-request-id": [ - "EASTUS:20241113T212121Z:40b24663-8935-451f-9e57-70fb0ebb3f81" + "EASTUS2:20250911T205819Z:63a28b4b-dfe6-41eb-a0db-24deb71ccf18" ], "X-Cache": [ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: 562E2703B7664A32811345F9897ABF34 Ref B: MNZ221060608047 Ref C: 2024-11-13T21:21:21Z" + "Ref A: AC38B09A63EB42E0AF831359E4DB89A8 Ref B: MWH011020806034 Ref C: 2025-09-11T20:58:18Z" ], "Date": [ - "Wed, 13 Nov 2024 21:21:20 GMT" + "Thu, 11 Sep 2025 20:58:18 GMT" ], "Content-Length": [ - "396" + "405" ], "Content-Type": [ "application/json; charset=utf-8" @@ -462,28 +480,28 @@ "-1" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:21:21 GMT" + "Thu, 11 Sep 2025 20:58:18 GMT" ] }, - "ResponseBody": "{\r\n \"type\": \"Microsoft.Batch/batchAccounts/applications\",\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/dawatrou-rg/providers/Microsoft.Batch/batchAccounts/dawatrouhobo/applications/updateApplicationPackage\",\r\n \"name\": \"updateApplicationPackage\",\r\n \"etag\": \"W/\\\"0x8DD04291F0357B0\\\"\",\r\n \"properties\": {\r\n \"displayName\": \"application-display-name\",\r\n \"allowUpdates\": true,\r\n \"defaultVersion\": \"foo\"\r\n }\r\n}", + "ResponseBody": "{\r\n \"type\": \"Microsoft.Batch/batchAccounts/applications\",\r\n \"id\": \"/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/updateApplicationPackage\",\r\n \"name\": \"updateApplicationPackage\",\r\n \"etag\": \"W/\\\"0x8DDF175EF9B9C33\\\"\",\r\n \"properties\": {\r\n \"displayName\": \"application-display-name\",\r\n \"allowUpdates\": true,\r\n \"defaultVersion\": \"foo\"\r\n }\r\n}", "StatusCode": 200 }, { - "RequestUri": "/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/dawatrou-rg/providers/Microsoft.Batch/batchAccounts/dawatrouhobo/applications/updateApplicationPackage/versions/foo?api-version=2022-10-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjFhYmQ2NzgtMThjNS00NjYwLTlmZGQtOGM1YmE2YjZmZTFmL3Jlc291cmNlR3JvdXBzL2Rhd2F0cm91LXJnL3Byb3ZpZGVycy9NaWNyb3NvZnQuQmF0Y2gvYmF0Y2hBY2NvdW50cy9kYXdhdHJvdWhvYm8vYXBwbGljYXRpb25zL3VwZGF0ZUFwcGxpY2F0aW9uUGFja2FnZS92ZXJzaW9ucy9mb28/YXBpLXZlcnNpb249MjAyMi0xMC0wMQ==", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/updateApplicationPackage/versions/foo?api-version=2023-05-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvYXBwbGljYXRpb25zL3VwZGF0ZUFwcGxpY2F0aW9uUGFja2FnZS92ZXJzaW9ucy9mb28/YXBpLXZlcnNpb249MjAyMy0wNS0wMQ==", "RequestMethod": "DELETE", "RequestHeaders": { "x-ms-client-request-id": [ - "40f46dc5-91f3-4d18-95f2-c58c4a7bffc7" + "75e7d535-5076-40e5-9ffd-04472a30113b" ], "Accept-Language": [ "en-US" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Management.Batch.BatchManagementClient/3.6.4" + "OSVersion/Microsoft.Windows.10.0.26100", + "Microsoft.Azure.Management.Batch.BatchManagementClient/3.7.0" ] }, "RequestBody": "", @@ -495,7 +513,7 @@ "no-cache" ], "x-ms-request-id": [ - "a9212182-0a36-4d83-b44b-2f485acbe18c" + "6d52b29e-4e3b-4d05-8144-e5b8cb049990" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -503,6 +521,9 @@ "X-Content-Type-Options": [ "nosniff" ], + "x-ms-operation-identifier": [ + "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=ac839cc2-33ee-4879-a5b5-2895202ccb29/eastus2/6413eaf8-a473-4aaa-a300-717197f83d61" + ], "x-ms-ratelimit-remaining-subscription-deletes": [ "799" ], @@ -510,19 +531,19 @@ "11999" ], "x-ms-correlation-request-id": [ - "cd905ac7-71f2-4a80-864d-71a93c81bdbc" + "0f162f7a-89e3-4f8e-bd21-0e5a0f5b34a6" ], "x-ms-routing-request-id": [ - "EASTUS:20241113T212122Z:cd905ac7-71f2-4a80-864d-71a93c81bdbc" + "EASTUS2:20250911T205821Z:0f162f7a-89e3-4f8e-bd21-0e5a0f5b34a6" ], "X-Cache": [ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: 8A89414CFDA242D68D66D289A55034BD Ref B: MNZ221060608047 Ref C: 2024-11-13T21:21:21Z" + "Ref A: A4C73CC90851463DB4463780C5A25291 Ref B: MWH011020806034 Ref C: 2025-09-11T20:58:19Z" ], "Date": [ - "Wed, 13 Nov 2024 21:21:21 GMT" + "Thu, 11 Sep 2025 20:58:21 GMT" ], "Expires": [ "-1" @@ -535,21 +556,21 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/dawatrou-rg/providers/Microsoft.Batch/batchAccounts/dawatrouhobo/applications/updateApplicationPackage?api-version=2022-10-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjFhYmQ2NzgtMThjNS00NjYwLTlmZGQtOGM1YmE2YjZmZTFmL3Jlc291cmNlR3JvdXBzL2Rhd2F0cm91LXJnL3Byb3ZpZGVycy9NaWNyb3NvZnQuQmF0Y2gvYmF0Y2hBY2NvdW50cy9kYXdhdHJvdWhvYm8vYXBwbGljYXRpb25zL3VwZGF0ZUFwcGxpY2F0aW9uUGFja2FnZT9hcGktdmVyc2lvbj0yMDIyLTEwLTAx", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/updateApplicationPackage?api-version=2023-05-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvYXBwbGljYXRpb25zL3VwZGF0ZUFwcGxpY2F0aW9uUGFja2FnZT9hcGktdmVyc2lvbj0yMDIzLTA1LTAx", "RequestMethod": "DELETE", "RequestHeaders": { "x-ms-client-request-id": [ - "c94a3720-66d8-45a5-99d4-9511009c80b2" + "3b2ec08d-cf1a-44cf-9c62-e480e2428d00" ], "Accept-Language": [ "en-US" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Management.Batch.BatchManagementClient/3.6.4" + "OSVersion/Microsoft.Windows.10.0.26100", + "Microsoft.Azure.Management.Batch.BatchManagementClient/3.7.0" ] }, "RequestBody": "", @@ -561,7 +582,7 @@ "no-cache" ], "x-ms-request-id": [ - "5bb9b06a-87a0-4721-8d26-6a9ece34552b" + "e3b4524e-c693-4b4a-9579-c5cef3b07593" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -569,6 +590,9 @@ "X-Content-Type-Options": [ "nosniff" ], + "x-ms-operation-identifier": [ + "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=ac839cc2-33ee-4879-a5b5-2895202ccb29/eastus2/218f7c66-fb9f-4bd9-9b21-113d6f8ea8e5" + ], "x-ms-ratelimit-remaining-subscription-deletes": [ "799" ], @@ -576,19 +600,19 @@ "11999" ], "x-ms-correlation-request-id": [ - "5a371817-2299-4a3c-ae2d-2ac414a7d58d" + "b99f5659-8886-46df-a7aa-6571f08e8837" ], "x-ms-routing-request-id": [ - "EASTUS:20241113T212122Z:5a371817-2299-4a3c-ae2d-2ac414a7d58d" + "EASTUS2:20250911T205821Z:b99f5659-8886-46df-a7aa-6571f08e8837" ], "X-Cache": [ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: 2C9132F38DCC419694FF158CCC3B6644 Ref B: MNZ221060608047 Ref C: 2024-11-13T21:21:22Z" + "Ref A: 4B9FEF9EEE8F4116B7B53E9AFBC9AB50 Ref B: MWH011020806034 Ref C: 2025-09-11T20:58:21Z" ], "Date": [ - "Wed, 13 Nov 2024 21:21:21 GMT" + "Thu, 11 Sep 2025 20:58:21 GMT" ], "Expires": [ "-1" @@ -603,9 +627,9 @@ ], "Names": {}, "Variables": { - "SubscriptionId": "21abd678-18c5-4660-9fdd-8c5ba6b6fe1f", - "AZURE_BATCH_ACCOUNT": "dawatrouhobo", - "AZURE_BATCH_ENDPOINT": "https://dawatrouhobo.eastus2.batch.azure.com", - "AZURE_BATCH_RESOURCE_GROUP": "dawatrou-rg" + "SubscriptionId": "94bd7ded-68b4-4ffa-82a5-37ac72caa2ec", + "AZURE_BATCH_ACCOUNT": "dotnotsdkbatchaccount2", + "AZURE_BATCH_ENDPOINT": "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com", + "AZURE_BATCH_RESOURCE_GROUP": "automation" } } \ No newline at end of file diff --git a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchApplicationPackageTests/TestUpdatePoolWithApplicationPackage.json b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchApplicationPackageTests/TestUpdatePoolWithApplicationPackage.json index 61e345549fdb..5e7da7ca0e75 100644 --- a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchApplicationPackageTests/TestUpdatePoolWithApplicationPackage.json +++ b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchApplicationPackageTests/TestUpdatePoolWithApplicationPackage.json @@ -1,21 +1,21 @@ { "Entries": [ { - "RequestUri": "/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/dawatrou-rg/providers/Microsoft.Batch/batchAccounts/dawatrouhobo/applications/updatePoolWithApplicationPackage/versions/foo?api-version=2022-10-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjFhYmQ2NzgtMThjNS00NjYwLTlmZGQtOGM1YmE2YjZmZTFmL3Jlc291cmNlR3JvdXBzL2Rhd2F0cm91LXJnL3Byb3ZpZGVycy9NaWNyb3NvZnQuQmF0Y2gvYmF0Y2hBY2NvdW50cy9kYXdhdHJvdWhvYm8vYXBwbGljYXRpb25zL3VwZGF0ZVBvb2xXaXRoQXBwbGljYXRpb25QYWNrYWdlL3ZlcnNpb25zL2Zvbz9hcGktdmVyc2lvbj0yMDIyLTEwLTAx", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/updatePoolWithApplicationPackage/versions/foo?api-version=2023-05-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvYXBwbGljYXRpb25zL3VwZGF0ZVBvb2xXaXRoQXBwbGljYXRpb25QYWNrYWdlL3ZlcnNpb25zL2Zvbz9hcGktdmVyc2lvbj0yMDIzLTA1LTAx", "RequestMethod": "PUT", "RequestHeaders": { "x-ms-client-request-id": [ - "6f7561a6-58c8-4d16-b0ee-7bf166088592" + "343c59e0-08d8-453e-8240-a6636e6db31b" ], "Accept-Language": [ "en-US" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Management.Batch.BatchManagementClient/3.6.4" + "OSVersion/Microsoft.Windows.10.0.26100", + "Microsoft.Azure.Management.Batch.BatchManagementClient/3.7.0" ], "Content-Type": [ "application/json; charset=utf-8" @@ -33,10 +33,10 @@ "no-cache" ], "ETag": [ - "W/\"0x8DD042920B81CE7\"" + "W/\"0x8DDF17768C80EC7\"" ], "x-ms-request-id": [ - "08e0de32-a401-4f07-a547-22cc23b62b92" + "5f0b3291-10a7-4982-bdb8-c5603517cd6b" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -44,6 +44,9 @@ "X-Content-Type-Options": [ "nosniff" ], + "x-ms-operation-identifier": [ + "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=ac839cc2-33ee-4879-a5b5-2895202ccb29/eastus2/bf7231da-81d2-45dd-8d6d-c8bada533305" + ], "x-ms-ratelimit-remaining-subscription-writes": [ "799" ], @@ -51,22 +54,22 @@ "11999" ], "x-ms-correlation-request-id": [ - "9d65f696-10aa-495b-b4b3-d181d9e25a27" + "4bae6cc4-2545-47c6-9266-9f6f36285659" ], "x-ms-routing-request-id": [ - "EASTUS:20241113T212124Z:9d65f696-10aa-495b-b4b3-d181d9e25a27" + "EASTUS2:20250911T210851Z:4bae6cc4-2545-47c6-9266-9f6f36285659" ], "X-Cache": [ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: 3F5B93E89DA243DAAE1C33F183BDA953 Ref B: MNZ221060609031 Ref C: 2024-11-13T21:21:24Z" + "Ref A: 0FEEE6581D0948109B13C50CFEFBFFBF Ref B: MWH011020807034 Ref C: 2025-09-11T21:08:51Z" ], "Date": [ - "Wed, 13 Nov 2024 21:21:24 GMT" + "Thu, 11 Sep 2025 21:08:51 GMT" ], "Content-Length": [ - "652" + "662" ], "Content-Type": [ "application/json; charset=utf-8" @@ -75,10 +78,10 @@ "-1" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:21:24 GMT" + "Thu, 11 Sep 2025 21:08:51 GMT" ] }, - "ResponseBody": "{\r\n \"type\": \"Microsoft.Batch/batchAccounts/applications/versions\",\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/dawatrou-rg/providers/Microsoft.Batch/batchAccounts/dawatrouhobo/applications/updatePoolWithApplicationPackage/versions/foo\",\r\n \"name\": \"foo\",\r\n \"etag\": \"W/\\\"0x8DD042920B81CE7\\\"\",\r\n \"properties\": {\r\n \"storageUrl\": \"https://dawatroustorage.blob.core.windows.net/app-updatepoolwithapplicationp-f5241e33add2425193ead55bfb6970c5/foo?sv=2018-03-28&sr=b&sig=D22tD7WDduvFmhO3%2F07gFvKsPgxUKNzLVXwNs13WIX0%3D&st=2024-11-13T21%3A16%3A24Z&se=2024-11-14T01%3A21%3A24Z&sp=rw\",\r\n \"storageUrlExpiry\": \"2024-11-14T01:21:24.5642813Z\",\r\n \"state\": \"Pending\"\r\n }\r\n}", + "ResponseBody": "{\r\n \"type\": \"Microsoft.Batch/batchAccounts/applications/versions\",\r\n \"id\": \"/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/updatePoolWithApplicationPackage/versions/foo\",\r\n \"name\": \"foo\",\r\n \"etag\": \"W/\\\"0x8DDF17768C80EC7\\\"\",\r\n \"properties\": {\r\n \"storageUrl\": \"https://dotnotsdkstorage.blob.core.windows.net/app-updatepoolwithapplicationp-0f4fdd108c9f465fa3026cbec65e1577/foo?sv=2018-03-28&sr=b&sig=3vbaeIenCEDv9DGxWEII0ckSymMNPDfFiI6Ry9EPw%2B8%3D&st=2025-09-11T21%3A03%3A51Z&se=2025-09-12T01%3A08%3A51Z&sp=rw\",\r\n \"storageUrlExpiry\": \"2025-09-12T01:08:51.7908059Z\",\r\n \"state\": \"Pending\"\r\n }\r\n}", "StatusCode": 200 }, { @@ -86,19 +89,19 @@ "EncodedRequestUri": "L3Bvb2xzP2FwaS12ZXJzaW9uPTIwMjQtMDItMDEuMTkuMA==", "RequestMethod": "POST", "RequestHeaders": { - "client-request-id": [ - "c8f95a71-76a5-4c07-ab31-e9895213135a" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "a5801ecb-73e0-41bf-b32a-eb16e6f2ab81" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:21:24 GMT" + "Thu, 11 Sep 2025 21:08:52 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ], @@ -115,16 +118,16 @@ "chunked" ], "ETag": [ - "0x8DD042920DDD6EB" + "0x8DDF1776965FF21" ], "Location": [ - "https://dawatrouhobo.eastus2.batch.azure.com/pools/testUpdatePoolWithAppPackages" + "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/testUpdatePoolWithAppPackages" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "8e0267da-5cac-4775-b43f-da72fa57b93f" + "11cae647-f4b3-4361-9409-3ec970d034d2" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -136,34 +139,34 @@ "3.0" ], "DataServiceId": [ - "https://dawatrouhobo.eastus2.batch.azure.com/pools/testUpdatePoolWithAppPackages" + "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/testUpdatePoolWithAppPackages" ], "Date": [ - "Wed, 13 Nov 2024 21:21:24 GMT" + "Thu, 11 Sep 2025 21:08:52 GMT" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:21:24 GMT" + "Thu, 11 Sep 2025 21:08:52 GMT" ] }, "ResponseBody": "", "StatusCode": 201 }, { - "RequestUri": "/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/dawatrou-rg/providers/Microsoft.Batch/batchAccounts/dawatrouhobo/applications/updatePoolWithApplicationPackage/versions/foo/activate?api-version=2022-10-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjFhYmQ2NzgtMThjNS00NjYwLTlmZGQtOGM1YmE2YjZmZTFmL3Jlc291cmNlR3JvdXBzL2Rhd2F0cm91LXJnL3Byb3ZpZGVycy9NaWNyb3NvZnQuQmF0Y2gvYmF0Y2hBY2NvdW50cy9kYXdhdHJvdWhvYm8vYXBwbGljYXRpb25zL3VwZGF0ZVBvb2xXaXRoQXBwbGljYXRpb25QYWNrYWdlL3ZlcnNpb25zL2Zvby9hY3RpdmF0ZT9hcGktdmVyc2lvbj0yMDIyLTEwLTAx", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/updatePoolWithApplicationPackage/versions/foo/activate?api-version=2023-05-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvYXBwbGljYXRpb25zL3VwZGF0ZVBvb2xXaXRoQXBwbGljYXRpb25QYWNrYWdlL3ZlcnNpb25zL2Zvby9hY3RpdmF0ZT9hcGktdmVyc2lvbj0yMDIzLTA1LTAx", "RequestMethod": "POST", "RequestHeaders": { - "x-ms-client-request-id": [ - "c9f5e9e3-0258-41fd-8af6-ca10d8c044cc" - ], "Accept-Language": [ "en-US" ], + "x-ms-client-request-id": [ + "04a3954b-4309-4c0a-827f-b33afa61207c" + ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Management.Batch.BatchManagementClient/3.6.4" + "OSVersion/Microsoft.Windows.10.0.26100", + "Microsoft.Azure.Management.Batch.BatchManagementClient/3.7.0" ], "Content-Type": [ "application/json; charset=utf-8" @@ -181,10 +184,10 @@ "no-cache" ], "ETag": [ - "W/\"0x8DD0429215AF8AA\"" + "W/\"0x8DDF1777346A4A2\"" ], "x-ms-request-id": [ - "14194501-e4ae-4dee-8f5f-2059ab82bb5f" + "f709aad3-ea87-42fa-bf22-0bafcd5a82f6" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -192,6 +195,9 @@ "X-Content-Type-Options": [ "nosniff" ], + "x-ms-operation-identifier": [ + "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=ac839cc2-33ee-4879-a5b5-2895202ccb29/eastus2/39a408f8-65c6-4765-9329-6848d3553683" + ], "x-ms-ratelimit-remaining-subscription-writes": [ "799" ], @@ -199,22 +205,22 @@ "11999" ], "x-ms-correlation-request-id": [ - "25f0e7ff-9587-4803-81c8-bb667b1eb9b5" + "93049671-c7ae-4b24-bb45-3242a486ac5e" ], "x-ms-routing-request-id": [ - "EASTUS:20241113T212125Z:25f0e7ff-9587-4803-81c8-bb667b1eb9b5" + "EASTUS2:20250911T210909Z:93049671-c7ae-4b24-bb45-3242a486ac5e" ], "X-Cache": [ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: 0F57ED465A114165BE069564ECE31ECB Ref B: MNZ221060609031 Ref C: 2024-11-13T21:21:25Z" + "Ref A: B61851D8A43D4C11994A34571BFE8352 Ref B: MWH011020807034 Ref C: 2025-09-11T21:09:09Z" ], "Date": [ - "Wed, 13 Nov 2024 21:21:25 GMT" + "Thu, 11 Sep 2025 21:09:09 GMT" ], "Content-Length": [ - "718" + "732" ], "Content-Type": [ "application/json; charset=utf-8" @@ -223,28 +229,28 @@ "-1" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:21:25 GMT" + "Thu, 11 Sep 2025 21:09:09 GMT" ] }, - "ResponseBody": "{\r\n \"type\": \"Microsoft.Batch/batchAccounts/applications/versions\",\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/dawatrou-rg/providers/Microsoft.Batch/batchAccounts/dawatrouhobo/applications/updatePoolWithApplicationPackage/versions/foo\",\r\n \"name\": \"foo\",\r\n \"etag\": \"W/\\\"0x8DD0429215AF8AA\\\"\",\r\n \"properties\": {\r\n \"storageUrl\": \"https://dawatroustorage.blob.core.windows.net/app-updatepoolwithapplicationp-f5241e33add2425193ead55bfb6970c5/foo?sv=2018-03-28&sr=b&sig=9qoG%2B8CQUw2oaf5I5nReNM9sLfoyTh24JxjhUa1AhEg%3D&st=2024-11-13T21%3A16%3A25Z&se=2024-11-14T01%3A21%3A25Z&sp=rw\",\r\n \"storageUrlExpiry\": \"2024-11-14T01:21:25.6760077Z\",\r\n \"state\": \"Active\",\r\n \"format\": \"zip\",\r\n \"lastActivationTime\": \"2024-11-13T21:21:25.6222928Z\"\r\n }\r\n}", + "ResponseBody": "{\r\n \"type\": \"Microsoft.Batch/batchAccounts/applications/versions\",\r\n \"id\": \"/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/updatePoolWithApplicationPackage/versions/foo\",\r\n \"name\": \"foo\",\r\n \"etag\": \"W/\\\"0x8DDF1777346A4A2\\\"\",\r\n \"properties\": {\r\n \"storageUrl\": \"https://dotnotsdkstorage.blob.core.windows.net/app-updatepoolwithapplicationp-0f4fdd108c9f465fa3026cbec65e1577/foo?sv=2018-03-28&sr=b&sig=l%2Bq%2FNEI6Ivgr0oaSRHsJlMy8lCvUxmE9Kgk5%2FC92ve4%3D&st=2025-09-11T21%3A04%3A09Z&se=2025-09-12T01%3A09%3A09Z&sp=rw\",\r\n \"storageUrlExpiry\": \"2025-09-12T01:09:09.4077868Z\",\r\n \"state\": \"Active\",\r\n \"format\": \"zip\",\r\n \"lastActivationTime\": \"2025-09-11T21:09:09.3790341Z\"\r\n }\r\n}", "StatusCode": 200 }, { - "RequestUri": "/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/dawatrou-rg/providers/Microsoft.Batch/batchAccounts/dawatrouhobo/applications/updatePoolWithApplicationPackage/versions/foo?api-version=2022-10-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjFhYmQ2NzgtMThjNS00NjYwLTlmZGQtOGM1YmE2YjZmZTFmL3Jlc291cmNlR3JvdXBzL2Rhd2F0cm91LXJnL3Byb3ZpZGVycy9NaWNyb3NvZnQuQmF0Y2gvYmF0Y2hBY2NvdW50cy9kYXdhdHJvdWhvYm8vYXBwbGljYXRpb25zL3VwZGF0ZVBvb2xXaXRoQXBwbGljYXRpb25QYWNrYWdlL3ZlcnNpb25zL2Zvbz9hcGktdmVyc2lvbj0yMDIyLTEwLTAx", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/updatePoolWithApplicationPackage/versions/foo?api-version=2023-05-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvYXBwbGljYXRpb25zL3VwZGF0ZVBvb2xXaXRoQXBwbGljYXRpb25QYWNrYWdlL3ZlcnNpb25zL2Zvbz9hcGktdmVyc2lvbj0yMDIzLTA1LTAx", "RequestMethod": "GET", "RequestHeaders": { - "x-ms-client-request-id": [ - "c9f5e9e3-0258-41fd-8af6-ca10d8c044cc" - ], "Accept-Language": [ "en-US" ], + "x-ms-client-request-id": [ + "04a3954b-4309-4c0a-827f-b33afa61207c" + ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Management.Batch.BatchManagementClient/3.6.4" + "OSVersion/Microsoft.Windows.10.0.26100", + "Microsoft.Azure.Management.Batch.BatchManagementClient/3.7.0" ] }, "RequestBody": "", @@ -256,10 +262,10 @@ "no-cache" ], "ETag": [ - "W/\"0x8DD0429215AF8AA\"" + "W/\"0x8DDF1777346A4A2\"" ], "x-ms-request-id": [ - "7713c45d-a7c5-4d38-857a-76c84056d0da" + "5574b55d-4cac-4b6c-88b5-6b644f5cc009" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -267,6 +273,9 @@ "X-Content-Type-Options": [ "nosniff" ], + "x-ms-operation-identifier": [ + "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=ac839cc2-33ee-4879-a5b5-2895202ccb29/eastus2/72eb945c-e740-435c-b8b3-c4b73ed06388" + ], "x-ms-ratelimit-remaining-subscription-reads": [ "1099" ], @@ -274,22 +283,22 @@ "16499" ], "x-ms-correlation-request-id": [ - "8a8315b0-24df-41cf-ae59-d74e10befad0" + "eda2b8ab-a4e6-4bc8-8324-cbc1fdb1890c" ], "x-ms-routing-request-id": [ - "EASTUS:20241113T212125Z:8a8315b0-24df-41cf-ae59-d74e10befad0" + "EASTUS2:20250911T210909Z:eda2b8ab-a4e6-4bc8-8324-cbc1fdb1890c" ], "X-Cache": [ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: 69E5862BE327467AA4D070F916C6B993 Ref B: MNZ221060609031 Ref C: 2024-11-13T21:21:25Z" + "Ref A: 69AC44CBED5746FBB8C2CCC25F792889 Ref B: MWH011020807034 Ref C: 2025-09-11T21:09:09Z" ], "Date": [ - "Wed, 13 Nov 2024 21:21:25 GMT" + "Thu, 11 Sep 2025 21:09:09 GMT" ], "Content-Length": [ - "718" + "732" ], "Content-Type": [ "application/json; charset=utf-8" @@ -298,10 +307,10 @@ "-1" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:21:25 GMT" + "Thu, 11 Sep 2025 21:09:09 GMT" ] }, - "ResponseBody": "{\r\n \"type\": \"Microsoft.Batch/batchAccounts/applications/versions\",\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/dawatrou-rg/providers/Microsoft.Batch/batchAccounts/dawatrouhobo/applications/updatePoolWithApplicationPackage/versions/foo\",\r\n \"name\": \"foo\",\r\n \"etag\": \"W/\\\"0x8DD0429215AF8AA\\\"\",\r\n \"properties\": {\r\n \"storageUrl\": \"https://dawatroustorage.blob.core.windows.net/app-updatepoolwithapplicationp-f5241e33add2425193ead55bfb6970c5/foo?sv=2018-03-28&sr=b&sig=9qoG%2B8CQUw2oaf5I5nReNM9sLfoyTh24JxjhUa1AhEg%3D&st=2024-11-13T21%3A16%3A25Z&se=2024-11-14T01%3A21%3A25Z&sp=rw\",\r\n \"storageUrlExpiry\": \"2024-11-14T01:21:25.8994892Z\",\r\n \"state\": \"Active\",\r\n \"format\": \"zip\",\r\n \"lastActivationTime\": \"2024-11-13T21:21:25.6222928Z\"\r\n }\r\n}", + "ResponseBody": "{\r\n \"type\": \"Microsoft.Batch/batchAccounts/applications/versions\",\r\n \"id\": \"/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/updatePoolWithApplicationPackage/versions/foo\",\r\n \"name\": \"foo\",\r\n \"etag\": \"W/\\\"0x8DDF1777346A4A2\\\"\",\r\n \"properties\": {\r\n \"storageUrl\": \"https://dotnotsdkstorage.blob.core.windows.net/app-updatepoolwithapplicationp-0f4fdd108c9f465fa3026cbec65e1577/foo?sv=2018-03-28&sr=b&sig=l%2Bq%2FNEI6Ivgr0oaSRHsJlMy8lCvUxmE9Kgk5%2FC92ve4%3D&st=2025-09-11T21%3A04%3A09Z&se=2025-09-12T01%3A09%3A09Z&sp=rw\",\r\n \"storageUrlExpiry\": \"2025-09-12T01:09:09.6189932Z\",\r\n \"state\": \"Active\",\r\n \"format\": \"zip\",\r\n \"lastActivationTime\": \"2025-09-11T21:09:09.3790341Z\"\r\n }\r\n}", "StatusCode": 200 }, { @@ -309,22 +318,22 @@ "EncodedRequestUri": "L3Bvb2xzL3Rlc3RVcGRhdGVQb29sV2l0aEFwcFBhY2thZ2VzP2FwaS12ZXJzaW9uPTIwMjQtMDItMDEuMTkuMA==", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "44b50a4b-ce77-4a3b-943c-9f97bd29fa72" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "d17f2bfd-c2ad-4a94-99bd-babb86349bf2" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:21:25 GMT" + "Thu, 11 Sep 2025 21:09:10 GMT" ], "x-ms-client-request-id": [ - "f21c5201-e988-4a3d-a3ce-f85e83fea36b" + "d57719e0-18b8-46b3-82a8-75e1fcecc18e" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -335,13 +344,13 @@ "chunked" ], "ETag": [ - "0x8DD042920DDD6EB" + "0x8DDF1776965FF21" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "6ce067ef-af95-4411-84f1-2656b66cf7d8" + "d328f9fc-80bf-411f-93ac-990f8124ff1c" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -353,16 +362,16 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:21:25 GMT" + "Thu, 11 Sep 2025 21:09:10 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:21:24 GMT" + "Thu, 11 Sep 2025 21:08:52 GMT" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"testUpdatePoolWithAppPackages\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/pools/testUpdatePoolWithAppPackages\",\r\n \"eTag\": \"0x8DD042920DDD6EB\",\r\n \"lastModified\": \"2024-11-13T21:21:24.8058091Z\",\r\n \"creationTime\": \"2024-11-13T21:21:24.8058076Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2024-11-13T21:21:24.8058076Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2024-11-13T21:21:24.8058091Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 1,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"testUpdatePoolWithAppPackages\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/testUpdatePoolWithAppPackages\",\r\n \"eTag\": \"0x8DDF1776965FF21\",\r\n \"lastModified\": \"2025-09-11T21:08:52.8172833Z\",\r\n \"creationTime\": \"2025-09-11T21:08:52.8172821Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T21:08:52.8172821Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2025-09-11T21:08:52.8172834Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 1,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", "StatusCode": 200 }, { @@ -370,22 +379,22 @@ "EncodedRequestUri": "L3Bvb2xzL3Rlc3RVcGRhdGVQb29sV2l0aEFwcFBhY2thZ2VzP2FwaS12ZXJzaW9uPTIwMjQtMDItMDEuMTkuMA==", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "c09c2726-9710-4f6e-8154-14235d07f92e" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "ad6f70f2-2797-4cbd-be00-377d7a19909a" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:21:26 GMT" + "Thu, 11 Sep 2025 21:09:11 GMT" ], "x-ms-client-request-id": [ - "6b353725-831c-4607-a5f0-1f88fbe1fac9" + "b06e764f-71d0-4eb2-ba51-adc6392f20a3" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -396,13 +405,13 @@ "chunked" ], "ETag": [ - "0x8DD04292227603E" + "0x8DDF177745532DD" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "923ce5db-6b88-432e-8c9c-cdaa27318c47" + "4bf3e9c3-3912-4f0f-9b62-0578947779af" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -414,16 +423,16 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:21:26 GMT" + "Thu, 11 Sep 2025 21:09:10 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:21:26 GMT" + "Thu, 11 Sep 2025 21:09:11 GMT" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"testUpdatePoolWithAppPackages\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/pools/testUpdatePoolWithAppPackages\",\r\n \"eTag\": \"0x8DD04292227603E\",\r\n \"lastModified\": \"2024-11-13T21:21:26.965459Z\",\r\n \"creationTime\": \"2024-11-13T21:21:24.8058076Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2024-11-13T21:21:24.8058076Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2024-11-13T21:21:24.8058091Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 1,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"applicationPackageReferences\": [\r\n {\r\n \"applicationId\": \"updatepoolwithapplicationpackage\",\r\n \"version\": \"foo\"\r\n }\r\n ],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"testUpdatePoolWithAppPackages\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/testUpdatePoolWithAppPackages\",\r\n \"eTag\": \"0x8DDF177745532DD\",\r\n \"lastModified\": \"2025-09-11T21:09:11.1621341Z\",\r\n \"creationTime\": \"2025-09-11T21:08:52.8172821Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T21:08:52.8172821Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2025-09-11T21:08:52.8172834Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 1,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"applicationPackageReferences\": [\r\n {\r\n \"applicationId\": \"updatepoolwithapplicationpackage\",\r\n \"version\": \"foo\"\r\n }\r\n ],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", "StatusCode": 200 }, { @@ -431,22 +440,22 @@ "EncodedRequestUri": "L3Bvb2xzL3Rlc3RVcGRhdGVQb29sV2l0aEFwcFBhY2thZ2VzL3VwZGF0ZXByb3BlcnRpZXM/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4w", "RequestMethod": "POST", "RequestHeaders": { - "client-request-id": [ - "8ec87be1-99bb-417a-b8f6-1e60aa4325b4" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "1b5b979d-be33-4af1-9f2a-4132ba3ef81c" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:21:26 GMT" + "Thu, 11 Sep 2025 21:09:10 GMT" ], "x-ms-client-request-id": [ - "e9fb051c-419a-4f90-91fc-3fb4d807ead5" + "c11b5a03-fec9-40e0-9aa5-f9b76f5278ca" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ], @@ -460,13 +469,13 @@ "RequestBody": "{\r\n \"certificateReferences\": [],\r\n \"applicationPackageReferences\": [\r\n {\r\n \"applicationId\": \"updatePoolWithApplicationPackage\",\r\n \"version\": \"foo\"\r\n }\r\n ],\r\n \"metadata\": [],\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", "ResponseHeaders": { "ETag": [ - "0x8DD04292227603E" + "0x8DDF177745532DD" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "a3e4cd7c-a20a-409f-8591-89687b2a8739" + "6150dad4-f411-4628-a52e-372e996fd118" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -478,37 +487,37 @@ "3.0" ], "DataServiceId": [ - "https://dawatrouhobo.eastus2.batch.azure.com/pools/testUpdatePoolWithAppPackages/updateproperties" + "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/testUpdatePoolWithAppPackages/updateproperties" ], "Date": [ - "Wed, 13 Nov 2024 21:21:26 GMT" + "Thu, 11 Sep 2025 21:09:10 GMT" ], "Content-Length": [ "0" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:21:26 GMT" + "Thu, 11 Sep 2025 21:09:11 GMT" ] }, "ResponseBody": "", "StatusCode": 204 }, { - "RequestUri": "/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/dawatrou-rg/providers/Microsoft.Batch/batchAccounts/dawatrouhobo/applications/updatePoolWithApplicationPackage/versions/foo?api-version=2022-10-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjFhYmQ2NzgtMThjNS00NjYwLTlmZGQtOGM1YmE2YjZmZTFmL3Jlc291cmNlR3JvdXBzL2Rhd2F0cm91LXJnL3Byb3ZpZGVycy9NaWNyb3NvZnQuQmF0Y2gvYmF0Y2hBY2NvdW50cy9kYXdhdHJvdWhvYm8vYXBwbGljYXRpb25zL3VwZGF0ZVBvb2xXaXRoQXBwbGljYXRpb25QYWNrYWdlL3ZlcnNpb25zL2Zvbz9hcGktdmVyc2lvbj0yMDIyLTEwLTAx", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/updatePoolWithApplicationPackage/versions/foo?api-version=2023-05-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvYXBwbGljYXRpb25zL3VwZGF0ZVBvb2xXaXRoQXBwbGljYXRpb25QYWNrYWdlL3ZlcnNpb25zL2Zvbz9hcGktdmVyc2lvbj0yMDIzLTA1LTAx", "RequestMethod": "DELETE", "RequestHeaders": { "x-ms-client-request-id": [ - "1fa2ab5a-6f19-4dec-924c-12c44fb39dc7" + "bd5de66e-b1a4-441c-bd66-e695153d39d9" ], "Accept-Language": [ "en-US" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Management.Batch.BatchManagementClient/3.6.4" + "OSVersion/Microsoft.Windows.10.0.26100", + "Microsoft.Azure.Management.Batch.BatchManagementClient/3.7.0" ] }, "RequestBody": "", @@ -520,7 +529,7 @@ "no-cache" ], "x-ms-request-id": [ - "9f6f2bfd-a13c-4bbf-ac6c-d96bb22afbad" + "37e4439c-c047-42d5-9ef4-0fa4607817ae" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -528,6 +537,9 @@ "X-Content-Type-Options": [ "nosniff" ], + "x-ms-operation-identifier": [ + "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=ac839cc2-33ee-4879-a5b5-2895202ccb29/eastus2/05e703fd-b9a6-4e95-89bf-493ec8f700c9" + ], "x-ms-ratelimit-remaining-subscription-deletes": [ "799" ], @@ -535,19 +547,19 @@ "11999" ], "x-ms-correlation-request-id": [ - "c1f64df3-81f5-4919-8d69-f67c1b0812b9" + "1b8234d6-59f4-46cb-96b8-659bff0263c1" ], "x-ms-routing-request-id": [ - "EASTUS:20241113T212127Z:c1f64df3-81f5-4919-8d69-f67c1b0812b9" + "EASTUS2:20250911T210911Z:1b8234d6-59f4-46cb-96b8-659bff0263c1" ], "X-Cache": [ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: CFB30289D71F4A07B3B9033F77B569AB Ref B: MNZ221060609031 Ref C: 2024-11-13T21:21:27Z" + "Ref A: 65198BCB1B9348A28C603CFDAC5219C7 Ref B: MWH011020807034 Ref C: 2025-09-11T21:09:11Z" ], "Date": [ - "Wed, 13 Nov 2024 21:21:27 GMT" + "Thu, 11 Sep 2025 21:09:11 GMT" ], "Expires": [ "-1" @@ -560,21 +572,21 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/dawatrou-rg/providers/Microsoft.Batch/batchAccounts/dawatrouhobo/applications/updatePoolWithApplicationPackage?api-version=2022-10-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjFhYmQ2NzgtMThjNS00NjYwLTlmZGQtOGM1YmE2YjZmZTFmL3Jlc291cmNlR3JvdXBzL2Rhd2F0cm91LXJnL3Byb3ZpZGVycy9NaWNyb3NvZnQuQmF0Y2gvYmF0Y2hBY2NvdW50cy9kYXdhdHJvdWhvYm8vYXBwbGljYXRpb25zL3VwZGF0ZVBvb2xXaXRoQXBwbGljYXRpb25QYWNrYWdlP2FwaS12ZXJzaW9uPTIwMjItMTAtMDE=", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/updatePoolWithApplicationPackage?api-version=2023-05-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvYXBwbGljYXRpb25zL3VwZGF0ZVBvb2xXaXRoQXBwbGljYXRpb25QYWNrYWdlP2FwaS12ZXJzaW9uPTIwMjMtMDUtMDE=", "RequestMethod": "DELETE", "RequestHeaders": { "x-ms-client-request-id": [ - "c8330028-b5c1-4caf-b9a5-0d8d8a79ac60" + "bbdc0519-360b-4da3-a12f-de50eb6281d7" ], "Accept-Language": [ "en-US" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Management.Batch.BatchManagementClient/3.6.4" + "OSVersion/Microsoft.Windows.10.0.26100", + "Microsoft.Azure.Management.Batch.BatchManagementClient/3.7.0" ] }, "RequestBody": "", @@ -586,7 +598,7 @@ "no-cache" ], "x-ms-request-id": [ - "781787f4-af13-4e9c-b3a6-4bb28cf238a8" + "50c73da7-eaf5-473e-ac33-d7802351c7c1" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -594,6 +606,9 @@ "X-Content-Type-Options": [ "nosniff" ], + "x-ms-operation-identifier": [ + "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=ac839cc2-33ee-4879-a5b5-2895202ccb29/eastus2/64fd4e63-a6f8-49fb-92e6-6c04662e479e" + ], "x-ms-ratelimit-remaining-subscription-deletes": [ "799" ], @@ -601,19 +616,19 @@ "11999" ], "x-ms-correlation-request-id": [ - "e7bc96c2-b769-4813-ab0c-eba6bbd5525b" + "74902297-cae8-4f23-be3b-4549fac1c08b" ], "x-ms-routing-request-id": [ - "EASTUS:20241113T212127Z:e7bc96c2-b769-4813-ab0c-eba6bbd5525b" + "EASTUS2:20250911T210911Z:74902297-cae8-4f23-be3b-4549fac1c08b" ], "X-Cache": [ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: 4F5C52DCEB344F3B96F1EB303041E60A Ref B: MNZ221060609031 Ref C: 2024-11-13T21:21:27Z" + "Ref A: A344E9FEC0BD4987BDFBD4B9A5A9C4AD Ref B: MWH011020807034 Ref C: 2025-09-11T21:09:11Z" ], "Date": [ - "Wed, 13 Nov 2024 21:21:27 GMT" + "Thu, 11 Sep 2025 21:09:11 GMT" ], "Expires": [ "-1" @@ -630,19 +645,19 @@ "EncodedRequestUri": "L3Bvb2xzL3Rlc3RVcGRhdGVQb29sV2l0aEFwcFBhY2thZ2VzP2FwaS12ZXJzaW9uPTIwMjQtMDItMDEuMTkuMA==", "RequestMethod": "DELETE", "RequestHeaders": { - "client-request-id": [ - "79c9bccd-1f74-4484-b6ad-30d49f29ab85" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "ae01158c-3a32-4fc9-b628-e5f8952a8c9d" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:21:27 GMT" + "Thu, 11 Sep 2025 21:09:11 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ], @@ -659,7 +674,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "e9e389b8-cc80-4943-9a59-884550c93564" + "152c9690-8311-43bd-9e60-27cc36633272" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -671,7 +686,7 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:21:27 GMT" + "Thu, 11 Sep 2025 21:09:11 GMT" ] }, "ResponseBody": "", @@ -680,9 +695,9 @@ ], "Names": {}, "Variables": { - "SubscriptionId": "21abd678-18c5-4660-9fdd-8c5ba6b6fe1f", - "AZURE_BATCH_ACCOUNT": "dawatrouhobo", - "AZURE_BATCH_ENDPOINT": "https://dawatrouhobo.eastus2.batch.azure.com", - "AZURE_BATCH_RESOURCE_GROUP": "dawatrou-rg" + "SubscriptionId": "94bd7ded-68b4-4ffa-82a5-37ac72caa2ec", + "AZURE_BATCH_ACCOUNT": "dotnotsdkbatchaccount2", + "AZURE_BATCH_ENDPOINT": "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com", + "AZURE_BATCH_RESOURCE_GROUP": "automation" } } \ No newline at end of file diff --git a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchApplicationPackageTests/TestUploadApplicationPackage.json b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchApplicationPackageTests/TestUploadApplicationPackage.json index 4e502428a4ff..a2a2e6f5d993 100644 --- a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchApplicationPackageTests/TestUploadApplicationPackage.json +++ b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchApplicationPackageTests/TestUploadApplicationPackage.json @@ -1,21 +1,21 @@ { "Entries": [ { - "RequestUri": "/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/dawatrou-rg/providers/Microsoft.Batch/batchAccounts/dawatrouhobo/applications/newApplicationPackage/versions/foo?api-version=2022-10-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjFhYmQ2NzgtMThjNS00NjYwLTlmZGQtOGM1YmE2YjZmZTFmL3Jlc291cmNlR3JvdXBzL2Rhd2F0cm91LXJnL3Byb3ZpZGVycy9NaWNyb3NvZnQuQmF0Y2gvYmF0Y2hBY2NvdW50cy9kYXdhdHJvdWhvYm8vYXBwbGljYXRpb25zL25ld0FwcGxpY2F0aW9uUGFja2FnZS92ZXJzaW9ucy9mb28/YXBpLXZlcnNpb249MjAyMi0xMC0wMQ==", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/newApplicationPackage/versions/foo?api-version=2023-05-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvYXBwbGljYXRpb25zL25ld0FwcGxpY2F0aW9uUGFja2FnZS92ZXJzaW9ucy9mb28/YXBpLXZlcnNpb249MjAyMy0wNS0wMQ==", "RequestMethod": "PUT", "RequestHeaders": { "x-ms-client-request-id": [ - "3e84a265-3bcf-48d1-ae33-713f547a8a11" + "a3fc3145-5444-423f-a4f5-239986ee4cc1" ], "Accept-Language": [ "en-US" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Management.Batch.BatchManagementClient/3.6.4" + "OSVersion/Microsoft.Windows.10.0.26100", + "Microsoft.Azure.Management.Batch.BatchManagementClient/3.7.0" ], "Content-Type": [ "application/json; charset=utf-8" @@ -33,10 +33,10 @@ "no-cache" ], "ETag": [ - "W/\"0x8DD04291F93F872\"" + "W/\"0x8DDF177879C1795\"" ], "x-ms-request-id": [ - "2bc39d9a-db32-45ac-9fab-a5d0a3728c31" + "0e0fd0b8-bf3b-4fe8-86f4-d39db57a874d" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -44,6 +44,9 @@ "X-Content-Type-Options": [ "nosniff" ], + "x-ms-operation-identifier": [ + "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=ac839cc2-33ee-4879-a5b5-2895202ccb29/westus2/7148ee15-78bd-49e9-ac2f-1d48d4bd479a" + ], "x-ms-ratelimit-remaining-subscription-writes": [ "799" ], @@ -51,22 +54,22 @@ "11999" ], "x-ms-correlation-request-id": [ - "9a1be6cc-0473-4e12-ae17-c479eff2857e" + "fdf3c6f3-5fe4-4a8f-899a-753eb26c2be4" ], "x-ms-routing-request-id": [ - "EASTUS:20241113T212122Z:9a1be6cc-0473-4e12-ae17-c479eff2857e" + "WESTUS2:20250911T210943Z:fdf3c6f3-5fe4-4a8f-899a-753eb26c2be4" ], "X-Cache": [ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: DEF14D71133B4395842BE714AED96049 Ref B: MNZ221060610051 Ref C: 2024-11-13T21:21:22Z" + "Ref A: BA3787014D444B09A19862CA6478A791 Ref B: CO6AA3150217009 Ref C: 2025-09-11T21:09:42Z" ], "Date": [ - "Wed, 13 Nov 2024 21:21:22 GMT" + "Thu, 11 Sep 2025 21:09:43 GMT" ], "Content-Length": [ - "638" + "648" ], "Content-Type": [ "application/json; charset=utf-8" @@ -75,28 +78,28 @@ "-1" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:21:22 GMT" + "Thu, 11 Sep 2025 21:09:43 GMT" ] }, - "ResponseBody": "{\r\n \"type\": \"Microsoft.Batch/batchAccounts/applications/versions\",\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/dawatrou-rg/providers/Microsoft.Batch/batchAccounts/dawatrouhobo/applications/newApplicationPackage/versions/foo\",\r\n \"name\": \"foo\",\r\n \"etag\": \"W/\\\"0x8DD04291F93F872\\\"\",\r\n \"properties\": {\r\n \"storageUrl\": \"https://dawatroustorage.blob.core.windows.net/app-newapplicationpackage-80958376be004ac59500da3917397eaf/foo?sv=2018-03-28&sr=b&sig=XC31%2FbtlkIQCbyRa0b%2Fh4e2q0myxcJljqx3k92CWZ4k%3D&st=2024-11-13T21%3A16%3A22Z&se=2024-11-14T01%3A21%3A22Z&sp=rw\",\r\n \"storageUrlExpiry\": \"2024-11-14T01:21:22.6502878Z\",\r\n \"state\": \"Pending\"\r\n }\r\n}", + "ResponseBody": "{\r\n \"type\": \"Microsoft.Batch/batchAccounts/applications/versions\",\r\n \"id\": \"/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/newApplicationPackage/versions/foo\",\r\n \"name\": \"foo\",\r\n \"etag\": \"W/\\\"0x8DDF177879C1795\\\"\",\r\n \"properties\": {\r\n \"storageUrl\": \"https://dotnotsdkstorage.blob.core.windows.net/app-newapplicationpackage-27685a932a0d4d94848414e2b115b86c/foo?sv=2018-03-28&sr=b&sig=Ss55aPwV29aS%2FhpRSxdFggSo%2FTKipMxDhseAgd1MDrQ%3D&st=2025-09-11T21%3A04%3A43Z&se=2025-09-12T01%3A09%3A43Z&sp=rw\",\r\n \"storageUrlExpiry\": \"2025-09-12T01:09:43.5114268Z\",\r\n \"state\": \"Pending\"\r\n }\r\n}", "StatusCode": 200 }, { - "RequestUri": "/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/dawatrou-rg/providers/Microsoft.Batch/batchAccounts/dawatrouhobo/applications/newApplicationPackage/versions/foo/activate?api-version=2022-10-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjFhYmQ2NzgtMThjNS00NjYwLTlmZGQtOGM1YmE2YjZmZTFmL3Jlc291cmNlR3JvdXBzL2Rhd2F0cm91LXJnL3Byb3ZpZGVycy9NaWNyb3NvZnQuQmF0Y2gvYmF0Y2hBY2NvdW50cy9kYXdhdHJvdWhvYm8vYXBwbGljYXRpb25zL25ld0FwcGxpY2F0aW9uUGFja2FnZS92ZXJzaW9ucy9mb28vYWN0aXZhdGU/YXBpLXZlcnNpb249MjAyMi0xMC0wMQ==", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/newApplicationPackage/versions/foo/activate?api-version=2023-05-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvYXBwbGljYXRpb25zL25ld0FwcGxpY2F0aW9uUGFja2FnZS92ZXJzaW9ucy9mb28vYWN0aXZhdGU/YXBpLXZlcnNpb249MjAyMy0wNS0wMQ==", "RequestMethod": "POST", "RequestHeaders": { - "x-ms-client-request-id": [ - "01c099eb-0033-4636-abae-f9e362b97a96" - ], "Accept-Language": [ "en-US" ], + "x-ms-client-request-id": [ + "4c961269-67df-437a-8522-f61db2b201ba" + ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Management.Batch.BatchManagementClient/3.6.4" + "OSVersion/Microsoft.Windows.10.0.26100", + "Microsoft.Azure.Management.Batch.BatchManagementClient/3.7.0" ], "Content-Type": [ "application/json; charset=utf-8" @@ -114,10 +117,10 @@ "no-cache" ], "ETag": [ - "W/\"0x8DD04291FE4F1A8\"" + "W/\"0x8DDF17789ABB773\"" ], "x-ms-request-id": [ - "ae2cd803-7fc6-4e49-a10d-6bfe636c9b01" + "70647744-03b0-43dc-95ae-c5f4ecf546e0" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -125,6 +128,9 @@ "X-Content-Type-Options": [ "nosniff" ], + "x-ms-operation-identifier": [ + "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=ac839cc2-33ee-4879-a5b5-2895202ccb29/eastus2/225d91ce-a83b-45da-b2e4-4823ac9a7d66" + ], "x-ms-ratelimit-remaining-subscription-writes": [ "799" ], @@ -132,22 +138,22 @@ "11999" ], "x-ms-correlation-request-id": [ - "55e0ea4a-3308-4064-99b8-6d07fae3e467" + "00f3dc79-d820-492c-85bb-abdafccace2b" ], "x-ms-routing-request-id": [ - "EASTUS:20241113T212123Z:55e0ea4a-3308-4064-99b8-6d07fae3e467" + "EASTUS2:20250911T210946Z:00f3dc79-d820-492c-85bb-abdafccace2b" ], "X-Cache": [ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: ECA94681762B4A1DA4779FDC6E35619E Ref B: MNZ221060610051 Ref C: 2024-11-13T21:21:23Z" + "Ref A: BAEF7AFA418C43DE8CE2D2FA3A271DDC Ref B: CO6AA3150217009 Ref C: 2025-09-11T21:09:46Z" ], "Date": [ - "Wed, 13 Nov 2024 21:21:23 GMT" + "Thu, 11 Sep 2025 21:09:46 GMT" ], "Content-Length": [ - "703" + "710" ], "Content-Type": [ "application/json; charset=utf-8" @@ -156,28 +162,28 @@ "-1" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:21:23 GMT" + "Thu, 11 Sep 2025 21:09:46 GMT" ] }, - "ResponseBody": "{\r\n \"type\": \"Microsoft.Batch/batchAccounts/applications/versions\",\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/dawatrou-rg/providers/Microsoft.Batch/batchAccounts/dawatrouhobo/applications/newApplicationPackage/versions/foo\",\r\n \"name\": \"foo\",\r\n \"etag\": \"W/\\\"0x8DD04291FE4F1A8\\\"\",\r\n \"properties\": {\r\n \"storageUrl\": \"https://dawatroustorage.blob.core.windows.net/app-newapplicationpackage-80958376be004ac59500da3917397eaf/foo?sv=2018-03-28&sr=b&sig=mBhZ4%2F0vvy882Sfg%2FBeai0asZMG7bBORRdVlvjjYW00%3D&st=2024-11-13T21%3A16%3A23Z&se=2024-11-14T01%3A21%3A23Z&sp=rw\",\r\n \"storageUrlExpiry\": \"2024-11-14T01:21:23.1964709Z\",\r\n \"state\": \"Active\",\r\n \"format\": \"zip\",\r\n \"lastActivationTime\": \"2024-11-13T21:21:23.166711Z\"\r\n }\r\n}", + "ResponseBody": "{\r\n \"type\": \"Microsoft.Batch/batchAccounts/applications/versions\",\r\n \"id\": \"/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/newApplicationPackage/versions/foo\",\r\n \"name\": \"foo\",\r\n \"etag\": \"W/\\\"0x8DDF17789ABB773\\\"\",\r\n \"properties\": {\r\n \"storageUrl\": \"https://dotnotsdkstorage.blob.core.windows.net/app-newapplicationpackage-27685a932a0d4d94848414e2b115b86c/foo?sv=2018-03-28&sr=b&sig=oD8JCbpLgKUDW95uPqkOui4YgzAHUVFuXfzOUOmLeFY%3D&st=2025-09-11T21%3A04%3A46Z&se=2025-09-12T01%3A09%3A46Z&sp=rw\",\r\n \"storageUrlExpiry\": \"2025-09-12T01:09:46.9828417Z\",\r\n \"state\": \"Active\",\r\n \"format\": \"zip\",\r\n \"lastActivationTime\": \"2025-09-11T21:09:46.9509068Z\"\r\n }\r\n}", "StatusCode": 200 }, { - "RequestUri": "/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/dawatrou-rg/providers/Microsoft.Batch/batchAccounts/dawatrouhobo/applications/newApplicationPackage/versions/foo?api-version=2022-10-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjFhYmQ2NzgtMThjNS00NjYwLTlmZGQtOGM1YmE2YjZmZTFmL3Jlc291cmNlR3JvdXBzL2Rhd2F0cm91LXJnL3Byb3ZpZGVycy9NaWNyb3NvZnQuQmF0Y2gvYmF0Y2hBY2NvdW50cy9kYXdhdHJvdWhvYm8vYXBwbGljYXRpb25zL25ld0FwcGxpY2F0aW9uUGFja2FnZS92ZXJzaW9ucy9mb28/YXBpLXZlcnNpb249MjAyMi0xMC0wMQ==", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/newApplicationPackage/versions/foo?api-version=2023-05-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvYXBwbGljYXRpb25zL25ld0FwcGxpY2F0aW9uUGFja2FnZS92ZXJzaW9ucy9mb28/YXBpLXZlcnNpb249MjAyMy0wNS0wMQ==", "RequestMethod": "GET", "RequestHeaders": { - "x-ms-client-request-id": [ - "01c099eb-0033-4636-abae-f9e362b97a96" - ], "Accept-Language": [ "en-US" ], + "x-ms-client-request-id": [ + "4c961269-67df-437a-8522-f61db2b201ba" + ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Management.Batch.BatchManagementClient/3.6.4" + "OSVersion/Microsoft.Windows.10.0.26100", + "Microsoft.Azure.Management.Batch.BatchManagementClient/3.7.0" ] }, "RequestBody": "", @@ -189,10 +195,10 @@ "no-cache" ], "ETag": [ - "W/\"0x8DD04291FE4F1A8\"" + "W/\"0x8DDF17789ABB773\"" ], "x-ms-request-id": [ - "9cd26dc9-0e3d-4a18-86d4-c1db1b2c13f7" + "e124eb0f-bc51-4902-8de9-87df75b5dff5" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -200,6 +206,9 @@ "X-Content-Type-Options": [ "nosniff" ], + "x-ms-operation-identifier": [ + "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=ac839cc2-33ee-4879-a5b5-2895202ccb29/eastus2/259883fc-739b-4361-82a2-e12415f800ef" + ], "x-ms-ratelimit-remaining-subscription-reads": [ "1099" ], @@ -207,22 +216,22 @@ "16499" ], "x-ms-correlation-request-id": [ - "e97762bb-f26d-4798-8632-9a6831d20d83" + "98362e1d-1435-410a-b6e5-774c17c08357" ], "x-ms-routing-request-id": [ - "EASTUS:20241113T212123Z:e97762bb-f26d-4798-8632-9a6831d20d83" + "EASTUS2:20250911T210947Z:98362e1d-1435-410a-b6e5-774c17c08357" ], "X-Cache": [ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: 10068B9A9D854B6A969476B3B1D8D489 Ref B: MNZ221060610051 Ref C: 2024-11-13T21:21:23Z" + "Ref A: 98599C6174CC4D79939D336E1622AD13 Ref B: CO6AA3150217009 Ref C: 2025-09-11T21:09:47Z" ], "Date": [ - "Wed, 13 Nov 2024 21:21:23 GMT" + "Thu, 11 Sep 2025 21:09:46 GMT" ], "Content-Length": [ - "703" + "713" ], "Content-Type": [ "application/json; charset=utf-8" @@ -231,28 +240,28 @@ "-1" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:21:23 GMT" + "Thu, 11 Sep 2025 21:09:46 GMT" ] }, - "ResponseBody": "{\r\n \"type\": \"Microsoft.Batch/batchAccounts/applications/versions\",\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/dawatrou-rg/providers/Microsoft.Batch/batchAccounts/dawatrouhobo/applications/newApplicationPackage/versions/foo\",\r\n \"name\": \"foo\",\r\n \"etag\": \"W/\\\"0x8DD04291FE4F1A8\\\"\",\r\n \"properties\": {\r\n \"storageUrl\": \"https://dawatroustorage.blob.core.windows.net/app-newapplicationpackage-80958376be004ac59500da3917397eaf/foo?sv=2018-03-28&sr=b&sig=mBhZ4%2F0vvy882Sfg%2FBeai0asZMG7bBORRdVlvjjYW00%3D&st=2024-11-13T21%3A16%3A23Z&se=2024-11-14T01%3A21%3A23Z&sp=rw\",\r\n \"storageUrlExpiry\": \"2024-11-14T01:21:23.4482965Z\",\r\n \"state\": \"Active\",\r\n \"format\": \"zip\",\r\n \"lastActivationTime\": \"2024-11-13T21:21:23.166711Z\"\r\n }\r\n}", + "ResponseBody": "{\r\n \"type\": \"Microsoft.Batch/batchAccounts/applications/versions\",\r\n \"id\": \"/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/newApplicationPackage/versions/foo\",\r\n \"name\": \"foo\",\r\n \"etag\": \"W/\\\"0x8DDF17789ABB773\\\"\",\r\n \"properties\": {\r\n \"storageUrl\": \"https://dotnotsdkstorage.blob.core.windows.net/app-newapplicationpackage-27685a932a0d4d94848414e2b115b86c/foo?sv=2018-03-28&sr=b&sig=NHqHZ1fXgZQyipzfqIBieIx1%2BwQIyW7bMaWaHO%2FMyeE%3D&st=2025-09-11T21%3A04%3A47Z&se=2025-09-12T01%3A09%3A47Z&sp=rw\",\r\n \"storageUrlExpiry\": \"2025-09-12T01:09:47.202826Z\",\r\n \"state\": \"Active\",\r\n \"format\": \"zip\",\r\n \"lastActivationTime\": \"2025-09-11T21:09:46.9509068Z\"\r\n }\r\n}", "StatusCode": 200 }, { - "RequestUri": "/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/dawatrou-rg/providers/Microsoft.Batch/batchAccounts/dawatrouhobo/applications/newApplicationPackage/versions/foo?api-version=2022-10-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjFhYmQ2NzgtMThjNS00NjYwLTlmZGQtOGM1YmE2YjZmZTFmL3Jlc291cmNlR3JvdXBzL2Rhd2F0cm91LXJnL3Byb3ZpZGVycy9NaWNyb3NvZnQuQmF0Y2gvYmF0Y2hBY2NvdW50cy9kYXdhdHJvdWhvYm8vYXBwbGljYXRpb25zL25ld0FwcGxpY2F0aW9uUGFja2FnZS92ZXJzaW9ucy9mb28/YXBpLXZlcnNpb249MjAyMi0xMC0wMQ==", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/newApplicationPackage/versions/foo?api-version=2023-05-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvYXBwbGljYXRpb25zL25ld0FwcGxpY2F0aW9uUGFja2FnZS92ZXJzaW9ucy9mb28/YXBpLXZlcnNpb249MjAyMy0wNS0wMQ==", "RequestMethod": "DELETE", "RequestHeaders": { "x-ms-client-request-id": [ - "bc2cd138-2b75-4066-8129-c6334b69b31d" + "c8f5f584-df96-498f-9822-6ecf9d055498" ], "Accept-Language": [ "en-US" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Management.Batch.BatchManagementClient/3.6.4" + "OSVersion/Microsoft.Windows.10.0.26100", + "Microsoft.Azure.Management.Batch.BatchManagementClient/3.7.0" ] }, "RequestBody": "", @@ -264,7 +273,7 @@ "no-cache" ], "x-ms-request-id": [ - "dea8a733-88e9-487e-9cd2-e28c49a6ceaf" + "ee2c1615-2147-4c1f-a2e0-820a2afd7a2f" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -272,6 +281,9 @@ "X-Content-Type-Options": [ "nosniff" ], + "x-ms-operation-identifier": [ + "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=ac839cc2-33ee-4879-a5b5-2895202ccb29/eastus2/7150766d-a857-46b3-bdf3-b0bfdb5bf68d" + ], "x-ms-ratelimit-remaining-subscription-deletes": [ "799" ], @@ -279,19 +291,19 @@ "11999" ], "x-ms-correlation-request-id": [ - "9691d5ed-578f-483f-8282-c195b8862d7a" + "6f16aa90-a30c-4f31-905e-8572ff012fa7" ], "x-ms-routing-request-id": [ - "EASTUS:20241113T212123Z:9691d5ed-578f-483f-8282-c195b8862d7a" + "EASTUS2:20250911T210947Z:6f16aa90-a30c-4f31-905e-8572ff012fa7" ], "X-Cache": [ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: CF088A0E618E412EA5B3A7670F25F64A Ref B: MNZ221060610051 Ref C: 2024-11-13T21:21:23Z" + "Ref A: 1139B1AF8082430EA3675FADCF163FE2 Ref B: CO6AA3150217009 Ref C: 2025-09-11T21:09:47Z" ], "Date": [ - "Wed, 13 Nov 2024 21:21:23 GMT" + "Thu, 11 Sep 2025 21:09:47 GMT" ], "Expires": [ "-1" @@ -304,21 +316,21 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/dawatrou-rg/providers/Microsoft.Batch/batchAccounts/dawatrouhobo/applications/newApplicationPackage?api-version=2022-10-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjFhYmQ2NzgtMThjNS00NjYwLTlmZGQtOGM1YmE2YjZmZTFmL3Jlc291cmNlR3JvdXBzL2Rhd2F0cm91LXJnL3Byb3ZpZGVycy9NaWNyb3NvZnQuQmF0Y2gvYmF0Y2hBY2NvdW50cy9kYXdhdHJvdWhvYm8vYXBwbGljYXRpb25zL25ld0FwcGxpY2F0aW9uUGFja2FnZT9hcGktdmVyc2lvbj0yMDIyLTEwLTAx", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/newApplicationPackage?api-version=2023-05-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvYXBwbGljYXRpb25zL25ld0FwcGxpY2F0aW9uUGFja2FnZT9hcGktdmVyc2lvbj0yMDIzLTA1LTAx", "RequestMethod": "DELETE", "RequestHeaders": { "x-ms-client-request-id": [ - "0b8c90a0-5e34-444b-a6ea-b2041582ea47" + "34bbaa92-b261-47e9-8e87-c56814f41d13" ], "Accept-Language": [ "en-US" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Management.Batch.BatchManagementClient/3.6.4" + "OSVersion/Microsoft.Windows.10.0.26100", + "Microsoft.Azure.Management.Batch.BatchManagementClient/3.7.0" ] }, "RequestBody": "", @@ -330,7 +342,7 @@ "no-cache" ], "x-ms-request-id": [ - "b98603f7-124f-4d3b-bc3b-24ad4e45035c" + "d01a0a7a-baf2-4ebd-a03f-fd6a964e50e8" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -338,6 +350,9 @@ "X-Content-Type-Options": [ "nosniff" ], + "x-ms-operation-identifier": [ + "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=ac839cc2-33ee-4879-a5b5-2895202ccb29/eastus2/ace4095b-0588-456f-96cd-b932c9eb18c2" + ], "x-ms-ratelimit-remaining-subscription-deletes": [ "799" ], @@ -345,19 +360,19 @@ "11999" ], "x-ms-correlation-request-id": [ - "cd414d56-85ae-4cf8-86ec-e944a6269d26" + "487b019f-9197-41ff-b79f-f23c842d62af" ], "x-ms-routing-request-id": [ - "EASTUS:20241113T212124Z:cd414d56-85ae-4cf8-86ec-e944a6269d26" + "EASTUS2:20250911T210947Z:487b019f-9197-41ff-b79f-f23c842d62af" ], "X-Cache": [ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: 7FBDFF70C1DC476BA3B3787934B38475 Ref B: MNZ221060610051 Ref C: 2024-11-13T21:21:23Z" + "Ref A: 1B45E6CA7685461C876E40475DD3EE09 Ref B: CO6AA3150217009 Ref C: 2025-09-11T21:09:47Z" ], "Date": [ - "Wed, 13 Nov 2024 21:21:24 GMT" + "Thu, 11 Sep 2025 21:09:47 GMT" ], "Expires": [ "-1" @@ -372,9 +387,9 @@ ], "Names": {}, "Variables": { - "SubscriptionId": "21abd678-18c5-4660-9fdd-8c5ba6b6fe1f", - "AZURE_BATCH_ACCOUNT": "dawatrouhobo", - "AZURE_BATCH_ENDPOINT": "https://dawatrouhobo.eastus2.batch.azure.com", - "AZURE_BATCH_RESOURCE_GROUP": "dawatrou-rg" + "SubscriptionId": "94bd7ded-68b4-4ffa-82a5-37ac72caa2ec", + "AZURE_BATCH_ACCOUNT": "dotnotsdkbatchaccount2", + "AZURE_BATCH_ENDPOINT": "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com", + "AZURE_BATCH_RESOURCE_GROUP": "automation" } } \ No newline at end of file diff --git a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchApplicationTests/TestAddApplication.json b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchApplicationTests/TestAddApplication.json index 6d6e52b9fc3e..d3568caab7a4 100644 --- a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchApplicationTests/TestAddApplication.json +++ b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchApplicationTests/TestAddApplication.json @@ -1,21 +1,21 @@ { "Entries": [ { - "RequestUri": "/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/dawatrou-rg/providers/Microsoft.Batch/batchAccounts/dawatrouhobo/applications/test?api-version=2022-10-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjFhYmQ2NzgtMThjNS00NjYwLTlmZGQtOGM1YmE2YjZmZTFmL3Jlc291cmNlR3JvdXBzL2Rhd2F0cm91LXJnL3Byb3ZpZGVycy9NaWNyb3NvZnQuQmF0Y2gvYmF0Y2hBY2NvdW50cy9kYXdhdHJvdWhvYm8vYXBwbGljYXRpb25zL3Rlc3Q/YXBpLXZlcnNpb249MjAyMi0xMC0wMQ==", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/test?api-version=2023-05-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvYXBwbGljYXRpb25zL3Rlc3Q/YXBpLXZlcnNpb249MjAyMy0wNS0wMQ==", "RequestMethod": "PUT", "RequestHeaders": { - "x-ms-client-request-id": [ - "21520395-8092-4442-a9f2-dc4340a5d91f" - ], "Accept-Language": [ "en-US" ], + "x-ms-client-request-id": [ + "19b5b531-2222-4ba8-bf2c-4fe9af0135bd" + ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Management.Batch.BatchManagementClient/3.6.4" + "OSVersion/Microsoft.Windows.10.0.26100", + "Microsoft.Azure.Management.Batch.BatchManagementClient/3.7.0" ], "Content-Type": [ "application/json; charset=utf-8" @@ -33,10 +33,10 @@ "no-cache" ], "ETag": [ - "W/\"0x8DD0429E9F5E17F\"" + "W/\"0x8DDF177EE41650B\"" ], "x-ms-request-id": [ - "cb732567-3982-4f29-bdb7-c352d60916bb" + "209a1625-0625-4349-8c58-338a9a9318dc" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -44,6 +44,9 @@ "X-Content-Type-Options": [ "nosniff" ], + "x-ms-operation-identifier": [ + "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=ac839cc2-33ee-4879-a5b5-2895202ccb29/westus2/f438e442-f894-4794-8614-3322d0258ba4" + ], "x-ms-ratelimit-remaining-subscription-writes": [ "799" ], @@ -51,22 +54,22 @@ "11999" ], "x-ms-correlation-request-id": [ - "c9892044-5a7c-40ae-8b35-302324a54a78" + "bc978d78-e593-4fce-9128-4e2e18b60c94" ], "x-ms-routing-request-id": [ - "EASTUS:20241113T212702Z:c9892044-5a7c-40ae-8b35-302324a54a78" + "WESTUS2:20250911T211236Z:bc978d78-e593-4fce-9128-4e2e18b60c94" ], "X-Cache": [ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: E2E1DE9C1C94404F91E06FEAA53A94B6 Ref B: MNZ221060609019 Ref C: 2024-11-13T21:27:01Z" + "Ref A: 08A1DBE33DDB4EB18A084FBAC2E10562 Ref B: MWH011020808034 Ref C: 2025-09-11T21:12:34Z" ], "Date": [ - "Wed, 13 Nov 2024 21:27:01 GMT" + "Thu, 11 Sep 2025 21:12:35 GMT" ], "Content-Length": [ - "292" + "301" ], "Content-Type": [ "application/json; charset=utf-8" @@ -75,28 +78,28 @@ "-1" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:27:02 GMT" + "Thu, 11 Sep 2025 21:12:35 GMT" ] }, - "ResponseBody": "{\r\n \"type\": \"Microsoft.Batch/batchAccounts/applications\",\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/dawatrou-rg/providers/Microsoft.Batch/batchAccounts/dawatrouhobo/applications/test\",\r\n \"name\": \"test\",\r\n \"etag\": \"W/\\\"0x8DD0429E9F5E17F\\\"\",\r\n \"properties\": {\r\n \"allowUpdates\": true\r\n }\r\n}", + "ResponseBody": "{\r\n \"type\": \"Microsoft.Batch/batchAccounts/applications\",\r\n \"id\": \"/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/test\",\r\n \"name\": \"test\",\r\n \"etag\": \"W/\\\"0x8DDF177EE41650B\\\"\",\r\n \"properties\": {\r\n \"allowUpdates\": true\r\n }\r\n}", "StatusCode": 200 }, { - "RequestUri": "/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/dawatrou-rg/providers/Microsoft.Batch/batchAccounts/dawatrouhobo/applications/test?api-version=2022-10-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjFhYmQ2NzgtMThjNS00NjYwLTlmZGQtOGM1YmE2YjZmZTFmL3Jlc291cmNlR3JvdXBzL2Rhd2F0cm91LXJnL3Byb3ZpZGVycy9NaWNyb3NvZnQuQmF0Y2gvYmF0Y2hBY2NvdW50cy9kYXdhdHJvdWhvYm8vYXBwbGljYXRpb25zL3Rlc3Q/YXBpLXZlcnNpb249MjAyMi0xMC0wMQ==", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/test?api-version=2023-05-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvYXBwbGljYXRpb25zL3Rlc3Q/YXBpLXZlcnNpb249MjAyMy0wNS0wMQ==", "RequestMethod": "GET", "RequestHeaders": { - "x-ms-client-request-id": [ - "312caeed-c7a2-4ce8-91d4-7e6391102ebe" - ], "Accept-Language": [ "en-US" ], + "x-ms-client-request-id": [ + "8e4fdf94-6b9c-45d6-8813-6aad62b2add6" + ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Management.Batch.BatchManagementClient/3.6.4" + "OSVersion/Microsoft.Windows.10.0.26100", + "Microsoft.Azure.Management.Batch.BatchManagementClient/3.7.0" ] }, "RequestBody": "", @@ -108,10 +111,10 @@ "no-cache" ], "ETag": [ - "W/\"0x8DD0429E9F5E17F\"" + "W/\"0x8DDF177EE41650B\"" ], "x-ms-request-id": [ - "16827bca-9db4-4305-bc0e-911c01a52fd5" + "15db7033-5f98-428b-954d-9fc3fb62f814" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -119,6 +122,9 @@ "X-Content-Type-Options": [ "nosniff" ], + "x-ms-operation-identifier": [ + "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=ac839cc2-33ee-4879-a5b5-2895202ccb29/eastus2/0f45c941-92fb-4b84-bed1-bebddb5ffab5" + ], "x-ms-ratelimit-remaining-subscription-reads": [ "1099" ], @@ -126,22 +132,22 @@ "16499" ], "x-ms-correlation-request-id": [ - "e9eda16e-037e-4c2f-a2ee-4335ae57f6a8" + "5738f2fe-d4fa-4789-9da5-57536eaeeb3f" ], "x-ms-routing-request-id": [ - "EASTUS:20241113T212702Z:e9eda16e-037e-4c2f-a2ee-4335ae57f6a8" + "EASTUS2:20250911T211236Z:5738f2fe-d4fa-4789-9da5-57536eaeeb3f" ], "X-Cache": [ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: DE8BB3EE3A3D4187BB1C92791F4958F7 Ref B: MNZ221060609019 Ref C: 2024-11-13T21:27:02Z" + "Ref A: 4BDE71E18CF84FE3BA31C59E59B8CFDC Ref B: MWH011020808034 Ref C: 2025-09-11T21:12:36Z" ], "Date": [ - "Wed, 13 Nov 2024 21:27:02 GMT" + "Thu, 11 Sep 2025 21:12:35 GMT" ], "Content-Length": [ - "292" + "301" ], "Content-Type": [ "application/json; charset=utf-8" @@ -150,28 +156,28 @@ "-1" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:27:02 GMT" + "Thu, 11 Sep 2025 21:12:35 GMT" ] }, - "ResponseBody": "{\r\n \"type\": \"Microsoft.Batch/batchAccounts/applications\",\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/dawatrou-rg/providers/Microsoft.Batch/batchAccounts/dawatrouhobo/applications/test\",\r\n \"name\": \"test\",\r\n \"etag\": \"W/\\\"0x8DD0429E9F5E17F\\\"\",\r\n \"properties\": {\r\n \"allowUpdates\": true\r\n }\r\n}", + "ResponseBody": "{\r\n \"type\": \"Microsoft.Batch/batchAccounts/applications\",\r\n \"id\": \"/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/test\",\r\n \"name\": \"test\",\r\n \"etag\": \"W/\\\"0x8DDF177EE41650B\\\"\",\r\n \"properties\": {\r\n \"allowUpdates\": true\r\n }\r\n}", "StatusCode": 200 }, { - "RequestUri": "/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/resourceGroups/dawatrou-rg/providers/Microsoft.Batch/batchAccounts/dawatrouhobo/applications/test?api-version=2022-10-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjFhYmQ2NzgtMThjNS00NjYwLTlmZGQtOGM1YmE2YjZmZTFmL3Jlc291cmNlR3JvdXBzL2Rhd2F0cm91LXJnL3Byb3ZpZGVycy9NaWNyb3NvZnQuQmF0Y2gvYmF0Y2hBY2NvdW50cy9kYXdhdHJvdWhvYm8vYXBwbGljYXRpb25zL3Rlc3Q/YXBpLXZlcnNpb249MjAyMi0xMC0wMQ==", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/test?api-version=2023-05-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvYXBwbGljYXRpb25zL3Rlc3Q/YXBpLXZlcnNpb249MjAyMy0wNS0wMQ==", "RequestMethod": "DELETE", "RequestHeaders": { - "x-ms-client-request-id": [ - "b4f8fe63-6ada-4ffe-a8b4-4873c60abeda" - ], "Accept-Language": [ "en-US" ], + "x-ms-client-request-id": [ + "b04c58d4-288b-4897-8117-1f6774022e7d" + ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Management.Batch.BatchManagementClient/3.6.4" + "OSVersion/Microsoft.Windows.10.0.26100", + "Microsoft.Azure.Management.Batch.BatchManagementClient/3.7.0" ] }, "RequestBody": "", @@ -183,7 +189,7 @@ "no-cache" ], "x-ms-request-id": [ - "cb874006-297d-48d9-ab7a-8383ba3c0c70" + "55baf1e2-1078-4bbd-8ab7-4ecc0a907415" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -191,6 +197,9 @@ "X-Content-Type-Options": [ "nosniff" ], + "x-ms-operation-identifier": [ + "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=ac839cc2-33ee-4879-a5b5-2895202ccb29/eastus2/e45ddb5e-6b0d-4462-b027-5f4a49493d53" + ], "x-ms-ratelimit-remaining-subscription-deletes": [ "799" ], @@ -198,19 +207,19 @@ "11999" ], "x-ms-correlation-request-id": [ - "e2d44c90-3aed-4528-8ac6-f91965621109" + "dc10832a-7d8d-4fe5-98a2-05daf0118902" ], "x-ms-routing-request-id": [ - "EASTUS:20241113T212702Z:e2d44c90-3aed-4528-8ac6-f91965621109" + "EASTUS2:20250911T211236Z:dc10832a-7d8d-4fe5-98a2-05daf0118902" ], "X-Cache": [ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: 39E3A4D90B4A4AD7AB76CDF3068D8457 Ref B: MNZ221060609019 Ref C: 2024-11-13T21:27:02Z" + "Ref A: 35C5D889E107425E91C7476B7E61A979 Ref B: MWH011020808034 Ref C: 2025-09-11T21:12:36Z" ], "Date": [ - "Wed, 13 Nov 2024 21:27:02 GMT" + "Thu, 11 Sep 2025 21:12:35 GMT" ], "Expires": [ "-1" @@ -225,9 +234,9 @@ ], "Names": {}, "Variables": { - "SubscriptionId": "21abd678-18c5-4660-9fdd-8c5ba6b6fe1f", - "AZURE_BATCH_ACCOUNT": "dawatrouhobo", - "AZURE_BATCH_ENDPOINT": "https://dawatrouhobo.eastus2.batch.azure.com", - "AZURE_BATCH_RESOURCE_GROUP": "dawatrou-rg" + "SubscriptionId": "94bd7ded-68b4-4ffa-82a5-37ac72caa2ec", + "AZURE_BATCH_ACCOUNT": "dotnotsdkbatchaccount2", + "AZURE_BATCH_ENDPOINT": "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com", + "AZURE_BATCH_RESOURCE_GROUP": "automation" } } \ No newline at end of file diff --git a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.CertificateTests/TestCancelCertificateDelete.json b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.CertificateTests/TestCancelCertificateDelete.json deleted file mode 100644 index 95ec15271ad2..000000000000 --- a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.CertificateTests/TestCancelCertificateDelete.json +++ /dev/null @@ -1,1610 +0,0 @@ -{ - "Entries": [ - { - "RequestUri": "/certificates(thumbprintAlgorithm=sha1,thumbprint=C1E494A415149C5F211C4778B52F2E834A07247C)?api-version=2024-02-01.19.0&$select=thumbprint%2Cstate", - "EncodedRequestUri": "L2NlcnRpZmljYXRlcyh0aHVtYnByaW50QWxnb3JpdGhtPXNoYTEsdGh1bWJwcmludD1DMUU0OTRBNDE1MTQ5QzVGMjExQzQ3NzhCNTJGMkU4MzRBMDcyNDdDKT9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjAmJHNlbGVjdD10aHVtYnByaW50JTJDc3RhdGU=", - "RequestMethod": "GET", - "RequestHeaders": { - "client-request-id": [ - "5dfe7ef4-17ba-42d7-958a-bb14efea85e9" - ], - "Accept-Language": [ - "en-US" - ], - "ocp-date": [ - "Wed, 13 Nov 2024 21:24:49 GMT" - ], - "User-Agent": [ - "FxVersion/6.0.3524.45918", - "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", - "AzurePowershell/Az1.0.0" - ] - }, - "RequestBody": "", - "ResponseHeaders": { - "Transfer-Encoding": [ - "chunked" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "311ea88f-3af6-4b85-b509-f9d3ed86b3f4" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ], - "Date": [ - "Wed, 13 Nov 2024 21:24:48 GMT" - ], - "Content-Type": [ - "application/json; odata=minimalmetadata" - ] - }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#certificates/@Element\",\r\n \"thumbprint\": \"c1e494a415149c5f211c4778b52f2e834a07247c\",\r\n \"state\": \"deleting\"\r\n}", - "StatusCode": 200 - }, - { - "RequestUri": "/certificates(thumbprintAlgorithm=sha1,thumbprint=C1E494A415149C5F211C4778B52F2E834A07247C)?api-version=2024-02-01.19.0&$select=thumbprint%2Cstate", - "EncodedRequestUri": "L2NlcnRpZmljYXRlcyh0aHVtYnByaW50QWxnb3JpdGhtPXNoYTEsdGh1bWJwcmludD1DMUU0OTRBNDE1MTQ5QzVGMjExQzQ3NzhCNTJGMkU4MzRBMDcyNDdDKT9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjAmJHNlbGVjdD10aHVtYnByaW50JTJDc3RhdGU=", - "RequestMethod": "GET", - "RequestHeaders": { - "client-request-id": [ - "2beedf25-2da8-4af3-a8bc-b8123e01911b" - ], - "Accept-Language": [ - "en-US" - ], - "ocp-date": [ - "Wed, 13 Nov 2024 21:24:54 GMT" - ], - "User-Agent": [ - "FxVersion/6.0.3524.45918", - "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", - "AzurePowershell/Az1.0.0" - ] - }, - "RequestBody": "", - "ResponseHeaders": { - "Transfer-Encoding": [ - "chunked" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "1d600568-52e5-41c9-98f9-37c8bf996532" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ], - "Date": [ - "Wed, 13 Nov 2024 21:24:53 GMT" - ], - "Content-Type": [ - "application/json; odata=minimalmetadata" - ] - }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#certificates/@Element\",\r\n \"thumbprint\": \"c1e494a415149c5f211c4778b52f2e834a07247c\",\r\n \"state\": \"deleting\"\r\n}", - "StatusCode": 200 - }, - { - "RequestUri": "/certificates(thumbprintAlgorithm=sha1,thumbprint=C1E494A415149C5F211C4778B52F2E834A07247C)?api-version=2024-02-01.19.0&$select=thumbprint%2Cstate", - "EncodedRequestUri": "L2NlcnRpZmljYXRlcyh0aHVtYnByaW50QWxnb3JpdGhtPXNoYTEsdGh1bWJwcmludD1DMUU0OTRBNDE1MTQ5QzVGMjExQzQ3NzhCNTJGMkU4MzRBMDcyNDdDKT9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjAmJHNlbGVjdD10aHVtYnByaW50JTJDc3RhdGU=", - "RequestMethod": "GET", - "RequestHeaders": { - "client-request-id": [ - "70a0d6ed-2600-471e-936a-d5d2dae37e98" - ], - "Accept-Language": [ - "en-US" - ], - "ocp-date": [ - "Wed, 13 Nov 2024 21:24:59 GMT" - ], - "User-Agent": [ - "FxVersion/6.0.3524.45918", - "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", - "AzurePowershell/Az1.0.0" - ] - }, - "RequestBody": "", - "ResponseHeaders": { - "Transfer-Encoding": [ - "chunked" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "2ed86642-b40a-4c32-8c87-4db1bd827fcd" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ], - "Date": [ - "Wed, 13 Nov 2024 21:24:58 GMT" - ], - "Content-Type": [ - "application/json; odata=minimalmetadata" - ] - }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#certificates/@Element\",\r\n \"thumbprint\": \"c1e494a415149c5f211c4778b52f2e834a07247c\",\r\n \"state\": \"deleting\"\r\n}", - "StatusCode": 200 - }, - { - "RequestUri": "/certificates(thumbprintAlgorithm=sha1,thumbprint=C1E494A415149C5F211C4778B52F2E834A07247C)?api-version=2024-02-01.19.0&$select=thumbprint%2Cstate", - "EncodedRequestUri": "L2NlcnRpZmljYXRlcyh0aHVtYnByaW50QWxnb3JpdGhtPXNoYTEsdGh1bWJwcmludD1DMUU0OTRBNDE1MTQ5QzVGMjExQzQ3NzhCNTJGMkU4MzRBMDcyNDdDKT9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjAmJHNlbGVjdD10aHVtYnByaW50JTJDc3RhdGU=", - "RequestMethod": "GET", - "RequestHeaders": { - "client-request-id": [ - "1d6c3b68-011c-438a-a2d1-797cf5d06cb1" - ], - "Accept-Language": [ - "en-US" - ], - "ocp-date": [ - "Wed, 13 Nov 2024 21:25:04 GMT" - ], - "User-Agent": [ - "FxVersion/6.0.3524.45918", - "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", - "AzurePowershell/Az1.0.0" - ] - }, - "RequestBody": "", - "ResponseHeaders": { - "Transfer-Encoding": [ - "chunked" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "61a0be15-c974-4c32-8a4f-df4801006750" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ], - "Date": [ - "Wed, 13 Nov 2024 21:25:03 GMT" - ], - "Content-Type": [ - "application/json; odata=minimalmetadata" - ] - }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#certificates/@Element\",\r\n \"thumbprint\": \"c1e494a415149c5f211c4778b52f2e834a07247c\",\r\n \"state\": \"deleting\"\r\n}", - "StatusCode": 200 - }, - { - "RequestUri": "/certificates(thumbprintAlgorithm=sha1,thumbprint=C1E494A415149C5F211C4778B52F2E834A07247C)?api-version=2024-02-01.19.0&$select=thumbprint%2Cstate", - "EncodedRequestUri": "L2NlcnRpZmljYXRlcyh0aHVtYnByaW50QWxnb3JpdGhtPXNoYTEsdGh1bWJwcmludD1DMUU0OTRBNDE1MTQ5QzVGMjExQzQ3NzhCNTJGMkU4MzRBMDcyNDdDKT9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjAmJHNlbGVjdD10aHVtYnByaW50JTJDc3RhdGU=", - "RequestMethod": "GET", - "RequestHeaders": { - "client-request-id": [ - "fdc3e35c-3f15-4f36-b115-7106dcdb9ab7" - ], - "Accept-Language": [ - "en-US" - ], - "ocp-date": [ - "Wed, 13 Nov 2024 21:25:09 GMT" - ], - "User-Agent": [ - "FxVersion/6.0.3524.45918", - "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", - "AzurePowershell/Az1.0.0" - ] - }, - "RequestBody": "", - "ResponseHeaders": { - "Transfer-Encoding": [ - "chunked" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "915d7db1-a11c-4ac1-89e6-65f88e959c69" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ], - "Date": [ - "Wed, 13 Nov 2024 21:25:08 GMT" - ], - "Content-Type": [ - "application/json; odata=minimalmetadata" - ] - }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#certificates/@Element\",\r\n \"thumbprint\": \"c1e494a415149c5f211c4778b52f2e834a07247c\",\r\n \"state\": \"deleting\"\r\n}", - "StatusCode": 200 - }, - { - "RequestUri": "/certificates(thumbprintAlgorithm=sha1,thumbprint=C1E494A415149C5F211C4778B52F2E834A07247C)?api-version=2024-02-01.19.0&$select=thumbprint%2Cstate", - "EncodedRequestUri": "L2NlcnRpZmljYXRlcyh0aHVtYnByaW50QWxnb3JpdGhtPXNoYTEsdGh1bWJwcmludD1DMUU0OTRBNDE1MTQ5QzVGMjExQzQ3NzhCNTJGMkU4MzRBMDcyNDdDKT9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjAmJHNlbGVjdD10aHVtYnByaW50JTJDc3RhdGU=", - "RequestMethod": "GET", - "RequestHeaders": { - "client-request-id": [ - "131b9d62-ebb4-48c1-965c-d27465e0bad1" - ], - "Accept-Language": [ - "en-US" - ], - "ocp-date": [ - "Wed, 13 Nov 2024 21:25:14 GMT" - ], - "User-Agent": [ - "FxVersion/6.0.3524.45918", - "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", - "AzurePowershell/Az1.0.0" - ] - }, - "RequestBody": "", - "ResponseHeaders": { - "Transfer-Encoding": [ - "chunked" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "88baabd7-3600-4ad0-8ebf-cb6a68aab32f" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ], - "Date": [ - "Wed, 13 Nov 2024 21:25:14 GMT" - ], - "Content-Type": [ - "application/json; odata=minimalmetadata" - ] - }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#certificates/@Element\",\r\n \"thumbprint\": \"c1e494a415149c5f211c4778b52f2e834a07247c\",\r\n \"state\": \"deleting\"\r\n}", - "StatusCode": 200 - }, - { - "RequestUri": "/certificates(thumbprintAlgorithm=sha1,thumbprint=C1E494A415149C5F211C4778B52F2E834A07247C)?api-version=2024-02-01.19.0&$select=thumbprint%2Cstate", - "EncodedRequestUri": "L2NlcnRpZmljYXRlcyh0aHVtYnByaW50QWxnb3JpdGhtPXNoYTEsdGh1bWJwcmludD1DMUU0OTRBNDE1MTQ5QzVGMjExQzQ3NzhCNTJGMkU4MzRBMDcyNDdDKT9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjAmJHNlbGVjdD10aHVtYnByaW50JTJDc3RhdGU=", - "RequestMethod": "GET", - "RequestHeaders": { - "client-request-id": [ - "190113b0-7911-4996-bc03-734bf6c79ea2" - ], - "Accept-Language": [ - "en-US" - ], - "ocp-date": [ - "Wed, 13 Nov 2024 21:25:19 GMT" - ], - "User-Agent": [ - "FxVersion/6.0.3524.45918", - "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", - "AzurePowershell/Az1.0.0" - ] - }, - "RequestBody": "", - "ResponseHeaders": { - "Transfer-Encoding": [ - "chunked" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "42487fb6-d5eb-4bed-be5e-90b6f8aa1fd8" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ], - "Date": [ - "Wed, 13 Nov 2024 21:25:19 GMT" - ], - "Content-Type": [ - "application/json; odata=minimalmetadata" - ] - }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#certificates/@Element\",\r\n \"thumbprint\": \"c1e494a415149c5f211c4778b52f2e834a07247c\",\r\n \"state\": \"deleting\"\r\n}", - "StatusCode": 200 - }, - { - "RequestUri": "/certificates(thumbprintAlgorithm=sha1,thumbprint=C1E494A415149C5F211C4778B52F2E834A07247C)?api-version=2024-02-01.19.0&$select=thumbprint%2Cstate", - "EncodedRequestUri": "L2NlcnRpZmljYXRlcyh0aHVtYnByaW50QWxnb3JpdGhtPXNoYTEsdGh1bWJwcmludD1DMUU0OTRBNDE1MTQ5QzVGMjExQzQ3NzhCNTJGMkU4MzRBMDcyNDdDKT9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjAmJHNlbGVjdD10aHVtYnByaW50JTJDc3RhdGU=", - "RequestMethod": "GET", - "RequestHeaders": { - "client-request-id": [ - "805f77db-fcd4-442a-819a-7fceb5267db7" - ], - "Accept-Language": [ - "en-US" - ], - "ocp-date": [ - "Wed, 13 Nov 2024 21:25:24 GMT" - ], - "User-Agent": [ - "FxVersion/6.0.3524.45918", - "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", - "AzurePowershell/Az1.0.0" - ] - }, - "RequestBody": "", - "ResponseHeaders": { - "Transfer-Encoding": [ - "chunked" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "956e0305-40e3-463b-bc16-fa8ea8b8263d" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ], - "Date": [ - "Wed, 13 Nov 2024 21:25:24 GMT" - ], - "Content-Type": [ - "application/json; odata=minimalmetadata" - ] - }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#certificates/@Element\",\r\n \"thumbprint\": \"c1e494a415149c5f211c4778b52f2e834a07247c\",\r\n \"state\": \"deleting\"\r\n}", - "StatusCode": 200 - }, - { - "RequestUri": "/certificates(thumbprintAlgorithm=sha1,thumbprint=C1E494A415149C5F211C4778B52F2E834A07247C)?api-version=2024-02-01.19.0&$select=thumbprint%2Cstate", - "EncodedRequestUri": "L2NlcnRpZmljYXRlcyh0aHVtYnByaW50QWxnb3JpdGhtPXNoYTEsdGh1bWJwcmludD1DMUU0OTRBNDE1MTQ5QzVGMjExQzQ3NzhCNTJGMkU4MzRBMDcyNDdDKT9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjAmJHNlbGVjdD10aHVtYnByaW50JTJDc3RhdGU=", - "RequestMethod": "GET", - "RequestHeaders": { - "client-request-id": [ - "eb00c97f-fc9b-40ea-b30e-fd5555c5f2c7" - ], - "Accept-Language": [ - "en-US" - ], - "ocp-date": [ - "Wed, 13 Nov 2024 21:25:29 GMT" - ], - "User-Agent": [ - "FxVersion/6.0.3524.45918", - "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", - "AzurePowershell/Az1.0.0" - ] - }, - "RequestBody": "", - "ResponseHeaders": { - "Transfer-Encoding": [ - "chunked" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "728316c0-89df-4e2e-9f35-6fd2d2834405" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ], - "Date": [ - "Wed, 13 Nov 2024 21:25:29 GMT" - ], - "Content-Type": [ - "application/json; odata=minimalmetadata" - ] - }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#certificates/@Element\",\r\n \"thumbprint\": \"c1e494a415149c5f211c4778b52f2e834a07247c\",\r\n \"state\": \"deleting\"\r\n}", - "StatusCode": 200 - }, - { - "RequestUri": "/certificates(thumbprintAlgorithm=sha1,thumbprint=C1E494A415149C5F211C4778B52F2E834A07247C)?api-version=2024-02-01.19.0&$select=thumbprint%2Cstate", - "EncodedRequestUri": "L2NlcnRpZmljYXRlcyh0aHVtYnByaW50QWxnb3JpdGhtPXNoYTEsdGh1bWJwcmludD1DMUU0OTRBNDE1MTQ5QzVGMjExQzQ3NzhCNTJGMkU4MzRBMDcyNDdDKT9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjAmJHNlbGVjdD10aHVtYnByaW50JTJDc3RhdGU=", - "RequestMethod": "GET", - "RequestHeaders": { - "client-request-id": [ - "989c555a-81bf-4d7f-aea8-5d6818aafe32" - ], - "Accept-Language": [ - "en-US" - ], - "ocp-date": [ - "Wed, 13 Nov 2024 21:25:34 GMT" - ], - "User-Agent": [ - "FxVersion/6.0.3524.45918", - "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", - "AzurePowershell/Az1.0.0" - ] - }, - "RequestBody": "", - "ResponseHeaders": { - "Transfer-Encoding": [ - "chunked" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "a56a184f-0c97-4671-b90d-7e87fc2a40cd" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ], - "Date": [ - "Wed, 13 Nov 2024 21:25:34 GMT" - ], - "Content-Type": [ - "application/json; odata=minimalmetadata" - ] - }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#certificates/@Element\",\r\n \"thumbprint\": \"c1e494a415149c5f211c4778b52f2e834a07247c\",\r\n \"state\": \"deleting\"\r\n}", - "StatusCode": 200 - }, - { - "RequestUri": "/certificates(thumbprintAlgorithm=sha1,thumbprint=C1E494A415149C5F211C4778B52F2E834A07247C)?api-version=2024-02-01.19.0&$select=thumbprint%2Cstate", - "EncodedRequestUri": "L2NlcnRpZmljYXRlcyh0aHVtYnByaW50QWxnb3JpdGhtPXNoYTEsdGh1bWJwcmludD1DMUU0OTRBNDE1MTQ5QzVGMjExQzQ3NzhCNTJGMkU4MzRBMDcyNDdDKT9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjAmJHNlbGVjdD10aHVtYnByaW50JTJDc3RhdGU=", - "RequestMethod": "GET", - "RequestHeaders": { - "client-request-id": [ - "ead36d54-4f48-42b9-aa34-cede64a59283" - ], - "Accept-Language": [ - "en-US" - ], - "ocp-date": [ - "Wed, 13 Nov 2024 21:25:39 GMT" - ], - "User-Agent": [ - "FxVersion/6.0.3524.45918", - "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", - "AzurePowershell/Az1.0.0" - ] - }, - "RequestBody": "", - "ResponseHeaders": { - "Transfer-Encoding": [ - "chunked" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "94aea2ad-a4a9-48d9-8d31-024ae4ac850a" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ], - "Date": [ - "Wed, 13 Nov 2024 21:25:38 GMT" - ], - "Content-Type": [ - "application/json; odata=minimalmetadata" - ] - }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#certificates/@Element\",\r\n \"thumbprint\": \"c1e494a415149c5f211c4778b52f2e834a07247c\",\r\n \"state\": \"deleting\"\r\n}", - "StatusCode": 200 - }, - { - "RequestUri": "/certificates(thumbprintAlgorithm=sha1,thumbprint=C1E494A415149C5F211C4778B52F2E834A07247C)?api-version=2024-02-01.19.0&$select=thumbprint%2Cstate", - "EncodedRequestUri": "L2NlcnRpZmljYXRlcyh0aHVtYnByaW50QWxnb3JpdGhtPXNoYTEsdGh1bWJwcmludD1DMUU0OTRBNDE1MTQ5QzVGMjExQzQ3NzhCNTJGMkU4MzRBMDcyNDdDKT9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjAmJHNlbGVjdD10aHVtYnByaW50JTJDc3RhdGU=", - "RequestMethod": "GET", - "RequestHeaders": { - "client-request-id": [ - "b3f0ba44-345c-4fa1-8e05-75b3f5fd6be9" - ], - "Accept-Language": [ - "en-US" - ], - "ocp-date": [ - "Wed, 13 Nov 2024 21:25:44 GMT" - ], - "User-Agent": [ - "FxVersion/6.0.3524.45918", - "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", - "AzurePowershell/Az1.0.0" - ] - }, - "RequestBody": "", - "ResponseHeaders": { - "Transfer-Encoding": [ - "chunked" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "275a8e34-1082-4580-a407-ac1835b01438" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ], - "Date": [ - "Wed, 13 Nov 2024 21:25:44 GMT" - ], - "Content-Type": [ - "application/json; odata=minimalmetadata" - ] - }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#certificates/@Element\",\r\n \"thumbprint\": \"c1e494a415149c5f211c4778b52f2e834a07247c\",\r\n \"state\": \"deleting\"\r\n}", - "StatusCode": 200 - }, - { - "RequestUri": "/certificates(thumbprintAlgorithm=sha1,thumbprint=C1E494A415149C5F211C4778B52F2E834A07247C)?api-version=2024-02-01.19.0&$select=thumbprint%2Cstate", - "EncodedRequestUri": "L2NlcnRpZmljYXRlcyh0aHVtYnByaW50QWxnb3JpdGhtPXNoYTEsdGh1bWJwcmludD1DMUU0OTRBNDE1MTQ5QzVGMjExQzQ3NzhCNTJGMkU4MzRBMDcyNDdDKT9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjAmJHNlbGVjdD10aHVtYnByaW50JTJDc3RhdGU=", - "RequestMethod": "GET", - "RequestHeaders": { - "client-request-id": [ - "1fc08ec2-5cdc-48e3-93c8-f923ad211a41" - ], - "Accept-Language": [ - "en-US" - ], - "ocp-date": [ - "Wed, 13 Nov 2024 21:25:49 GMT" - ], - "User-Agent": [ - "FxVersion/6.0.3524.45918", - "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", - "AzurePowershell/Az1.0.0" - ] - }, - "RequestBody": "", - "ResponseHeaders": { - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "7a6adfa5-4ecd-4b66-bb63-7884e26a3fe9" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ], - "Date": [ - "Wed, 13 Nov 2024 21:25:48 GMT" - ], - "Content-Length": [ - "348" - ], - "Content-Type": [ - "application/json; odata=minimalmetadata" - ] - }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#Microsoft.Azure.Batch.Protocol.Entities.Container.errors/@Element\",\r\n \"code\": \"CertificateNotFound\",\r\n \"message\": {\r\n \"lang\": \"en-US\",\r\n \"value\": \"The specified certificate does not exist.\\nRequestId:7a6adfa5-4ecd-4b66-bb63-7884e26a3fe9\\nTime:2024-11-13T21:25:49.6709594Z\"\r\n }\r\n}", - "StatusCode": 404 - }, - { - "RequestUri": "/certificates?api-version=2024-02-01.19.0", - "EncodedRequestUri": "L2NlcnRpZmljYXRlcz9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjA=", - "RequestMethod": "POST", - "RequestHeaders": { - "client-request-id": [ - "deec7402-da39-45a6-84cb-a000867b710e" - ], - "Accept-Language": [ - "en-US" - ], - "ocp-date": [ - "Wed, 13 Nov 2024 21:25:49 GMT" - ], - "User-Agent": [ - "FxVersion/6.0.3524.45918", - "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", - "AzurePowershell/Az1.0.0" - ], - "Content-Type": [ - "application/json; odata=minimalmetadata; charset=utf-8" - ], - "Content-Length": [ - "816" - ] - }, - "RequestBody": "{\r\n \"thumbprint\": \"c1e494a415149c5f211c4778b52f2e834a07247c\",\r\n \"thumbprintAlgorithm\": \"sha1\",\r\n \"data\": \"MIIB9DCCAWGgAwIBAgIQpUXhwCuAPJRDhl7kY/0PdTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC0JhdGNoVGVzdDAxMB4XDTE1MTAwMjE2MjkwNVoXDTM5MTIzMTIzNTk1OVowFjEUMBIGA1UEAxMLQmF0Y2hUZXN0MDEwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAM06unpRipn3BmHBM75d0s8w/Wwifci16PoJo4c2V68GwsCCFsNOn5ypo7BBXo1fpBjrnso5w+koaE5LjxkBSVm+TkogwbKlW6WURTM0O5viRVbPnEEU/Y01Pj5cJElFuLEk9Uoe/r/lP8b5A607t1cPjSXkwhEZEYc3LkHDSo0ZAgMBAAGjSzBJMEcGA1UdAQRAMD6AEFRsTAsrvF+FmPuICooZXaKhGDAWMRQwEgYDVQQDEwtCYXRjaFRlc3QwMYIQpUXhwCuAPJRDhl7kY/0PdTAJBgUrDgMCHQUAA4GBALt0F8Ep+8XVE/M2aNtxzlku72gxiOiAo1HmpUaixXx3gl8kdP3xgoKMaq4JskqdLmbJJUnCQ3wmzsdPwjswsW2ycT12zuBddaiS+id98k8U/KYc6FxMgS+H70FYOxARLn7P4FSSBf/QCyign+BherzezdZ5NBdfzbmWxIMP5iFJ\",\r\n \"certificateFormat\": \"cer\"\r\n}", - "ResponseHeaders": { - "Transfer-Encoding": [ - "chunked" - ], - "Location": [ - "https://dawatrouhobo.eastus2.batch.azure.com/certificates(ThumbprintAlgorithm=sha1,Thumbprint=c1e494a415149c5f211c4778b52f2e834a07247c)" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "803d8b68-f07a-4cec-8e5d-6df9a1003240" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ], - "DataServiceId": [ - "https://dawatrouhobo.eastus2.batch.azure.com/certificates(ThumbprintAlgorithm=sha1,Thumbprint=c1e494a415149c5f211c4778b52f2e834a07247c)" - ], - "Date": [ - "Wed, 13 Nov 2024 21:25:48 GMT" - ] - }, - "ResponseBody": "", - "StatusCode": 201 - }, - { - "RequestUri": "/pools?api-version=2024-02-01.19.0", - "EncodedRequestUri": "L3Bvb2xzP2FwaS12ZXJzaW9uPTIwMjQtMDItMDEuMTkuMA==", - "RequestMethod": "POST", - "RequestHeaders": { - "client-request-id": [ - "c9226697-50ea-484d-b814-192997491a40" - ], - "Accept-Language": [ - "en-US" - ], - "ocp-date": [ - "Wed, 13 Nov 2024 21:25:49 GMT" - ], - "User-Agent": [ - "FxVersion/6.0.3524.45918", - "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", - "AzurePowershell/Az1.0.0" - ], - "Content-Type": [ - "application/json; odata=minimalmetadata; charset=utf-8" - ], - "Content-Length": [ - "797" - ] - }, - "RequestBody": "{\r\n \"id\": \"certPool\",\r\n \"vmSize\": \"STANDARD_D2S_V3\",\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"zonal\"\r\n }\r\n },\r\n \"targetDedicatedNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [\r\n {\r\n \"thumbprint\": \"c1e494a415149c5f211c4778b52f2e834a07247c\",\r\n \"thumbprintAlgorithm\": \"sha1\",\r\n \"storeLocation\": \"currentuser\",\r\n \"storeName\": \"My\",\r\n \"visibility\": [\r\n \"task\"\r\n ]\r\n }\r\n ],\r\n \"taskSlotsPerNode\": 1,\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", - "ResponseHeaders": { - "Transfer-Encoding": [ - "chunked" - ], - "ETag": [ - "0x8DD0429BECEA7AB" - ], - "Location": [ - "https://dawatrouhobo.eastus2.batch.azure.com/pools/certPool" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "271d7c43-948d-4ca9-bcc0-7b6b9d2fb6fe" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ], - "DataServiceId": [ - "https://dawatrouhobo.eastus2.batch.azure.com/pools/certPool" - ], - "Date": [ - "Wed, 13 Nov 2024 21:25:49 GMT" - ], - "Last-Modified": [ - "Wed, 13 Nov 2024 21:25:49 GMT" - ] - }, - "ResponseBody": "", - "StatusCode": 201 - }, - { - "RequestUri": "/certificates(thumbprintAlgorithm=sha1,thumbprint=c1e494a415149c5f211c4778b52f2e834a07247c)?api-version=2024-02-01.19.0", - "EncodedRequestUri": "L2NlcnRpZmljYXRlcyh0aHVtYnByaW50QWxnb3JpdGhtPXNoYTEsdGh1bWJwcmludD1jMWU0OTRhNDE1MTQ5YzVmMjExYzQ3NzhiNTJmMmU4MzRhMDcyNDdjKT9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjA=", - "RequestMethod": "DELETE", - "RequestHeaders": { - "client-request-id": [ - "2e241302-a50b-462d-ac91-65356210f2ce" - ], - "Accept-Language": [ - "en-US" - ], - "ocp-date": [ - "Wed, 13 Nov 2024 21:25:49 GMT" - ], - "User-Agent": [ - "FxVersion/6.0.3524.45918", - "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", - "AzurePowershell/Az1.0.0" - ], - "Content-Length": [ - "0" - ] - }, - "RequestBody": "", - "ResponseHeaders": { - "Transfer-Encoding": [ - "chunked" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "5502148e-ab93-42b0-a70a-1c49f26e5033" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ], - "Date": [ - "Wed, 13 Nov 2024 21:25:49 GMT" - ] - }, - "ResponseBody": "", - "StatusCode": 202 - }, - { - "RequestUri": "/certificates(thumbprintAlgorithm=sha1,thumbprint=c1e494a415149c5f211c4778b52f2e834a07247c)?api-version=2024-02-01.19.0", - "EncodedRequestUri": "L2NlcnRpZmljYXRlcyh0aHVtYnByaW50QWxnb3JpdGhtPXNoYTEsdGh1bWJwcmludD1jMWU0OTRhNDE1MTQ5YzVmMjExYzQ3NzhiNTJmMmU4MzRhMDcyNDdjKT9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjA=", - "RequestMethod": "DELETE", - "RequestHeaders": { - "client-request-id": [ - "1e3e0aad-8d9a-4f9c-8932-dd5e6e19c2a2" - ], - "Accept-Language": [ - "en-US" - ], - "ocp-date": [ - "Wed, 13 Nov 2024 21:27:01 GMT" - ], - "User-Agent": [ - "FxVersion/6.0.3524.45918", - "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", - "AzurePowershell/Az1.0.0" - ], - "Content-Length": [ - "0" - ] - }, - "RequestBody": "", - "ResponseHeaders": { - "Transfer-Encoding": [ - "chunked" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "6831a623-9fde-423a-a13f-d02e03a67a82" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ], - "Date": [ - "Wed, 13 Nov 2024 21:27:01 GMT" - ] - }, - "ResponseBody": "", - "StatusCode": 202 - }, - { - "RequestUri": "/certificates(thumbprintAlgorithm=sha1,thumbprint=c1e494a415149c5f211c4778b52f2e834a07247c)?api-version=2024-02-01.19.0", - "EncodedRequestUri": "L2NlcnRpZmljYXRlcyh0aHVtYnByaW50QWxnb3JpdGhtPXNoYTEsdGh1bWJwcmludD1jMWU0OTRhNDE1MTQ5YzVmMjExYzQ3NzhiNTJmMmU4MzRhMDcyNDdjKT9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjA=", - "RequestMethod": "GET", - "RequestHeaders": { - "client-request-id": [ - "ced1a2b9-c5fb-48c2-bf3f-b155f07625df" - ], - "Accept-Language": [ - "en-US" - ], - "ocp-date": [ - "Wed, 13 Nov 2024 21:25:49 GMT" - ], - "User-Agent": [ - "FxVersion/6.0.3524.45918", - "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", - "AzurePowershell/Az1.0.0" - ] - }, - "RequestBody": "", - "ResponseHeaders": { - "Transfer-Encoding": [ - "chunked" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "e4a44700-5f4a-4e67-8065-678dca832052" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ], - "Date": [ - "Wed, 13 Nov 2024 21:25:49 GMT" - ], - "Content-Type": [ - "application/json; odata=minimalmetadata" - ] - }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#certificates/@Element\",\r\n \"thumbprint\": \"c1e494a415149c5f211c4778b52f2e834a07247c\",\r\n \"thumbprintAlgorithm\": \"sha1\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/certificates(thumbprintAlgorithm=sha1,thumbprint=c1e494a415149c5f211c4778b52f2e834a07247c)\",\r\n \"state\": \"deleting\",\r\n \"stateTransitionTime\": \"2024-11-13T21:25:50.0095801Z\",\r\n \"previousState\": \"active\",\r\n \"previousStateTransitionTime\": \"2024-11-13T21:25:49.7106472Z\",\r\n \"publicData\": \"MIIB9DCCAWGgAwIBAgIQpUXhwCuAPJRDhl7kY/0PdTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC0JhdGNoVGVzdDAxMB4XDTE1MTAwMjE2MjkwNVoXDTM5MTIzMTIzNTk1OVowFjEUMBIGA1UEAxMLQmF0Y2hUZXN0MDEwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAM06unpRipn3BmHBM75d0s8w/Wwifci16PoJo4c2V68GwsCCFsNOn5ypo7BBXo1fpBjrnso5w+koaE5LjxkBSVm+TkogwbKlW6WURTM0O5viRVbPnEEU/Y01Pj5cJElFuLEk9Uoe/r/lP8b5A607t1cPjSXkwhEZEYc3LkHDSo0ZAgMBAAGjSzBJMEcGA1UdAQRAMD6AEFRsTAsrvF+FmPuICooZXaKhGDAWMRQwEgYDVQQDEwtCYXRjaFRlc3QwMYIQpUXhwCuAPJRDhl7kY/0PdTAJBgUrDgMCHQUAA4GBALt0F8Ep+8XVE/M2aNtxzlku72gxiOiAo1HmpUaixXx3gl8kdP3xgoKMaq4JskqdLmbJJUnCQ3wmzsdPwjswsW2ycT12zuBddaiS+id98k8U/KYc6FxMgS+H70FYOxARLn7P4FSSBf/QCyign+BherzezdZ5NBdfzbmWxIMP5iFJ\"\r\n}", - "StatusCode": 200 - }, - { - "RequestUri": "/certificates(thumbprintAlgorithm=sha1,thumbprint=c1e494a415149c5f211c4778b52f2e834a07247c)?api-version=2024-02-01.19.0", - "EncodedRequestUri": "L2NlcnRpZmljYXRlcyh0aHVtYnByaW50QWxnb3JpdGhtPXNoYTEsdGh1bWJwcmludD1jMWU0OTRhNDE1MTQ5YzVmMjExYzQ3NzhiNTJmMmU4MzRhMDcyNDdjKT9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjA=", - "RequestMethod": "GET", - "RequestHeaders": { - "client-request-id": [ - "44e48d82-dfba-468d-9071-570e601ab350" - ], - "Accept-Language": [ - "en-US" - ], - "ocp-date": [ - "Wed, 13 Nov 2024 21:26:00 GMT" - ], - "User-Agent": [ - "FxVersion/6.0.3524.45918", - "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", - "AzurePowershell/Az1.0.0" - ] - }, - "RequestBody": "", - "ResponseHeaders": { - "Transfer-Encoding": [ - "chunked" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "779864c5-5939-41c5-afcd-ee9ad02951ea" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ], - "Date": [ - "Wed, 13 Nov 2024 21:25:59 GMT" - ], - "Content-Type": [ - "application/json; odata=minimalmetadata" - ] - }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#certificates/@Element\",\r\n \"thumbprint\": \"c1e494a415149c5f211c4778b52f2e834a07247c\",\r\n \"thumbprintAlgorithm\": \"sha1\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/certificates(thumbprintAlgorithm=sha1,thumbprint=c1e494a415149c5f211c4778b52f2e834a07247c)\",\r\n \"state\": \"deleting\",\r\n \"stateTransitionTime\": \"2024-11-13T21:25:50.0095801Z\",\r\n \"previousState\": \"active\",\r\n \"previousStateTransitionTime\": \"2024-11-13T21:25:49.7106472Z\",\r\n \"publicData\": \"MIIB9DCCAWGgAwIBAgIQpUXhwCuAPJRDhl7kY/0PdTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC0JhdGNoVGVzdDAxMB4XDTE1MTAwMjE2MjkwNVoXDTM5MTIzMTIzNTk1OVowFjEUMBIGA1UEAxMLQmF0Y2hUZXN0MDEwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAM06unpRipn3BmHBM75d0s8w/Wwifci16PoJo4c2V68GwsCCFsNOn5ypo7BBXo1fpBjrnso5w+koaE5LjxkBSVm+TkogwbKlW6WURTM0O5viRVbPnEEU/Y01Pj5cJElFuLEk9Uoe/r/lP8b5A607t1cPjSXkwhEZEYc3LkHDSo0ZAgMBAAGjSzBJMEcGA1UdAQRAMD6AEFRsTAsrvF+FmPuICooZXaKhGDAWMRQwEgYDVQQDEwtCYXRjaFRlc3QwMYIQpUXhwCuAPJRDhl7kY/0PdTAJBgUrDgMCHQUAA4GBALt0F8Ep+8XVE/M2aNtxzlku72gxiOiAo1HmpUaixXx3gl8kdP3xgoKMaq4JskqdLmbJJUnCQ3wmzsdPwjswsW2ycT12zuBddaiS+id98k8U/KYc6FxMgS+H70FYOxARLn7P4FSSBf/QCyign+BherzezdZ5NBdfzbmWxIMP5iFJ\"\r\n}", - "StatusCode": 200 - }, - { - "RequestUri": "/certificates(thumbprintAlgorithm=sha1,thumbprint=c1e494a415149c5f211c4778b52f2e834a07247c)?api-version=2024-02-01.19.0", - "EncodedRequestUri": "L2NlcnRpZmljYXRlcyh0aHVtYnByaW50QWxnb3JpdGhtPXNoYTEsdGh1bWJwcmludD1jMWU0OTRhNDE1MTQ5YzVmMjExYzQ3NzhiNTJmMmU4MzRhMDcyNDdjKT9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjA=", - "RequestMethod": "GET", - "RequestHeaders": { - "client-request-id": [ - "30798aa1-e90b-4689-b4ca-bfce83884332" - ], - "Accept-Language": [ - "en-US" - ], - "ocp-date": [ - "Wed, 13 Nov 2024 21:26:10 GMT" - ], - "User-Agent": [ - "FxVersion/6.0.3524.45918", - "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", - "AzurePowershell/Az1.0.0" - ] - }, - "RequestBody": "", - "ResponseHeaders": { - "Transfer-Encoding": [ - "chunked" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "b3751f65-cf22-413c-9506-a464eaf56225" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ], - "Date": [ - "Wed, 13 Nov 2024 21:26:09 GMT" - ], - "Content-Type": [ - "application/json; odata=minimalmetadata" - ] - }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#certificates/@Element\",\r\n \"thumbprint\": \"c1e494a415149c5f211c4778b52f2e834a07247c\",\r\n \"thumbprintAlgorithm\": \"sha1\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/certificates(thumbprintAlgorithm=sha1,thumbprint=c1e494a415149c5f211c4778b52f2e834a07247c)\",\r\n \"state\": \"deleting\",\r\n \"stateTransitionTime\": \"2024-11-13T21:25:50.0095801Z\",\r\n \"previousState\": \"active\",\r\n \"previousStateTransitionTime\": \"2024-11-13T21:25:49.7106472Z\",\r\n \"publicData\": \"MIIB9DCCAWGgAwIBAgIQpUXhwCuAPJRDhl7kY/0PdTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC0JhdGNoVGVzdDAxMB4XDTE1MTAwMjE2MjkwNVoXDTM5MTIzMTIzNTk1OVowFjEUMBIGA1UEAxMLQmF0Y2hUZXN0MDEwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAM06unpRipn3BmHBM75d0s8w/Wwifci16PoJo4c2V68GwsCCFsNOn5ypo7BBXo1fpBjrnso5w+koaE5LjxkBSVm+TkogwbKlW6WURTM0O5viRVbPnEEU/Y01Pj5cJElFuLEk9Uoe/r/lP8b5A607t1cPjSXkwhEZEYc3LkHDSo0ZAgMBAAGjSzBJMEcGA1UdAQRAMD6AEFRsTAsrvF+FmPuICooZXaKhGDAWMRQwEgYDVQQDEwtCYXRjaFRlc3QwMYIQpUXhwCuAPJRDhl7kY/0PdTAJBgUrDgMCHQUAA4GBALt0F8Ep+8XVE/M2aNtxzlku72gxiOiAo1HmpUaixXx3gl8kdP3xgoKMaq4JskqdLmbJJUnCQ3wmzsdPwjswsW2ycT12zuBddaiS+id98k8U/KYc6FxMgS+H70FYOxARLn7P4FSSBf/QCyign+BherzezdZ5NBdfzbmWxIMP5iFJ\"\r\n}", - "StatusCode": 200 - }, - { - "RequestUri": "/certificates(thumbprintAlgorithm=sha1,thumbprint=c1e494a415149c5f211c4778b52f2e834a07247c)?api-version=2024-02-01.19.0", - "EncodedRequestUri": "L2NlcnRpZmljYXRlcyh0aHVtYnByaW50QWxnb3JpdGhtPXNoYTEsdGh1bWJwcmludD1jMWU0OTRhNDE1MTQ5YzVmMjExYzQ3NzhiNTJmMmU4MzRhMDcyNDdjKT9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjA=", - "RequestMethod": "GET", - "RequestHeaders": { - "client-request-id": [ - "b3388ba3-5676-4834-b367-b7ec9e381229" - ], - "Accept-Language": [ - "en-US" - ], - "ocp-date": [ - "Wed, 13 Nov 2024 21:26:20 GMT" - ], - "User-Agent": [ - "FxVersion/6.0.3524.45918", - "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", - "AzurePowershell/Az1.0.0" - ] - }, - "RequestBody": "", - "ResponseHeaders": { - "Transfer-Encoding": [ - "chunked" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "84fb18c5-3f7d-4e6b-93f1-f9ff8600659a" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ], - "Date": [ - "Wed, 13 Nov 2024 21:26:19 GMT" - ], - "Content-Type": [ - "application/json; odata=minimalmetadata" - ] - }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#certificates/@Element\",\r\n \"thumbprint\": \"c1e494a415149c5f211c4778b52f2e834a07247c\",\r\n \"thumbprintAlgorithm\": \"sha1\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/certificates(thumbprintAlgorithm=sha1,thumbprint=c1e494a415149c5f211c4778b52f2e834a07247c)\",\r\n \"state\": \"deleting\",\r\n \"stateTransitionTime\": \"2024-11-13T21:25:50.0095801Z\",\r\n \"previousState\": \"active\",\r\n \"previousStateTransitionTime\": \"2024-11-13T21:25:49.7106472Z\",\r\n \"publicData\": \"MIIB9DCCAWGgAwIBAgIQpUXhwCuAPJRDhl7kY/0PdTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC0JhdGNoVGVzdDAxMB4XDTE1MTAwMjE2MjkwNVoXDTM5MTIzMTIzNTk1OVowFjEUMBIGA1UEAxMLQmF0Y2hUZXN0MDEwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAM06unpRipn3BmHBM75d0s8w/Wwifci16PoJo4c2V68GwsCCFsNOn5ypo7BBXo1fpBjrnso5w+koaE5LjxkBSVm+TkogwbKlW6WURTM0O5viRVbPnEEU/Y01Pj5cJElFuLEk9Uoe/r/lP8b5A607t1cPjSXkwhEZEYc3LkHDSo0ZAgMBAAGjSzBJMEcGA1UdAQRAMD6AEFRsTAsrvF+FmPuICooZXaKhGDAWMRQwEgYDVQQDEwtCYXRjaFRlc3QwMYIQpUXhwCuAPJRDhl7kY/0PdTAJBgUrDgMCHQUAA4GBALt0F8Ep+8XVE/M2aNtxzlku72gxiOiAo1HmpUaixXx3gl8kdP3xgoKMaq4JskqdLmbJJUnCQ3wmzsdPwjswsW2ycT12zuBddaiS+id98k8U/KYc6FxMgS+H70FYOxARLn7P4FSSBf/QCyign+BherzezdZ5NBdfzbmWxIMP5iFJ\"\r\n}", - "StatusCode": 200 - }, - { - "RequestUri": "/certificates(thumbprintAlgorithm=sha1,thumbprint=c1e494a415149c5f211c4778b52f2e834a07247c)?api-version=2024-02-01.19.0", - "EncodedRequestUri": "L2NlcnRpZmljYXRlcyh0aHVtYnByaW50QWxnb3JpdGhtPXNoYTEsdGh1bWJwcmludD1jMWU0OTRhNDE1MTQ5YzVmMjExYzQ3NzhiNTJmMmU4MzRhMDcyNDdjKT9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjA=", - "RequestMethod": "GET", - "RequestHeaders": { - "client-request-id": [ - "4960af8a-dcde-4176-8319-980b341569a4" - ], - "Accept-Language": [ - "en-US" - ], - "ocp-date": [ - "Wed, 13 Nov 2024 21:26:30 GMT" - ], - "User-Agent": [ - "FxVersion/6.0.3524.45918", - "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", - "AzurePowershell/Az1.0.0" - ] - }, - "RequestBody": "", - "ResponseHeaders": { - "Transfer-Encoding": [ - "chunked" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "d1ea4bf4-c9d7-4263-a764-84827ff4c5bf" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ], - "Date": [ - "Wed, 13 Nov 2024 21:26:29 GMT" - ], - "Content-Type": [ - "application/json; odata=minimalmetadata" - ] - }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#certificates/@Element\",\r\n \"thumbprint\": \"c1e494a415149c5f211c4778b52f2e834a07247c\",\r\n \"thumbprintAlgorithm\": \"sha1\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/certificates(thumbprintAlgorithm=sha1,thumbprint=c1e494a415149c5f211c4778b52f2e834a07247c)\",\r\n \"state\": \"deleting\",\r\n \"stateTransitionTime\": \"2024-11-13T21:25:50.0095801Z\",\r\n \"previousState\": \"active\",\r\n \"previousStateTransitionTime\": \"2024-11-13T21:25:49.7106472Z\",\r\n \"publicData\": \"MIIB9DCCAWGgAwIBAgIQpUXhwCuAPJRDhl7kY/0PdTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC0JhdGNoVGVzdDAxMB4XDTE1MTAwMjE2MjkwNVoXDTM5MTIzMTIzNTk1OVowFjEUMBIGA1UEAxMLQmF0Y2hUZXN0MDEwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAM06unpRipn3BmHBM75d0s8w/Wwifci16PoJo4c2V68GwsCCFsNOn5ypo7BBXo1fpBjrnso5w+koaE5LjxkBSVm+TkogwbKlW6WURTM0O5viRVbPnEEU/Y01Pj5cJElFuLEk9Uoe/r/lP8b5A607t1cPjSXkwhEZEYc3LkHDSo0ZAgMBAAGjSzBJMEcGA1UdAQRAMD6AEFRsTAsrvF+FmPuICooZXaKhGDAWMRQwEgYDVQQDEwtCYXRjaFRlc3QwMYIQpUXhwCuAPJRDhl7kY/0PdTAJBgUrDgMCHQUAA4GBALt0F8Ep+8XVE/M2aNtxzlku72gxiOiAo1HmpUaixXx3gl8kdP3xgoKMaq4JskqdLmbJJUnCQ3wmzsdPwjswsW2ycT12zuBddaiS+id98k8U/KYc6FxMgS+H70FYOxARLn7P4FSSBf/QCyign+BherzezdZ5NBdfzbmWxIMP5iFJ\"\r\n}", - "StatusCode": 200 - }, - { - "RequestUri": "/certificates(thumbprintAlgorithm=sha1,thumbprint=c1e494a415149c5f211c4778b52f2e834a07247c)?api-version=2024-02-01.19.0", - "EncodedRequestUri": "L2NlcnRpZmljYXRlcyh0aHVtYnByaW50QWxnb3JpdGhtPXNoYTEsdGh1bWJwcmludD1jMWU0OTRhNDE1MTQ5YzVmMjExYzQ3NzhiNTJmMmU4MzRhMDcyNDdjKT9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjA=", - "RequestMethod": "GET", - "RequestHeaders": { - "client-request-id": [ - "d166338c-a46c-47b9-b29b-bc5f5dfa40e4" - ], - "Accept-Language": [ - "en-US" - ], - "ocp-date": [ - "Wed, 13 Nov 2024 21:26:40 GMT" - ], - "User-Agent": [ - "FxVersion/6.0.3524.45918", - "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", - "AzurePowershell/Az1.0.0" - ] - }, - "RequestBody": "", - "ResponseHeaders": { - "Transfer-Encoding": [ - "chunked" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "bd5fd729-0a20-4088-908c-87829d8b83f6" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ], - "Date": [ - "Wed, 13 Nov 2024 21:26:39 GMT" - ], - "Content-Type": [ - "application/json; odata=minimalmetadata" - ] - }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#certificates/@Element\",\r\n \"thumbprint\": \"c1e494a415149c5f211c4778b52f2e834a07247c\",\r\n \"thumbprintAlgorithm\": \"sha1\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/certificates(thumbprintAlgorithm=sha1,thumbprint=c1e494a415149c5f211c4778b52f2e834a07247c)\",\r\n \"state\": \"deleting\",\r\n \"stateTransitionTime\": \"2024-11-13T21:25:50.0095801Z\",\r\n \"previousState\": \"active\",\r\n \"previousStateTransitionTime\": \"2024-11-13T21:25:49.7106472Z\",\r\n \"publicData\": \"MIIB9DCCAWGgAwIBAgIQpUXhwCuAPJRDhl7kY/0PdTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC0JhdGNoVGVzdDAxMB4XDTE1MTAwMjE2MjkwNVoXDTM5MTIzMTIzNTk1OVowFjEUMBIGA1UEAxMLQmF0Y2hUZXN0MDEwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAM06unpRipn3BmHBM75d0s8w/Wwifci16PoJo4c2V68GwsCCFsNOn5ypo7BBXo1fpBjrnso5w+koaE5LjxkBSVm+TkogwbKlW6WURTM0O5viRVbPnEEU/Y01Pj5cJElFuLEk9Uoe/r/lP8b5A607t1cPjSXkwhEZEYc3LkHDSo0ZAgMBAAGjSzBJMEcGA1UdAQRAMD6AEFRsTAsrvF+FmPuICooZXaKhGDAWMRQwEgYDVQQDEwtCYXRjaFRlc3QwMYIQpUXhwCuAPJRDhl7kY/0PdTAJBgUrDgMCHQUAA4GBALt0F8Ep+8XVE/M2aNtxzlku72gxiOiAo1HmpUaixXx3gl8kdP3xgoKMaq4JskqdLmbJJUnCQ3wmzsdPwjswsW2ycT12zuBddaiS+id98k8U/KYc6FxMgS+H70FYOxARLn7P4FSSBf/QCyign+BherzezdZ5NBdfzbmWxIMP5iFJ\"\r\n}", - "StatusCode": 200 - }, - { - "RequestUri": "/certificates(thumbprintAlgorithm=sha1,thumbprint=c1e494a415149c5f211c4778b52f2e834a07247c)?api-version=2024-02-01.19.0", - "EncodedRequestUri": "L2NlcnRpZmljYXRlcyh0aHVtYnByaW50QWxnb3JpdGhtPXNoYTEsdGh1bWJwcmludD1jMWU0OTRhNDE1MTQ5YzVmMjExYzQ3NzhiNTJmMmU4MzRhMDcyNDdjKT9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjA=", - "RequestMethod": "GET", - "RequestHeaders": { - "client-request-id": [ - "1ffdcd5c-667e-48c8-af4f-590cc819d93d" - ], - "Accept-Language": [ - "en-US" - ], - "ocp-date": [ - "Wed, 13 Nov 2024 21:26:50 GMT" - ], - "User-Agent": [ - "FxVersion/6.0.3524.45918", - "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", - "AzurePowershell/Az1.0.0" - ] - }, - "RequestBody": "", - "ResponseHeaders": { - "Transfer-Encoding": [ - "chunked" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "50d08233-cdf6-473c-94ed-8a9e5cccea05" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ], - "Date": [ - "Wed, 13 Nov 2024 21:26:49 GMT" - ], - "Content-Type": [ - "application/json; odata=minimalmetadata" - ] - }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#certificates/@Element\",\r\n \"thumbprint\": \"c1e494a415149c5f211c4778b52f2e834a07247c\",\r\n \"thumbprintAlgorithm\": \"sha1\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/certificates(thumbprintAlgorithm=sha1,thumbprint=c1e494a415149c5f211c4778b52f2e834a07247c)\",\r\n \"state\": \"deleting\",\r\n \"stateTransitionTime\": \"2024-11-13T21:25:50.0095801Z\",\r\n \"previousState\": \"active\",\r\n \"previousStateTransitionTime\": \"2024-11-13T21:25:49.7106472Z\",\r\n \"publicData\": \"MIIB9DCCAWGgAwIBAgIQpUXhwCuAPJRDhl7kY/0PdTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC0JhdGNoVGVzdDAxMB4XDTE1MTAwMjE2MjkwNVoXDTM5MTIzMTIzNTk1OVowFjEUMBIGA1UEAxMLQmF0Y2hUZXN0MDEwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAM06unpRipn3BmHBM75d0s8w/Wwifci16PoJo4c2V68GwsCCFsNOn5ypo7BBXo1fpBjrnso5w+koaE5LjxkBSVm+TkogwbKlW6WURTM0O5viRVbPnEEU/Y01Pj5cJElFuLEk9Uoe/r/lP8b5A607t1cPjSXkwhEZEYc3LkHDSo0ZAgMBAAGjSzBJMEcGA1UdAQRAMD6AEFRsTAsrvF+FmPuICooZXaKhGDAWMRQwEgYDVQQDEwtCYXRjaFRlc3QwMYIQpUXhwCuAPJRDhl7kY/0PdTAJBgUrDgMCHQUAA4GBALt0F8Ep+8XVE/M2aNtxzlku72gxiOiAo1HmpUaixXx3gl8kdP3xgoKMaq4JskqdLmbJJUnCQ3wmzsdPwjswsW2ycT12zuBddaiS+id98k8U/KYc6FxMgS+H70FYOxARLn7P4FSSBf/QCyign+BherzezdZ5NBdfzbmWxIMP5iFJ\"\r\n}", - "StatusCode": 200 - }, - { - "RequestUri": "/certificates(thumbprintAlgorithm=sha1,thumbprint=c1e494a415149c5f211c4778b52f2e834a07247c)?api-version=2024-02-01.19.0", - "EncodedRequestUri": "L2NlcnRpZmljYXRlcyh0aHVtYnByaW50QWxnb3JpdGhtPXNoYTEsdGh1bWJwcmludD1jMWU0OTRhNDE1MTQ5YzVmMjExYzQ3NzhiNTJmMmU4MzRhMDcyNDdjKT9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjA=", - "RequestMethod": "GET", - "RequestHeaders": { - "client-request-id": [ - "5539af8c-aa6f-450b-9226-77f1e6a0453f" - ], - "Accept-Language": [ - "en-US" - ], - "ocp-date": [ - "Wed, 13 Nov 2024 21:27:00 GMT" - ], - "User-Agent": [ - "FxVersion/6.0.3524.45918", - "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", - "AzurePowershell/Az1.0.0" - ] - }, - "RequestBody": "", - "ResponseHeaders": { - "Transfer-Encoding": [ - "chunked" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "0cd9e9c6-42eb-4ef9-8612-3d25899fb6e1" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ], - "Date": [ - "Wed, 13 Nov 2024 21:27:00 GMT" - ], - "Content-Type": [ - "application/json; odata=minimalmetadata" - ] - }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#certificates/@Element\",\r\n \"thumbprint\": \"c1e494a415149c5f211c4778b52f2e834a07247c\",\r\n \"thumbprintAlgorithm\": \"sha1\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/certificates(thumbprintAlgorithm=sha1,thumbprint=c1e494a415149c5f211c4778b52f2e834a07247c)\",\r\n \"state\": \"deletefailed\",\r\n \"stateTransitionTime\": \"2024-11-13T21:26:52.2088546Z\",\r\n \"previousState\": \"deleting\",\r\n \"previousStateTransitionTime\": \"2024-11-13T21:25:50.0095801Z\",\r\n \"publicData\": \"MIIB9DCCAWGgAwIBAgIQpUXhwCuAPJRDhl7kY/0PdTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC0JhdGNoVGVzdDAxMB4XDTE1MTAwMjE2MjkwNVoXDTM5MTIzMTIzNTk1OVowFjEUMBIGA1UEAxMLQmF0Y2hUZXN0MDEwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAM06unpRipn3BmHBM75d0s8w/Wwifci16PoJo4c2V68GwsCCFsNOn5ypo7BBXo1fpBjrnso5w+koaE5LjxkBSVm+TkogwbKlW6WURTM0O5viRVbPnEEU/Y01Pj5cJElFuLEk9Uoe/r/lP8b5A607t1cPjSXkwhEZEYc3LkHDSo0ZAgMBAAGjSzBJMEcGA1UdAQRAMD6AEFRsTAsrvF+FmPuICooZXaKhGDAWMRQwEgYDVQQDEwtCYXRjaFRlc3QwMYIQpUXhwCuAPJRDhl7kY/0PdTAJBgUrDgMCHQUAA4GBALt0F8Ep+8XVE/M2aNtxzlku72gxiOiAo1HmpUaixXx3gl8kdP3xgoKMaq4JskqdLmbJJUnCQ3wmzsdPwjswsW2ycT12zuBddaiS+id98k8U/KYc6FxMgS+H70FYOxARLn7P4FSSBf/QCyign+BherzezdZ5NBdfzbmWxIMP5iFJ\",\r\n \"deleteCertificateError\": {\r\n \"code\": \"PoolsReferencingCertificate\",\r\n \"message\": \"The specified certificate is being used by the below mentioned pool(s)\",\r\n \"values\": [\r\n {\r\n \"name\": \"Pools\",\r\n \"value\": \"certPool\"\r\n }\r\n ]\r\n }\r\n}", - "StatusCode": 200 - }, - { - "RequestUri": "/certificates(thumbprintAlgorithm=sha1,thumbprint=c1e494a415149c5f211c4778b52f2e834a07247c)?api-version=2024-02-01.19.0", - "EncodedRequestUri": "L2NlcnRpZmljYXRlcyh0aHVtYnByaW50QWxnb3JpdGhtPXNoYTEsdGh1bWJwcmludD1jMWU0OTRhNDE1MTQ5YzVmMjExYzQ3NzhiNTJmMmU4MzRhMDcyNDdjKT9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjA=", - "RequestMethod": "GET", - "RequestHeaders": { - "client-request-id": [ - "ad52280e-943d-46f6-a6a8-197d3082df5d" - ], - "Accept-Language": [ - "en-US" - ], - "ocp-date": [ - "Wed, 13 Nov 2024 21:27:00 GMT" - ], - "x-ms-client-request-id": [ - "054b3a47-4aa6-4154-bbad-e74660ff0ce4" - ], - "User-Agent": [ - "FxVersion/6.0.3524.45918", - "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", - "AzurePowershell/Az1.0.0" - ] - }, - "RequestBody": "", - "ResponseHeaders": { - "Transfer-Encoding": [ - "chunked" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "f33cb18a-0625-4171-b02e-d796c9bda12f" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ], - "Date": [ - "Wed, 13 Nov 2024 21:27:00 GMT" - ], - "Content-Type": [ - "application/json; odata=minimalmetadata" - ] - }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#certificates/@Element\",\r\n \"thumbprint\": \"c1e494a415149c5f211c4778b52f2e834a07247c\",\r\n \"thumbprintAlgorithm\": \"sha1\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/certificates(thumbprintAlgorithm=sha1,thumbprint=c1e494a415149c5f211c4778b52f2e834a07247c)\",\r\n \"state\": \"deletefailed\",\r\n \"stateTransitionTime\": \"2024-11-13T21:26:52.2088546Z\",\r\n \"previousState\": \"deleting\",\r\n \"previousStateTransitionTime\": \"2024-11-13T21:25:50.0095801Z\",\r\n \"publicData\": \"MIIB9DCCAWGgAwIBAgIQpUXhwCuAPJRDhl7kY/0PdTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC0JhdGNoVGVzdDAxMB4XDTE1MTAwMjE2MjkwNVoXDTM5MTIzMTIzNTk1OVowFjEUMBIGA1UEAxMLQmF0Y2hUZXN0MDEwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAM06unpRipn3BmHBM75d0s8w/Wwifci16PoJo4c2V68GwsCCFsNOn5ypo7BBXo1fpBjrnso5w+koaE5LjxkBSVm+TkogwbKlW6WURTM0O5viRVbPnEEU/Y01Pj5cJElFuLEk9Uoe/r/lP8b5A607t1cPjSXkwhEZEYc3LkHDSo0ZAgMBAAGjSzBJMEcGA1UdAQRAMD6AEFRsTAsrvF+FmPuICooZXaKhGDAWMRQwEgYDVQQDEwtCYXRjaFRlc3QwMYIQpUXhwCuAPJRDhl7kY/0PdTAJBgUrDgMCHQUAA4GBALt0F8Ep+8XVE/M2aNtxzlku72gxiOiAo1HmpUaixXx3gl8kdP3xgoKMaq4JskqdLmbJJUnCQ3wmzsdPwjswsW2ycT12zuBddaiS+id98k8U/KYc6FxMgS+H70FYOxARLn7P4FSSBf/QCyign+BherzezdZ5NBdfzbmWxIMP5iFJ\",\r\n \"deleteCertificateError\": {\r\n \"code\": \"PoolsReferencingCertificate\",\r\n \"message\": \"The specified certificate is being used by the below mentioned pool(s)\",\r\n \"values\": [\r\n {\r\n \"name\": \"Pools\",\r\n \"value\": \"certPool\"\r\n }\r\n ]\r\n }\r\n}", - "StatusCode": 200 - }, - { - "RequestUri": "/certificates(thumbprintAlgorithm=sha1,thumbprint=c1e494a415149c5f211c4778b52f2e834a07247c)?api-version=2024-02-01.19.0", - "EncodedRequestUri": "L2NlcnRpZmljYXRlcyh0aHVtYnByaW50QWxnb3JpdGhtPXNoYTEsdGh1bWJwcmludD1jMWU0OTRhNDE1MTQ5YzVmMjExYzQ3NzhiNTJmMmU4MzRhMDcyNDdjKT9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjA=", - "RequestMethod": "GET", - "RequestHeaders": { - "client-request-id": [ - "8f85400d-87d2-4ab7-814f-377580546b52" - ], - "Accept-Language": [ - "en-US" - ], - "ocp-date": [ - "Wed, 13 Nov 2024 21:27:00 GMT" - ], - "x-ms-client-request-id": [ - "e977d4a7-9351-43e1-9827-31eaba01c0ef" - ], - "User-Agent": [ - "FxVersion/6.0.3524.45918", - "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", - "AzurePowershell/Az1.0.0" - ] - }, - "RequestBody": "", - "ResponseHeaders": { - "Transfer-Encoding": [ - "chunked" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "c291e631-e5ab-43d4-8110-bf8b27e020de" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ], - "Date": [ - "Wed, 13 Nov 2024 21:27:00 GMT" - ], - "Content-Type": [ - "application/json; odata=minimalmetadata" - ] - }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#certificates/@Element\",\r\n \"thumbprint\": \"c1e494a415149c5f211c4778b52f2e834a07247c\",\r\n \"thumbprintAlgorithm\": \"sha1\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/certificates(thumbprintAlgorithm=sha1,thumbprint=c1e494a415149c5f211c4778b52f2e834a07247c)\",\r\n \"state\": \"deletefailed\",\r\n \"stateTransitionTime\": \"2024-11-13T21:26:52.2088546Z\",\r\n \"previousState\": \"deleting\",\r\n \"previousStateTransitionTime\": \"2024-11-13T21:25:50.0095801Z\",\r\n \"publicData\": \"MIIB9DCCAWGgAwIBAgIQpUXhwCuAPJRDhl7kY/0PdTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC0JhdGNoVGVzdDAxMB4XDTE1MTAwMjE2MjkwNVoXDTM5MTIzMTIzNTk1OVowFjEUMBIGA1UEAxMLQmF0Y2hUZXN0MDEwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAM06unpRipn3BmHBM75d0s8w/Wwifci16PoJo4c2V68GwsCCFsNOn5ypo7BBXo1fpBjrnso5w+koaE5LjxkBSVm+TkogwbKlW6WURTM0O5viRVbPnEEU/Y01Pj5cJElFuLEk9Uoe/r/lP8b5A607t1cPjSXkwhEZEYc3LkHDSo0ZAgMBAAGjSzBJMEcGA1UdAQRAMD6AEFRsTAsrvF+FmPuICooZXaKhGDAWMRQwEgYDVQQDEwtCYXRjaFRlc3QwMYIQpUXhwCuAPJRDhl7kY/0PdTAJBgUrDgMCHQUAA4GBALt0F8Ep+8XVE/M2aNtxzlku72gxiOiAo1HmpUaixXx3gl8kdP3xgoKMaq4JskqdLmbJJUnCQ3wmzsdPwjswsW2ycT12zuBddaiS+id98k8U/KYc6FxMgS+H70FYOxARLn7P4FSSBf/QCyign+BherzezdZ5NBdfzbmWxIMP5iFJ\",\r\n \"deleteCertificateError\": {\r\n \"code\": \"PoolsReferencingCertificate\",\r\n \"message\": \"The specified certificate is being used by the below mentioned pool(s)\",\r\n \"values\": [\r\n {\r\n \"name\": \"Pools\",\r\n \"value\": \"certPool\"\r\n }\r\n ]\r\n }\r\n}", - "StatusCode": 200 - }, - { - "RequestUri": "/certificates(thumbprintAlgorithm=sha1,thumbprint=c1e494a415149c5f211c4778b52f2e834a07247c)/canceldelete?api-version=2024-02-01.19.0", - "EncodedRequestUri": "L2NlcnRpZmljYXRlcyh0aHVtYnByaW50QWxnb3JpdGhtPXNoYTEsdGh1bWJwcmludD1jMWU0OTRhNDE1MTQ5YzVmMjExYzQ3NzhiNTJmMmU4MzRhMDcyNDdjKS9jYW5jZWxkZWxldGU/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4w", - "RequestMethod": "POST", - "RequestHeaders": { - "client-request-id": [ - "daa2560e-fd74-41c5-ba96-37abfca34635" - ], - "Accept-Language": [ - "en-US" - ], - "ocp-date": [ - "Wed, 13 Nov 2024 21:27:01 GMT" - ], - "x-ms-client-request-id": [ - "e977d4a7-9351-43e1-9827-31eaba01c0ef" - ], - "User-Agent": [ - "FxVersion/6.0.3524.45918", - "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", - "AzurePowershell/Az1.0.0" - ], - "Content-Length": [ - "0" - ] - }, - "RequestBody": "", - "ResponseHeaders": { - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "26b0ab49-2fde-4986-af71-e139bb551e18" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ], - "DataServiceId": [ - "https://dawatrouhobo.eastus2.batch.azure.com/certificates(thumbprintAlgorithm=sha1,thumbprint=c1e494a415149c5f211c4778b52f2e834a07247c)/canceldelete" - ], - "Date": [ - "Wed, 13 Nov 2024 21:27:00 GMT" - ], - "Content-Length": [ - "0" - ] - }, - "ResponseBody": "", - "StatusCode": 204 - }, - { - "RequestUri": "/certificates?api-version=2024-02-01.19.0&$filter=state%20eq%20%27active%27", - "EncodedRequestUri": "L2NlcnRpZmljYXRlcz9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjAmJGZpbHRlcj1zdGF0ZSUyMGVxJTIwJTI3YWN0aXZlJTI3", - "RequestMethod": "GET", - "RequestHeaders": { - "client-request-id": [ - "6efcc373-de61-4629-8520-9c7dc7e0f8f6" - ], - "Accept-Language": [ - "en-US" - ], - "ocp-date": [ - "Wed, 13 Nov 2024 21:27:01 GMT" - ], - "x-ms-client-request-id": [ - "3cff1d99-9aca-4ad5-8819-0a51aed9dc87" - ], - "User-Agent": [ - "FxVersion/6.0.3524.45918", - "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", - "AzurePowershell/Az1.0.0" - ] - }, - "RequestBody": "", - "ResponseHeaders": { - "Transfer-Encoding": [ - "chunked" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "2828b38c-fd19-4d4f-8c69-7f7c7f823075" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ], - "Date": [ - "Wed, 13 Nov 2024 21:27:00 GMT" - ], - "Content-Type": [ - "application/json; odata=minimalmetadata" - ] - }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#certificates\",\r\n \"value\": [\r\n {\r\n \"thumbprint\": \"c1e494a415149c5f211c4778b52f2e834a07247c\",\r\n \"thumbprintAlgorithm\": \"sha1\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/certificates(thumbprintAlgorithm=sha1,thumbprint=c1e494a415149c5f211c4778b52f2e834a07247c)\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2024-11-13T21:27:01.1195777Z\",\r\n \"previousState\": \"deletefailed\",\r\n \"previousStateTransitionTime\": \"2024-11-13T21:26:52.2088546Z\",\r\n \"publicData\": \"MIIB9DCCAWGgAwIBAgIQpUXhwCuAPJRDhl7kY/0PdTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC0JhdGNoVGVzdDAxMB4XDTE1MTAwMjE2MjkwNVoXDTM5MTIzMTIzNTk1OVowFjEUMBIGA1UEAxMLQmF0Y2hUZXN0MDEwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAM06unpRipn3BmHBM75d0s8w/Wwifci16PoJo4c2V68GwsCCFsNOn5ypo7BBXo1fpBjrnso5w+koaE5LjxkBSVm+TkogwbKlW6WURTM0O5viRVbPnEEU/Y01Pj5cJElFuLEk9Uoe/r/lP8b5A607t1cPjSXkwhEZEYc3LkHDSo0ZAgMBAAGjSzBJMEcGA1UdAQRAMD6AEFRsTAsrvF+FmPuICooZXaKhGDAWMRQwEgYDVQQDEwtCYXRjaFRlc3QwMYIQpUXhwCuAPJRDhl7kY/0PdTAJBgUrDgMCHQUAA4GBALt0F8Ep+8XVE/M2aNtxzlku72gxiOiAo1HmpUaixXx3gl8kdP3xgoKMaq4JskqdLmbJJUnCQ3wmzsdPwjswsW2ycT12zuBddaiS+id98k8U/KYc6FxMgS+H70FYOxARLn7P4FSSBf/QCyign+BherzezdZ5NBdfzbmWxIMP5iFJ\"\r\n }\r\n ]\r\n}", - "StatusCode": 200 - }, - { - "RequestUri": "/pools/certPool?api-version=2024-02-01.19.0", - "EncodedRequestUri": "L3Bvb2xzL2NlcnRQb29sP2FwaS12ZXJzaW9uPTIwMjQtMDItMDEuMTkuMA==", - "RequestMethod": "DELETE", - "RequestHeaders": { - "client-request-id": [ - "a527eaee-66fe-4a6a-aa61-ef46eb00f61a" - ], - "Accept-Language": [ - "en-US" - ], - "ocp-date": [ - "Wed, 13 Nov 2024 21:27:01 GMT" - ], - "User-Agent": [ - "FxVersion/6.0.3524.45918", - "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", - "AzurePowershell/Az1.0.0" - ], - "Content-Length": [ - "0" - ] - }, - "RequestBody": "", - "ResponseHeaders": { - "Transfer-Encoding": [ - "chunked" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "b901500a-17a4-41de-91da-3e8baf79c832" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ], - "Date": [ - "Wed, 13 Nov 2024 21:27:01 GMT" - ] - }, - "ResponseBody": "", - "StatusCode": 202 - } - ], - "Names": {}, - "Variables": { - "SubscriptionId": "21abd678-18c5-4660-9fdd-8c5ba6b6fe1f", - "AZURE_BATCH_ACCOUNT": "dawatrouhobo", - "AZURE_BATCH_ENDPOINT": "https://dawatrouhobo.eastus2.batch.azure.com", - "AZURE_BATCH_RESOURCE_GROUP": "dawatrou-rg" - } -} \ No newline at end of file diff --git a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.CertificateTests/TestCertificateCrudOperations.json b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.CertificateTests/TestCertificateCrudOperations.json deleted file mode 100644 index 6de95b0113b5..000000000000 --- a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.CertificateTests/TestCertificateCrudOperations.json +++ /dev/null @@ -1,240 +0,0 @@ -{ - "Entries": [ - { - "RequestUri": "/certificates?api-version=2024-02-01.19.0", - "EncodedRequestUri": "L2NlcnRpZmljYXRlcz9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjA=", - "RequestMethod": "POST", - "RequestHeaders": { - "client-request-id": [ - "9d16468f-62e1-445c-b340-2c987c5e54ce" - ], - "Accept-Language": [ - "en-US" - ], - "ocp-date": [ - "Wed, 13 Nov 2024 21:24:48 GMT" - ], - "x-ms-client-request-id": [ - "0aa53c0b-6d0e-4f01-8978-0fbf77c67365" - ], - "User-Agent": [ - "FxVersion/6.0.3524.45918", - "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", - "AzurePowershell/Az1.0.0" - ], - "Content-Type": [ - "application/json; odata=minimalmetadata; charset=utf-8" - ], - "Content-Length": [ - "816" - ] - }, - "RequestBody": "{\r\n \"thumbprint\": \"c1e494a415149c5f211c4778b52f2e834a07247c\",\r\n \"thumbprintAlgorithm\": \"sha1\",\r\n \"data\": \"MIIB9DCCAWGgAwIBAgIQpUXhwCuAPJRDhl7kY/0PdTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC0JhdGNoVGVzdDAxMB4XDTE1MTAwMjE2MjkwNVoXDTM5MTIzMTIzNTk1OVowFjEUMBIGA1UEAxMLQmF0Y2hUZXN0MDEwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAM06unpRipn3BmHBM75d0s8w/Wwifci16PoJo4c2V68GwsCCFsNOn5ypo7BBXo1fpBjrnso5w+koaE5LjxkBSVm+TkogwbKlW6WURTM0O5viRVbPnEEU/Y01Pj5cJElFuLEk9Uoe/r/lP8b5A607t1cPjSXkwhEZEYc3LkHDSo0ZAgMBAAGjSzBJMEcGA1UdAQRAMD6AEFRsTAsrvF+FmPuICooZXaKhGDAWMRQwEgYDVQQDEwtCYXRjaFRlc3QwMYIQpUXhwCuAPJRDhl7kY/0PdTAJBgUrDgMCHQUAA4GBALt0F8Ep+8XVE/M2aNtxzlku72gxiOiAo1HmpUaixXx3gl8kdP3xgoKMaq4JskqdLmbJJUnCQ3wmzsdPwjswsW2ycT12zuBddaiS+id98k8U/KYc6FxMgS+H70FYOxARLn7P4FSSBf/QCyign+BherzezdZ5NBdfzbmWxIMP5iFJ\",\r\n \"certificateFormat\": \"cer\"\r\n}", - "ResponseHeaders": { - "Transfer-Encoding": [ - "chunked" - ], - "Location": [ - "https://dawatrouhobo.eastus2.batch.azure.com/certificates(ThumbprintAlgorithm=sha1,Thumbprint=c1e494a415149c5f211c4778b52f2e834a07247c)" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "6275543c-63fb-4add-bf01-787dfef0eb53" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ], - "DataServiceId": [ - "https://dawatrouhobo.eastus2.batch.azure.com/certificates(ThumbprintAlgorithm=sha1,Thumbprint=c1e494a415149c5f211c4778b52f2e834a07247c)" - ], - "Date": [ - "Wed, 13 Nov 2024 21:24:48 GMT" - ] - }, - "ResponseBody": "", - "StatusCode": 201 - }, - { - "RequestUri": "/certificates(thumbprintAlgorithm=sha1,thumbprint=C1E494A415149C5F211C4778B52F2E834A07247C)?api-version=2024-02-01.19.0", - "EncodedRequestUri": "L2NlcnRpZmljYXRlcyh0aHVtYnByaW50QWxnb3JpdGhtPXNoYTEsdGh1bWJwcmludD1DMUU0OTRBNDE1MTQ5QzVGMjExQzQ3NzhCNTJGMkU4MzRBMDcyNDdDKT9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjA=", - "RequestMethod": "GET", - "RequestHeaders": { - "client-request-id": [ - "686076ce-174b-4aa0-9f17-ac86747c4421" - ], - "Accept-Language": [ - "en-US" - ], - "ocp-date": [ - "Wed, 13 Nov 2024 21:24:48 GMT" - ], - "x-ms-client-request-id": [ - "d26f06b2-d356-44c2-9757-95aa92ebb9ff" - ], - "User-Agent": [ - "FxVersion/6.0.3524.45918", - "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", - "AzurePowershell/Az1.0.0" - ] - }, - "RequestBody": "", - "ResponseHeaders": { - "Transfer-Encoding": [ - "chunked" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "8277730b-07c1-41d7-a7d8-7c0f7974f526" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ], - "Date": [ - "Wed, 13 Nov 2024 21:24:48 GMT" - ], - "Content-Type": [ - "application/json; odata=minimalmetadata" - ] - }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#certificates/@Element\",\r\n \"thumbprint\": \"c1e494a415149c5f211c4778b52f2e834a07247c\",\r\n \"thumbprintAlgorithm\": \"sha1\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/certificates(thumbprintAlgorithm=sha1,thumbprint=C1E494A415149C5F211C4778B52F2E834A07247C)\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2024-11-13T21:24:48.8697584Z\",\r\n \"publicData\": \"MIIB9DCCAWGgAwIBAgIQpUXhwCuAPJRDhl7kY/0PdTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC0JhdGNoVGVzdDAxMB4XDTE1MTAwMjE2MjkwNVoXDTM5MTIzMTIzNTk1OVowFjEUMBIGA1UEAxMLQmF0Y2hUZXN0MDEwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAM06unpRipn3BmHBM75d0s8w/Wwifci16PoJo4c2V68GwsCCFsNOn5ypo7BBXo1fpBjrnso5w+koaE5LjxkBSVm+TkogwbKlW6WURTM0O5viRVbPnEEU/Y01Pj5cJElFuLEk9Uoe/r/lP8b5A607t1cPjSXkwhEZEYc3LkHDSo0ZAgMBAAGjSzBJMEcGA1UdAQRAMD6AEFRsTAsrvF+FmPuICooZXaKhGDAWMRQwEgYDVQQDEwtCYXRjaFRlc3QwMYIQpUXhwCuAPJRDhl7kY/0PdTAJBgUrDgMCHQUAA4GBALt0F8Ep+8XVE/M2aNtxzlku72gxiOiAo1HmpUaixXx3gl8kdP3xgoKMaq4JskqdLmbJJUnCQ3wmzsdPwjswsW2ycT12zuBddaiS+id98k8U/KYc6FxMgS+H70FYOxARLn7P4FSSBf/QCyign+BherzezdZ5NBdfzbmWxIMP5iFJ\"\r\n}", - "StatusCode": 200 - }, - { - "RequestUri": "/certificates(thumbprintAlgorithm=sha1,thumbprint=c1e494a415149c5f211c4778b52f2e834a07247c)?api-version=2024-02-01.19.0", - "EncodedRequestUri": "L2NlcnRpZmljYXRlcyh0aHVtYnByaW50QWxnb3JpdGhtPXNoYTEsdGh1bWJwcmludD1jMWU0OTRhNDE1MTQ5YzVmMjExYzQ3NzhiNTJmMmU4MzRhMDcyNDdjKT9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjA=", - "RequestMethod": "DELETE", - "RequestHeaders": { - "client-request-id": [ - "551433f4-ce58-4a08-be83-eabb4c7fc3db" - ], - "Accept-Language": [ - "en-US" - ], - "ocp-date": [ - "Wed, 13 Nov 2024 21:24:48 GMT" - ], - "x-ms-client-request-id": [ - "9d9c3365-e8fa-41f1-b5d9-811a4013bf8f" - ], - "User-Agent": [ - "FxVersion/6.0.3524.45918", - "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", - "AzurePowershell/Az1.0.0" - ], - "Content-Length": [ - "0" - ] - }, - "RequestBody": "", - "ResponseHeaders": { - "Transfer-Encoding": [ - "chunked" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "fb67bb7e-17b9-4007-a878-b0033c895cb3" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ], - "Date": [ - "Wed, 13 Nov 2024 21:24:48 GMT" - ] - }, - "ResponseBody": "", - "StatusCode": 202 - }, - { - "RequestUri": "/certificates?api-version=2024-02-01.19.0", - "EncodedRequestUri": "L2NlcnRpZmljYXRlcz9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjA=", - "RequestMethod": "GET", - "RequestHeaders": { - "client-request-id": [ - "c6b07777-1ea0-4734-9c61-2d11572c3cfc" - ], - "Accept-Language": [ - "en-US" - ], - "ocp-date": [ - "Wed, 13 Nov 2024 21:24:49 GMT" - ], - "x-ms-client-request-id": [ - "c7021b23-bc7f-44d9-89f5-65f7a35326f2" - ], - "User-Agent": [ - "FxVersion/6.0.3524.45918", - "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", - "AzurePowershell/Az1.0.0" - ] - }, - "RequestBody": "", - "ResponseHeaders": { - "Transfer-Encoding": [ - "chunked" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "5bd69664-adc3-4e60-a637-0ba168d3aeeb" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ], - "Date": [ - "Wed, 13 Nov 2024 21:24:48 GMT" - ], - "Content-Type": [ - "application/json; odata=minimalmetadata" - ] - }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#certificates\",\r\n \"value\": [\r\n {\r\n \"thumbprint\": \"c1e494a415149c5f211c4778b52f2e834a07247c\",\r\n \"thumbprintAlgorithm\": \"sha1\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/certificates(thumbprintAlgorithm=sha1,thumbprint=c1e494a415149c5f211c4778b52f2e834a07247c)\",\r\n \"state\": \"deleting\",\r\n \"stateTransitionTime\": \"2024-11-13T21:24:49.0138236Z\",\r\n \"previousState\": \"active\",\r\n \"previousStateTransitionTime\": \"2024-11-13T21:24:48.8697584Z\",\r\n \"publicData\": \"MIIB9DCCAWGgAwIBAgIQpUXhwCuAPJRDhl7kY/0PdTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC0JhdGNoVGVzdDAxMB4XDTE1MTAwMjE2MjkwNVoXDTM5MTIzMTIzNTk1OVowFjEUMBIGA1UEAxMLQmF0Y2hUZXN0MDEwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAM06unpRipn3BmHBM75d0s8w/Wwifci16PoJo4c2V68GwsCCFsNOn5ypo7BBXo1fpBjrnso5w+koaE5LjxkBSVm+TkogwbKlW6WURTM0O5viRVbPnEEU/Y01Pj5cJElFuLEk9Uoe/r/lP8b5A607t1cPjSXkwhEZEYc3LkHDSo0ZAgMBAAGjSzBJMEcGA1UdAQRAMD6AEFRsTAsrvF+FmPuICooZXaKhGDAWMRQwEgYDVQQDEwtCYXRjaFRlc3QwMYIQpUXhwCuAPJRDhl7kY/0PdTAJBgUrDgMCHQUAA4GBALt0F8Ep+8XVE/M2aNtxzlku72gxiOiAo1HmpUaixXx3gl8kdP3xgoKMaq4JskqdLmbJJUnCQ3wmzsdPwjswsW2ycT12zuBddaiS+id98k8U/KYc6FxMgS+H70FYOxARLn7P4FSSBf/QCyign+BherzezdZ5NBdfzbmWxIMP5iFJ\"\r\n }\r\n ]\r\n}", - "StatusCode": 200 - } - ], - "Names": {}, - "Variables": { - "SubscriptionId": "21abd678-18c5-4660-9fdd-8c5ba6b6fe1f", - "AZURE_BATCH_ACCOUNT": "dawatrouhobo", - "AZURE_BATCH_ENDPOINT": "https://dawatrouhobo.eastus2.batch.azure.com", - "AZURE_BATCH_RESOURCE_GROUP": "dawatrou-rg" - } -} \ No newline at end of file diff --git a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.ComputeNodeTests/TestDisableAndEnableComputeNodeScheduling.json b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.ComputeNodeTests/TestDisableAndEnableComputeNodeScheduling.json index 31c00a0f9fc3..547562020228 100644 --- a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.ComputeNodeTests/TestDisableAndEnableComputeNodeScheduling.json +++ b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.ComputeNodeTests/TestDisableAndEnableComputeNodeScheduling.json @@ -5,19 +5,19 @@ "EncodedRequestUri": "L3Bvb2xzP2FwaS12ZXJzaW9uPTIwMjQtMDItMDEuMTkuMA==", "RequestMethod": "POST", "RequestHeaders": { - "client-request-id": [ - "edb15589-5b67-4396-8a05-eb55b890370e" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "9e2f1c42-5a44-44c8-88fa-cf3d8054a34e" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:30:31 GMT" + "Thu, 11 Sep 2025 21:12:52 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ], @@ -34,16 +34,16 @@ "chunked" ], "ETag": [ - "0x8DD042A66A1E0B9" + "0x8DDF177F8D08DED" ], "Location": [ - "https://dawatrouhobo.eastus2.batch.azure.com/pools/disableandenablenodepool" + "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/disableandenablenodepool" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "36c41652-8188-4dff-8086-c62a26063c14" + "6ad43bfd-5caf-40e5-9e29-0a760987e73f" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -55,13 +55,13 @@ "3.0" ], "DataServiceId": [ - "https://dawatrouhobo.eastus2.batch.azure.com/pools/disableandenablenodepool" + "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/disableandenablenodepool" ], "Date": [ - "Wed, 13 Nov 2024 21:30:31 GMT" + "Thu, 11 Sep 2025 21:12:53 GMT" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:30:31 GMT" + "Thu, 11 Sep 2025 21:12:53 GMT" ] }, "ResponseBody": "", @@ -72,19 +72,19 @@ "EncodedRequestUri": "L3Bvb2xzL2Rpc2FibGVhbmRlbmFibGVub2RlcG9vbD9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjA=", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "a04b62f6-c579-4544-9afe-185fc998811c" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "a02bb5c5-a6d8-471a-9181-165dfe8a9817" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:30:31 GMT" + "Thu, 11 Sep 2025 21:12:53 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -95,13 +95,13 @@ "chunked" ], "ETag": [ - "0x8DD042A66A1E0B9" + "0x8DDF177F8D08DED" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "c48cd8df-5784-4e8a-add3-53f4afe907f6" + "e567f307-1c9d-434c-967f-730e8b649291" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -113,16 +113,16 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:30:31 GMT" + "Thu, 11 Sep 2025 21:12:53 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:30:31 GMT" + "Thu, 11 Sep 2025 21:12:53 GMT" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"disableandenablenodepool\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/pools/disableandenablenodepool\",\r\n \"eTag\": \"0x8DD042A66A1E0B9\",\r\n \"lastModified\": \"2024-11-13T21:30:31.3500857Z\",\r\n \"creationTime\": \"2024-11-13T21:30:31.3500847Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2024-11-13T21:30:31.3500847Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2024-11-13T21:30:31.3500857Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"disableandenablenodepool\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/disableandenablenodepool\",\r\n \"eTag\": \"0x8DDF177F8D08DED\",\r\n \"lastModified\": \"2025-09-11T21:12:53.4298093Z\",\r\n \"creationTime\": \"2025-09-11T21:12:53.4298071Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T21:12:53.4298071Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2025-09-11T21:12:53.4298095Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", "StatusCode": 200 }, { @@ -130,19 +130,19 @@ "EncodedRequestUri": "L3Bvb2xzL2Rpc2FibGVhbmRlbmFibGVub2RlcG9vbD9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjA=", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "5a3a3fff-09d6-4359-a9cf-8c3bfa0990fd" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "af306c11-1d91-4e85-9a48-83bfedcd79a9" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:30:36 GMT" + "Thu, 11 Sep 2025 21:12:58 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -153,13 +153,13 @@ "chunked" ], "ETag": [ - "0x8DD042A66A1E0B9" + "0x8DDF177F8D08DED" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "d7459d36-87c5-48c1-8c72-28846577db0e" + "9839916b-21dc-4abf-b513-ffb1ccd42426" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -171,16 +171,16 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:30:36 GMT" + "Thu, 11 Sep 2025 21:12:58 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:30:31 GMT" + "Thu, 11 Sep 2025 21:12:53 GMT" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"disableandenablenodepool\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/pools/disableandenablenodepool\",\r\n \"eTag\": \"0x8DD042A66A1E0B9\",\r\n \"lastModified\": \"2024-11-13T21:30:31.3500857Z\",\r\n \"creationTime\": \"2024-11-13T21:30:31.3500847Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2024-11-13T21:30:31.3500847Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2024-11-13T21:30:31.3500857Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"disableandenablenodepool\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/disableandenablenodepool\",\r\n \"eTag\": \"0x8DDF177F8D08DED\",\r\n \"lastModified\": \"2025-09-11T21:12:53.4298093Z\",\r\n \"creationTime\": \"2025-09-11T21:12:53.4298071Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T21:12:53.4298071Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2025-09-11T21:12:53.4298095Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", "StatusCode": 200 }, { @@ -188,19 +188,19 @@ "EncodedRequestUri": "L3Bvb2xzL2Rpc2FibGVhbmRlbmFibGVub2RlcG9vbD9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjA=", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "9b3c87ed-f79c-436d-94a3-03232854f082" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "cbdd5eeb-3746-4548-a2be-70269f525d1d" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:30:41 GMT" + "Thu, 11 Sep 2025 21:13:04 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -211,13 +211,13 @@ "chunked" ], "ETag": [ - "0x8DD042A66A1E0B9" + "0x8DDF177F8D08DED" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "cd015ed7-1fcc-451f-b590-537cf6658cba" + "b81c7601-70fb-49ae-8137-40c486dd1e4d" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -229,16 +229,16 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:30:41 GMT" + "Thu, 11 Sep 2025 21:13:04 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:30:31 GMT" + "Thu, 11 Sep 2025 21:12:53 GMT" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"disableandenablenodepool\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/pools/disableandenablenodepool\",\r\n \"eTag\": \"0x8DD042A66A1E0B9\",\r\n \"lastModified\": \"2024-11-13T21:30:31.3500857Z\",\r\n \"creationTime\": \"2024-11-13T21:30:31.3500847Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2024-11-13T21:30:31.3500847Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2024-11-13T21:30:31.3500857Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"disableandenablenodepool\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/disableandenablenodepool\",\r\n \"eTag\": \"0x8DDF177F8D08DED\",\r\n \"lastModified\": \"2025-09-11T21:12:53.4298093Z\",\r\n \"creationTime\": \"2025-09-11T21:12:53.4298071Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T21:12:53.4298071Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2025-09-11T21:12:53.4298095Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", "StatusCode": 200 }, { @@ -246,19 +246,19 @@ "EncodedRequestUri": "L3Bvb2xzL2Rpc2FibGVhbmRlbmFibGVub2RlcG9vbD9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjA=", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "0f8459d6-26f9-4a7b-a4d0-9ff322c8c692" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "3f7d19c5-24af-4d4e-bed6-48e949992a95" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:30:46 GMT" + "Thu, 11 Sep 2025 21:13:09 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -269,13 +269,13 @@ "chunked" ], "ETag": [ - "0x8DD042A66A1E0B9" + "0x8DDF177F8D08DED" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "be1ac832-a513-48ce-a977-e853b3202f35" + "138e1f3b-1003-4156-ad69-9be715f5681a" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -287,16 +287,16 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:30:46 GMT" + "Thu, 11 Sep 2025 21:13:09 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:30:31 GMT" + "Thu, 11 Sep 2025 21:12:53 GMT" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"disableandenablenodepool\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/pools/disableandenablenodepool\",\r\n \"eTag\": \"0x8DD042A66A1E0B9\",\r\n \"lastModified\": \"2024-11-13T21:30:31.3500857Z\",\r\n \"creationTime\": \"2024-11-13T21:30:31.3500847Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2024-11-13T21:30:31.3500847Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2024-11-13T21:30:31.3500857Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"disableandenablenodepool\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/disableandenablenodepool\",\r\n \"eTag\": \"0x8DDF177F8D08DED\",\r\n \"lastModified\": \"2025-09-11T21:12:53.4298093Z\",\r\n \"creationTime\": \"2025-09-11T21:12:53.4298071Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T21:12:53.4298071Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2025-09-11T21:12:53.4298095Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", "StatusCode": 200 }, { @@ -304,19 +304,19 @@ "EncodedRequestUri": "L3Bvb2xzL2Rpc2FibGVhbmRlbmFibGVub2RlcG9vbD9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjA=", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "a235978e-10ac-44c5-a66e-f6aaec5f62fc" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "e01fb684-a391-443a-a07e-6977eaa6b915" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:30:51 GMT" + "Thu, 11 Sep 2025 21:13:14 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -327,13 +327,13 @@ "chunked" ], "ETag": [ - "0x8DD042A66A1E0B9" + "0x8DDF177F8D08DED" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "5c4649b6-d728-44d8-b0be-83b815174a8b" + "3f6a0dc8-642f-4a2b-a747-79d5ef458ffa" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -345,16 +345,16 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:30:51 GMT" + "Thu, 11 Sep 2025 21:13:14 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:30:31 GMT" + "Thu, 11 Sep 2025 21:12:53 GMT" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"disableandenablenodepool\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/pools/disableandenablenodepool\",\r\n \"eTag\": \"0x8DD042A66A1E0B9\",\r\n \"lastModified\": \"2024-11-13T21:30:31.3500857Z\",\r\n \"creationTime\": \"2024-11-13T21:30:31.3500847Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2024-11-13T21:30:31.3500847Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2024-11-13T21:30:31.3500857Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"disableandenablenodepool\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/disableandenablenodepool\",\r\n \"eTag\": \"0x8DDF177F8D08DED\",\r\n \"lastModified\": \"2025-09-11T21:12:53.4298093Z\",\r\n \"creationTime\": \"2025-09-11T21:12:53.4298071Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T21:12:53.4298071Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2025-09-11T21:12:53.4298095Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", "StatusCode": 200 }, { @@ -362,19 +362,19 @@ "EncodedRequestUri": "L3Bvb2xzL2Rpc2FibGVhbmRlbmFibGVub2RlcG9vbD9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjA=", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "74bf2a8a-c19b-416a-a0e0-9ae7adf7d643" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "f3cc1154-a8c2-4274-81df-039d92c8ee4f" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:30:56 GMT" + "Thu, 11 Sep 2025 21:13:19 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -385,13 +385,13 @@ "chunked" ], "ETag": [ - "0x8DD042A66A1E0B9" + "0x8DDF177F8D08DED" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "2e611075-f257-4599-a861-f238508eeaaf" + "512a4935-f8c3-4452-b718-2996367e451b" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -403,16 +403,16 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:30:56 GMT" + "Thu, 11 Sep 2025 21:13:19 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:30:31 GMT" + "Thu, 11 Sep 2025 21:12:53 GMT" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"disableandenablenodepool\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/pools/disableandenablenodepool\",\r\n \"eTag\": \"0x8DD042A66A1E0B9\",\r\n \"lastModified\": \"2024-11-13T21:30:31.3500857Z\",\r\n \"creationTime\": \"2024-11-13T21:30:31.3500847Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2024-11-13T21:30:31.3500847Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2024-11-13T21:30:31.3500857Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"disableandenablenodepool\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/disableandenablenodepool\",\r\n \"eTag\": \"0x8DDF177F8D08DED\",\r\n \"lastModified\": \"2025-09-11T21:12:53.4298093Z\",\r\n \"creationTime\": \"2025-09-11T21:12:53.4298071Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T21:12:53.4298071Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2025-09-11T21:12:53.4298095Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", "StatusCode": 200 }, { @@ -420,19 +420,19 @@ "EncodedRequestUri": "L3Bvb2xzL2Rpc2FibGVhbmRlbmFibGVub2RlcG9vbD9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjA=", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "c1de1c68-8738-447a-834e-b4f12d9077b5" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "a3564425-702d-48eb-acb5-ccf0a65c7951" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:31:01 GMT" + "Thu, 11 Sep 2025 21:13:24 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -443,13 +443,13 @@ "chunked" ], "ETag": [ - "0x8DD042A66A1E0B9" + "0x8DDF177F8D08DED" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "ef0441cf-3585-492a-a7c7-9cc0a1c37342" + "79ca4934-9426-40bd-912d-2ecda284fc67" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -461,16 +461,16 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:31:01 GMT" + "Thu, 11 Sep 2025 21:13:24 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:30:31 GMT" + "Thu, 11 Sep 2025 21:12:53 GMT" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"disableandenablenodepool\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/pools/disableandenablenodepool\",\r\n \"eTag\": \"0x8DD042A66A1E0B9\",\r\n \"lastModified\": \"2024-11-13T21:30:31.3500857Z\",\r\n \"creationTime\": \"2024-11-13T21:30:31.3500847Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2024-11-13T21:30:31.3500847Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2024-11-13T21:30:31.3500857Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"disableandenablenodepool\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/disableandenablenodepool\",\r\n \"eTag\": \"0x8DDF177F8D08DED\",\r\n \"lastModified\": \"2025-09-11T21:12:53.4298093Z\",\r\n \"creationTime\": \"2025-09-11T21:12:53.4298071Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T21:12:53.4298071Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2025-09-11T21:12:53.4298095Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", "StatusCode": 200 }, { @@ -478,19 +478,19 @@ "EncodedRequestUri": "L3Bvb2xzL2Rpc2FibGVhbmRlbmFibGVub2RlcG9vbD9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjA=", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "3f232641-de6b-4083-9fce-ef1419c81515" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "cc17b9bb-0f00-4aac-aec0-5a16301dc119" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:31:06 GMT" + "Thu, 11 Sep 2025 21:13:29 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -501,13 +501,13 @@ "chunked" ], "ETag": [ - "0x8DD042A66A1E0B9" + "0x8DDF177F8D08DED" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "81736299-e330-46ad-b0f6-d0d256dba4d5" + "94dc2aec-4994-4a62-bba5-d8e01815e4a4" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -519,94 +519,36 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:31:06 GMT" + "Thu, 11 Sep 2025 21:13:29 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:30:31 GMT" + "Thu, 11 Sep 2025 21:12:53 GMT" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"disableandenablenodepool\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/pools/disableandenablenodepool\",\r\n \"eTag\": \"0x8DD042A66A1E0B9\",\r\n \"lastModified\": \"2024-11-13T21:30:31.3500857Z\",\r\n \"creationTime\": \"2024-11-13T21:30:31.3500847Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2024-11-13T21:30:31.3500847Z\",\r\n \"allocationState\": \"steady\",\r\n \"allocationStateTransitionTime\": \"2024-11-13T21:31:03.4426026Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 2,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\",\r\n \"currentNodeCommunicationMode\": \"classic\"\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"disableandenablenodepool\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/disableandenablenodepool\",\r\n \"eTag\": \"0x8DDF177F8D08DED\",\r\n \"lastModified\": \"2025-09-11T21:12:53.4298093Z\",\r\n \"creationTime\": \"2025-09-11T21:12:53.4298071Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T21:12:53.4298071Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2025-09-11T21:12:53.4298095Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", "StatusCode": 200 }, { - "RequestUri": "/pools/disableandenablenodepool/nodes?api-version=2024-02-01.19.0", - "EncodedRequestUri": "L3Bvb2xzL2Rpc2FibGVhbmRlbmFibGVub2RlcG9vbC9ub2Rlcz9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjA=", + "RequestUri": "/pools/disableandenablenodepool?api-version=2024-02-01.19.0", + "EncodedRequestUri": "L3Bvb2xzL2Rpc2FibGVhbmRlbmFibGVub2RlcG9vbD9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjA=", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "cc6aa428-8d6b-46b9-bfe2-4cdb325cdd47" - ], "Accept-Language": [ "en-US" ], - "ocp-date": [ - "Wed, 13 Nov 2024 21:31:07 GMT" - ], - "x-ms-client-request-id": [ - "7e0d4f48-3752-491f-b729-a0950650daa4" - ], - "User-Agent": [ - "FxVersion/6.0.3524.45918", - "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", - "AzurePowershell/Az1.0.0" - ] - }, - "RequestBody": "", - "ResponseHeaders": { - "Transfer-Encoding": [ - "chunked" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "b44173e4-e001-4df1-82b8-50824160023a" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ], - "Date": [ - "Wed, 13 Nov 2024 21:31:07 GMT" - ], - "Content-Type": [ - "application/json; odata=minimalmetadata" - ] - }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#nodes\",\r\n \"value\": [\r\n {\r\n \"id\": \"tvmps_2f986512916b2526adb3d44a1f8fccfbf0f8609abf3d2d8ebd1e7b91b593fed1_d\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/pools/disableandenablenodepool/nodes/tvmps_2f986512916b2526adb3d44a1f8fccfbf0f8609abf3d2d8ebd1e7b91b593fed1_d\",\r\n \"state\": \"creating\",\r\n \"schedulingState\": \"enabled\",\r\n \"stateTransitionTime\": \"2024-11-13T21:31:03.0859918Z\",\r\n \"allocationTime\": \"2024-11-13T21:31:03.0859995Z\",\r\n \"ipAddress\": \"10.0.0.5\",\r\n \"affinityId\": \"TVM:tvmps_2f986512916b2526adb3d44a1f8fccfbf0f8609abf3d2d8ebd1e7b91b593fed1_d\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"totalTasksRun\": 0,\r\n \"totalTasksSucceeded\": 0,\r\n \"runningTasksCount\": 0,\r\n \"runningTaskSlotsCount\": 0,\r\n \"isDedicated\": true,\r\n \"endpointConfiguration\": {\r\n \"inboundEndpoints\": [\r\n {\r\n \"name\": \"SSHRule.1\",\r\n \"protocol\": \"tcp\",\r\n \"publicIPAddress\": \"4.152.69.132\",\r\n \"publicFQDN\": \"dns35820eeb-22d9-4a23-81fc-ada4d30a3077-azurebatch-cloudservice.eastus2.cloudapp.azure.com\",\r\n \"frontendPort\": 50001,\r\n \"backendPort\": 22\r\n }\r\n ]\r\n },\r\n \"virtualMachineInfo\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\",\r\n \"exactVersion\": \"latest\"\r\n }\r\n }\r\n },\r\n {\r\n \"id\": \"tvmps_edb9dda512f61811e3257dfdd0e2ab6aedbb0fb55543d742b1eac366be5bcabf_d\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/pools/disableandenablenodepool/nodes/tvmps_edb9dda512f61811e3257dfdd0e2ab6aedbb0fb55543d742b1eac366be5bcabf_d\",\r\n \"state\": \"creating\",\r\n \"schedulingState\": \"enabled\",\r\n \"stateTransitionTime\": \"2024-11-13T21:31:03.0860265Z\",\r\n \"allocationTime\": \"2024-11-13T21:31:03.0860289Z\",\r\n \"ipAddress\": \"10.0.0.4\",\r\n \"affinityId\": \"TVM:tvmps_edb9dda512f61811e3257dfdd0e2ab6aedbb0fb55543d742b1eac366be5bcabf_d\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"totalTasksRun\": 0,\r\n \"totalTasksSucceeded\": 0,\r\n \"runningTasksCount\": 0,\r\n \"runningTaskSlotsCount\": 0,\r\n \"isDedicated\": true,\r\n \"endpointConfiguration\": {\r\n \"inboundEndpoints\": [\r\n {\r\n \"name\": \"SSHRule.0\",\r\n \"protocol\": \"tcp\",\r\n \"publicIPAddress\": \"4.152.69.132\",\r\n \"publicFQDN\": \"dns35820eeb-22d9-4a23-81fc-ada4d30a3077-azurebatch-cloudservice.eastus2.cloudapp.azure.com\",\r\n \"frontendPort\": 50000,\r\n \"backendPort\": 22\r\n }\r\n ]\r\n },\r\n \"virtualMachineInfo\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\",\r\n \"exactVersion\": \"latest\"\r\n }\r\n }\r\n }\r\n ]\r\n}", - "StatusCode": 200 - }, - { - "RequestUri": "/pools/disableandenablenodepool/nodes/tvmps_2f986512916b2526adb3d44a1f8fccfbf0f8609abf3d2d8ebd1e7b91b593fed1_d?api-version=2024-02-01.19.0&$select=id%2Cstate", - "EncodedRequestUri": "L3Bvb2xzL2Rpc2FibGVhbmRlbmFibGVub2RlcG9vbC9ub2Rlcy90dm1wc18yZjk4NjUxMjkxNmIyNTI2YWRiM2Q0NGExZjhmY2NmYmYwZjg2MDlhYmYzZDJkOGViZDFlN2I5MWI1OTNmZWQxX2Q/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4wJiRzZWxlY3Q9aWQlMkNzdGF0ZQ==", - "RequestMethod": "GET", - "RequestHeaders": { "client-request-id": [ - "d867d234-503e-47bc-8209-4d90bb5aaa1b" - ], - "Accept-Language": [ - "en-US" + "3ea4a3fa-4fcf-4111-a57e-de20cb88cd5c" ], "ocp-date": [ - "Wed, 13 Nov 2024 21:31:07 GMT" - ], - "x-ms-client-request-id": [ - "d797cc37-e46e-44c3-b7a5-5f6518cb60d7" + "Thu, 11 Sep 2025 21:13:34 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -616,11 +558,14 @@ "Transfer-Encoding": [ "chunked" ], + "ETag": [ + "0x8DDF177F8D08DED" + ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "a362fbd6-0820-43a1-9630-a8ba65989bbe" + "64ac91ef-d128-4e0b-a41a-fbfd5429ac73" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -632,91 +577,39 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:31:07 GMT" + "Thu, 11 Sep 2025 21:13:34 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" + ], + "Last-Modified": [ + "Thu, 11 Sep 2025 21:12:53 GMT" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#nodes/@Element\",\r\n \"id\": \"tvmps_2f986512916b2526adb3d44a1f8fccfbf0f8609abf3d2d8ebd1e7b91b593fed1_d\",\r\n \"state\": \"creating\",\r\n \"virtualMachineInfo\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\",\r\n \"exactVersion\": \"latest\"\r\n }\r\n }\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"disableandenablenodepool\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/disableandenablenodepool\",\r\n \"eTag\": \"0x8DDF177F8D08DED\",\r\n \"lastModified\": \"2025-09-11T21:12:53.4298093Z\",\r\n \"creationTime\": \"2025-09-11T21:12:53.4298071Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T21:12:53.4298071Z\",\r\n \"allocationState\": \"steady\",\r\n \"allocationStateTransitionTime\": \"2025-09-11T21:13:32.0008535Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 2,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\",\r\n \"currentNodeCommunicationMode\": \"simplified\"\r\n}", "StatusCode": 200 }, { - "RequestUri": "/pools/disableandenablenodepool/nodes/tvmps_2f986512916b2526adb3d44a1f8fccfbf0f8609abf3d2d8ebd1e7b91b593fed1_d?api-version=2024-02-01.19.0&$select=id%2Cstate", - "EncodedRequestUri": "L3Bvb2xzL2Rpc2FibGVhbmRlbmFibGVub2RlcG9vbC9ub2Rlcy90dm1wc18yZjk4NjUxMjkxNmIyNTI2YWRiM2Q0NGExZjhmY2NmYmYwZjg2MDlhYmYzZDJkOGViZDFlN2I5MWI1OTNmZWQxX2Q/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4wJiRzZWxlY3Q9aWQlMkNzdGF0ZQ==", + "RequestUri": "/pools/disableandenablenodepool/nodes?api-version=2024-02-01.19.0", + "EncodedRequestUri": "L3Bvb2xzL2Rpc2FibGVhbmRlbmFibGVub2RlcG9vbC9ub2Rlcz9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjA=", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "4eac16e6-238a-4517-9a2e-fea251bd8261" - ], "Accept-Language": [ "en-US" ], - "ocp-date": [ - "Wed, 13 Nov 2024 21:31:12 GMT" - ], - "x-ms-client-request-id": [ - "9aac746f-89e9-4fb9-9715-f6bfd8402ddb" - ], - "User-Agent": [ - "FxVersion/6.0.3524.45918", - "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", - "AzurePowershell/Az1.0.0" - ] - }, - "RequestBody": "", - "ResponseHeaders": { - "Transfer-Encoding": [ - "chunked" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "d6e9851d-5635-4dfe-bec5-878a8e177856" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ], - "Date": [ - "Wed, 13 Nov 2024 21:31:12 GMT" - ], - "Content-Type": [ - "application/json; odata=minimalmetadata" - ] - }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#nodes/@Element\",\r\n \"id\": \"tvmps_2f986512916b2526adb3d44a1f8fccfbf0f8609abf3d2d8ebd1e7b91b593fed1_d\",\r\n \"state\": \"creating\",\r\n \"virtualMachineInfo\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\",\r\n \"exactVersion\": \"latest\"\r\n }\r\n }\r\n}", - "StatusCode": 200 - }, - { - "RequestUri": "/pools/disableandenablenodepool/nodes/tvmps_2f986512916b2526adb3d44a1f8fccfbf0f8609abf3d2d8ebd1e7b91b593fed1_d?api-version=2024-02-01.19.0&$select=id%2Cstate", - "EncodedRequestUri": "L3Bvb2xzL2Rpc2FibGVhbmRlbmFibGVub2RlcG9vbC9ub2Rlcy90dm1wc18yZjk4NjUxMjkxNmIyNTI2YWRiM2Q0NGExZjhmY2NmYmYwZjg2MDlhYmYzZDJkOGViZDFlN2I5MWI1OTNmZWQxX2Q/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4wJiRzZWxlY3Q9aWQlMkNzdGF0ZQ==", - "RequestMethod": "GET", - "RequestHeaders": { "client-request-id": [ - "b6718b5b-28b7-4c28-94cf-e493fcc4586c" - ], - "Accept-Language": [ - "en-US" + "48cf1f00-14c4-4a58-9c52-41fe0b67e5d9" ], "ocp-date": [ - "Wed, 13 Nov 2024 21:31:17 GMT" + "Thu, 11 Sep 2025 21:13:38 GMT" ], "x-ms-client-request-id": [ - "511f5891-3264-44fd-a828-975481b1cbc1" + "4e779f3f-90c4-4a7e-ad50-2aa0db564c4d" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -730,7 +623,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "6cc3ffbf-95ce-4ab6-ad53-88269ebf2ddf" + "56beb580-339f-46a8-8bf7-dc598d6ff920" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -742,36 +635,36 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:31:17 GMT" + "Thu, 11 Sep 2025 21:13:38 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#nodes/@Element\",\r\n \"id\": \"tvmps_2f986512916b2526adb3d44a1f8fccfbf0f8609abf3d2d8ebd1e7b91b593fed1_d\",\r\n \"state\": \"starting\",\r\n \"virtualMachineInfo\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\",\r\n \"exactVersion\": \"latest\"\r\n }\r\n }\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#nodes\",\r\n \"value\": [\r\n {\r\n \"id\": \"tvmps_b3bf0ab8e3288db5e7f13c17d0620122962cf471b29d3db438539192f7e94c6d_d\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/disableandenablenodepool/nodes/tvmps_b3bf0ab8e3288db5e7f13c17d0620122962cf471b29d3db438539192f7e94c6d_d\",\r\n \"state\": \"creating\",\r\n \"schedulingState\": \"enabled\",\r\n \"stateTransitionTime\": \"2025-09-11T21:13:30.990277Z\",\r\n \"allocationTime\": \"2025-09-11T21:13:30.9902794Z\",\r\n \"ipAddress\": \"10.0.0.4\",\r\n \"affinityId\": \"TVM:tvmps_b3bf0ab8e3288db5e7f13c17d0620122962cf471b29d3db438539192f7e94c6d_d\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"totalTasksRun\": 0,\r\n \"totalTasksSucceeded\": 0,\r\n \"runningTasksCount\": 0,\r\n \"runningTaskSlotsCount\": 0,\r\n \"isDedicated\": true,\r\n \"endpointConfiguration\": {\r\n \"inboundEndpoints\": [\r\n {\r\n \"name\": \"SSHRule.0\",\r\n \"protocol\": \"tcp\",\r\n \"publicIPAddress\": \"172.203.70.103\",\r\n \"publicFQDN\": \"dnsd9aca962-6de2-4097-af9d-43431b597924-azurebatch-cloudservice.eastus2.cloudapp.azure.com\",\r\n \"frontendPort\": 50000,\r\n \"backendPort\": 22\r\n }\r\n ]\r\n },\r\n \"virtualMachineInfo\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\",\r\n \"exactVersion\": \"latest\"\r\n }\r\n }\r\n },\r\n {\r\n \"id\": \"tvmps_c4bdc1b77728cd712b4be6784c27d26bf07fb3f65e74f871cbf7a69251505bc1_d\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/disableandenablenodepool/nodes/tvmps_c4bdc1b77728cd712b4be6784c27d26bf07fb3f65e74f871cbf7a69251505bc1_d\",\r\n \"state\": \"creating\",\r\n \"schedulingState\": \"enabled\",\r\n \"stateTransitionTime\": \"2025-09-11T21:13:30.9902433Z\",\r\n \"allocationTime\": \"2025-09-11T21:13:30.9902506Z\",\r\n \"ipAddress\": \"10.0.0.5\",\r\n \"affinityId\": \"TVM:tvmps_c4bdc1b77728cd712b4be6784c27d26bf07fb3f65e74f871cbf7a69251505bc1_d\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"totalTasksRun\": 0,\r\n \"totalTasksSucceeded\": 0,\r\n \"runningTasksCount\": 0,\r\n \"runningTaskSlotsCount\": 0,\r\n \"isDedicated\": true,\r\n \"endpointConfiguration\": {\r\n \"inboundEndpoints\": [\r\n {\r\n \"name\": \"SSHRule.1\",\r\n \"protocol\": \"tcp\",\r\n \"publicIPAddress\": \"172.203.70.103\",\r\n \"publicFQDN\": \"dnsd9aca962-6de2-4097-af9d-43431b597924-azurebatch-cloudservice.eastus2.cloudapp.azure.com\",\r\n \"frontendPort\": 50001,\r\n \"backendPort\": 22\r\n }\r\n ]\r\n },\r\n \"virtualMachineInfo\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\",\r\n \"exactVersion\": \"latest\"\r\n }\r\n }\r\n }\r\n ]\r\n}", "StatusCode": 200 }, { - "RequestUri": "/pools/disableandenablenodepool/nodes/tvmps_2f986512916b2526adb3d44a1f8fccfbf0f8609abf3d2d8ebd1e7b91b593fed1_d?api-version=2024-02-01.19.0&$select=id%2Cstate", - "EncodedRequestUri": "L3Bvb2xzL2Rpc2FibGVhbmRlbmFibGVub2RlcG9vbC9ub2Rlcy90dm1wc18yZjk4NjUxMjkxNmIyNTI2YWRiM2Q0NGExZjhmY2NmYmYwZjg2MDlhYmYzZDJkOGViZDFlN2I5MWI1OTNmZWQxX2Q/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4wJiRzZWxlY3Q9aWQlMkNzdGF0ZQ==", + "RequestUri": "/pools/disableandenablenodepool/nodes/tvmps_b3bf0ab8e3288db5e7f13c17d0620122962cf471b29d3db438539192f7e94c6d_d?api-version=2024-02-01.19.0&$select=id%2Cstate", + "EncodedRequestUri": "L3Bvb2xzL2Rpc2FibGVhbmRlbmFibGVub2RlcG9vbC9ub2Rlcy90dm1wc19iM2JmMGFiOGUzMjg4ZGI1ZTdmMTNjMTdkMDYyMDEyMjk2MmNmNDcxYjI5ZDNkYjQzODUzOTE5MmY3ZTk0YzZkX2Q/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4wJiRzZWxlY3Q9aWQlMkNzdGF0ZQ==", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "0f066e04-7d99-4e5b-9475-d1ef3a9ef685" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "31d7cd90-fbfe-4802-9719-03f8370b1f4a" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:31:22 GMT" + "Thu, 11 Sep 2025 21:13:39 GMT" ], "x-ms-client-request-id": [ - "8334015b-1002-488a-a1a8-3e0ce46b78bb" + "a3a651b8-bbb8-44a8-bc12-605ee503be3c" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -785,7 +678,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "1d301d67-8ba7-4b1d-a195-aec26ecd3dd3" + "83d1c0f3-f3e6-4849-ad71-9b08d12aa63a" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -797,36 +690,36 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:31:22 GMT" + "Thu, 11 Sep 2025 21:13:38 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#nodes/@Element\",\r\n \"id\": \"tvmps_2f986512916b2526adb3d44a1f8fccfbf0f8609abf3d2d8ebd1e7b91b593fed1_d\",\r\n \"state\": \"starting\",\r\n \"virtualMachineInfo\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\",\r\n \"exactVersion\": \"latest\"\r\n }\r\n }\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#nodes/@Element\",\r\n \"id\": \"tvmps_b3bf0ab8e3288db5e7f13c17d0620122962cf471b29d3db438539192f7e94c6d_d\",\r\n \"state\": \"creating\",\r\n \"virtualMachineInfo\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\",\r\n \"exactVersion\": \"latest\"\r\n }\r\n }\r\n}", "StatusCode": 200 }, { - "RequestUri": "/pools/disableandenablenodepool/nodes/tvmps_2f986512916b2526adb3d44a1f8fccfbf0f8609abf3d2d8ebd1e7b91b593fed1_d?api-version=2024-02-01.19.0&$select=id%2Cstate", - "EncodedRequestUri": "L3Bvb2xzL2Rpc2FibGVhbmRlbmFibGVub2RlcG9vbC9ub2Rlcy90dm1wc18yZjk4NjUxMjkxNmIyNTI2YWRiM2Q0NGExZjhmY2NmYmYwZjg2MDlhYmYzZDJkOGViZDFlN2I5MWI1OTNmZWQxX2Q/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4wJiRzZWxlY3Q9aWQlMkNzdGF0ZQ==", + "RequestUri": "/pools/disableandenablenodepool/nodes/tvmps_b3bf0ab8e3288db5e7f13c17d0620122962cf471b29d3db438539192f7e94c6d_d?api-version=2024-02-01.19.0&$select=id%2Cstate", + "EncodedRequestUri": "L3Bvb2xzL2Rpc2FibGVhbmRlbmFibGVub2RlcG9vbC9ub2Rlcy90dm1wc19iM2JmMGFiOGUzMjg4ZGI1ZTdmMTNjMTdkMDYyMDEyMjk2MmNmNDcxYjI5ZDNkYjQzODUzOTE5MmY3ZTk0YzZkX2Q/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4wJiRzZWxlY3Q9aWQlMkNzdGF0ZQ==", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "fb9dee88-02b4-4d7f-a141-7a084f285035" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "24e40b75-f8e6-4ef3-88f8-72f32453de6f" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:31:27 GMT" + "Thu, 11 Sep 2025 21:13:44 GMT" ], "x-ms-client-request-id": [ - "c50f3817-c312-41c0-9f6b-50efdf38df01" + "81364514-adf6-4590-a10e-2d289f3a0ec0" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -840,7 +733,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "d6c8a770-1f2c-43a8-b1dd-b34824e81b41" + "51828f4c-0c75-4fe2-b506-bb187329d5ec" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -852,36 +745,36 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:31:27 GMT" + "Thu, 11 Sep 2025 21:13:44 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#nodes/@Element\",\r\n \"id\": \"tvmps_2f986512916b2526adb3d44a1f8fccfbf0f8609abf3d2d8ebd1e7b91b593fed1_d\",\r\n \"state\": \"starting\",\r\n \"virtualMachineInfo\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\",\r\n \"exactVersion\": \"latest\"\r\n }\r\n }\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#nodes/@Element\",\r\n \"id\": \"tvmps_b3bf0ab8e3288db5e7f13c17d0620122962cf471b29d3db438539192f7e94c6d_d\",\r\n \"state\": \"starting\",\r\n \"virtualMachineInfo\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\",\r\n \"exactVersion\": \"latest\"\r\n }\r\n }\r\n}", "StatusCode": 200 }, { - "RequestUri": "/pools/disableandenablenodepool/nodes/tvmps_2f986512916b2526adb3d44a1f8fccfbf0f8609abf3d2d8ebd1e7b91b593fed1_d?api-version=2024-02-01.19.0&$select=id%2Cstate", - "EncodedRequestUri": "L3Bvb2xzL2Rpc2FibGVhbmRlbmFibGVub2RlcG9vbC9ub2Rlcy90dm1wc18yZjk4NjUxMjkxNmIyNTI2YWRiM2Q0NGExZjhmY2NmYmYwZjg2MDlhYmYzZDJkOGViZDFlN2I5MWI1OTNmZWQxX2Q/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4wJiRzZWxlY3Q9aWQlMkNzdGF0ZQ==", + "RequestUri": "/pools/disableandenablenodepool/nodes/tvmps_b3bf0ab8e3288db5e7f13c17d0620122962cf471b29d3db438539192f7e94c6d_d?api-version=2024-02-01.19.0&$select=id%2Cstate", + "EncodedRequestUri": "L3Bvb2xzL2Rpc2FibGVhbmRlbmFibGVub2RlcG9vbC9ub2Rlcy90dm1wc19iM2JmMGFiOGUzMjg4ZGI1ZTdmMTNjMTdkMDYyMDEyMjk2MmNmNDcxYjI5ZDNkYjQzODUzOTE5MmY3ZTk0YzZkX2Q/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4wJiRzZWxlY3Q9aWQlMkNzdGF0ZQ==", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "fa5455d1-2f60-4489-9427-088d1ca61fa6" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "5c4245eb-8ffb-4123-ab32-c2c7a08794f8" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:31:32 GMT" + "Thu, 11 Sep 2025 21:13:49 GMT" ], "x-ms-client-request-id": [ - "04d7f157-0847-453f-8de6-4e7a37e7272a" + "6b8872c2-0706-4865-a35c-6f3d61b8ece0" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -895,7 +788,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "4d9cba00-1ce4-4b21-a20a-54ec25b026bb" + "f5a3e495-a62c-4fc6-b204-90a4131222c0" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -907,36 +800,36 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:31:32 GMT" + "Thu, 11 Sep 2025 21:13:49 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#nodes/@Element\",\r\n \"id\": \"tvmps_2f986512916b2526adb3d44a1f8fccfbf0f8609abf3d2d8ebd1e7b91b593fed1_d\",\r\n \"state\": \"idle\",\r\n \"virtualMachineInfo\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\",\r\n \"exactVersion\": \"latest\"\r\n }\r\n }\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#nodes/@Element\",\r\n \"id\": \"tvmps_b3bf0ab8e3288db5e7f13c17d0620122962cf471b29d3db438539192f7e94c6d_d\",\r\n \"state\": \"idle\",\r\n \"virtualMachineInfo\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\",\r\n \"exactVersion\": \"latest\"\r\n }\r\n }\r\n}", "StatusCode": 200 }, { - "RequestUri": "/pools/disableandenablenodepool/nodes/tvmps_2f986512916b2526adb3d44a1f8fccfbf0f8609abf3d2d8ebd1e7b91b593fed1_d?api-version=2024-02-01.19.0", - "EncodedRequestUri": "L3Bvb2xzL2Rpc2FibGVhbmRlbmFibGVub2RlcG9vbC9ub2Rlcy90dm1wc18yZjk4NjUxMjkxNmIyNTI2YWRiM2Q0NGExZjhmY2NmYmYwZjg2MDlhYmYzZDJkOGViZDFlN2I5MWI1OTNmZWQxX2Q/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4w", + "RequestUri": "/pools/disableandenablenodepool/nodes/tvmps_b3bf0ab8e3288db5e7f13c17d0620122962cf471b29d3db438539192f7e94c6d_d?api-version=2024-02-01.19.0", + "EncodedRequestUri": "L3Bvb2xzL2Rpc2FibGVhbmRlbmFibGVub2RlcG9vbC9ub2Rlcy90dm1wc19iM2JmMGFiOGUzMjg4ZGI1ZTdmMTNjMTdkMDYyMDEyMjk2MmNmNDcxYjI5ZDNkYjQzODUzOTE5MmY3ZTk0YzZkX2Q/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4w", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "b70ede9d-e393-4668-b1fe-8fac8cc7f8e8" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "d62856e2-3fde-4e82-90a9-aa1807f9201f" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:31:33 GMT" + "Thu, 11 Sep 2025 21:13:49 GMT" ], "x-ms-client-request-id": [ - "a8f32c73-2097-49a7-b442-7cc26bc062a8" + "266d256c-0d0d-4534-8dea-4f4a8ea57111" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -950,7 +843,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "e36b8c5c-266d-4e9c-8525-44771863dd82" + "f78ebb01-09ad-401b-a2b6-0570544cef13" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -962,36 +855,36 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:31:32 GMT" + "Thu, 11 Sep 2025 21:13:49 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#nodes/@Element\",\r\n \"id\": \"tvmps_2f986512916b2526adb3d44a1f8fccfbf0f8609abf3d2d8ebd1e7b91b593fed1_d\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/pools/disableandenablenodepool/nodes/tvmps_2f986512916b2526adb3d44a1f8fccfbf0f8609abf3d2d8ebd1e7b91b593fed1_d\",\r\n \"state\": \"idle\",\r\n \"schedulingState\": \"enabled\",\r\n \"stateTransitionTime\": \"2024-11-13T21:31:31.626353Z\",\r\n \"lastBootTime\": \"2024-11-13T21:31:31.530755Z\",\r\n \"allocationTime\": \"2024-11-13T21:31:03.0859995Z\",\r\n \"ipAddress\": \"10.0.0.5\",\r\n \"affinityId\": \"TVM:tvmps_2f986512916b2526adb3d44a1f8fccfbf0f8609abf3d2d8ebd1e7b91b593fed1_d\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"totalTasksRun\": 0,\r\n \"totalTasksSucceeded\": 0,\r\n \"runningTasksCount\": 0,\r\n \"runningTaskSlotsCount\": 0,\r\n \"certificateReferences\": [],\r\n \"isDedicated\": true,\r\n \"endpointConfiguration\": {\r\n \"inboundEndpoints\": [\r\n {\r\n \"name\": \"SSHRule.1\",\r\n \"protocol\": \"tcp\",\r\n \"publicIPAddress\": \"4.152.69.132\",\r\n \"publicFQDN\": \"dns35820eeb-22d9-4a23-81fc-ada4d30a3077-azurebatch-cloudservice.eastus2.cloudapp.azure.com\",\r\n \"frontendPort\": 50001,\r\n \"backendPort\": 22\r\n }\r\n ]\r\n },\r\n \"nodeAgentInfo\": {\r\n \"lastUpdateTime\": \"2024-11-13T21:31:31.530755Z\",\r\n \"version\": \"1.12.7\"\r\n },\r\n \"virtualMachineInfo\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\",\r\n \"exactVersion\": \"latest\"\r\n }\r\n }\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#nodes/@Element\",\r\n \"id\": \"tvmps_b3bf0ab8e3288db5e7f13c17d0620122962cf471b29d3db438539192f7e94c6d_d\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/disableandenablenodepool/nodes/tvmps_b3bf0ab8e3288db5e7f13c17d0620122962cf471b29d3db438539192f7e94c6d_d\",\r\n \"state\": \"idle\",\r\n \"schedulingState\": \"enabled\",\r\n \"stateTransitionTime\": \"2025-09-11T21:13:47.332605Z\",\r\n \"lastBootTime\": \"2025-09-11T21:13:47.217687Z\",\r\n \"allocationTime\": \"2025-09-11T21:13:30.9902794Z\",\r\n \"ipAddress\": \"10.0.0.4\",\r\n \"affinityId\": \"TVM:tvmps_b3bf0ab8e3288db5e7f13c17d0620122962cf471b29d3db438539192f7e94c6d_d\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"totalTasksRun\": 0,\r\n \"totalTasksSucceeded\": 0,\r\n \"runningTasksCount\": 0,\r\n \"runningTaskSlotsCount\": 0,\r\n \"certificateReferences\": [],\r\n \"isDedicated\": true,\r\n \"endpointConfiguration\": {\r\n \"inboundEndpoints\": [\r\n {\r\n \"name\": \"SSHRule.0\",\r\n \"protocol\": \"tcp\",\r\n \"publicIPAddress\": \"172.203.70.103\",\r\n \"publicFQDN\": \"dnsd9aca962-6de2-4097-af9d-43431b597924-azurebatch-cloudservice.eastus2.cloudapp.azure.com\",\r\n \"frontendPort\": 50000,\r\n \"backendPort\": 22\r\n }\r\n ]\r\n },\r\n \"nodeAgentInfo\": {\r\n \"lastUpdateTime\": \"2025-09-11T21:13:47.217687Z\",\r\n \"version\": \"1.12.24\"\r\n },\r\n \"virtualMachineInfo\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\",\r\n \"exactVersion\": \"latest\"\r\n }\r\n }\r\n}", "StatusCode": 200 }, { - "RequestUri": "/pools/disableandenablenodepool/nodes/tvmps_2f986512916b2526adb3d44a1f8fccfbf0f8609abf3d2d8ebd1e7b91b593fed1_d/disablescheduling?api-version=2024-02-01.19.0", - "EncodedRequestUri": "L3Bvb2xzL2Rpc2FibGVhbmRlbmFibGVub2RlcG9vbC9ub2Rlcy90dm1wc18yZjk4NjUxMjkxNmIyNTI2YWRiM2Q0NGExZjhmY2NmYmYwZjg2MDlhYmYzZDJkOGViZDFlN2I5MWI1OTNmZWQxX2QvZGlzYWJsZXNjaGVkdWxpbmc/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4w", + "RequestUri": "/pools/disableandenablenodepool/nodes/tvmps_b3bf0ab8e3288db5e7f13c17d0620122962cf471b29d3db438539192f7e94c6d_d/disablescheduling?api-version=2024-02-01.19.0", + "EncodedRequestUri": "L3Bvb2xzL2Rpc2FibGVhbmRlbmFibGVub2RlcG9vbC9ub2Rlcy90dm1wc19iM2JmMGFiOGUzMjg4ZGI1ZTdmMTNjMTdkMDYyMDEyMjk2MmNmNDcxYjI5ZDNkYjQzODUzOTE5MmY3ZTk0YzZkX2QvZGlzYWJsZXNjaGVkdWxpbmc/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4w", "RequestMethod": "POST", "RequestHeaders": { - "client-request-id": [ - "b42ad3ec-9c75-4c72-a030-bba0650cbcf1" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "079ba73c-d973-4efb-85b4-ec59ab5b81df" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:31:33 GMT" + "Thu, 11 Sep 2025 21:13:49 GMT" ], "x-ms-client-request-id": [ - "a8f32c73-2097-49a7-b442-7cc26bc062a8" + "266d256c-0d0d-4534-8dea-4f4a8ea57111" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ], @@ -1011,7 +904,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "9c93c1e3-0af4-4a70-82d2-126db32049c2" + "923d41e0-35b0-4d7e-9434-543e95f608b9" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -1023,36 +916,36 @@ "3.0" ], "DataServiceId": [ - "https://dawatrouhobo.eastus2.batch.azure.com/pools/disableandenablenodepool/nodes/tvmps_2f986512916b2526adb3d44a1f8fccfbf0f8609abf3d2d8ebd1e7b91b593fed1_d/disablescheduling" + "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/disableandenablenodepool/nodes/tvmps_b3bf0ab8e3288db5e7f13c17d0620122962cf471b29d3db438539192f7e94c6d_d/disablescheduling" ], "Date": [ - "Wed, 13 Nov 2024 21:31:32 GMT" + "Thu, 11 Sep 2025 21:13:49 GMT" ] }, "ResponseBody": "", "StatusCode": 200 }, { - "RequestUri": "/pools/disableandenablenodepool/nodes/tvmps_2f986512916b2526adb3d44a1f8fccfbf0f8609abf3d2d8ebd1e7b91b593fed1_d?api-version=2024-02-01.19.0&$select=id%2CschedulingState", - "EncodedRequestUri": "L3Bvb2xzL2Rpc2FibGVhbmRlbmFibGVub2RlcG9vbC9ub2Rlcy90dm1wc18yZjk4NjUxMjkxNmIyNTI2YWRiM2Q0NGExZjhmY2NmYmYwZjg2MDlhYmYzZDJkOGViZDFlN2I5MWI1OTNmZWQxX2Q/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4wJiRzZWxlY3Q9aWQlMkNzY2hlZHVsaW5nU3RhdGU=", + "RequestUri": "/pools/disableandenablenodepool/nodes/tvmps_b3bf0ab8e3288db5e7f13c17d0620122962cf471b29d3db438539192f7e94c6d_d?api-version=2024-02-01.19.0&$select=id%2CschedulingState", + "EncodedRequestUri": "L3Bvb2xzL2Rpc2FibGVhbmRlbmFibGVub2RlcG9vbC9ub2Rlcy90dm1wc19iM2JmMGFiOGUzMjg4ZGI1ZTdmMTNjMTdkMDYyMDEyMjk2MmNmNDcxYjI5ZDNkYjQzODUzOTE5MmY3ZTk0YzZkX2Q/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4wJiRzZWxlY3Q9aWQlMkNzY2hlZHVsaW5nU3RhdGU=", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "ae43d557-7776-42bc-b643-953939f6d130" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "05fd3b4c-0571-4cbd-b279-ba7b146b7f51" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:31:33 GMT" + "Thu, 11 Sep 2025 21:13:50 GMT" ], "x-ms-client-request-id": [ - "824ffdc7-dd42-4d18-a1f4-b791f6dd5b46" + "93b3c025-f0d1-4153-b7d6-7c1a6b4c91b4" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -1066,7 +959,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "cc0653a0-770a-45e2-bda1-ce1cc57004a7" + "afd93069-f40b-497f-b157-615be9d11fd1" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -1078,36 +971,36 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:31:32 GMT" + "Thu, 11 Sep 2025 21:13:49 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#nodes/@Element\",\r\n \"id\": \"tvmps_2f986512916b2526adb3d44a1f8fccfbf0f8609abf3d2d8ebd1e7b91b593fed1_d\",\r\n \"schedulingState\": \"disabled\",\r\n \"virtualMachineInfo\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\",\r\n \"exactVersion\": \"latest\"\r\n }\r\n }\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#nodes/@Element\",\r\n \"id\": \"tvmps_b3bf0ab8e3288db5e7f13c17d0620122962cf471b29d3db438539192f7e94c6d_d\",\r\n \"schedulingState\": \"disabled\",\r\n \"virtualMachineInfo\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\",\r\n \"exactVersion\": \"latest\"\r\n }\r\n }\r\n}", "StatusCode": 200 }, { - "RequestUri": "/pools/disableandenablenodepool/nodes/tvmps_2f986512916b2526adb3d44a1f8fccfbf0f8609abf3d2d8ebd1e7b91b593fed1_d?api-version=2024-02-01.19.0&$select=id%2CschedulingState", - "EncodedRequestUri": "L3Bvb2xzL2Rpc2FibGVhbmRlbmFibGVub2RlcG9vbC9ub2Rlcy90dm1wc18yZjk4NjUxMjkxNmIyNTI2YWRiM2Q0NGExZjhmY2NmYmYwZjg2MDlhYmYzZDJkOGViZDFlN2I5MWI1OTNmZWQxX2Q/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4wJiRzZWxlY3Q9aWQlMkNzY2hlZHVsaW5nU3RhdGU=", + "RequestUri": "/pools/disableandenablenodepool/nodes/tvmps_b3bf0ab8e3288db5e7f13c17d0620122962cf471b29d3db438539192f7e94c6d_d?api-version=2024-02-01.19.0&$select=id%2CschedulingState", + "EncodedRequestUri": "L3Bvb2xzL2Rpc2FibGVhbmRlbmFibGVub2RlcG9vbC9ub2Rlcy90dm1wc19iM2JmMGFiOGUzMjg4ZGI1ZTdmMTNjMTdkMDYyMDEyMjk2MmNmNDcxYjI5ZDNkYjQzODUzOTE5MmY3ZTk0YzZkX2Q/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4wJiRzZWxlY3Q9aWQlMkNzY2hlZHVsaW5nU3RhdGU=", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "0a94d445-8920-4ac2-834f-4663cc5f342a" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "fab5aee9-7519-44f2-a62c-a89a334ff45b" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:31:33 GMT" + "Thu, 11 Sep 2025 21:13:50 GMT" ], "x-ms-client-request-id": [ - "dae28d34-7446-47d6-b255-971d1e53e77b" + "4e005baa-636a-4d0a-9633-b1cdf871b84d" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -1121,7 +1014,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "caf39846-7481-4abe-b6c3-2fff4bfb1cf4" + "a134293c-8fb0-4edd-be42-4940698b8cac" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -1133,36 +1026,36 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:31:32 GMT" + "Thu, 11 Sep 2025 21:13:50 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#nodes/@Element\",\r\n \"id\": \"tvmps_2f986512916b2526adb3d44a1f8fccfbf0f8609abf3d2d8ebd1e7b91b593fed1_d\",\r\n \"schedulingState\": \"enabled\",\r\n \"virtualMachineInfo\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\",\r\n \"exactVersion\": \"latest\"\r\n }\r\n }\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#nodes/@Element\",\r\n \"id\": \"tvmps_b3bf0ab8e3288db5e7f13c17d0620122962cf471b29d3db438539192f7e94c6d_d\",\r\n \"schedulingState\": \"enabled\",\r\n \"virtualMachineInfo\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\",\r\n \"exactVersion\": \"latest\"\r\n }\r\n }\r\n}", "StatusCode": 200 }, { - "RequestUri": "/pools/disableandenablenodepool/nodes/tvmps_2f986512916b2526adb3d44a1f8fccfbf0f8609abf3d2d8ebd1e7b91b593fed1_d/enablescheduling?api-version=2024-02-01.19.0", - "EncodedRequestUri": "L3Bvb2xzL2Rpc2FibGVhbmRlbmFibGVub2RlcG9vbC9ub2Rlcy90dm1wc18yZjk4NjUxMjkxNmIyNTI2YWRiM2Q0NGExZjhmY2NmYmYwZjg2MDlhYmYzZDJkOGViZDFlN2I5MWI1OTNmZWQxX2QvZW5hYmxlc2NoZWR1bGluZz9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjA=", + "RequestUri": "/pools/disableandenablenodepool/nodes/tvmps_b3bf0ab8e3288db5e7f13c17d0620122962cf471b29d3db438539192f7e94c6d_d/enablescheduling?api-version=2024-02-01.19.0", + "EncodedRequestUri": "L3Bvb2xzL2Rpc2FibGVhbmRlbmFibGVub2RlcG9vbC9ub2Rlcy90dm1wc19iM2JmMGFiOGUzMjg4ZGI1ZTdmMTNjMTdkMDYyMDEyMjk2MmNmNDcxYjI5ZDNkYjQzODUzOTE5MmY3ZTk0YzZkX2QvZW5hYmxlc2NoZWR1bGluZz9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjA=", "RequestMethod": "POST", "RequestHeaders": { - "client-request-id": [ - "6352d0a5-48a5-4680-8142-fbc6854b1b9d" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "756183d3-93c0-43d6-b466-8a6f20cd1856" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:31:33 GMT" + "Thu, 11 Sep 2025 21:13:50 GMT" ], "x-ms-client-request-id": [ - "834b1230-135b-4da7-b20c-4402e2637dd6" + "97ed3a8c-b97c-4bbd-8285-23a75338a638" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ], @@ -1179,7 +1072,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "7c1712b2-6af1-443b-8b04-85f11e006a85" + "853fc0d0-9e31-462e-8951-5a8f151cf56d" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -1191,10 +1084,10 @@ "3.0" ], "DataServiceId": [ - "https://dawatrouhobo.eastus2.batch.azure.com/pools/disableandenablenodepool/nodes/tvmps_2f986512916b2526adb3d44a1f8fccfbf0f8609abf3d2d8ebd1e7b91b593fed1_d/enablescheduling" + "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/disableandenablenodepool/nodes/tvmps_b3bf0ab8e3288db5e7f13c17d0620122962cf471b29d3db438539192f7e94c6d_d/enablescheduling" ], "Date": [ - "Wed, 13 Nov 2024 21:31:32 GMT" + "Thu, 11 Sep 2025 21:13:50 GMT" ] }, "ResponseBody": "", @@ -1203,9 +1096,9 @@ ], "Names": {}, "Variables": { - "SubscriptionId": "21abd678-18c5-4660-9fdd-8c5ba6b6fe1f", - "AZURE_BATCH_ACCOUNT": "dawatrouhobo", - "AZURE_BATCH_ENDPOINT": "https://dawatrouhobo.eastus2.batch.azure.com", - "AZURE_BATCH_RESOURCE_GROUP": "dawatrou-rg" + "SubscriptionId": "94bd7ded-68b4-4ffa-82a5-37ac72caa2ec", + "AZURE_BATCH_ACCOUNT": "dotnotsdkbatchaccount2", + "AZURE_BATCH_ENDPOINT": "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com", + "AZURE_BATCH_RESOURCE_GROUP": "automation" } } \ No newline at end of file diff --git a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.ComputeNodeTests/TestGetComputeNodeRemoteLoginSettings.json b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.ComputeNodeTests/TestGetComputeNodeRemoteLoginSettings.json index 11f4c3df0a5b..81d298af6d64 100644 --- a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.ComputeNodeTests/TestGetComputeNodeRemoteLoginSettings.json +++ b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.ComputeNodeTests/TestGetComputeNodeRemoteLoginSettings.json @@ -5,19 +5,19 @@ "EncodedRequestUri": "L3Bvb2xzP2FwaS12ZXJzaW9uPTIwMjQtMDItMDEuMTkuMA==", "RequestMethod": "POST", "RequestHeaders": { - "client-request-id": [ - "49b2767e-e08e-4210-b67c-ce72d5b79883" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "295e0ea9-0951-4e09-98e4-e8954beed7cb" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:28:37 GMT" + "Thu, 11 Sep 2025 21:17:04 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ], @@ -34,16 +34,16 @@ "chunked" ], "ETag": [ - "0x8DD042A22CB2190" + "0x8DDF1788ED4B75D" ], "Location": [ - "https://dawatrouhobo.eastus2.batch.azure.com/pools/noderemoteloginpool" + "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/noderemoteloginpool" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "17fb597b-80cc-4fd1-bee9-bcda652e4e8d" + "85a6cd0d-a8c8-4277-8e7a-b509ceb0ef6b" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -55,13 +55,13 @@ "3.0" ], "DataServiceId": [ - "https://dawatrouhobo.eastus2.batch.azure.com/pools/noderemoteloginpool" + "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/noderemoteloginpool" ], "Date": [ - "Wed, 13 Nov 2024 21:28:36 GMT" + "Thu, 11 Sep 2025 21:17:05 GMT" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:28:37 GMT" + "Thu, 11 Sep 2025 21:17:05 GMT" ] }, "ResponseBody": "", @@ -72,19 +72,19 @@ "EncodedRequestUri": "L3Bvb2xzL25vZGVyZW1vdGVsb2dpbnBvb2w/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4w", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "adac9be5-f12e-4bc4-ad4d-f58aaf8bbc4c" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "5eb1a6ec-6637-4fb5-a8b5-c060c25705c6" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:28:37 GMT" + "Thu, 11 Sep 2025 21:17:05 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -95,13 +95,13 @@ "chunked" ], "ETag": [ - "0x8DD042A22CB2190" + "0x8DDF1788ED4B75D" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "b53c0322-ae9a-4025-863c-9f21cb831f00" + "3031064b-1290-45a4-8b39-6a28c40ab7df" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -113,16 +113,16 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:28:36 GMT" + "Thu, 11 Sep 2025 21:17:05 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:28:37 GMT" + "Thu, 11 Sep 2025 21:17:05 GMT" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"noderemoteloginpool\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/pools/noderemoteloginpool\",\r\n \"eTag\": \"0x8DD042A22CB2190\",\r\n \"lastModified\": \"2024-11-13T21:28:37.5353744Z\",\r\n \"creationTime\": \"2024-11-13T21:28:37.5353732Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2024-11-13T21:28:37.5353732Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2024-11-13T21:28:37.5353745Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"noderemoteloginpool\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/noderemoteloginpool\",\r\n \"eTag\": \"0x8DDF1788ED4B75D\",\r\n \"lastModified\": \"2025-09-11T21:17:05.1153245Z\",\r\n \"creationTime\": \"2025-09-11T21:17:05.1153234Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T21:17:05.1153234Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2025-09-11T21:17:05.1153246Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", "StatusCode": 200 }, { @@ -130,19 +130,19 @@ "EncodedRequestUri": "L3Bvb2xzL25vZGVyZW1vdGVsb2dpbnBvb2w/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4w", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "bf6ee9a1-a43b-486c-9951-e9af7696f7d4" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "acf2b4c1-f290-410d-9357-c43018d100e8" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:28:42 GMT" + "Thu, 11 Sep 2025 21:17:10 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -153,13 +153,13 @@ "chunked" ], "ETag": [ - "0x8DD042A22CB2190" + "0x8DDF1788ED4B75D" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "ceb29db3-6660-48ad-bd24-36a30a940481" + "f602d5a2-14e8-4c95-91cb-84822caf2be5" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -171,16 +171,16 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:28:42 GMT" + "Thu, 11 Sep 2025 21:17:10 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:28:37 GMT" + "Thu, 11 Sep 2025 21:17:05 GMT" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"noderemoteloginpool\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/pools/noderemoteloginpool\",\r\n \"eTag\": \"0x8DD042A22CB2190\",\r\n \"lastModified\": \"2024-11-13T21:28:37.5353744Z\",\r\n \"creationTime\": \"2024-11-13T21:28:37.5353732Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2024-11-13T21:28:37.5353732Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2024-11-13T21:28:37.5353745Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"noderemoteloginpool\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/noderemoteloginpool\",\r\n \"eTag\": \"0x8DDF1788ED4B75D\",\r\n \"lastModified\": \"2025-09-11T21:17:05.1153245Z\",\r\n \"creationTime\": \"2025-09-11T21:17:05.1153234Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T21:17:05.1153234Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2025-09-11T21:17:05.1153246Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", "StatusCode": 200 }, { @@ -188,19 +188,19 @@ "EncodedRequestUri": "L3Bvb2xzL25vZGVyZW1vdGVsb2dpbnBvb2w/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4w", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "f55ce526-0b3e-41f2-90cc-9749593d0028" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "3ec97c04-493d-460a-ad19-fd418069fc44" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:28:47 GMT" + "Thu, 11 Sep 2025 21:17:15 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -211,13 +211,13 @@ "chunked" ], "ETag": [ - "0x8DD042A22CB2190" + "0x8DDF1788ED4B75D" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "e5e6309d-dfad-4d12-b54f-8ce2d4e07a9c" + "7f267eef-148e-465b-9bec-51c665a5ad1d" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -229,16 +229,16 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:28:47 GMT" + "Thu, 11 Sep 2025 21:17:15 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:28:37 GMT" + "Thu, 11 Sep 2025 21:17:05 GMT" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"noderemoteloginpool\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/pools/noderemoteloginpool\",\r\n \"eTag\": \"0x8DD042A22CB2190\",\r\n \"lastModified\": \"2024-11-13T21:28:37.5353744Z\",\r\n \"creationTime\": \"2024-11-13T21:28:37.5353732Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2024-11-13T21:28:37.5353732Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2024-11-13T21:28:37.5353745Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"noderemoteloginpool\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/noderemoteloginpool\",\r\n \"eTag\": \"0x8DDF1788ED4B75D\",\r\n \"lastModified\": \"2025-09-11T21:17:05.1153245Z\",\r\n \"creationTime\": \"2025-09-11T21:17:05.1153234Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T21:17:05.1153234Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2025-09-11T21:17:05.1153246Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", "StatusCode": 200 }, { @@ -246,19 +246,19 @@ "EncodedRequestUri": "L3Bvb2xzL25vZGVyZW1vdGVsb2dpbnBvb2w/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4w", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "a10fb6d5-dfba-468d-8689-d7d3ea7b9546" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "b18f5f48-1ac3-4c98-8fd9-cc9a46f1e1b5" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:28:52 GMT" + "Thu, 11 Sep 2025 21:17:20 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -269,13 +269,13 @@ "chunked" ], "ETag": [ - "0x8DD042A22CB2190" + "0x8DDF1788ED4B75D" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "d1a0513f-262b-4202-81ba-7d9e59457f57" + "b817cd7e-5d14-457a-b926-b9b624d88194" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -287,16 +287,16 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:28:52 GMT" + "Thu, 11 Sep 2025 21:17:20 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:28:37 GMT" + "Thu, 11 Sep 2025 21:17:05 GMT" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"noderemoteloginpool\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/pools/noderemoteloginpool\",\r\n \"eTag\": \"0x8DD042A22CB2190\",\r\n \"lastModified\": \"2024-11-13T21:28:37.5353744Z\",\r\n \"creationTime\": \"2024-11-13T21:28:37.5353732Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2024-11-13T21:28:37.5353732Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2024-11-13T21:28:37.5353745Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"noderemoteloginpool\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/noderemoteloginpool\",\r\n \"eTag\": \"0x8DDF1788ED4B75D\",\r\n \"lastModified\": \"2025-09-11T21:17:05.1153245Z\",\r\n \"creationTime\": \"2025-09-11T21:17:05.1153234Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T21:17:05.1153234Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2025-09-11T21:17:05.1153246Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", "StatusCode": 200 }, { @@ -304,19 +304,19 @@ "EncodedRequestUri": "L3Bvb2xzL25vZGVyZW1vdGVsb2dpbnBvb2w/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4w", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "d5fe19bb-ee96-4e2e-8db0-f0758e742520" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "5e07a95d-b636-4eef-88e6-b245ae5d0c22" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:28:57 GMT" + "Thu, 11 Sep 2025 21:17:25 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -327,13 +327,13 @@ "chunked" ], "ETag": [ - "0x8DD042A22CB2190" + "0x8DDF1788ED4B75D" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "56bcba3f-fb7c-44ab-93d0-df421cc7aec5" + "6ef1145e-1e57-4127-b65a-0a7d65f3cde8" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -345,16 +345,16 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:28:57 GMT" + "Thu, 11 Sep 2025 21:17:25 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:28:37 GMT" + "Thu, 11 Sep 2025 21:17:05 GMT" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"noderemoteloginpool\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/pools/noderemoteloginpool\",\r\n \"eTag\": \"0x8DD042A22CB2190\",\r\n \"lastModified\": \"2024-11-13T21:28:37.5353744Z\",\r\n \"creationTime\": \"2024-11-13T21:28:37.5353732Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2024-11-13T21:28:37.5353732Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2024-11-13T21:28:37.5353745Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"noderemoteloginpool\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/noderemoteloginpool\",\r\n \"eTag\": \"0x8DDF1788ED4B75D\",\r\n \"lastModified\": \"2025-09-11T21:17:05.1153245Z\",\r\n \"creationTime\": \"2025-09-11T21:17:05.1153234Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T21:17:05.1153234Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2025-09-11T21:17:05.1153246Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", "StatusCode": 200 }, { @@ -362,19 +362,19 @@ "EncodedRequestUri": "L3Bvb2xzL25vZGVyZW1vdGVsb2dpbnBvb2w/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4w", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "3ae74bc4-d996-46a0-9744-5329af3c3986" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "9b3de719-26f9-4ba1-adfe-4a11475e6140" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:29:02 GMT" + "Thu, 11 Sep 2025 21:17:31 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -385,13 +385,13 @@ "chunked" ], "ETag": [ - "0x8DD042A22CB2190" + "0x8DDF1788ED4B75D" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "25fd190f-f5df-4c1c-b852-63fa7854890c" + "31ad2ba3-ecfe-4e28-ac4e-54de2f2933e6" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -403,16 +403,16 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:29:02 GMT" + "Thu, 11 Sep 2025 21:17:30 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:28:37 GMT" + "Thu, 11 Sep 2025 21:17:05 GMT" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"noderemoteloginpool\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/pools/noderemoteloginpool\",\r\n \"eTag\": \"0x8DD042A22CB2190\",\r\n \"lastModified\": \"2024-11-13T21:28:37.5353744Z\",\r\n \"creationTime\": \"2024-11-13T21:28:37.5353732Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2024-11-13T21:28:37.5353732Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2024-11-13T21:28:37.5353745Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"noderemoteloginpool\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/noderemoteloginpool\",\r\n \"eTag\": \"0x8DDF1788ED4B75D\",\r\n \"lastModified\": \"2025-09-11T21:17:05.1153245Z\",\r\n \"creationTime\": \"2025-09-11T21:17:05.1153234Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T21:17:05.1153234Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2025-09-11T21:17:05.1153246Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", "StatusCode": 200 }, { @@ -420,19 +420,77 @@ "EncodedRequestUri": "L3Bvb2xzL25vZGVyZW1vdGVsb2dpbnBvb2w/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4w", "RequestMethod": "GET", "RequestHeaders": { + "Accept-Language": [ + "en-US" + ], "client-request-id": [ - "66d96524-2a90-4a46-b024-210042246bb4" + "86b4583e-692d-405b-a072-00f83bc871ee" + ], + "ocp-date": [ + "Thu, 11 Sep 2025 21:17:36 GMT" + ], + "User-Agent": [ + "FxVersion/8.0.2025.41914", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.26100", + "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", + "AzurePowershell/Az1.0.0" + ] + }, + "RequestBody": "", + "ResponseHeaders": { + "Transfer-Encoding": [ + "chunked" ], + "ETag": [ + "0x8DDF1788ED4B75D" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "request-id": [ + "cb9edf8f-44bf-4544-9808-2f6ec9994d60" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "DataServiceVersion": [ + "3.0" + ], + "Date": [ + "Thu, 11 Sep 2025 21:17:35 GMT" + ], + "Content-Type": [ + "application/json; odata=minimalmetadata" + ], + "Last-Modified": [ + "Thu, 11 Sep 2025 21:17:05 GMT" + ] + }, + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"noderemoteloginpool\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/noderemoteloginpool\",\r\n \"eTag\": \"0x8DDF1788ED4B75D\",\r\n \"lastModified\": \"2025-09-11T21:17:05.1153245Z\",\r\n \"creationTime\": \"2025-09-11T21:17:05.1153234Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T21:17:05.1153234Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2025-09-11T21:17:05.1153246Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/pools/noderemoteloginpool?api-version=2024-02-01.19.0", + "EncodedRequestUri": "L3Bvb2xzL25vZGVyZW1vdGVsb2dpbnBvb2w/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4w", + "RequestMethod": "GET", + "RequestHeaders": { "Accept-Language": [ "en-US" ], + "client-request-id": [ + "5008f64e-42c2-4d75-be45-b2b5820b5ab6" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:29:07 GMT" + "Thu, 11 Sep 2025 21:17:41 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -443,13 +501,13 @@ "chunked" ], "ETag": [ - "0x8DD042A22CB2190" + "0x8DDF1788ED4B75D" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "45f94048-8580-4556-b551-8b512e79a131" + "6df8dd73-a794-4a4d-8172-da026e32ba50" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -461,16 +519,16 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:29:07 GMT" + "Thu, 11 Sep 2025 21:17:40 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:28:37 GMT" + "Thu, 11 Sep 2025 21:17:05 GMT" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"noderemoteloginpool\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/pools/noderemoteloginpool\",\r\n \"eTag\": \"0x8DD042A22CB2190\",\r\n \"lastModified\": \"2024-11-13T21:28:37.5353744Z\",\r\n \"creationTime\": \"2024-11-13T21:28:37.5353732Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2024-11-13T21:28:37.5353732Z\",\r\n \"allocationState\": \"steady\",\r\n \"allocationStateTransitionTime\": \"2024-11-13T21:29:05.3450968Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 2,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\",\r\n \"currentNodeCommunicationMode\": \"classic\"\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"noderemoteloginpool\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/noderemoteloginpool\",\r\n \"eTag\": \"0x8DDF1788ED4B75D\",\r\n \"lastModified\": \"2025-09-11T21:17:05.1153245Z\",\r\n \"creationTime\": \"2025-09-11T21:17:05.1153234Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T21:17:05.1153234Z\",\r\n \"allocationState\": \"steady\",\r\n \"allocationStateTransitionTime\": \"2025-09-11T21:17:37.2475866Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 2,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\",\r\n \"currentNodeCommunicationMode\": \"simplified\"\r\n}", "StatusCode": 200 }, { @@ -478,22 +536,22 @@ "EncodedRequestUri": "L3Bvb2xzL25vZGVyZW1vdGVsb2dpbnBvb2wvbm9kZXM/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4w", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "ecda005a-fda0-45c0-b441-5874d278df98" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "f32e4ff0-4c26-485f-8326-4dbd59cec824" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:29:08 GMT" + "Thu, 11 Sep 2025 21:17:43 GMT" ], "x-ms-client-request-id": [ - "cd77cebf-a313-43d3-8583-91c604a0e5f6" + "425984ef-217d-4a63-a09e-cdcecf4e66c0" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -507,7 +565,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "4723fa38-e9eb-4b50-af05-754180a5f5fa" + "8655c631-1b9a-4e5f-878b-e14303702f59" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -519,36 +577,36 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:29:07 GMT" + "Thu, 11 Sep 2025 21:17:43 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#nodes\",\r\n \"value\": [\r\n {\r\n \"id\": \"tvmps_49d75252a98ce4c3bc4ba180f48fc13d8d4a66c4a2d01184645a14e343d5fe8f_d\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/pools/noderemoteloginpool/nodes/tvmps_49d75252a98ce4c3bc4ba180f48fc13d8d4a66c4a2d01184645a14e343d5fe8f_d\",\r\n \"state\": \"creating\",\r\n \"schedulingState\": \"enabled\",\r\n \"stateTransitionTime\": \"2024-11-13T21:29:04.4052525Z\",\r\n \"allocationTime\": \"2024-11-13T21:29:04.4052547Z\",\r\n \"ipAddress\": \"10.0.0.5\",\r\n \"affinityId\": \"TVM:tvmps_49d75252a98ce4c3bc4ba180f48fc13d8d4a66c4a2d01184645a14e343d5fe8f_d\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"totalTasksRun\": 0,\r\n \"totalTasksSucceeded\": 0,\r\n \"runningTasksCount\": 0,\r\n \"runningTaskSlotsCount\": 0,\r\n \"isDedicated\": true,\r\n \"endpointConfiguration\": {\r\n \"inboundEndpoints\": [\r\n {\r\n \"name\": \"SSHRule.1\",\r\n \"protocol\": \"tcp\",\r\n \"publicIPAddress\": \"4.152.69.133\",\r\n \"publicFQDN\": \"dns074a13e7-23fe-40a3-b87f-e5442eab304b-azurebatch-cloudservice.eastus2.cloudapp.azure.com\",\r\n \"frontendPort\": 50001,\r\n \"backendPort\": 22\r\n }\r\n ]\r\n },\r\n \"virtualMachineInfo\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\",\r\n \"exactVersion\": \"latest\"\r\n }\r\n }\r\n },\r\n {\r\n \"id\": \"tvmps_b40627585400eb26725963c64bbf34e2e4093bcfcf832987e017df88e73af8cd_d\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/pools/noderemoteloginpool/nodes/tvmps_b40627585400eb26725963c64bbf34e2e4093bcfcf832987e017df88e73af8cd_d\",\r\n \"state\": \"creating\",\r\n \"schedulingState\": \"enabled\",\r\n \"stateTransitionTime\": \"2024-11-13T21:29:04.4052146Z\",\r\n \"allocationTime\": \"2024-11-13T21:29:04.4052236Z\",\r\n \"ipAddress\": \"10.0.0.4\",\r\n \"affinityId\": \"TVM:tvmps_b40627585400eb26725963c64bbf34e2e4093bcfcf832987e017df88e73af8cd_d\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"totalTasksRun\": 0,\r\n \"totalTasksSucceeded\": 0,\r\n \"runningTasksCount\": 0,\r\n \"runningTaskSlotsCount\": 0,\r\n \"isDedicated\": true,\r\n \"endpointConfiguration\": {\r\n \"inboundEndpoints\": [\r\n {\r\n \"name\": \"SSHRule.0\",\r\n \"protocol\": \"tcp\",\r\n \"publicIPAddress\": \"4.152.69.133\",\r\n \"publicFQDN\": \"dns074a13e7-23fe-40a3-b87f-e5442eab304b-azurebatch-cloudservice.eastus2.cloudapp.azure.com\",\r\n \"frontendPort\": 50000,\r\n \"backendPort\": 22\r\n }\r\n ]\r\n },\r\n \"virtualMachineInfo\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\",\r\n \"exactVersion\": \"latest\"\r\n }\r\n }\r\n }\r\n ]\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#nodes\",\r\n \"value\": [\r\n {\r\n \"id\": \"tvmps_41f3e3b05c8d40eb37e44a75ade2c258d51d29a96bef6fdfdda5264454e5ae63_d\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/noderemoteloginpool/nodes/tvmps_41f3e3b05c8d40eb37e44a75ade2c258d51d29a96bef6fdfdda5264454e5ae63_d\",\r\n \"state\": \"creating\",\r\n \"schedulingState\": \"enabled\",\r\n \"stateTransitionTime\": \"2025-09-11T21:17:36.9731392Z\",\r\n \"allocationTime\": \"2025-09-11T21:17:36.9731478Z\",\r\n \"ipAddress\": \"10.0.0.5\",\r\n \"affinityId\": \"TVM:tvmps_41f3e3b05c8d40eb37e44a75ade2c258d51d29a96bef6fdfdda5264454e5ae63_d\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"totalTasksRun\": 0,\r\n \"totalTasksSucceeded\": 0,\r\n \"runningTasksCount\": 0,\r\n \"runningTaskSlotsCount\": 0,\r\n \"isDedicated\": true,\r\n \"endpointConfiguration\": {\r\n \"inboundEndpoints\": [\r\n {\r\n \"name\": \"SSHRule.1\",\r\n \"protocol\": \"tcp\",\r\n \"publicIPAddress\": \"51.8.169.67\",\r\n \"publicFQDN\": \"dns44a6e98b-3a2b-4360-9fc2-85c4cc2bf4c2-azurebatch-cloudservice.eastus2.cloudapp.azure.com\",\r\n \"frontendPort\": 50001,\r\n \"backendPort\": 22\r\n }\r\n ]\r\n },\r\n \"virtualMachineInfo\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\",\r\n \"exactVersion\": \"latest\"\r\n }\r\n }\r\n },\r\n {\r\n \"id\": \"tvmps_e946d18999e0aa8469fd475f126b7a31b41a75911093b668f5cbd2f7f00ec12e_d\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/noderemoteloginpool/nodes/tvmps_e946d18999e0aa8469fd475f126b7a31b41a75911093b668f5cbd2f7f00ec12e_d\",\r\n \"state\": \"creating\",\r\n \"schedulingState\": \"enabled\",\r\n \"stateTransitionTime\": \"2025-09-11T21:17:36.9731771Z\",\r\n \"allocationTime\": \"2025-09-11T21:17:36.9731794Z\",\r\n \"ipAddress\": \"10.0.0.4\",\r\n \"affinityId\": \"TVM:tvmps_e946d18999e0aa8469fd475f126b7a31b41a75911093b668f5cbd2f7f00ec12e_d\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"totalTasksRun\": 0,\r\n \"totalTasksSucceeded\": 0,\r\n \"runningTasksCount\": 0,\r\n \"runningTaskSlotsCount\": 0,\r\n \"isDedicated\": true,\r\n \"endpointConfiguration\": {\r\n \"inboundEndpoints\": [\r\n {\r\n \"name\": \"SSHRule.0\",\r\n \"protocol\": \"tcp\",\r\n \"publicIPAddress\": \"51.8.169.67\",\r\n \"publicFQDN\": \"dns44a6e98b-3a2b-4360-9fc2-85c4cc2bf4c2-azurebatch-cloudservice.eastus2.cloudapp.azure.com\",\r\n \"frontendPort\": 50000,\r\n \"backendPort\": 22\r\n }\r\n ]\r\n },\r\n \"virtualMachineInfo\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\",\r\n \"exactVersion\": \"latest\"\r\n }\r\n }\r\n }\r\n ]\r\n}", "StatusCode": 200 }, { - "RequestUri": "/pools/noderemoteloginpool/nodes/tvmps_49d75252a98ce4c3bc4ba180f48fc13d8d4a66c4a2d01184645a14e343d5fe8f_d?api-version=2024-02-01.19.0", - "EncodedRequestUri": "L3Bvb2xzL25vZGVyZW1vdGVsb2dpbnBvb2wvbm9kZXMvdHZtcHNfNDlkNzUyNTJhOThjZTRjM2JjNGJhMTgwZjQ4ZmMxM2Q4ZDRhNjZjNGEyZDAxMTg0NjQ1YTE0ZTM0M2Q1ZmU4Zl9kP2FwaS12ZXJzaW9uPTIwMjQtMDItMDEuMTkuMA==", + "RequestUri": "/pools/noderemoteloginpool/nodes/tvmps_41f3e3b05c8d40eb37e44a75ade2c258d51d29a96bef6fdfdda5264454e5ae63_d?api-version=2024-02-01.19.0", + "EncodedRequestUri": "L3Bvb2xzL25vZGVyZW1vdGVsb2dpbnBvb2wvbm9kZXMvdHZtcHNfNDFmM2UzYjA1YzhkNDBlYjM3ZTQ0YTc1YWRlMmMyNThkNTFkMjlhOTZiZWY2ZmRmZGRhNTI2NDQ1NGU1YWU2M19kP2FwaS12ZXJzaW9uPTIwMjQtMDItMDEuMTkuMA==", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "921b1d94-a359-4a53-aeb2-b14becf06244" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "72d4feac-8e36-4cc6-b514-8a3a88026718" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:29:08 GMT" + "Thu, 11 Sep 2025 21:17:44 GMT" ], "x-ms-client-request-id": [ - "ce9c8cf2-8c0f-4f1e-a3d9-67714dffb24b" + "1ff1c11d-7cf7-4dfb-b99f-f5cf632c41cd" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -562,7 +620,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "485a1639-caea-4272-8be8-36db7c886880" + "172cdaec-18ac-4ad4-b79a-3df9c7a036c1" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -574,36 +632,36 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:29:07 GMT" + "Thu, 11 Sep 2025 21:17:44 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#nodes/@Element\",\r\n \"id\": \"tvmps_49d75252a98ce4c3bc4ba180f48fc13d8d4a66c4a2d01184645a14e343d5fe8f_d\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/pools/noderemoteloginpool/nodes/tvmps_49d75252a98ce4c3bc4ba180f48fc13d8d4a66c4a2d01184645a14e343d5fe8f_d\",\r\n \"state\": \"creating\",\r\n \"schedulingState\": \"enabled\",\r\n \"stateTransitionTime\": \"2024-11-13T21:29:04.4052525Z\",\r\n \"allocationTime\": \"2024-11-13T21:29:04.4052547Z\",\r\n \"ipAddress\": \"10.0.0.5\",\r\n \"affinityId\": \"TVM:tvmps_49d75252a98ce4c3bc4ba180f48fc13d8d4a66c4a2d01184645a14e343d5fe8f_d\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"totalTasksRun\": 0,\r\n \"totalTasksSucceeded\": 0,\r\n \"runningTasksCount\": 0,\r\n \"runningTaskSlotsCount\": 0,\r\n \"isDedicated\": true,\r\n \"endpointConfiguration\": {\r\n \"inboundEndpoints\": [\r\n {\r\n \"name\": \"SSHRule.1\",\r\n \"protocol\": \"tcp\",\r\n \"publicIPAddress\": \"4.152.69.133\",\r\n \"publicFQDN\": \"dns074a13e7-23fe-40a3-b87f-e5442eab304b-azurebatch-cloudservice.eastus2.cloudapp.azure.com\",\r\n \"frontendPort\": 50001,\r\n \"backendPort\": 22\r\n }\r\n ]\r\n },\r\n \"virtualMachineInfo\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\",\r\n \"exactVersion\": \"latest\"\r\n }\r\n }\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#nodes/@Element\",\r\n \"id\": \"tvmps_41f3e3b05c8d40eb37e44a75ade2c258d51d29a96bef6fdfdda5264454e5ae63_d\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/noderemoteloginpool/nodes/tvmps_41f3e3b05c8d40eb37e44a75ade2c258d51d29a96bef6fdfdda5264454e5ae63_d\",\r\n \"state\": \"creating\",\r\n \"schedulingState\": \"enabled\",\r\n \"stateTransitionTime\": \"2025-09-11T21:17:36.9731392Z\",\r\n \"allocationTime\": \"2025-09-11T21:17:36.9731478Z\",\r\n \"ipAddress\": \"10.0.0.5\",\r\n \"affinityId\": \"TVM:tvmps_41f3e3b05c8d40eb37e44a75ade2c258d51d29a96bef6fdfdda5264454e5ae63_d\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"totalTasksRun\": 0,\r\n \"totalTasksSucceeded\": 0,\r\n \"runningTasksCount\": 0,\r\n \"runningTaskSlotsCount\": 0,\r\n \"isDedicated\": true,\r\n \"endpointConfiguration\": {\r\n \"inboundEndpoints\": [\r\n {\r\n \"name\": \"SSHRule.1\",\r\n \"protocol\": \"tcp\",\r\n \"publicIPAddress\": \"51.8.169.67\",\r\n \"publicFQDN\": \"dns44a6e98b-3a2b-4360-9fc2-85c4cc2bf4c2-azurebatch-cloudservice.eastus2.cloudapp.azure.com\",\r\n \"frontendPort\": 50001,\r\n \"backendPort\": 22\r\n }\r\n ]\r\n },\r\n \"virtualMachineInfo\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\",\r\n \"exactVersion\": \"latest\"\r\n }\r\n }\r\n}", "StatusCode": 200 }, { - "RequestUri": "/pools/noderemoteloginpool/nodes/tvmps_49d75252a98ce4c3bc4ba180f48fc13d8d4a66c4a2d01184645a14e343d5fe8f_d/remoteloginsettings?api-version=2024-02-01.19.0", - "EncodedRequestUri": "L3Bvb2xzL25vZGVyZW1vdGVsb2dpbnBvb2wvbm9kZXMvdHZtcHNfNDlkNzUyNTJhOThjZTRjM2JjNGJhMTgwZjQ4ZmMxM2Q4ZDRhNjZjNGEyZDAxMTg0NjQ1YTE0ZTM0M2Q1ZmU4Zl9kL3JlbW90ZWxvZ2luc2V0dGluZ3M/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4w", + "RequestUri": "/pools/noderemoteloginpool/nodes/tvmps_41f3e3b05c8d40eb37e44a75ade2c258d51d29a96bef6fdfdda5264454e5ae63_d/remoteloginsettings?api-version=2024-02-01.19.0", + "EncodedRequestUri": "L3Bvb2xzL25vZGVyZW1vdGVsb2dpbnBvb2wvbm9kZXMvdHZtcHNfNDFmM2UzYjA1YzhkNDBlYjM3ZTQ0YTc1YWRlMmMyNThkNTFkMjlhOTZiZWY2ZmRmZGRhNTI2NDQ1NGU1YWU2M19kL3JlbW90ZWxvZ2luc2V0dGluZ3M/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4w", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "09e46ba7-08d7-4479-bd60-a10d257bac75" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "0ae1d06f-0722-4bf4-93bc-ff30cb0179bd" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:29:08 GMT" + "Thu, 11 Sep 2025 21:17:44 GMT" ], "x-ms-client-request-id": [ - "ce9c8cf2-8c0f-4f1e-a3d9-67714dffb24b" + "1ff1c11d-7cf7-4dfb-b99f-f5cf632c41cd" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -617,7 +675,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "48601d04-7292-4b6e-9a12-fe0df8b515a4" + "5c9ca130-dabd-4b38-94f8-a91a43c993a8" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -629,24 +687,24 @@ "3.0" ], "DataServiceId": [ - "https://dawatrouhobo.eastus2.batch.azure.com/pools/noderemoteloginpool/nodes/tvmps_49d75252a98ce4c3bc4ba180f48fc13d8d4a66c4a2d01184645a14e343d5fe8f_d/remoteloginsettings" + "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/noderemoteloginpool/nodes/tvmps_41f3e3b05c8d40eb37e44a75ade2c258d51d29a96bef6fdfdda5264454e5ae63_d/remoteloginsettings" ], "Date": [ - "Wed, 13 Nov 2024 21:29:07 GMT" + "Thu, 11 Sep 2025 21:17:44 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#Microsoft.Azure.Batch.Protocol.Entities.RemoteLoginSettings\",\r\n \"remoteLoginIPAddress\": \"4.152.69.133\",\r\n \"remoteLoginPort\": 50001\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#Microsoft.Azure.Batch.Protocol.Entities.RemoteLoginSettings\",\r\n \"remoteLoginIPAddress\": \"51.8.169.67\",\r\n \"remoteLoginPort\": 50001\r\n}", "StatusCode": 200 } ], "Names": {}, "Variables": { - "SubscriptionId": "21abd678-18c5-4660-9fdd-8c5ba6b6fe1f", - "AZURE_BATCH_ACCOUNT": "dawatrouhobo", - "AZURE_BATCH_ENDPOINT": "https://dawatrouhobo.eastus2.batch.azure.com", - "AZURE_BATCH_RESOURCE_GROUP": "dawatrou-rg" + "SubscriptionId": "94bd7ded-68b4-4ffa-82a5-37ac72caa2ec", + "AZURE_BATCH_ACCOUNT": "dotnotsdkbatchaccount2", + "AZURE_BATCH_ENDPOINT": "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com", + "AZURE_BATCH_RESOURCE_GROUP": "automation" } } \ No newline at end of file diff --git a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.ComputeNodeTests/TestRebootAndReimageComputeNode.json b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.ComputeNodeTests/TestRebootAndReimageComputeNode.json index 55f2ae511e94..76fdf27e7b99 100644 --- a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.ComputeNodeTests/TestRebootAndReimageComputeNode.json +++ b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.ComputeNodeTests/TestRebootAndReimageComputeNode.json @@ -5,45 +5,625 @@ "EncodedRequestUri": "L3Bvb2xzP2FwaS12ZXJzaW9uPTIwMjQtMDItMDEuMTkuMA==", "RequestMethod": "POST", "RequestHeaders": { + "Accept-Language": [ + "en-US" + ], + "client-request-id": [ + "0feba0d4-6a5a-4901-b58e-cc39f95ca4d4" + ], + "ocp-date": [ + "Thu, 11 Sep 2025 21:17:45 GMT" + ], + "User-Agent": [ + "FxVersion/8.0.2025.41914", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.26100", + "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", + "AzurePowershell/Az1.0.0" + ], + "Content-Type": [ + "application/json; odata=minimalmetadata; charset=utf-8" + ], + "Content-Length": [ + "547" + ] + }, + "RequestBody": "{\r\n \"id\": \"rebootandreimagenodepool\",\r\n \"vmSize\": \"STANDARD_D2S_V3\",\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"zonal\"\r\n }\r\n },\r\n \"targetDedicatedNodes\": 2,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableInterNodeCommunication\": true,\r\n \"taskSlotsPerNode\": 1,\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", + "ResponseHeaders": { + "Transfer-Encoding": [ + "chunked" + ], + "ETag": [ + "0x8DDF178A6EBD6D2" + ], + "Location": [ + "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/rebootandreimagenodepool" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "request-id": [ + "d0cb1977-2b4c-4d93-a151-20bd9d82861e" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "DataServiceVersion": [ + "3.0" + ], + "DataServiceId": [ + "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/rebootandreimagenodepool" + ], + "Date": [ + "Thu, 11 Sep 2025 21:17:44 GMT" + ], + "Last-Modified": [ + "Thu, 11 Sep 2025 21:17:45 GMT" + ] + }, + "ResponseBody": "", + "StatusCode": 201 + }, + { + "RequestUri": "/pools/rebootandreimagenodepool?api-version=2024-02-01.19.0", + "EncodedRequestUri": "L3Bvb2xzL3JlYm9vdGFuZHJlaW1hZ2Vub2RlcG9vbD9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjA=", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept-Language": [ + "en-US" + ], + "client-request-id": [ + "1b53be6c-50ae-43e2-94d0-3507fd72f95e" + ], + "ocp-date": [ + "Thu, 11 Sep 2025 21:17:45 GMT" + ], + "User-Agent": [ + "FxVersion/8.0.2025.41914", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.26100", + "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", + "AzurePowershell/Az1.0.0" + ] + }, + "RequestBody": "", + "ResponseHeaders": { + "Transfer-Encoding": [ + "chunked" + ], + "ETag": [ + "0x8DDF178A6EBD6D2" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "request-id": [ + "ba4891cb-6071-4266-a2d6-220daf31ae6d" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "DataServiceVersion": [ + "3.0" + ], + "Date": [ + "Thu, 11 Sep 2025 21:17:45 GMT" + ], + "Content-Type": [ + "application/json; odata=minimalmetadata" + ], + "Last-Modified": [ + "Thu, 11 Sep 2025 21:17:45 GMT" + ] + }, + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"rebootandreimagenodepool\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/rebootandreimagenodepool\",\r\n \"eTag\": \"0x8DDF178A6EBD6D2\",\r\n \"lastModified\": \"2025-09-11T21:17:45.532181Z\",\r\n \"creationTime\": \"2025-09-11T21:17:45.5321801Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T21:17:45.5321801Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2025-09-11T21:17:45.532181Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/pools/rebootandreimagenodepool?api-version=2024-02-01.19.0", + "EncodedRequestUri": "L3Bvb2xzL3JlYm9vdGFuZHJlaW1hZ2Vub2RlcG9vbD9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjA=", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept-Language": [ + "en-US" + ], + "client-request-id": [ + "033ea035-06d4-49c5-87b9-4ddc2c9e3bf3" + ], + "ocp-date": [ + "Thu, 11 Sep 2025 21:17:50 GMT" + ], + "User-Agent": [ + "FxVersion/8.0.2025.41914", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.26100", + "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", + "AzurePowershell/Az1.0.0" + ] + }, + "RequestBody": "", + "ResponseHeaders": { + "Transfer-Encoding": [ + "chunked" + ], + "ETag": [ + "0x8DDF178A6EBD6D2" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "request-id": [ + "0c157ec8-1b56-47e9-9487-a405b1cf64f5" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "DataServiceVersion": [ + "3.0" + ], + "Date": [ + "Thu, 11 Sep 2025 21:17:50 GMT" + ], + "Content-Type": [ + "application/json; odata=minimalmetadata" + ], + "Last-Modified": [ + "Thu, 11 Sep 2025 21:17:45 GMT" + ] + }, + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"rebootandreimagenodepool\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/rebootandreimagenodepool\",\r\n \"eTag\": \"0x8DDF178A6EBD6D2\",\r\n \"lastModified\": \"2025-09-11T21:17:45.532181Z\",\r\n \"creationTime\": \"2025-09-11T21:17:45.5321801Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T21:17:45.5321801Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2025-09-11T21:17:45.532181Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/pools/rebootandreimagenodepool?api-version=2024-02-01.19.0", + "EncodedRequestUri": "L3Bvb2xzL3JlYm9vdGFuZHJlaW1hZ2Vub2RlcG9vbD9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjA=", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept-Language": [ + "en-US" + ], "client-request-id": [ - "522b81a2-0a53-4b39-a23e-50b99047c204" + "c0a590d1-4543-43e6-af94-6f03cc6b6a3b" + ], + "ocp-date": [ + "Thu, 11 Sep 2025 21:17:55 GMT" + ], + "User-Agent": [ + "FxVersion/8.0.2025.41914", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.26100", + "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", + "AzurePowershell/Az1.0.0" + ] + }, + "RequestBody": "", + "ResponseHeaders": { + "Transfer-Encoding": [ + "chunked" + ], + "ETag": [ + "0x8DDF178A6EBD6D2" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "request-id": [ + "ad583653-ea06-43af-b09a-2083212b0f1c" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "DataServiceVersion": [ + "3.0" + ], + "Date": [ + "Thu, 11 Sep 2025 21:17:55 GMT" + ], + "Content-Type": [ + "application/json; odata=minimalmetadata" + ], + "Last-Modified": [ + "Thu, 11 Sep 2025 21:17:45 GMT" + ] + }, + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"rebootandreimagenodepool\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/rebootandreimagenodepool\",\r\n \"eTag\": \"0x8DDF178A6EBD6D2\",\r\n \"lastModified\": \"2025-09-11T21:17:45.532181Z\",\r\n \"creationTime\": \"2025-09-11T21:17:45.5321801Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T21:17:45.5321801Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2025-09-11T21:17:45.532181Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/pools/rebootandreimagenodepool?api-version=2024-02-01.19.0", + "EncodedRequestUri": "L3Bvb2xzL3JlYm9vdGFuZHJlaW1hZ2Vub2RlcG9vbD9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjA=", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept-Language": [ + "en-US" + ], + "client-request-id": [ + "49f4d3c2-a62e-4c25-b195-a1ae1bca9ba3" + ], + "ocp-date": [ + "Thu, 11 Sep 2025 21:18:01 GMT" + ], + "User-Agent": [ + "FxVersion/8.0.2025.41914", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.26100", + "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", + "AzurePowershell/Az1.0.0" + ] + }, + "RequestBody": "", + "ResponseHeaders": { + "Transfer-Encoding": [ + "chunked" + ], + "ETag": [ + "0x8DDF178A6EBD6D2" ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "request-id": [ + "7e1e44b9-2dbe-4b96-b1be-e5046ebed5b3" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "DataServiceVersion": [ + "3.0" + ], + "Date": [ + "Thu, 11 Sep 2025 21:18:00 GMT" + ], + "Content-Type": [ + "application/json; odata=minimalmetadata" + ], + "Last-Modified": [ + "Thu, 11 Sep 2025 21:17:45 GMT" + ] + }, + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"rebootandreimagenodepool\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/rebootandreimagenodepool\",\r\n \"eTag\": \"0x8DDF178A6EBD6D2\",\r\n \"lastModified\": \"2025-09-11T21:17:45.532181Z\",\r\n \"creationTime\": \"2025-09-11T21:17:45.5321801Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T21:17:45.5321801Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2025-09-11T21:17:45.532181Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/pools/rebootandreimagenodepool?api-version=2024-02-01.19.0", + "EncodedRequestUri": "L3Bvb2xzL3JlYm9vdGFuZHJlaW1hZ2Vub2RlcG9vbD9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjA=", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept-Language": [ + "en-US" + ], + "client-request-id": [ + "bfda695e-0723-467e-8ac6-a2d30b1406fc" + ], + "ocp-date": [ + "Thu, 11 Sep 2025 21:18:06 GMT" + ], + "User-Agent": [ + "FxVersion/8.0.2025.41914", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.26100", + "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", + "AzurePowershell/Az1.0.0" + ] + }, + "RequestBody": "", + "ResponseHeaders": { + "Transfer-Encoding": [ + "chunked" + ], + "ETag": [ + "0x8DDF178A6EBD6D2" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "request-id": [ + "ccdc35c3-7cc3-4b04-a6d7-14bc7cc2d459" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "DataServiceVersion": [ + "3.0" + ], + "Date": [ + "Thu, 11 Sep 2025 21:18:05 GMT" + ], + "Content-Type": [ + "application/json; odata=minimalmetadata" + ], + "Last-Modified": [ + "Thu, 11 Sep 2025 21:17:45 GMT" + ] + }, + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"rebootandreimagenodepool\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/rebootandreimagenodepool\",\r\n \"eTag\": \"0x8DDF178A6EBD6D2\",\r\n \"lastModified\": \"2025-09-11T21:17:45.532181Z\",\r\n \"creationTime\": \"2025-09-11T21:17:45.5321801Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T21:17:45.5321801Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2025-09-11T21:17:45.532181Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/pools/rebootandreimagenodepool?api-version=2024-02-01.19.0", + "EncodedRequestUri": "L3Bvb2xzL3JlYm9vdGFuZHJlaW1hZ2Vub2RlcG9vbD9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjA=", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept-Language": [ + "en-US" + ], + "client-request-id": [ + "c091b16f-3ae0-4649-9748-0ed84a048441" + ], + "ocp-date": [ + "Thu, 11 Sep 2025 21:18:11 GMT" + ], + "User-Agent": [ + "FxVersion/8.0.2025.41914", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.26100", + "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", + "AzurePowershell/Az1.0.0" + ] + }, + "RequestBody": "", + "ResponseHeaders": { + "Transfer-Encoding": [ + "chunked" + ], + "ETag": [ + "0x8DDF178A6EBD6D2" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "request-id": [ + "2f5daf04-c9b4-434c-8ffa-e62f0e039798" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "DataServiceVersion": [ + "3.0" + ], + "Date": [ + "Thu, 11 Sep 2025 21:18:10 GMT" + ], + "Content-Type": [ + "application/json; odata=minimalmetadata" + ], + "Last-Modified": [ + "Thu, 11 Sep 2025 21:17:45 GMT" + ] + }, + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"rebootandreimagenodepool\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/rebootandreimagenodepool\",\r\n \"eTag\": \"0x8DDF178A6EBD6D2\",\r\n \"lastModified\": \"2025-09-11T21:17:45.532181Z\",\r\n \"creationTime\": \"2025-09-11T21:17:45.5321801Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T21:17:45.5321801Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2025-09-11T21:17:45.532181Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/pools/rebootandreimagenodepool?api-version=2024-02-01.19.0", + "EncodedRequestUri": "L3Bvb2xzL3JlYm9vdGFuZHJlaW1hZ2Vub2RlcG9vbD9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjA=", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept-Language": [ + "en-US" + ], + "client-request-id": [ + "512a8f84-5dc0-4bfd-9d9b-4ac3488c729d" + ], + "ocp-date": [ + "Thu, 11 Sep 2025 21:18:16 GMT" + ], + "User-Agent": [ + "FxVersion/8.0.2025.41914", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.26100", + "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", + "AzurePowershell/Az1.0.0" + ] + }, + "RequestBody": "", + "ResponseHeaders": { + "Transfer-Encoding": [ + "chunked" + ], + "ETag": [ + "0x8DDF178A6EBD6D2" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "request-id": [ + "bb383c51-f5ef-4bc8-8342-4ffc965b3185" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "DataServiceVersion": [ + "3.0" + ], + "Date": [ + "Thu, 11 Sep 2025 21:18:16 GMT" + ], + "Content-Type": [ + "application/json; odata=minimalmetadata" + ], + "Last-Modified": [ + "Thu, 11 Sep 2025 21:17:45 GMT" + ] + }, + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"rebootandreimagenodepool\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/rebootandreimagenodepool\",\r\n \"eTag\": \"0x8DDF178A6EBD6D2\",\r\n \"lastModified\": \"2025-09-11T21:17:45.532181Z\",\r\n \"creationTime\": \"2025-09-11T21:17:45.5321801Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T21:17:45.5321801Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2025-09-11T21:17:45.532181Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/pools/rebootandreimagenodepool?api-version=2024-02-01.19.0", + "EncodedRequestUri": "L3Bvb2xzL3JlYm9vdGFuZHJlaW1hZ2Vub2RlcG9vbD9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjA=", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept-Language": [ + "en-US" + ], + "client-request-id": [ + "3b4c1739-f5f0-426a-9a19-22b08d400051" + ], + "ocp-date": [ + "Thu, 11 Sep 2025 21:18:21 GMT" + ], + "User-Agent": [ + "FxVersion/8.0.2025.41914", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.26100", + "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", + "AzurePowershell/Az1.0.0" + ] + }, + "RequestBody": "", + "ResponseHeaders": { + "Transfer-Encoding": [ + "chunked" + ], + "ETag": [ + "0x8DDF178A6EBD6D2" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "request-id": [ + "02c77323-9a25-4e7e-ad67-2a289f0c5a6c" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "DataServiceVersion": [ + "3.0" + ], + "Date": [ + "Thu, 11 Sep 2025 21:18:21 GMT" + ], + "Content-Type": [ + "application/json; odata=minimalmetadata" + ], + "Last-Modified": [ + "Thu, 11 Sep 2025 21:17:45 GMT" + ] + }, + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"rebootandreimagenodepool\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/rebootandreimagenodepool\",\r\n \"eTag\": \"0x8DDF178A6EBD6D2\",\r\n \"lastModified\": \"2025-09-11T21:17:45.532181Z\",\r\n \"creationTime\": \"2025-09-11T21:17:45.5321801Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T21:17:45.5321801Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2025-09-11T21:17:45.532181Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/pools/rebootandreimagenodepool?api-version=2024-02-01.19.0", + "EncodedRequestUri": "L3Bvb2xzL3JlYm9vdGFuZHJlaW1hZ2Vub2RlcG9vbD9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjA=", + "RequestMethod": "GET", + "RequestHeaders": { "Accept-Language": [ "en-US" ], + "client-request-id": [ + "3066d365-b3d4-4fec-8437-2129111e8729" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:29:08 GMT" + "Thu, 11 Sep 2025 21:18:26 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" + ] + }, + "RequestBody": "", + "ResponseHeaders": { + "Transfer-Encoding": [ + "chunked" + ], + "ETag": [ + "0x8DDF178A6EBD6D2" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "request-id": [ + "b5d1cb1a-8e5f-4897-a7fc-5e9bee87c3a2" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "DataServiceVersion": [ + "3.0" + ], + "Date": [ + "Thu, 11 Sep 2025 21:18:26 GMT" ], "Content-Type": [ - "application/json; odata=minimalmetadata; charset=utf-8" + "application/json; odata=minimalmetadata" ], - "Content-Length": [ - "547" + "Last-Modified": [ + "Thu, 11 Sep 2025 21:17:45 GMT" ] }, - "RequestBody": "{\r\n \"id\": \"rebootandreimagenodepool\",\r\n \"vmSize\": \"STANDARD_D2S_V3\",\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"zonal\"\r\n }\r\n },\r\n \"targetDedicatedNodes\": 2,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableInterNodeCommunication\": true,\r\n \"taskSlotsPerNode\": 1,\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"rebootandreimagenodepool\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/rebootandreimagenodepool\",\r\n \"eTag\": \"0x8DDF178A6EBD6D2\",\r\n \"lastModified\": \"2025-09-11T21:17:45.532181Z\",\r\n \"creationTime\": \"2025-09-11T21:17:45.5321801Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T21:17:45.5321801Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2025-09-11T21:17:45.532181Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/pools/rebootandreimagenodepool?api-version=2024-02-01.19.0", + "EncodedRequestUri": "L3Bvb2xzL3JlYm9vdGFuZHJlaW1hZ2Vub2RlcG9vbD9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjA=", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept-Language": [ + "en-US" + ], + "client-request-id": [ + "5206b2cd-37d6-49ea-8904-8daa04d6b601" + ], + "ocp-date": [ + "Thu, 11 Sep 2025 21:18:31 GMT" + ], + "User-Agent": [ + "FxVersion/8.0.2025.41914", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.26100", + "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", + "AzurePowershell/Az1.0.0" + ] + }, + "RequestBody": "", "ResponseHeaders": { "Transfer-Encoding": [ "chunked" ], "ETag": [ - "0x8DD042A359146FE" - ], - "Location": [ - "https://dawatrouhobo.eastus2.batch.azure.com/pools/rebootandreimagenodepool" + "0x8DDF178A6EBD6D2" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "33d95119-6a76-41b5-9495-2e06e6f73a25" + "36754d6d-829a-4110-90b8-55dc66a725e3" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -54,37 +634,37 @@ "DataServiceVersion": [ "3.0" ], - "DataServiceId": [ - "https://dawatrouhobo.eastus2.batch.azure.com/pools/rebootandreimagenodepool" - ], "Date": [ - "Wed, 13 Nov 2024 21:29:08 GMT" + "Thu, 11 Sep 2025 21:18:31 GMT" + ], + "Content-Type": [ + "application/json; odata=minimalmetadata" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:29:09 GMT" + "Thu, 11 Sep 2025 21:17:45 GMT" ] }, - "ResponseBody": "", - "StatusCode": 201 + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"rebootandreimagenodepool\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/rebootandreimagenodepool\",\r\n \"eTag\": \"0x8DDF178A6EBD6D2\",\r\n \"lastModified\": \"2025-09-11T21:17:45.532181Z\",\r\n \"creationTime\": \"2025-09-11T21:17:45.5321801Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T21:17:45.5321801Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2025-09-11T21:17:45.532181Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", + "StatusCode": 200 }, { "RequestUri": "/pools/rebootandreimagenodepool?api-version=2024-02-01.19.0", "EncodedRequestUri": "L3Bvb2xzL3JlYm9vdGFuZHJlaW1hZ2Vub2RlcG9vbD9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjA=", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "f6a10826-a6e1-4b4b-be96-982894498c98" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "81e65d27-e0d7-40ec-a547-a56ffabbee32" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:29:09 GMT" + "Thu, 11 Sep 2025 21:18:37 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -95,13 +675,13 @@ "chunked" ], "ETag": [ - "0x8DD042A359146FE" + "0x8DDF178A6EBD6D2" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "06ae07b6-3825-4677-acf5-735656d506d4" + "3b2facf7-fb1d-4f73-8f7a-eff6468d1670" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -113,16 +693,16 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:29:08 GMT" + "Thu, 11 Sep 2025 21:18:36 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:29:09 GMT" + "Thu, 11 Sep 2025 21:17:45 GMT" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"rebootandreimagenodepool\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/pools/rebootandreimagenodepool\",\r\n \"eTag\": \"0x8DD042A359146FE\",\r\n \"lastModified\": \"2024-11-13T21:29:09.0329342Z\",\r\n \"creationTime\": \"2024-11-13T21:29:09.0329317Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2024-11-13T21:29:09.0329317Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2024-11-13T21:29:09.0329344Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"rebootandreimagenodepool\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/rebootandreimagenodepool\",\r\n \"eTag\": \"0x8DDF178A6EBD6D2\",\r\n \"lastModified\": \"2025-09-11T21:17:45.532181Z\",\r\n \"creationTime\": \"2025-09-11T21:17:45.5321801Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T21:17:45.5321801Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2025-09-11T21:17:45.532181Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", "StatusCode": 200 }, { @@ -130,19 +710,19 @@ "EncodedRequestUri": "L3Bvb2xzL3JlYm9vdGFuZHJlaW1hZ2Vub2RlcG9vbD9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjA=", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "6693e446-182f-4723-8ec7-a9682cf7f30e" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "24e4de8c-5f76-4d6d-9b2e-9180606d1806" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:29:14 GMT" + "Thu, 11 Sep 2025 21:18:42 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -153,13 +733,13 @@ "chunked" ], "ETag": [ - "0x8DD042A359146FE" + "0x8DDF178A6EBD6D2" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "03cf9bd9-442d-43ad-a264-0eb149a9a636" + "679fe4f2-407a-4354-a597-438775383bc5" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -171,16 +751,16 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:29:14 GMT" + "Thu, 11 Sep 2025 21:18:41 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:29:09 GMT" + "Thu, 11 Sep 2025 21:17:45 GMT" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"rebootandreimagenodepool\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/pools/rebootandreimagenodepool\",\r\n \"eTag\": \"0x8DD042A359146FE\",\r\n \"lastModified\": \"2024-11-13T21:29:09.0329342Z\",\r\n \"creationTime\": \"2024-11-13T21:29:09.0329317Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2024-11-13T21:29:09.0329317Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2024-11-13T21:29:09.0329344Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"rebootandreimagenodepool\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/rebootandreimagenodepool\",\r\n \"eTag\": \"0x8DDF178A6EBD6D2\",\r\n \"lastModified\": \"2025-09-11T21:17:45.532181Z\",\r\n \"creationTime\": \"2025-09-11T21:17:45.5321801Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T21:17:45.5321801Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2025-09-11T21:17:45.532181Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", "StatusCode": 200 }, { @@ -188,19 +768,19 @@ "EncodedRequestUri": "L3Bvb2xzL3JlYm9vdGFuZHJlaW1hZ2Vub2RlcG9vbD9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjA=", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "8e20be42-684b-479c-9801-cfe617aa9e1b" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "50672a25-304c-42fa-9271-c303d0c0d22a" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:29:19 GMT" + "Thu, 11 Sep 2025 21:18:47 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -211,13 +791,13 @@ "chunked" ], "ETag": [ - "0x8DD042A359146FE" + "0x8DDF178A6EBD6D2" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "c3ea77ad-56da-4303-bbbe-dbaf71fd8db2" + "3f984a29-0142-4b09-8789-753f3ce7e147" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -229,16 +809,16 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:29:18 GMT" + "Thu, 11 Sep 2025 21:18:47 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:29:09 GMT" + "Thu, 11 Sep 2025 21:17:45 GMT" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"rebootandreimagenodepool\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/pools/rebootandreimagenodepool\",\r\n \"eTag\": \"0x8DD042A359146FE\",\r\n \"lastModified\": \"2024-11-13T21:29:09.0329342Z\",\r\n \"creationTime\": \"2024-11-13T21:29:09.0329317Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2024-11-13T21:29:09.0329317Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2024-11-13T21:29:09.0329344Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"rebootandreimagenodepool\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/rebootandreimagenodepool\",\r\n \"eTag\": \"0x8DDF178A6EBD6D2\",\r\n \"lastModified\": \"2025-09-11T21:17:45.532181Z\",\r\n \"creationTime\": \"2025-09-11T21:17:45.5321801Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T21:17:45.5321801Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2025-09-11T21:17:45.532181Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", "StatusCode": 200 }, { @@ -246,19 +826,19 @@ "EncodedRequestUri": "L3Bvb2xzL3JlYm9vdGFuZHJlaW1hZ2Vub2RlcG9vbD9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjA=", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "55836229-6ed8-4855-af4b-8767323ef963" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "42b0776d-5f3a-421e-b7e9-28e0e86de1e6" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:29:24 GMT" + "Thu, 11 Sep 2025 21:18:52 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -269,13 +849,13 @@ "chunked" ], "ETag": [ - "0x8DD042A359146FE" + "0x8DDF178A6EBD6D2" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "12173cfc-2b3e-4618-8405-d185b418dcec" + "3b62be55-786a-42d5-9136-fd8ff9da8e73" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -287,16 +867,16 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:29:24 GMT" + "Thu, 11 Sep 2025 21:18:52 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:29:09 GMT" + "Thu, 11 Sep 2025 21:17:45 GMT" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"rebootandreimagenodepool\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/pools/rebootandreimagenodepool\",\r\n \"eTag\": \"0x8DD042A359146FE\",\r\n \"lastModified\": \"2024-11-13T21:29:09.0329342Z\",\r\n \"creationTime\": \"2024-11-13T21:29:09.0329317Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2024-11-13T21:29:09.0329317Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2024-11-13T21:29:09.0329344Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"rebootandreimagenodepool\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/rebootandreimagenodepool\",\r\n \"eTag\": \"0x8DDF178A6EBD6D2\",\r\n \"lastModified\": \"2025-09-11T21:17:45.532181Z\",\r\n \"creationTime\": \"2025-09-11T21:17:45.5321801Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T21:17:45.5321801Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2025-09-11T21:17:45.532181Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", "StatusCode": 200 }, { @@ -304,19 +884,19 @@ "EncodedRequestUri": "L3Bvb2xzL3JlYm9vdGFuZHJlaW1hZ2Vub2RlcG9vbD9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjA=", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "dbdd9e7c-be74-49ca-8e06-f670daf12cc7" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "40770cb3-cf01-458c-9393-16616f1222ef" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:29:29 GMT" + "Thu, 11 Sep 2025 21:18:57 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -327,13 +907,13 @@ "chunked" ], "ETag": [ - "0x8DD042A359146FE" + "0x8DDF178A6EBD6D2" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "0bf8433c-e374-41ef-a92c-422867568828" + "e837f30b-6105-4c23-acc1-034bcd318c7d" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -345,16 +925,16 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:29:28 GMT" + "Thu, 11 Sep 2025 21:18:57 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:29:09 GMT" + "Thu, 11 Sep 2025 21:17:45 GMT" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"rebootandreimagenodepool\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/pools/rebootandreimagenodepool\",\r\n \"eTag\": \"0x8DD042A359146FE\",\r\n \"lastModified\": \"2024-11-13T21:29:09.0329342Z\",\r\n \"creationTime\": \"2024-11-13T21:29:09.0329317Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2024-11-13T21:29:09.0329317Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2024-11-13T21:29:09.0329344Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"rebootandreimagenodepool\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/rebootandreimagenodepool\",\r\n \"eTag\": \"0x8DDF178A6EBD6D2\",\r\n \"lastModified\": \"2025-09-11T21:17:45.532181Z\",\r\n \"creationTime\": \"2025-09-11T21:17:45.5321801Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T21:17:45.5321801Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2025-09-11T21:17:45.532181Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", "StatusCode": 200 }, { @@ -362,19 +942,19 @@ "EncodedRequestUri": "L3Bvb2xzL3JlYm9vdGFuZHJlaW1hZ2Vub2RlcG9vbD9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjA=", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "8ff79201-bb73-4a93-8a79-8e6508fe26c2" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "02d608e5-b741-441f-82e7-544825945f2f" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:29:34 GMT" + "Thu, 11 Sep 2025 21:19:02 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -385,13 +965,13 @@ "chunked" ], "ETag": [ - "0x8DD042A359146FE" + "0x8DDF178A6EBD6D2" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "949ba0db-5ee3-40fd-846e-a5029178d364" + "51a7cc2f-2785-4e90-a621-fbd71ee0d851" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -403,16 +983,16 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:29:33 GMT" + "Thu, 11 Sep 2025 21:19:02 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:29:09 GMT" + "Thu, 11 Sep 2025 21:17:45 GMT" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"rebootandreimagenodepool\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/pools/rebootandreimagenodepool\",\r\n \"eTag\": \"0x8DD042A359146FE\",\r\n \"lastModified\": \"2024-11-13T21:29:09.0329342Z\",\r\n \"creationTime\": \"2024-11-13T21:29:09.0329317Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2024-11-13T21:29:09.0329317Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2024-11-13T21:29:09.0329344Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"rebootandreimagenodepool\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/rebootandreimagenodepool\",\r\n \"eTag\": \"0x8DDF178A6EBD6D2\",\r\n \"lastModified\": \"2025-09-11T21:17:45.532181Z\",\r\n \"creationTime\": \"2025-09-11T21:17:45.5321801Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T21:17:45.5321801Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2025-09-11T21:17:45.532181Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", "StatusCode": 200 }, { @@ -420,19 +1000,19 @@ "EncodedRequestUri": "L3Bvb2xzL3JlYm9vdGFuZHJlaW1hZ2Vub2RlcG9vbD9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjA=", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "e6d0d97a-4d3a-4965-8b44-e0b544557ea3" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "7d8e0514-04f9-4f1e-9918-68991a624b2c" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:29:39 GMT" + "Thu, 11 Sep 2025 21:19:07 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -443,13 +1023,13 @@ "chunked" ], "ETag": [ - "0x8DD042A359146FE" + "0x8DDF178A6EBD6D2" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "d89a62d1-e877-4b22-8a41-d2ee1c6bb5a6" + "f93f2c88-c630-41ed-9665-05944c955d01" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -461,16 +1041,16 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:29:39 GMT" + "Thu, 11 Sep 2025 21:19:07 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:29:09 GMT" + "Thu, 11 Sep 2025 21:17:45 GMT" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"rebootandreimagenodepool\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/pools/rebootandreimagenodepool\",\r\n \"eTag\": \"0x8DD042A359146FE\",\r\n \"lastModified\": \"2024-11-13T21:29:09.0329342Z\",\r\n \"creationTime\": \"2024-11-13T21:29:09.0329317Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2024-11-13T21:29:09.0329317Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2024-11-13T21:29:09.0329344Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"rebootandreimagenodepool\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/rebootandreimagenodepool\",\r\n \"eTag\": \"0x8DDF178A6EBD6D2\",\r\n \"lastModified\": \"2025-09-11T21:17:45.532181Z\",\r\n \"creationTime\": \"2025-09-11T21:17:45.5321801Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T21:17:45.5321801Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2025-09-11T21:17:45.532181Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", "StatusCode": 200 }, { @@ -478,19 +1058,19 @@ "EncodedRequestUri": "L3Bvb2xzL3JlYm9vdGFuZHJlaW1hZ2Vub2RlcG9vbD9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjA=", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "8857be67-2b2b-40db-b46d-d45f985fb766" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "9da52f22-10cf-45a9-9962-901aa92dfa22" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:29:44 GMT" + "Thu, 11 Sep 2025 21:19:13 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -501,13 +1081,13 @@ "chunked" ], "ETag": [ - "0x8DD042A359146FE" + "0x8DDF178A6EBD6D2" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "56cd8811-74f3-403e-bb63-1469a2bc86a6" + "1b162990-777a-48b5-846b-1e8379bd7d24" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -519,39 +1099,36 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:29:44 GMT" + "Thu, 11 Sep 2025 21:19:12 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:29:09 GMT" + "Thu, 11 Sep 2025 21:17:45 GMT" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"rebootandreimagenodepool\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/pools/rebootandreimagenodepool\",\r\n \"eTag\": \"0x8DD042A359146FE\",\r\n \"lastModified\": \"2024-11-13T21:29:09.0329342Z\",\r\n \"creationTime\": \"2024-11-13T21:29:09.0329317Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2024-11-13T21:29:09.0329317Z\",\r\n \"allocationState\": \"steady\",\r\n \"allocationStateTransitionTime\": \"2024-11-13T21:29:41.7740076Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 2,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\",\r\n \"currentNodeCommunicationMode\": \"classic\"\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"rebootandreimagenodepool\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/rebootandreimagenodepool\",\r\n \"eTag\": \"0x8DDF178A6EBD6D2\",\r\n \"lastModified\": \"2025-09-11T21:17:45.532181Z\",\r\n \"creationTime\": \"2025-09-11T21:17:45.5321801Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T21:17:45.5321801Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2025-09-11T21:17:45.532181Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", "StatusCode": 200 }, { - "RequestUri": "/pools/rebootandreimagenodepool/nodes?api-version=2024-02-01.19.0", - "EncodedRequestUri": "L3Bvb2xzL3JlYm9vdGFuZHJlaW1hZ2Vub2RlcG9vbC9ub2Rlcz9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjA=", + "RequestUri": "/pools/rebootandreimagenodepool?api-version=2024-02-01.19.0", + "EncodedRequestUri": "L3Bvb2xzL3JlYm9vdGFuZHJlaW1hZ2Vub2RlcG9vbD9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjA=", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "5020161e-9047-4b1b-9e5d-4fcc6f68b270" - ], "Accept-Language": [ "en-US" ], - "ocp-date": [ - "Wed, 13 Nov 2024 21:29:45 GMT" + "client-request-id": [ + "a8d00a11-254c-48e2-a4f4-3eb0d9b37caf" ], - "x-ms-client-request-id": [ - "ab7882e2-5e6c-481a-9840-3f3d798192eb" + "ocp-date": [ + "Thu, 11 Sep 2025 21:19:18 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -561,11 +1138,14 @@ "Transfer-Encoding": [ "chunked" ], + "ETag": [ + "0x8DDF178A6EBD6D2" + ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "b698ac7b-838f-4b00-8976-82a80fbeebee" + "6d0dd300-0935-4d17-8124-d9404d85f3a1" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -577,36 +1157,36 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:29:44 GMT" + "Thu, 11 Sep 2025 21:19:17 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" + ], + "Last-Modified": [ + "Thu, 11 Sep 2025 21:17:45 GMT" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#nodes\",\r\n \"value\": [\r\n {\r\n \"id\": \"tvmps_127980c3f1489d6c3d5f63f5d646d1986030e7b2b8429cc58378effd2b7c87b3_d\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/pools/rebootandreimagenodepool/nodes/tvmps_127980c3f1489d6c3d5f63f5d646d1986030e7b2b8429cc58378effd2b7c87b3_d\",\r\n \"state\": \"creating\",\r\n \"schedulingState\": \"enabled\",\r\n \"stateTransitionTime\": \"2024-11-13T21:29:41.3682528Z\",\r\n \"allocationTime\": \"2024-11-13T21:29:41.3682552Z\",\r\n \"ipAddress\": \"10.0.0.4\",\r\n \"affinityId\": \"TVM:tvmps_127980c3f1489d6c3d5f63f5d646d1986030e7b2b8429cc58378effd2b7c87b3_d\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"totalTasksRun\": 0,\r\n \"totalTasksSucceeded\": 0,\r\n \"runningTasksCount\": 0,\r\n \"runningTaskSlotsCount\": 0,\r\n \"isDedicated\": true,\r\n \"endpointConfiguration\": {\r\n \"inboundEndpoints\": [\r\n {\r\n \"name\": \"SSHRule.0\",\r\n \"protocol\": \"tcp\",\r\n \"publicIPAddress\": \"4.152.130.106\",\r\n \"publicFQDN\": \"dnsfdb5a251-50dd-414f-9ce5-846a26202647-azurebatch-cloudservice.eastus2.cloudapp.azure.com\",\r\n \"frontendPort\": 50000,\r\n \"backendPort\": 22\r\n }\r\n ]\r\n },\r\n \"virtualMachineInfo\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\",\r\n \"exactVersion\": \"latest\"\r\n }\r\n }\r\n },\r\n {\r\n \"id\": \"tvmps_c144f349d08f5f8d2077b603c2a1f8a0ac845e9c94a9d81acc2b78f973467702_d\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/pools/rebootandreimagenodepool/nodes/tvmps_c144f349d08f5f8d2077b603c2a1f8a0ac845e9c94a9d81acc2b78f973467702_d\",\r\n \"state\": \"creating\",\r\n \"schedulingState\": \"enabled\",\r\n \"stateTransitionTime\": \"2024-11-13T21:29:41.3682181Z\",\r\n \"allocationTime\": \"2024-11-13T21:29:41.3682267Z\",\r\n \"ipAddress\": \"10.0.0.5\",\r\n \"affinityId\": \"TVM:tvmps_c144f349d08f5f8d2077b603c2a1f8a0ac845e9c94a9d81acc2b78f973467702_d\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"totalTasksRun\": 0,\r\n \"totalTasksSucceeded\": 0,\r\n \"runningTasksCount\": 0,\r\n \"runningTaskSlotsCount\": 0,\r\n \"isDedicated\": true,\r\n \"endpointConfiguration\": {\r\n \"inboundEndpoints\": [\r\n {\r\n \"name\": \"SSHRule.1\",\r\n \"protocol\": \"tcp\",\r\n \"publicIPAddress\": \"4.152.130.106\",\r\n \"publicFQDN\": \"dnsfdb5a251-50dd-414f-9ce5-846a26202647-azurebatch-cloudservice.eastus2.cloudapp.azure.com\",\r\n \"frontendPort\": 50001,\r\n \"backendPort\": 22\r\n }\r\n ]\r\n },\r\n \"virtualMachineInfo\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\",\r\n \"exactVersion\": \"latest\"\r\n }\r\n }\r\n }\r\n ]\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"rebootandreimagenodepool\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/rebootandreimagenodepool\",\r\n \"eTag\": \"0x8DDF178A6EBD6D2\",\r\n \"lastModified\": \"2025-09-11T21:17:45.532181Z\",\r\n \"creationTime\": \"2025-09-11T21:17:45.5321801Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T21:17:45.5321801Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2025-09-11T21:17:45.532181Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", "StatusCode": 200 }, { - "RequestUri": "/pools/rebootandreimagenodepool/nodes/tvmps_127980c3f1489d6c3d5f63f5d646d1986030e7b2b8429cc58378effd2b7c87b3_d?api-version=2024-02-01.19.0&$select=id%2Cstate", - "EncodedRequestUri": "L3Bvb2xzL3JlYm9vdGFuZHJlaW1hZ2Vub2RlcG9vbC9ub2Rlcy90dm1wc18xMjc5ODBjM2YxNDg5ZDZjM2Q1ZjYzZjVkNjQ2ZDE5ODYwMzBlN2IyYjg0MjljYzU4Mzc4ZWZmZDJiN2M4N2IzX2Q/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4wJiRzZWxlY3Q9aWQlMkNzdGF0ZQ==", + "RequestUri": "/pools/rebootandreimagenodepool?api-version=2024-02-01.19.0", + "EncodedRequestUri": "L3Bvb2xzL3JlYm9vdGFuZHJlaW1hZ2Vub2RlcG9vbD9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjA=", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "811dd4b3-6109-4f2a-b4a4-a3f876e66c87" - ], "Accept-Language": [ "en-US" ], - "ocp-date": [ - "Wed, 13 Nov 2024 21:29:45 GMT" + "client-request-id": [ + "a5693000-7632-492f-8ebf-2a9baa65a422" ], - "x-ms-client-request-id": [ - "c58bdbc0-a915-41ea-b96a-8b2cc7a6c442" + "ocp-date": [ + "Thu, 11 Sep 2025 21:19:23 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -616,11 +1196,14 @@ "Transfer-Encoding": [ "chunked" ], + "ETag": [ + "0x8DDF178A6EBD6D2" + ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "a66832bd-53ac-468a-9301-cc46a270e1ab" + "ad8567ac-a15d-486e-8261-9528eaf2d63a" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -632,36 +1215,36 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:29:44 GMT" + "Thu, 11 Sep 2025 21:19:23 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" + ], + "Last-Modified": [ + "Thu, 11 Sep 2025 21:17:45 GMT" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#nodes/@Element\",\r\n \"id\": \"tvmps_127980c3f1489d6c3d5f63f5d646d1986030e7b2b8429cc58378effd2b7c87b3_d\",\r\n \"state\": \"creating\",\r\n \"virtualMachineInfo\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\",\r\n \"exactVersion\": \"latest\"\r\n }\r\n }\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"rebootandreimagenodepool\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/rebootandreimagenodepool\",\r\n \"eTag\": \"0x8DDF178A6EBD6D2\",\r\n \"lastModified\": \"2025-09-11T21:17:45.532181Z\",\r\n \"creationTime\": \"2025-09-11T21:17:45.5321801Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T21:17:45.5321801Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2025-09-11T21:17:45.532181Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", "StatusCode": 200 }, { - "RequestUri": "/pools/rebootandreimagenodepool/nodes/tvmps_127980c3f1489d6c3d5f63f5d646d1986030e7b2b8429cc58378effd2b7c87b3_d?api-version=2024-02-01.19.0&$select=id%2Cstate", - "EncodedRequestUri": "L3Bvb2xzL3JlYm9vdGFuZHJlaW1hZ2Vub2RlcG9vbC9ub2Rlcy90dm1wc18xMjc5ODBjM2YxNDg5ZDZjM2Q1ZjYzZjVkNjQ2ZDE5ODYwMzBlN2IyYjg0MjljYzU4Mzc4ZWZmZDJiN2M4N2IzX2Q/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4wJiRzZWxlY3Q9aWQlMkNzdGF0ZQ==", + "RequestUri": "/pools/rebootandreimagenodepool?api-version=2024-02-01.19.0", + "EncodedRequestUri": "L3Bvb2xzL3JlYm9vdGFuZHJlaW1hZ2Vub2RlcG9vbD9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjA=", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "cf14ab18-8f06-41d6-b5eb-01ba180b2eb1" - ], "Accept-Language": [ "en-US" ], - "ocp-date": [ - "Wed, 13 Nov 2024 21:29:50 GMT" + "client-request-id": [ + "f66b3d32-a587-4f8c-9c08-db2d5d38887c" ], - "x-ms-client-request-id": [ - "84424df3-8005-416d-b8c4-cb3de6de0450" + "ocp-date": [ + "Thu, 11 Sep 2025 21:19:28 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -671,11 +1254,14 @@ "Transfer-Encoding": [ "chunked" ], + "ETag": [ + "0x8DDF178A6EBD6D2" + ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "5a59b00d-eef3-4c17-8dda-1f56f0d85232" + "21a561e2-d734-42de-a9e1-48c384eceed2" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -687,36 +1273,36 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:29:50 GMT" + "Thu, 11 Sep 2025 21:19:28 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" + ], + "Last-Modified": [ + "Thu, 11 Sep 2025 21:17:45 GMT" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#nodes/@Element\",\r\n \"id\": \"tvmps_127980c3f1489d6c3d5f63f5d646d1986030e7b2b8429cc58378effd2b7c87b3_d\",\r\n \"state\": \"creating\",\r\n \"virtualMachineInfo\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\",\r\n \"exactVersion\": \"latest\"\r\n }\r\n }\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"rebootandreimagenodepool\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/rebootandreimagenodepool\",\r\n \"eTag\": \"0x8DDF178A6EBD6D2\",\r\n \"lastModified\": \"2025-09-11T21:17:45.532181Z\",\r\n \"creationTime\": \"2025-09-11T21:17:45.5321801Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T21:17:45.5321801Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2025-09-11T21:17:45.532181Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", "StatusCode": 200 }, { - "RequestUri": "/pools/rebootandreimagenodepool/nodes/tvmps_127980c3f1489d6c3d5f63f5d646d1986030e7b2b8429cc58378effd2b7c87b3_d?api-version=2024-02-01.19.0&$select=id%2Cstate", - "EncodedRequestUri": "L3Bvb2xzL3JlYm9vdGFuZHJlaW1hZ2Vub2RlcG9vbC9ub2Rlcy90dm1wc18xMjc5ODBjM2YxNDg5ZDZjM2Q1ZjYzZjVkNjQ2ZDE5ODYwMzBlN2IyYjg0MjljYzU4Mzc4ZWZmZDJiN2M4N2IzX2Q/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4wJiRzZWxlY3Q9aWQlMkNzdGF0ZQ==", + "RequestUri": "/pools/rebootandreimagenodepool?api-version=2024-02-01.19.0", + "EncodedRequestUri": "L3Bvb2xzL3JlYm9vdGFuZHJlaW1hZ2Vub2RlcG9vbD9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjA=", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "ace2eff8-5611-4d0c-994b-4ff2f84a53dc" - ], "Accept-Language": [ "en-US" ], - "ocp-date": [ - "Wed, 13 Nov 2024 21:29:55 GMT" + "client-request-id": [ + "ca4eabbf-7d19-47cd-b56b-80196a862eaf" ], - "x-ms-client-request-id": [ - "b3dd8f5f-d7f2-4c70-808a-292b7f65e49d" + "ocp-date": [ + "Thu, 11 Sep 2025 21:19:33 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -726,11 +1312,14 @@ "Transfer-Encoding": [ "chunked" ], + "ETag": [ + "0x8DDF178A6EBD6D2" + ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "c377be4d-dd62-4ff0-9bba-6585b4abfaef" + "2374e059-bf16-4ae0-a562-822d0e778b13" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -742,36 +1331,36 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:29:55 GMT" + "Thu, 11 Sep 2025 21:19:33 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" + ], + "Last-Modified": [ + "Thu, 11 Sep 2025 21:17:45 GMT" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#nodes/@Element\",\r\n \"id\": \"tvmps_127980c3f1489d6c3d5f63f5d646d1986030e7b2b8429cc58378effd2b7c87b3_d\",\r\n \"state\": \"starting\",\r\n \"virtualMachineInfo\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\",\r\n \"exactVersion\": \"latest\"\r\n }\r\n }\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"rebootandreimagenodepool\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/rebootandreimagenodepool\",\r\n \"eTag\": \"0x8DDF178A6EBD6D2\",\r\n \"lastModified\": \"2025-09-11T21:17:45.532181Z\",\r\n \"creationTime\": \"2025-09-11T21:17:45.5321801Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T21:17:45.5321801Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2025-09-11T21:17:45.532181Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", "StatusCode": 200 }, { - "RequestUri": "/pools/rebootandreimagenodepool/nodes/tvmps_127980c3f1489d6c3d5f63f5d646d1986030e7b2b8429cc58378effd2b7c87b3_d?api-version=2024-02-01.19.0&$select=id%2Cstate", - "EncodedRequestUri": "L3Bvb2xzL3JlYm9vdGFuZHJlaW1hZ2Vub2RlcG9vbC9ub2Rlcy90dm1wc18xMjc5ODBjM2YxNDg5ZDZjM2Q1ZjYzZjVkNjQ2ZDE5ODYwMzBlN2IyYjg0MjljYzU4Mzc4ZWZmZDJiN2M4N2IzX2Q/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4wJiRzZWxlY3Q9aWQlMkNzdGF0ZQ==", + "RequestUri": "/pools/rebootandreimagenodepool?api-version=2024-02-01.19.0", + "EncodedRequestUri": "L3Bvb2xzL3JlYm9vdGFuZHJlaW1hZ2Vub2RlcG9vbD9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjA=", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "30abc652-29e5-47f0-b340-bfed77ad9ee7" - ], "Accept-Language": [ "en-US" ], - "ocp-date": [ - "Wed, 13 Nov 2024 21:30:00 GMT" + "client-request-id": [ + "56bb6b7f-8d6d-4e3c-b25a-d555a07d2e5c" ], - "x-ms-client-request-id": [ - "16991b90-9eaf-4ab0-a397-b6721c1b972b" + "ocp-date": [ + "Thu, 11 Sep 2025 21:19:38 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -781,11 +1370,14 @@ "Transfer-Encoding": [ "chunked" ], + "ETag": [ + "0x8DDF178A6EBD6D2" + ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "be293925-afdb-4daa-a4c5-8bb9dce90095" + "4b9563bd-40cf-43b9-935c-4f3d1f0dbc8f" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -797,36 +1389,36 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:30:00 GMT" + "Thu, 11 Sep 2025 21:19:38 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" + ], + "Last-Modified": [ + "Thu, 11 Sep 2025 21:17:45 GMT" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#nodes/@Element\",\r\n \"id\": \"tvmps_127980c3f1489d6c3d5f63f5d646d1986030e7b2b8429cc58378effd2b7c87b3_d\",\r\n \"state\": \"starting\",\r\n \"virtualMachineInfo\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\",\r\n \"exactVersion\": \"latest\"\r\n }\r\n }\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"rebootandreimagenodepool\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/rebootandreimagenodepool\",\r\n \"eTag\": \"0x8DDF178A6EBD6D2\",\r\n \"lastModified\": \"2025-09-11T21:17:45.532181Z\",\r\n \"creationTime\": \"2025-09-11T21:17:45.5321801Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T21:17:45.5321801Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2025-09-11T21:17:45.532181Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", "StatusCode": 200 }, { - "RequestUri": "/pools/rebootandreimagenodepool/nodes/tvmps_127980c3f1489d6c3d5f63f5d646d1986030e7b2b8429cc58378effd2b7c87b3_d?api-version=2024-02-01.19.0&$select=id%2Cstate", - "EncodedRequestUri": "L3Bvb2xzL3JlYm9vdGFuZHJlaW1hZ2Vub2RlcG9vbC9ub2Rlcy90dm1wc18xMjc5ODBjM2YxNDg5ZDZjM2Q1ZjYzZjVkNjQ2ZDE5ODYwMzBlN2IyYjg0MjljYzU4Mzc4ZWZmZDJiN2M4N2IzX2Q/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4wJiRzZWxlY3Q9aWQlMkNzdGF0ZQ==", + "RequestUri": "/pools/rebootandreimagenodepool?api-version=2024-02-01.19.0", + "EncodedRequestUri": "L3Bvb2xzL3JlYm9vdGFuZHJlaW1hZ2Vub2RlcG9vbD9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjA=", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "862c0273-d9f5-4da7-9327-2d9b62368a6d" - ], "Accept-Language": [ "en-US" ], - "ocp-date": [ - "Wed, 13 Nov 2024 21:30:05 GMT" + "client-request-id": [ + "a3b8ad32-d5db-472f-8793-0acd53943623" ], - "x-ms-client-request-id": [ - "e4873c97-82ee-4407-998d-a5d0c96c69c9" + "ocp-date": [ + "Thu, 11 Sep 2025 21:19:44 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -836,11 +1428,14 @@ "Transfer-Encoding": [ "chunked" ], + "ETag": [ + "0x8DDF178A6EBD6D2" + ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "f1e5abc2-225f-402f-a58f-609e2781a3eb" + "a3c66ede-858d-49ae-8001-6962aad13b84" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -852,36 +1447,97 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:30:05 GMT" + "Thu, 11 Sep 2025 21:19:43 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" + ], + "Last-Modified": [ + "Thu, 11 Sep 2025 21:17:45 GMT" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#nodes/@Element\",\r\n \"id\": \"tvmps_127980c3f1489d6c3d5f63f5d646d1986030e7b2b8429cc58378effd2b7c87b3_d\",\r\n \"state\": \"starting\",\r\n \"virtualMachineInfo\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\",\r\n \"exactVersion\": \"latest\"\r\n }\r\n }\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"rebootandreimagenodepool\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/rebootandreimagenodepool\",\r\n \"eTag\": \"0x8DDF178A6EBD6D2\",\r\n \"lastModified\": \"2025-09-11T21:17:45.532181Z\",\r\n \"creationTime\": \"2025-09-11T21:17:45.5321801Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T21:17:45.5321801Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2025-09-11T21:17:45.532181Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", "StatusCode": 200 }, { - "RequestUri": "/pools/rebootandreimagenodepool/nodes/tvmps_127980c3f1489d6c3d5f63f5d646d1986030e7b2b8429cc58378effd2b7c87b3_d?api-version=2024-02-01.19.0&$select=id%2Cstate", - "EncodedRequestUri": "L3Bvb2xzL3JlYm9vdGFuZHJlaW1hZ2Vub2RlcG9vbC9ub2Rlcy90dm1wc18xMjc5ODBjM2YxNDg5ZDZjM2Q1ZjYzZjVkNjQ2ZDE5ODYwMzBlN2IyYjg0MjljYzU4Mzc4ZWZmZDJiN2M4N2IzX2Q/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4wJiRzZWxlY3Q9aWQlMkNzdGF0ZQ==", + "RequestUri": "/pools/rebootandreimagenodepool?api-version=2024-02-01.19.0", + "EncodedRequestUri": "L3Bvb2xzL3JlYm9vdGFuZHJlaW1hZ2Vub2RlcG9vbD9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjA=", "RequestMethod": "GET", "RequestHeaders": { + "Accept-Language": [ + "en-US" + ], "client-request-id": [ - "5ff10368-8744-4986-88b2-881ebbe660b8" + "8de5dbff-0d98-402c-ae2c-a96e474ccdfe" + ], + "ocp-date": [ + "Thu, 11 Sep 2025 21:19:49 GMT" + ], + "User-Agent": [ + "FxVersion/8.0.2025.41914", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.26100", + "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", + "AzurePowershell/Az1.0.0" + ] + }, + "RequestBody": "", + "ResponseHeaders": { + "Transfer-Encoding": [ + "chunked" + ], + "ETag": [ + "0x8DDF178A6EBD6D2" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "request-id": [ + "7af0f0e6-b198-4f71-b51a-33be19240b02" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "DataServiceVersion": [ + "3.0" + ], + "Date": [ + "Thu, 11 Sep 2025 21:19:49 GMT" + ], + "Content-Type": [ + "application/json; odata=minimalmetadata" ], + "Last-Modified": [ + "Thu, 11 Sep 2025 21:17:45 GMT" + ] + }, + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"rebootandreimagenodepool\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/rebootandreimagenodepool\",\r\n \"eTag\": \"0x8DDF178A6EBD6D2\",\r\n \"lastModified\": \"2025-09-11T21:17:45.532181Z\",\r\n \"creationTime\": \"2025-09-11T21:17:45.5321801Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T21:17:45.5321801Z\",\r\n \"allocationState\": \"steady\",\r\n \"allocationStateTransitionTime\": \"2025-09-11T21:19:48.2764345Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 2,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\",\r\n \"currentNodeCommunicationMode\": \"simplified\"\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/pools/rebootandreimagenodepool/nodes?api-version=2024-02-01.19.0", + "EncodedRequestUri": "L3Bvb2xzL3JlYm9vdGFuZHJlaW1hZ2Vub2RlcG9vbC9ub2Rlcz9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjA=", + "RequestMethod": "GET", + "RequestHeaders": { "Accept-Language": [ "en-US" ], + "client-request-id": [ + "379a7ddd-e255-4d93-a8a7-8202c8843228" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:30:10 GMT" + "Thu, 11 Sep 2025 21:19:50 GMT" ], "x-ms-client-request-id": [ - "7042ac0c-3f6d-4eba-9b46-f6f6fa98f9b7" + "88308104-5697-473e-8e8c-3a18880c4bd1" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -895,7 +1551,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "171c45ff-890d-4633-bd09-ae09f3b58006" + "e5c8b1a0-fbdd-4fd1-8b76-9ee6395e4368" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -907,36 +1563,36 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:30:09 GMT" + "Thu, 11 Sep 2025 21:19:50 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#nodes/@Element\",\r\n \"id\": \"tvmps_127980c3f1489d6c3d5f63f5d646d1986030e7b2b8429cc58378effd2b7c87b3_d\",\r\n \"state\": \"starting\",\r\n \"virtualMachineInfo\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\",\r\n \"exactVersion\": \"latest\"\r\n }\r\n }\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#nodes\",\r\n \"value\": [\r\n {\r\n \"id\": \"tvmps_b32909861894bb1d8455297d4fb3b837185a7db8cb39493165be8e8ca0140beb_d\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/rebootandreimagenodepool/nodes/tvmps_b32909861894bb1d8455297d4fb3b837185a7db8cb39493165be8e8ca0140beb_d\",\r\n \"state\": \"creating\",\r\n \"schedulingState\": \"enabled\",\r\n \"stateTransitionTime\": \"2025-09-11T21:19:47.2714913Z\",\r\n \"allocationTime\": \"2025-09-11T21:19:47.271498Z\",\r\n \"ipAddress\": \"10.0.0.4\",\r\n \"affinityId\": \"TVM:tvmps_b32909861894bb1d8455297d4fb3b837185a7db8cb39493165be8e8ca0140beb_d\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"totalTasksRun\": 0,\r\n \"totalTasksSucceeded\": 0,\r\n \"runningTasksCount\": 0,\r\n \"runningTaskSlotsCount\": 0,\r\n \"isDedicated\": true,\r\n \"endpointConfiguration\": {\r\n \"inboundEndpoints\": [\r\n {\r\n \"name\": \"SSHRule.0\",\r\n \"protocol\": \"tcp\",\r\n \"publicIPAddress\": \"135.119.200.8\",\r\n \"publicFQDN\": \"dnsd9ea1edd-d135-4d1d-950a-4f2064ce18d9-azurebatch-cloudservice.eastus2.cloudapp.azure.com\",\r\n \"frontendPort\": 50000,\r\n \"backendPort\": 22\r\n }\r\n ]\r\n },\r\n \"virtualMachineInfo\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\",\r\n \"exactVersion\": \"latest\"\r\n }\r\n }\r\n },\r\n {\r\n \"id\": \"tvmps_c77ad3b910c930f1f686b4f01b35819b836b5c8a3124851e2ddb91c28e7a67f7_d\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/rebootandreimagenodepool/nodes/tvmps_c77ad3b910c930f1f686b4f01b35819b836b5c8a3124851e2ddb91c28e7a67f7_d\",\r\n \"state\": \"creating\",\r\n \"schedulingState\": \"enabled\",\r\n \"stateTransitionTime\": \"2025-09-11T21:19:47.2715285Z\",\r\n \"allocationTime\": \"2025-09-11T21:19:47.2715308Z\",\r\n \"ipAddress\": \"10.0.0.5\",\r\n \"affinityId\": \"TVM:tvmps_c77ad3b910c930f1f686b4f01b35819b836b5c8a3124851e2ddb91c28e7a67f7_d\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"totalTasksRun\": 0,\r\n \"totalTasksSucceeded\": 0,\r\n \"runningTasksCount\": 0,\r\n \"runningTaskSlotsCount\": 0,\r\n \"isDedicated\": true,\r\n \"endpointConfiguration\": {\r\n \"inboundEndpoints\": [\r\n {\r\n \"name\": \"SSHRule.1\",\r\n \"protocol\": \"tcp\",\r\n \"publicIPAddress\": \"135.119.200.8\",\r\n \"publicFQDN\": \"dnsd9ea1edd-d135-4d1d-950a-4f2064ce18d9-azurebatch-cloudservice.eastus2.cloudapp.azure.com\",\r\n \"frontendPort\": 50001,\r\n \"backendPort\": 22\r\n }\r\n ]\r\n },\r\n \"virtualMachineInfo\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\",\r\n \"exactVersion\": \"latest\"\r\n }\r\n }\r\n }\r\n ]\r\n}", "StatusCode": 200 }, { - "RequestUri": "/pools/rebootandreimagenodepool/nodes/tvmps_127980c3f1489d6c3d5f63f5d646d1986030e7b2b8429cc58378effd2b7c87b3_d?api-version=2024-02-01.19.0&$select=id%2Cstate", - "EncodedRequestUri": "L3Bvb2xzL3JlYm9vdGFuZHJlaW1hZ2Vub2RlcG9vbC9ub2Rlcy90dm1wc18xMjc5ODBjM2YxNDg5ZDZjM2Q1ZjYzZjVkNjQ2ZDE5ODYwMzBlN2IyYjg0MjljYzU4Mzc4ZWZmZDJiN2M4N2IzX2Q/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4wJiRzZWxlY3Q9aWQlMkNzdGF0ZQ==", + "RequestUri": "/pools/rebootandreimagenodepool/nodes/tvmps_b32909861894bb1d8455297d4fb3b837185a7db8cb39493165be8e8ca0140beb_d?api-version=2024-02-01.19.0&$select=id%2Cstate", + "EncodedRequestUri": "L3Bvb2xzL3JlYm9vdGFuZHJlaW1hZ2Vub2RlcG9vbC9ub2Rlcy90dm1wc19iMzI5MDk4NjE4OTRiYjFkODQ1NTI5N2Q0ZmIzYjgzNzE4NWE3ZGI4Y2IzOTQ5MzE2NWJlOGU4Y2EwMTQwYmViX2Q/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4wJiRzZWxlY3Q9aWQlMkNzdGF0ZQ==", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "2a39f84b-5ec3-406e-8d30-ed0d17c2ec14" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "e490015c-9d8d-474d-a7d7-79a3c2495bf8" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:30:15 GMT" + "Thu, 11 Sep 2025 21:19:50 GMT" ], "x-ms-client-request-id": [ - "8290fd29-6f88-400c-a54c-38936dc2cb63" + "c42ba4b0-fd35-4365-a3e5-7dd196b72a56" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -950,7 +1606,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "1c4eb50c-61f0-4272-b6fa-5a6833d4acaf" + "85b29fc1-e720-4039-8065-e0890b1acc18" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -962,36 +1618,36 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:30:14 GMT" + "Thu, 11 Sep 2025 21:19:50 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#nodes/@Element\",\r\n \"id\": \"tvmps_127980c3f1489d6c3d5f63f5d646d1986030e7b2b8429cc58378effd2b7c87b3_d\",\r\n \"state\": \"starting\",\r\n \"virtualMachineInfo\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\",\r\n \"exactVersion\": \"latest\"\r\n }\r\n }\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#nodes/@Element\",\r\n \"id\": \"tvmps_b32909861894bb1d8455297d4fb3b837185a7db8cb39493165be8e8ca0140beb_d\",\r\n \"state\": \"creating\",\r\n \"virtualMachineInfo\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\",\r\n \"exactVersion\": \"latest\"\r\n }\r\n }\r\n}", "StatusCode": 200 }, { - "RequestUri": "/pools/rebootandreimagenodepool/nodes/tvmps_127980c3f1489d6c3d5f63f5d646d1986030e7b2b8429cc58378effd2b7c87b3_d?api-version=2024-02-01.19.0&$select=id%2Cstate", - "EncodedRequestUri": "L3Bvb2xzL3JlYm9vdGFuZHJlaW1hZ2Vub2RlcG9vbC9ub2Rlcy90dm1wc18xMjc5ODBjM2YxNDg5ZDZjM2Q1ZjYzZjVkNjQ2ZDE5ODYwMzBlN2IyYjg0MjljYzU4Mzc4ZWZmZDJiN2M4N2IzX2Q/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4wJiRzZWxlY3Q9aWQlMkNzdGF0ZQ==", + "RequestUri": "/pools/rebootandreimagenodepool/nodes/tvmps_b32909861894bb1d8455297d4fb3b837185a7db8cb39493165be8e8ca0140beb_d?api-version=2024-02-01.19.0&$select=id%2Cstate", + "EncodedRequestUri": "L3Bvb2xzL3JlYm9vdGFuZHJlaW1hZ2Vub2RlcG9vbC9ub2Rlcy90dm1wc19iMzI5MDk4NjE4OTRiYjFkODQ1NTI5N2Q0ZmIzYjgzNzE4NWE3ZGI4Y2IzOTQ5MzE2NWJlOGU4Y2EwMTQwYmViX2Q/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4wJiRzZWxlY3Q9aWQlMkNzdGF0ZQ==", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "18cc1b82-f4c0-4804-8cad-363fe1c4d974" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "758c07d0-c0e3-492f-a213-e1e5324b29bd" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:30:20 GMT" + "Thu, 11 Sep 2025 21:19:56 GMT" ], "x-ms-client-request-id": [ - "a937b71c-3f9a-4a5b-9c40-131fa26ac94c" + "56a58648-f10d-4215-8960-f61a517bfb6a" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -1005,7 +1661,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "d3c12187-0837-4f2b-a42d-d6c7a4ee48b5" + "e78e27ef-8ba6-493c-9af6-7d8eb8a524d9" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -1017,36 +1673,36 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:30:19 GMT" + "Thu, 11 Sep 2025 21:19:55 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#nodes/@Element\",\r\n \"id\": \"tvmps_127980c3f1489d6c3d5f63f5d646d1986030e7b2b8429cc58378effd2b7c87b3_d\",\r\n \"state\": \"starting\",\r\n \"virtualMachineInfo\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\",\r\n \"exactVersion\": \"latest\"\r\n }\r\n }\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#nodes/@Element\",\r\n \"id\": \"tvmps_b32909861894bb1d8455297d4fb3b837185a7db8cb39493165be8e8ca0140beb_d\",\r\n \"state\": \"creating\",\r\n \"virtualMachineInfo\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\",\r\n \"exactVersion\": \"latest\"\r\n }\r\n }\r\n}", "StatusCode": 200 }, { - "RequestUri": "/pools/rebootandreimagenodepool/nodes/tvmps_127980c3f1489d6c3d5f63f5d646d1986030e7b2b8429cc58378effd2b7c87b3_d?api-version=2024-02-01.19.0&$select=id%2Cstate", - "EncodedRequestUri": "L3Bvb2xzL3JlYm9vdGFuZHJlaW1hZ2Vub2RlcG9vbC9ub2Rlcy90dm1wc18xMjc5ODBjM2YxNDg5ZDZjM2Q1ZjYzZjVkNjQ2ZDE5ODYwMzBlN2IyYjg0MjljYzU4Mzc4ZWZmZDJiN2M4N2IzX2Q/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4wJiRzZWxlY3Q9aWQlMkNzdGF0ZQ==", + "RequestUri": "/pools/rebootandreimagenodepool/nodes/tvmps_b32909861894bb1d8455297d4fb3b837185a7db8cb39493165be8e8ca0140beb_d?api-version=2024-02-01.19.0&$select=id%2Cstate", + "EncodedRequestUri": "L3Bvb2xzL3JlYm9vdGFuZHJlaW1hZ2Vub2RlcG9vbC9ub2Rlcy90dm1wc19iMzI5MDk4NjE4OTRiYjFkODQ1NTI5N2Q0ZmIzYjgzNzE4NWE3ZGI4Y2IzOTQ5MzE2NWJlOGU4Y2EwMTQwYmViX2Q/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4wJiRzZWxlY3Q9aWQlMkNzdGF0ZQ==", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "e03ed616-e803-4021-9e1c-2a4baed7750d" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "3009d8d5-1e89-45b7-b8c0-79b5afb2bb58" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:30:25 GMT" + "Thu, 11 Sep 2025 21:20:01 GMT" ], "x-ms-client-request-id": [ - "b352fd41-cc01-4e26-a949-d59cae75da96" + "f4e47044-f822-4d3c-bd85-0269f6f35b3a" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -1060,7 +1716,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "ceec569d-35d5-41b3-80c4-df905f8318a0" + "6f168d56-cc8f-43e7-a699-bdeb0b8881ae" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -1072,36 +1728,36 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:30:25 GMT" + "Thu, 11 Sep 2025 21:20:00 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#nodes/@Element\",\r\n \"id\": \"tvmps_127980c3f1489d6c3d5f63f5d646d1986030e7b2b8429cc58378effd2b7c87b3_d\",\r\n \"state\": \"starting\",\r\n \"virtualMachineInfo\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\",\r\n \"exactVersion\": \"latest\"\r\n }\r\n }\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#nodes/@Element\",\r\n \"id\": \"tvmps_b32909861894bb1d8455297d4fb3b837185a7db8cb39493165be8e8ca0140beb_d\",\r\n \"state\": \"starting\",\r\n \"virtualMachineInfo\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\",\r\n \"exactVersion\": \"latest\"\r\n }\r\n }\r\n}", "StatusCode": 200 }, { - "RequestUri": "/pools/rebootandreimagenodepool/nodes/tvmps_127980c3f1489d6c3d5f63f5d646d1986030e7b2b8429cc58378effd2b7c87b3_d?api-version=2024-02-01.19.0&$select=id%2Cstate", - "EncodedRequestUri": "L3Bvb2xzL3JlYm9vdGFuZHJlaW1hZ2Vub2RlcG9vbC9ub2Rlcy90dm1wc18xMjc5ODBjM2YxNDg5ZDZjM2Q1ZjYzZjVkNjQ2ZDE5ODYwMzBlN2IyYjg0MjljYzU4Mzc4ZWZmZDJiN2M4N2IzX2Q/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4wJiRzZWxlY3Q9aWQlMkNzdGF0ZQ==", + "RequestUri": "/pools/rebootandreimagenodepool/nodes/tvmps_b32909861894bb1d8455297d4fb3b837185a7db8cb39493165be8e8ca0140beb_d?api-version=2024-02-01.19.0&$select=id%2Cstate", + "EncodedRequestUri": "L3Bvb2xzL3JlYm9vdGFuZHJlaW1hZ2Vub2RlcG9vbC9ub2Rlcy90dm1wc19iMzI5MDk4NjE4OTRiYjFkODQ1NTI5N2Q0ZmIzYjgzNzE4NWE3ZGI4Y2IzOTQ5MzE2NWJlOGU4Y2EwMTQwYmViX2Q/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4wJiRzZWxlY3Q9aWQlMkNzdGF0ZQ==", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "c8b1dba6-b28a-4fa7-85c3-a39243431a3c" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "3fb37684-d213-4c62-aee7-90fa9518c181" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:30:30 GMT" + "Thu, 11 Sep 2025 21:20:06 GMT" ], "x-ms-client-request-id": [ - "0d869f64-d874-467d-9cc1-c6ae5034bd6f" + "2e301ff1-4cd7-4491-abcc-c02523f06c8e" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -1115,7 +1771,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "81f94e17-abf9-4015-8a28-d17cf029a247" + "05299170-e296-424e-9a6d-b87060332af2" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -1127,36 +1783,36 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:30:30 GMT" + "Thu, 11 Sep 2025 21:20:06 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#nodes/@Element\",\r\n \"id\": \"tvmps_127980c3f1489d6c3d5f63f5d646d1986030e7b2b8429cc58378effd2b7c87b3_d\",\r\n \"state\": \"idle\",\r\n \"virtualMachineInfo\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\",\r\n \"exactVersion\": \"latest\"\r\n }\r\n }\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#nodes/@Element\",\r\n \"id\": \"tvmps_b32909861894bb1d8455297d4fb3b837185a7db8cb39493165be8e8ca0140beb_d\",\r\n \"state\": \"idle\",\r\n \"virtualMachineInfo\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\",\r\n \"exactVersion\": \"latest\"\r\n }\r\n }\r\n}", "StatusCode": 200 }, { - "RequestUri": "/pools/rebootandreimagenodepool/nodes/tvmps_c144f349d08f5f8d2077b603c2a1f8a0ac845e9c94a9d81acc2b78f973467702_d?api-version=2024-02-01.19.0&$select=id%2Cstate", - "EncodedRequestUri": "L3Bvb2xzL3JlYm9vdGFuZHJlaW1hZ2Vub2RlcG9vbC9ub2Rlcy90dm1wc19jMTQ0ZjM0OWQwOGY1ZjhkMjA3N2I2MDNjMmExZjhhMGFjODQ1ZTljOTRhOWQ4MWFjYzJiNzhmOTczNDY3NzAyX2Q/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4wJiRzZWxlY3Q9aWQlMkNzdGF0ZQ==", + "RequestUri": "/pools/rebootandreimagenodepool/nodes/tvmps_c77ad3b910c930f1f686b4f01b35819b836b5c8a3124851e2ddb91c28e7a67f7_d?api-version=2024-02-01.19.0&$select=id%2Cstate", + "EncodedRequestUri": "L3Bvb2xzL3JlYm9vdGFuZHJlaW1hZ2Vub2RlcG9vbC9ub2Rlcy90dm1wc19jNzdhZDNiOTEwYzkzMGYxZjY4NmI0ZjAxYjM1ODE5YjgzNmI1YzhhMzEyNDg1MWUyZGRiOTFjMjhlN2E2N2Y3X2Q/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4wJiRzZWxlY3Q9aWQlMkNzdGF0ZQ==", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "ea7a7d3c-7ad7-42fd-a4a5-4df693bcd0a0" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "a3f93224-f31b-455d-9ebb-d5284e4537f4" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:30:30 GMT" + "Thu, 11 Sep 2025 21:20:06 GMT" ], "x-ms-client-request-id": [ - "7c68f859-7a1c-4d39-b101-ebe45206c3e8" + "8cf3630e-f100-4086-8149-3dcbd0f382f6" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -1170,7 +1826,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "f9156b56-d989-4206-8f4a-7233b276ab0d" + "80cb3227-60a9-4afc-89ff-1c844387798f" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -1182,36 +1838,36 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:30:30 GMT" + "Thu, 11 Sep 2025 21:20:06 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#nodes/@Element\",\r\n \"id\": \"tvmps_c144f349d08f5f8d2077b603c2a1f8a0ac845e9c94a9d81acc2b78f973467702_d\",\r\n \"state\": \"idle\",\r\n \"virtualMachineInfo\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\",\r\n \"exactVersion\": \"latest\"\r\n }\r\n }\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#nodes/@Element\",\r\n \"id\": \"tvmps_c77ad3b910c930f1f686b4f01b35819b836b5c8a3124851e2ddb91c28e7a67f7_d\",\r\n \"state\": \"idle\",\r\n \"virtualMachineInfo\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\",\r\n \"exactVersion\": \"latest\"\r\n }\r\n }\r\n}", "StatusCode": 200 }, { - "RequestUri": "/pools/rebootandreimagenodepool/nodes/tvmps_127980c3f1489d6c3d5f63f5d646d1986030e7b2b8429cc58378effd2b7c87b3_d?api-version=2024-02-01.19.0", - "EncodedRequestUri": "L3Bvb2xzL3JlYm9vdGFuZHJlaW1hZ2Vub2RlcG9vbC9ub2Rlcy90dm1wc18xMjc5ODBjM2YxNDg5ZDZjM2Q1ZjYzZjVkNjQ2ZDE5ODYwMzBlN2IyYjg0MjljYzU4Mzc4ZWZmZDJiN2M4N2IzX2Q/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4w", + "RequestUri": "/pools/rebootandreimagenodepool/nodes/tvmps_b32909861894bb1d8455297d4fb3b837185a7db8cb39493165be8e8ca0140beb_d?api-version=2024-02-01.19.0", + "EncodedRequestUri": "L3Bvb2xzL3JlYm9vdGFuZHJlaW1hZ2Vub2RlcG9vbC9ub2Rlcy90dm1wc19iMzI5MDk4NjE4OTRiYjFkODQ1NTI5N2Q0ZmIzYjgzNzE4NWE3ZGI4Y2IzOTQ5MzE2NWJlOGU4Y2EwMTQwYmViX2Q/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4w", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "da80cb47-723b-4971-84cc-f6920d4a26f0" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "df3e217d-c957-49ca-8a95-1ab7bdc08ef0" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:30:30 GMT" + "Thu, 11 Sep 2025 21:20:06 GMT" ], "x-ms-client-request-id": [ - "692dce8d-cac3-401b-b88a-cbad74addee8" + "5e296eef-b111-4d34-9710-4988e7d7a0fb" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -1225,7 +1881,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "215d4528-9876-46a5-a81f-28ac7ec5763f" + "b964e8c4-e020-45c6-830a-696882153a76" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -1237,36 +1893,36 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:30:30 GMT" + "Thu, 11 Sep 2025 21:20:06 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#nodes/@Element\",\r\n \"id\": \"tvmps_127980c3f1489d6c3d5f63f5d646d1986030e7b2b8429cc58378effd2b7c87b3_d\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/pools/rebootandreimagenodepool/nodes/tvmps_127980c3f1489d6c3d5f63f5d646d1986030e7b2b8429cc58378effd2b7c87b3_d\",\r\n \"state\": \"idle\",\r\n \"schedulingState\": \"enabled\",\r\n \"stateTransitionTime\": \"2024-11-13T21:30:29.999557Z\",\r\n \"lastBootTime\": \"2024-11-13T21:30:29.89676Z\",\r\n \"allocationTime\": \"2024-11-13T21:29:41.3682552Z\",\r\n \"ipAddress\": \"10.0.0.4\",\r\n \"affinityId\": \"TVM:tvmps_127980c3f1489d6c3d5f63f5d646d1986030e7b2b8429cc58378effd2b7c87b3_d\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"totalTasksRun\": 0,\r\n \"totalTasksSucceeded\": 0,\r\n \"runningTasksCount\": 0,\r\n \"runningTaskSlotsCount\": 0,\r\n \"certificateReferences\": [],\r\n \"isDedicated\": true,\r\n \"endpointConfiguration\": {\r\n \"inboundEndpoints\": [\r\n {\r\n \"name\": \"SSHRule.0\",\r\n \"protocol\": \"tcp\",\r\n \"publicIPAddress\": \"4.152.130.106\",\r\n \"publicFQDN\": \"dnsfdb5a251-50dd-414f-9ce5-846a26202647-azurebatch-cloudservice.eastus2.cloudapp.azure.com\",\r\n \"frontendPort\": 50000,\r\n \"backendPort\": 22\r\n }\r\n ]\r\n },\r\n \"nodeAgentInfo\": {\r\n \"lastUpdateTime\": \"2024-11-13T21:30:29.89676Z\",\r\n \"version\": \"1.12.7\"\r\n },\r\n \"virtualMachineInfo\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\",\r\n \"exactVersion\": \"latest\"\r\n }\r\n }\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#nodes/@Element\",\r\n \"id\": \"tvmps_b32909861894bb1d8455297d4fb3b837185a7db8cb39493165be8e8ca0140beb_d\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/rebootandreimagenodepool/nodes/tvmps_b32909861894bb1d8455297d4fb3b837185a7db8cb39493165be8e8ca0140beb_d\",\r\n \"state\": \"idle\",\r\n \"schedulingState\": \"enabled\",\r\n \"stateTransitionTime\": \"2025-09-11T21:20:03.468374Z\",\r\n \"lastBootTime\": \"2025-09-11T21:20:03.38187Z\",\r\n \"allocationTime\": \"2025-09-11T21:19:47.271498Z\",\r\n \"ipAddress\": \"10.0.0.4\",\r\n \"affinityId\": \"TVM:tvmps_b32909861894bb1d8455297d4fb3b837185a7db8cb39493165be8e8ca0140beb_d\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"totalTasksRun\": 0,\r\n \"totalTasksSucceeded\": 0,\r\n \"runningTasksCount\": 0,\r\n \"runningTaskSlotsCount\": 0,\r\n \"certificateReferences\": [],\r\n \"isDedicated\": true,\r\n \"endpointConfiguration\": {\r\n \"inboundEndpoints\": [\r\n {\r\n \"name\": \"SSHRule.0\",\r\n \"protocol\": \"tcp\",\r\n \"publicIPAddress\": \"135.119.200.8\",\r\n \"publicFQDN\": \"dnsd9ea1edd-d135-4d1d-950a-4f2064ce18d9-azurebatch-cloudservice.eastus2.cloudapp.azure.com\",\r\n \"frontendPort\": 50000,\r\n \"backendPort\": 22\r\n }\r\n ]\r\n },\r\n \"nodeAgentInfo\": {\r\n \"lastUpdateTime\": \"2025-09-11T21:20:03.38187Z\",\r\n \"version\": \"1.12.24\"\r\n },\r\n \"virtualMachineInfo\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\",\r\n \"exactVersion\": \"latest\"\r\n }\r\n }\r\n}", "StatusCode": 200 }, { - "RequestUri": "/pools/rebootandreimagenodepool/nodes/tvmps_127980c3f1489d6c3d5f63f5d646d1986030e7b2b8429cc58378effd2b7c87b3_d?api-version=2024-02-01.19.0", - "EncodedRequestUri": "L3Bvb2xzL3JlYm9vdGFuZHJlaW1hZ2Vub2RlcG9vbC9ub2Rlcy90dm1wc18xMjc5ODBjM2YxNDg5ZDZjM2Q1ZjYzZjVkNjQ2ZDE5ODYwMzBlN2IyYjg0MjljYzU4Mzc4ZWZmZDJiN2M4N2IzX2Q/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4w", + "RequestUri": "/pools/rebootandreimagenodepool/nodes/tvmps_b32909861894bb1d8455297d4fb3b837185a7db8cb39493165be8e8ca0140beb_d?api-version=2024-02-01.19.0", + "EncodedRequestUri": "L3Bvb2xzL3JlYm9vdGFuZHJlaW1hZ2Vub2RlcG9vbC9ub2Rlcy90dm1wc19iMzI5MDk4NjE4OTRiYjFkODQ1NTI5N2Q0ZmIzYjgzNzE4NWE3ZGI4Y2IzOTQ5MzE2NWJlOGU4Y2EwMTQwYmViX2Q/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4w", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "caa43909-9e16-43c6-a9c8-ebdbe9aba372" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "68e2424d-ea58-4902-9de5-fa677c66ac33" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:30:31 GMT" + "Thu, 11 Sep 2025 21:20:07 GMT" ], "x-ms-client-request-id": [ - "49ec7bb7-a0b2-4f1f-bb19-b60c3fbd38b4" + "8a2bd614-8c11-4f96-b6ae-3d1fd3b15e33" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -1280,7 +1936,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "602fabca-aa66-4bac-a790-c4328d435c04" + "8a2bd19b-b61a-4ce8-b947-d06dc74f17a8" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -1292,36 +1948,36 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:30:30 GMT" + "Thu, 11 Sep 2025 21:20:06 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#nodes/@Element\",\r\n \"id\": \"tvmps_127980c3f1489d6c3d5f63f5d646d1986030e7b2b8429cc58378effd2b7c87b3_d\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/pools/rebootandreimagenodepool/nodes/tvmps_127980c3f1489d6c3d5f63f5d646d1986030e7b2b8429cc58378effd2b7c87b3_d\",\r\n \"state\": \"rebooting\",\r\n \"schedulingState\": \"enabled\",\r\n \"stateTransitionTime\": \"2024-11-13T21:30:31.1681865Z\",\r\n \"lastBootTime\": \"2024-11-13T21:30:29.89676Z\",\r\n \"allocationTime\": \"2024-11-13T21:29:41.3682552Z\",\r\n \"ipAddress\": \"10.0.0.4\",\r\n \"affinityId\": \"TVM:tvmps_127980c3f1489d6c3d5f63f5d646d1986030e7b2b8429cc58378effd2b7c87b3_d\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"totalTasksRun\": 0,\r\n \"totalTasksSucceeded\": 0,\r\n \"runningTasksCount\": 0,\r\n \"runningTaskSlotsCount\": 0,\r\n \"certificateReferences\": [],\r\n \"isDedicated\": true,\r\n \"endpointConfiguration\": {\r\n \"inboundEndpoints\": [\r\n {\r\n \"name\": \"SSHRule.0\",\r\n \"protocol\": \"tcp\",\r\n \"publicIPAddress\": \"4.152.130.106\",\r\n \"publicFQDN\": \"dnsfdb5a251-50dd-414f-9ce5-846a26202647-azurebatch-cloudservice.eastus2.cloudapp.azure.com\",\r\n \"frontendPort\": 50000,\r\n \"backendPort\": 22\r\n }\r\n ]\r\n },\r\n \"nodeAgentInfo\": {\r\n \"lastUpdateTime\": \"2024-11-13T21:30:29.89676Z\",\r\n \"version\": \"1.12.7\"\r\n },\r\n \"virtualMachineInfo\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\",\r\n \"exactVersion\": \"latest\"\r\n }\r\n }\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#nodes/@Element\",\r\n \"id\": \"tvmps_b32909861894bb1d8455297d4fb3b837185a7db8cb39493165be8e8ca0140beb_d\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/rebootandreimagenodepool/nodes/tvmps_b32909861894bb1d8455297d4fb3b837185a7db8cb39493165be8e8ca0140beb_d\",\r\n \"state\": \"rebooting\",\r\n \"schedulingState\": \"enabled\",\r\n \"stateTransitionTime\": \"2025-09-11T21:20:07.2008777Z\",\r\n \"lastBootTime\": \"2025-09-11T21:20:03.38187Z\",\r\n \"allocationTime\": \"2025-09-11T21:19:47.271498Z\",\r\n \"ipAddress\": \"10.0.0.4\",\r\n \"affinityId\": \"TVM:tvmps_b32909861894bb1d8455297d4fb3b837185a7db8cb39493165be8e8ca0140beb_d\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"totalTasksRun\": 0,\r\n \"totalTasksSucceeded\": 0,\r\n \"runningTasksCount\": 0,\r\n \"runningTaskSlotsCount\": 0,\r\n \"certificateReferences\": [],\r\n \"isDedicated\": true,\r\n \"endpointConfiguration\": {\r\n \"inboundEndpoints\": [\r\n {\r\n \"name\": \"SSHRule.0\",\r\n \"protocol\": \"tcp\",\r\n \"publicIPAddress\": \"135.119.200.8\",\r\n \"publicFQDN\": \"dnsd9ea1edd-d135-4d1d-950a-4f2064ce18d9-azurebatch-cloudservice.eastus2.cloudapp.azure.com\",\r\n \"frontendPort\": 50000,\r\n \"backendPort\": 22\r\n }\r\n ]\r\n },\r\n \"nodeAgentInfo\": {\r\n \"lastUpdateTime\": \"2025-09-11T21:20:03.38187Z\",\r\n \"version\": \"1.12.24\"\r\n },\r\n \"virtualMachineInfo\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\",\r\n \"exactVersion\": \"latest\"\r\n }\r\n }\r\n}", "StatusCode": 200 }, { - "RequestUri": "/pools/rebootandreimagenodepool/nodes/tvmps_127980c3f1489d6c3d5f63f5d646d1986030e7b2b8429cc58378effd2b7c87b3_d/reboot?api-version=2024-02-01.19.0", - "EncodedRequestUri": "L3Bvb2xzL3JlYm9vdGFuZHJlaW1hZ2Vub2RlcG9vbC9ub2Rlcy90dm1wc18xMjc5ODBjM2YxNDg5ZDZjM2Q1ZjYzZjVkNjQ2ZDE5ODYwMzBlN2IyYjg0MjljYzU4Mzc4ZWZmZDJiN2M4N2IzX2QvcmVib290P2FwaS12ZXJzaW9uPTIwMjQtMDItMDEuMTkuMA==", + "RequestUri": "/pools/rebootandreimagenodepool/nodes/tvmps_b32909861894bb1d8455297d4fb3b837185a7db8cb39493165be8e8ca0140beb_d/reboot?api-version=2024-02-01.19.0", + "EncodedRequestUri": "L3Bvb2xzL3JlYm9vdGFuZHJlaW1hZ2Vub2RlcG9vbC9ub2Rlcy90dm1wc19iMzI5MDk4NjE4OTRiYjFkODQ1NTI5N2Q0ZmIzYjgzNzE4NWE3ZGI4Y2IzOTQ5MzE2NWJlOGU4Y2EwMTQwYmViX2QvcmVib290P2FwaS12ZXJzaW9uPTIwMjQtMDItMDEuMTkuMA==", "RequestMethod": "POST", "RequestHeaders": { - "client-request-id": [ - "50b617ac-d6f0-4d31-9b61-18b3d121e453" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "f784f8e2-6c52-4ec0-a935-00a044f516fd" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:30:31 GMT" + "Thu, 11 Sep 2025 21:20:06 GMT" ], "x-ms-client-request-id": [ - "692dce8d-cac3-401b-b88a-cbad74addee8" + "5e296eef-b111-4d34-9710-4988e7d7a0fb" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ], @@ -1341,7 +1997,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "4a1b0b2c-505d-4cf6-aa9e-f645b78aceef" + "624ed5dc-1b57-4c8c-9b4d-6f6002f8124d" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -1353,10 +2009,10 @@ "3.0" ], "DataServiceId": [ - "https://dawatrouhobo.eastus2.batch.azure.com/pools/rebootandreimagenodepool/nodes/tvmps_127980c3f1489d6c3d5f63f5d646d1986030e7b2b8429cc58378effd2b7c87b3_d/reboot" + "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/rebootandreimagenodepool/nodes/tvmps_b32909861894bb1d8455297d4fb3b837185a7db8cb39493165be8e8ca0140beb_d/reboot" ], "Date": [ - "Wed, 13 Nov 2024 21:30:30 GMT" + "Thu, 11 Sep 2025 21:20:06 GMT" ] }, "ResponseBody": "", @@ -1365,9 +2021,9 @@ ], "Names": {}, "Variables": { - "SubscriptionId": "21abd678-18c5-4660-9fdd-8c5ba6b6fe1f", - "AZURE_BATCH_ACCOUNT": "dawatrouhobo", - "AZURE_BATCH_ENDPOINT": "https://dawatrouhobo.eastus2.batch.azure.com", - "AZURE_BATCH_RESOURCE_GROUP": "dawatrou-rg" + "SubscriptionId": "94bd7ded-68b4-4ffa-82a5-37ac72caa2ec", + "AZURE_BATCH_ACCOUNT": "dotnotsdkbatchaccount2", + "AZURE_BATCH_ENDPOINT": "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com", + "AZURE_BATCH_RESOURCE_GROUP": "automation" } } \ No newline at end of file diff --git a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.ComputeNodeTests/TestRemoveComputeNodes.json b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.ComputeNodeTests/TestRemoveComputeNodes.json index 4b12782a4573..eb72e346abaf 100644 --- a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.ComputeNodeTests/TestRemoveComputeNodes.json +++ b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.ComputeNodeTests/TestRemoveComputeNodes.json @@ -5,19 +5,19 @@ "EncodedRequestUri": "L3Bvb2xzP2FwaS12ZXJzaW9uPTIwMjQtMDItMDEuMTkuMA==", "RequestMethod": "POST", "RequestHeaders": { - "client-request-id": [ - "ab685b19-c8a9-4f33-b28f-6c359ef2fe11" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "cec34532-f50c-4715-9929-8f04f64a04bc" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:31:33 GMT" + "Thu, 11 Sep 2025 22:25:07 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ], @@ -34,16 +34,16 @@ "chunked" ], "ETag": [ - "0x8DD042A8BE1BB42" + "0x8DDF182101FE921" ], "Location": [ - "https://dawatrouhobo.eastus2.batch.azure.com/pools/removenodepool" + "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/removenodepool" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "a067be63-fcf3-418e-9d54-193c0e8a79c9" + "ef68db96-13ef-4874-b00f-354c8abd694c" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -55,13 +55,13 @@ "3.0" ], "DataServiceId": [ - "https://dawatrouhobo.eastus2.batch.azure.com/pools/removenodepool" + "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/removenodepool" ], "Date": [ - "Wed, 13 Nov 2024 21:31:33 GMT" + "Thu, 11 Sep 2025 22:25:06 GMT" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:31:33 GMT" + "Thu, 11 Sep 2025 22:25:07 GMT" ] }, "ResponseBody": "", @@ -72,19 +72,19 @@ "EncodedRequestUri": "L3Bvb2xzL3JlbW92ZW5vZGVwb29sP2FwaS12ZXJzaW9uPTIwMjQtMDItMDEuMTkuMA==", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "3c3bc817-6016-4a99-944a-c3bcf255684a" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "ec127938-b3fc-4ba3-a274-23eff8bad2c6" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:31:34 GMT" + "Thu, 11 Sep 2025 22:25:07 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -95,13 +95,13 @@ "chunked" ], "ETag": [ - "0x8DD042A8BE1BB42" + "0x8DDF182101FE921" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "e142e315-baa1-4a87-a77d-ddda14a1ddc9" + "6e4d45dc-7fcd-44a2-aa07-4ea7b1141f4a" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -113,16 +113,16 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:31:33 GMT" + "Thu, 11 Sep 2025 22:25:07 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:31:33 GMT" + "Thu, 11 Sep 2025 22:25:07 GMT" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"removenodepool\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/pools/removenodepool\",\r\n \"eTag\": \"0x8DD042A8BE1BB42\",\r\n \"lastModified\": \"2024-11-13T21:31:33.8442562Z\",\r\n \"creationTime\": \"2024-11-13T21:31:33.844255Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2024-11-13T21:31:33.844255Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2024-11-13T21:31:33.8442562Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\",\r\n \"upgradePolicy\": {\r\n \"mode\": \"automatic\",\r\n \"automaticOSUpgradePolicy\": {\r\n \"disableAutomaticRollback\": true,\r\n \"enableAutomaticOSUpgrade\": true,\r\n \"useRollingUpgradePolicy\": true,\r\n \"osRollingUpgradeDeferral\": true\r\n },\r\n \"rollingUpgradePolicy\": {\r\n \"enableCrossZoneUpgrade\": true,\r\n \"maxBatchInstancePercent\": 20,\r\n \"maxUnhealthyInstancePercent\": 20,\r\n \"maxUnhealthyUpgradedInstancePercent\": 20,\r\n \"pauseTimeBetweenBatches\": \"PT5S\",\r\n \"prioritizeUnhealthyInstances\": false,\r\n \"rollbackFailedInstancesOnPolicyBreach\": false\r\n }\r\n }\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"removenodepool\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/removenodepool\",\r\n \"eTag\": \"0x8DDF182101FE921\",\r\n \"lastModified\": \"2025-09-11T22:25:07.5047713Z\",\r\n \"creationTime\": \"2025-09-11T22:25:07.5047701Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T22:25:07.5047701Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2025-09-11T22:25:07.5047713Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\",\r\n \"upgradePolicy\": {\r\n \"mode\": \"automatic\",\r\n \"automaticOSUpgradePolicy\": {\r\n \"disableAutomaticRollback\": true,\r\n \"enableAutomaticOSUpgrade\": true,\r\n \"useRollingUpgradePolicy\": true,\r\n \"osRollingUpgradeDeferral\": true\r\n },\r\n \"rollingUpgradePolicy\": {\r\n \"enableCrossZoneUpgrade\": true,\r\n \"maxBatchInstancePercent\": 20,\r\n \"maxUnhealthyInstancePercent\": 20,\r\n \"maxUnhealthyUpgradedInstancePercent\": 20,\r\n \"pauseTimeBetweenBatches\": \"PT5S\",\r\n \"prioritizeUnhealthyInstances\": false,\r\n \"rollbackFailedInstancesOnPolicyBreach\": false\r\n }\r\n }\r\n}", "StatusCode": 200 }, { @@ -130,19 +130,19 @@ "EncodedRequestUri": "L3Bvb2xzL3JlbW92ZW5vZGVwb29sP2FwaS12ZXJzaW9uPTIwMjQtMDItMDEuMTkuMA==", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "0ad74aca-227c-4789-9e54-5a5994cf303a" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "fe307b3a-f017-44c6-a606-42dedc344ff8" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:31:39 GMT" + "Thu, 11 Sep 2025 22:25:12 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -153,13 +153,13 @@ "chunked" ], "ETag": [ - "0x8DD042A8BE1BB42" + "0x8DDF182101FE921" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "a3ec13b8-42c1-455f-bf0b-6dae92bf0df2" + "d007c515-5c7b-45f7-848d-ce4097a9b9f4" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -171,16 +171,16 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:31:38 GMT" + "Thu, 11 Sep 2025 22:25:12 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:31:33 GMT" + "Thu, 11 Sep 2025 22:25:07 GMT" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"removenodepool\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/pools/removenodepool\",\r\n \"eTag\": \"0x8DD042A8BE1BB42\",\r\n \"lastModified\": \"2024-11-13T21:31:33.8442562Z\",\r\n \"creationTime\": \"2024-11-13T21:31:33.844255Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2024-11-13T21:31:33.844255Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2024-11-13T21:31:33.8442562Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\",\r\n \"upgradePolicy\": {\r\n \"mode\": \"automatic\",\r\n \"automaticOSUpgradePolicy\": {\r\n \"disableAutomaticRollback\": true,\r\n \"enableAutomaticOSUpgrade\": true,\r\n \"useRollingUpgradePolicy\": true,\r\n \"osRollingUpgradeDeferral\": true\r\n },\r\n \"rollingUpgradePolicy\": {\r\n \"enableCrossZoneUpgrade\": true,\r\n \"maxBatchInstancePercent\": 20,\r\n \"maxUnhealthyInstancePercent\": 20,\r\n \"maxUnhealthyUpgradedInstancePercent\": 20,\r\n \"pauseTimeBetweenBatches\": \"PT5S\",\r\n \"prioritizeUnhealthyInstances\": false,\r\n \"rollbackFailedInstancesOnPolicyBreach\": false\r\n }\r\n }\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"removenodepool\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/removenodepool\",\r\n \"eTag\": \"0x8DDF182101FE921\",\r\n \"lastModified\": \"2025-09-11T22:25:07.5047713Z\",\r\n \"creationTime\": \"2025-09-11T22:25:07.5047701Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T22:25:07.5047701Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2025-09-11T22:25:07.5047713Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\",\r\n \"upgradePolicy\": {\r\n \"mode\": \"automatic\",\r\n \"automaticOSUpgradePolicy\": {\r\n \"disableAutomaticRollback\": true,\r\n \"enableAutomaticOSUpgrade\": true,\r\n \"useRollingUpgradePolicy\": true,\r\n \"osRollingUpgradeDeferral\": true\r\n },\r\n \"rollingUpgradePolicy\": {\r\n \"enableCrossZoneUpgrade\": true,\r\n \"maxBatchInstancePercent\": 20,\r\n \"maxUnhealthyInstancePercent\": 20,\r\n \"maxUnhealthyUpgradedInstancePercent\": 20,\r\n \"pauseTimeBetweenBatches\": \"PT5S\",\r\n \"prioritizeUnhealthyInstances\": false,\r\n \"rollbackFailedInstancesOnPolicyBreach\": false\r\n }\r\n }\r\n}", "StatusCode": 200 }, { @@ -188,19 +188,19 @@ "EncodedRequestUri": "L3Bvb2xzL3JlbW92ZW5vZGVwb29sP2FwaS12ZXJzaW9uPTIwMjQtMDItMDEuMTkuMA==", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "91619b9c-f37b-44f2-b187-50be113f0ac1" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "706d6578-2f28-4423-8a52-a2c6e1974f46" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:31:44 GMT" + "Thu, 11 Sep 2025 22:25:18 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -211,13 +211,13 @@ "chunked" ], "ETag": [ - "0x8DD042A8BE1BB42" + "0x8DDF182101FE921" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "da2ce625-e7b1-4833-b135-204a4e8b6fe2" + "3f0b06e2-3d3a-4c97-a565-afe31056e08e" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -229,16 +229,16 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:31:43 GMT" + "Thu, 11 Sep 2025 22:25:17 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:31:33 GMT" + "Thu, 11 Sep 2025 22:25:07 GMT" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"removenodepool\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/pools/removenodepool\",\r\n \"eTag\": \"0x8DD042A8BE1BB42\",\r\n \"lastModified\": \"2024-11-13T21:31:33.8442562Z\",\r\n \"creationTime\": \"2024-11-13T21:31:33.844255Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2024-11-13T21:31:33.844255Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2024-11-13T21:31:33.8442562Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\",\r\n \"upgradePolicy\": {\r\n \"mode\": \"automatic\",\r\n \"automaticOSUpgradePolicy\": {\r\n \"disableAutomaticRollback\": true,\r\n \"enableAutomaticOSUpgrade\": true,\r\n \"useRollingUpgradePolicy\": true,\r\n \"osRollingUpgradeDeferral\": true\r\n },\r\n \"rollingUpgradePolicy\": {\r\n \"enableCrossZoneUpgrade\": true,\r\n \"maxBatchInstancePercent\": 20,\r\n \"maxUnhealthyInstancePercent\": 20,\r\n \"maxUnhealthyUpgradedInstancePercent\": 20,\r\n \"pauseTimeBetweenBatches\": \"PT5S\",\r\n \"prioritizeUnhealthyInstances\": false,\r\n \"rollbackFailedInstancesOnPolicyBreach\": false\r\n }\r\n }\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"removenodepool\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/removenodepool\",\r\n \"eTag\": \"0x8DDF182101FE921\",\r\n \"lastModified\": \"2025-09-11T22:25:07.5047713Z\",\r\n \"creationTime\": \"2025-09-11T22:25:07.5047701Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T22:25:07.5047701Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2025-09-11T22:25:07.5047713Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\",\r\n \"upgradePolicy\": {\r\n \"mode\": \"automatic\",\r\n \"automaticOSUpgradePolicy\": {\r\n \"disableAutomaticRollback\": true,\r\n \"enableAutomaticOSUpgrade\": true,\r\n \"useRollingUpgradePolicy\": true,\r\n \"osRollingUpgradeDeferral\": true\r\n },\r\n \"rollingUpgradePolicy\": {\r\n \"enableCrossZoneUpgrade\": true,\r\n \"maxBatchInstancePercent\": 20,\r\n \"maxUnhealthyInstancePercent\": 20,\r\n \"maxUnhealthyUpgradedInstancePercent\": 20,\r\n \"pauseTimeBetweenBatches\": \"PT5S\",\r\n \"prioritizeUnhealthyInstances\": false,\r\n \"rollbackFailedInstancesOnPolicyBreach\": false\r\n }\r\n }\r\n}", "StatusCode": 200 }, { @@ -246,19 +246,19 @@ "EncodedRequestUri": "L3Bvb2xzL3JlbW92ZW5vZGVwb29sP2FwaS12ZXJzaW9uPTIwMjQtMDItMDEuMTkuMA==", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "34ff6680-a049-4d41-8573-7497cc8ab702" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "f7b428cf-efc4-4ca1-b465-448bc8db9553" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:31:49 GMT" + "Thu, 11 Sep 2025 22:25:23 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -269,13 +269,13 @@ "chunked" ], "ETag": [ - "0x8DD042A8BE1BB42" + "0x8DDF182101FE921" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "2eae3720-0bf1-4abd-b105-b9475d787e6c" + "e271cdbc-0019-4a9f-bfe8-6626545ce4b0" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -287,16 +287,16 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:31:48 GMT" + "Thu, 11 Sep 2025 22:25:22 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:31:33 GMT" + "Thu, 11 Sep 2025 22:25:07 GMT" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"removenodepool\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/pools/removenodepool\",\r\n \"eTag\": \"0x8DD042A8BE1BB42\",\r\n \"lastModified\": \"2024-11-13T21:31:33.8442562Z\",\r\n \"creationTime\": \"2024-11-13T21:31:33.844255Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2024-11-13T21:31:33.844255Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2024-11-13T21:31:33.8442562Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\",\r\n \"upgradePolicy\": {\r\n \"mode\": \"automatic\",\r\n \"automaticOSUpgradePolicy\": {\r\n \"disableAutomaticRollback\": true,\r\n \"enableAutomaticOSUpgrade\": true,\r\n \"useRollingUpgradePolicy\": true,\r\n \"osRollingUpgradeDeferral\": true\r\n },\r\n \"rollingUpgradePolicy\": {\r\n \"enableCrossZoneUpgrade\": true,\r\n \"maxBatchInstancePercent\": 20,\r\n \"maxUnhealthyInstancePercent\": 20,\r\n \"maxUnhealthyUpgradedInstancePercent\": 20,\r\n \"pauseTimeBetweenBatches\": \"PT5S\",\r\n \"prioritizeUnhealthyInstances\": false,\r\n \"rollbackFailedInstancesOnPolicyBreach\": false\r\n }\r\n }\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"removenodepool\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/removenodepool\",\r\n \"eTag\": \"0x8DDF182101FE921\",\r\n \"lastModified\": \"2025-09-11T22:25:07.5047713Z\",\r\n \"creationTime\": \"2025-09-11T22:25:07.5047701Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T22:25:07.5047701Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2025-09-11T22:25:07.5047713Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\",\r\n \"upgradePolicy\": {\r\n \"mode\": \"automatic\",\r\n \"automaticOSUpgradePolicy\": {\r\n \"disableAutomaticRollback\": true,\r\n \"enableAutomaticOSUpgrade\": true,\r\n \"useRollingUpgradePolicy\": true,\r\n \"osRollingUpgradeDeferral\": true\r\n },\r\n \"rollingUpgradePolicy\": {\r\n \"enableCrossZoneUpgrade\": true,\r\n \"maxBatchInstancePercent\": 20,\r\n \"maxUnhealthyInstancePercent\": 20,\r\n \"maxUnhealthyUpgradedInstancePercent\": 20,\r\n \"pauseTimeBetweenBatches\": \"PT5S\",\r\n \"prioritizeUnhealthyInstances\": false,\r\n \"rollbackFailedInstancesOnPolicyBreach\": false\r\n }\r\n }\r\n}", "StatusCode": 200 }, { @@ -304,19 +304,19 @@ "EncodedRequestUri": "L3Bvb2xzL3JlbW92ZW5vZGVwb29sP2FwaS12ZXJzaW9uPTIwMjQtMDItMDEuMTkuMA==", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "0910058f-4305-42e7-8b96-398e6ca57e1f" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "a2c302b3-744b-418b-99f0-46984bbe12df" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:31:54 GMT" + "Thu, 11 Sep 2025 22:25:28 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -327,13 +327,13 @@ "chunked" ], "ETag": [ - "0x8DD042A8BE1BB42" + "0x8DDF182101FE921" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "19754974-8782-4fca-94a6-a3a198417d92" + "8a414cf0-1113-4c5c-9eb9-a259bff85705" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -345,16 +345,16 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:31:53 GMT" + "Thu, 11 Sep 2025 22:25:27 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:31:33 GMT" + "Thu, 11 Sep 2025 22:25:07 GMT" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"removenodepool\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/pools/removenodepool\",\r\n \"eTag\": \"0x8DD042A8BE1BB42\",\r\n \"lastModified\": \"2024-11-13T21:31:33.8442562Z\",\r\n \"creationTime\": \"2024-11-13T21:31:33.844255Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2024-11-13T21:31:33.844255Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2024-11-13T21:31:33.8442562Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\",\r\n \"upgradePolicy\": {\r\n \"mode\": \"automatic\",\r\n \"automaticOSUpgradePolicy\": {\r\n \"disableAutomaticRollback\": true,\r\n \"enableAutomaticOSUpgrade\": true,\r\n \"useRollingUpgradePolicy\": true,\r\n \"osRollingUpgradeDeferral\": true\r\n },\r\n \"rollingUpgradePolicy\": {\r\n \"enableCrossZoneUpgrade\": true,\r\n \"maxBatchInstancePercent\": 20,\r\n \"maxUnhealthyInstancePercent\": 20,\r\n \"maxUnhealthyUpgradedInstancePercent\": 20,\r\n \"pauseTimeBetweenBatches\": \"PT5S\",\r\n \"prioritizeUnhealthyInstances\": false,\r\n \"rollbackFailedInstancesOnPolicyBreach\": false\r\n }\r\n }\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"removenodepool\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/removenodepool\",\r\n \"eTag\": \"0x8DDF182101FE921\",\r\n \"lastModified\": \"2025-09-11T22:25:07.5047713Z\",\r\n \"creationTime\": \"2025-09-11T22:25:07.5047701Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T22:25:07.5047701Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2025-09-11T22:25:07.5047713Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\",\r\n \"upgradePolicy\": {\r\n \"mode\": \"automatic\",\r\n \"automaticOSUpgradePolicy\": {\r\n \"disableAutomaticRollback\": true,\r\n \"enableAutomaticOSUpgrade\": true,\r\n \"useRollingUpgradePolicy\": true,\r\n \"osRollingUpgradeDeferral\": true\r\n },\r\n \"rollingUpgradePolicy\": {\r\n \"enableCrossZoneUpgrade\": true,\r\n \"maxBatchInstancePercent\": 20,\r\n \"maxUnhealthyInstancePercent\": 20,\r\n \"maxUnhealthyUpgradedInstancePercent\": 20,\r\n \"pauseTimeBetweenBatches\": \"PT5S\",\r\n \"prioritizeUnhealthyInstances\": false,\r\n \"rollbackFailedInstancesOnPolicyBreach\": false\r\n }\r\n }\r\n}", "StatusCode": 200 }, { @@ -362,19 +362,19 @@ "EncodedRequestUri": "L3Bvb2xzL3JlbW92ZW5vZGVwb29sP2FwaS12ZXJzaW9uPTIwMjQtMDItMDEuMTkuMA==", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "e4c82e62-ec50-4918-961c-407690acea10" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "82e6e103-2fc1-4d60-8aef-36bf245f27e2" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:31:59 GMT" + "Thu, 11 Sep 2025 22:25:33 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -385,13 +385,13 @@ "chunked" ], "ETag": [ - "0x8DD042A8BE1BB42" + "0x8DDF182101FE921" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "705eef39-7e14-42e6-bc6a-0e228ba941a5" + "bf4f0f4a-cc6b-4f7c-8516-da3e53c9ed56" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -403,16 +403,16 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:31:58 GMT" + "Thu, 11 Sep 2025 22:25:33 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:31:33 GMT" + "Thu, 11 Sep 2025 22:25:07 GMT" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"removenodepool\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/pools/removenodepool\",\r\n \"eTag\": \"0x8DD042A8BE1BB42\",\r\n \"lastModified\": \"2024-11-13T21:31:33.8442562Z\",\r\n \"creationTime\": \"2024-11-13T21:31:33.844255Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2024-11-13T21:31:33.844255Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2024-11-13T21:31:33.8442562Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\",\r\n \"upgradePolicy\": {\r\n \"mode\": \"automatic\",\r\n \"automaticOSUpgradePolicy\": {\r\n \"disableAutomaticRollback\": true,\r\n \"enableAutomaticOSUpgrade\": true,\r\n \"useRollingUpgradePolicy\": true,\r\n \"osRollingUpgradeDeferral\": true\r\n },\r\n \"rollingUpgradePolicy\": {\r\n \"enableCrossZoneUpgrade\": true,\r\n \"maxBatchInstancePercent\": 20,\r\n \"maxUnhealthyInstancePercent\": 20,\r\n \"maxUnhealthyUpgradedInstancePercent\": 20,\r\n \"pauseTimeBetweenBatches\": \"PT5S\",\r\n \"prioritizeUnhealthyInstances\": false,\r\n \"rollbackFailedInstancesOnPolicyBreach\": false\r\n }\r\n }\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"removenodepool\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/removenodepool\",\r\n \"eTag\": \"0x8DDF182101FE921\",\r\n \"lastModified\": \"2025-09-11T22:25:07.5047713Z\",\r\n \"creationTime\": \"2025-09-11T22:25:07.5047701Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T22:25:07.5047701Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2025-09-11T22:25:07.5047713Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\",\r\n \"upgradePolicy\": {\r\n \"mode\": \"automatic\",\r\n \"automaticOSUpgradePolicy\": {\r\n \"disableAutomaticRollback\": true,\r\n \"enableAutomaticOSUpgrade\": true,\r\n \"useRollingUpgradePolicy\": true,\r\n \"osRollingUpgradeDeferral\": true\r\n },\r\n \"rollingUpgradePolicy\": {\r\n \"enableCrossZoneUpgrade\": true,\r\n \"maxBatchInstancePercent\": 20,\r\n \"maxUnhealthyInstancePercent\": 20,\r\n \"maxUnhealthyUpgradedInstancePercent\": 20,\r\n \"pauseTimeBetweenBatches\": \"PT5S\",\r\n \"prioritizeUnhealthyInstances\": false,\r\n \"rollbackFailedInstancesOnPolicyBreach\": false\r\n }\r\n }\r\n}", "StatusCode": 200 }, { @@ -420,19 +420,19 @@ "EncodedRequestUri": "L3Bvb2xzL3JlbW92ZW5vZGVwb29sP2FwaS12ZXJzaW9uPTIwMjQtMDItMDEuMTkuMA==", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "0ff526c9-f86d-48e4-b795-e141f4c3fea7" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "d1c1624c-992c-4619-8375-4fb5f8303a62" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:32:04 GMT" + "Thu, 11 Sep 2025 22:25:38 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -443,13 +443,13 @@ "chunked" ], "ETag": [ - "0x8DD042A8BE1BB42" + "0x8DDF182101FE921" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "03fe933d-9703-4cee-9b15-965361fd24b0" + "2a790af7-cf70-418a-a183-40746eecebf5" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -461,16 +461,16 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:32:04 GMT" + "Thu, 11 Sep 2025 22:25:38 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:31:33 GMT" + "Thu, 11 Sep 2025 22:25:07 GMT" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"removenodepool\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/pools/removenodepool\",\r\n \"eTag\": \"0x8DD042A8BE1BB42\",\r\n \"lastModified\": \"2024-11-13T21:31:33.8442562Z\",\r\n \"creationTime\": \"2024-11-13T21:31:33.844255Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2024-11-13T21:31:33.844255Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2024-11-13T21:31:33.8442562Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\",\r\n \"upgradePolicy\": {\r\n \"mode\": \"automatic\",\r\n \"automaticOSUpgradePolicy\": {\r\n \"disableAutomaticRollback\": true,\r\n \"enableAutomaticOSUpgrade\": true,\r\n \"useRollingUpgradePolicy\": true,\r\n \"osRollingUpgradeDeferral\": true\r\n },\r\n \"rollingUpgradePolicy\": {\r\n \"enableCrossZoneUpgrade\": true,\r\n \"maxBatchInstancePercent\": 20,\r\n \"maxUnhealthyInstancePercent\": 20,\r\n \"maxUnhealthyUpgradedInstancePercent\": 20,\r\n \"pauseTimeBetweenBatches\": \"PT5S\",\r\n \"prioritizeUnhealthyInstances\": false,\r\n \"rollbackFailedInstancesOnPolicyBreach\": false\r\n }\r\n }\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"removenodepool\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/removenodepool\",\r\n \"eTag\": \"0x8DDF182101FE921\",\r\n \"lastModified\": \"2025-09-11T22:25:07.5047713Z\",\r\n \"creationTime\": \"2025-09-11T22:25:07.5047701Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T22:25:07.5047701Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2025-09-11T22:25:07.5047713Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\",\r\n \"upgradePolicy\": {\r\n \"mode\": \"automatic\",\r\n \"automaticOSUpgradePolicy\": {\r\n \"disableAutomaticRollback\": true,\r\n \"enableAutomaticOSUpgrade\": true,\r\n \"useRollingUpgradePolicy\": true,\r\n \"osRollingUpgradeDeferral\": true\r\n },\r\n \"rollingUpgradePolicy\": {\r\n \"enableCrossZoneUpgrade\": true,\r\n \"maxBatchInstancePercent\": 20,\r\n \"maxUnhealthyInstancePercent\": 20,\r\n \"maxUnhealthyUpgradedInstancePercent\": 20,\r\n \"pauseTimeBetweenBatches\": \"PT5S\",\r\n \"prioritizeUnhealthyInstances\": false,\r\n \"rollbackFailedInstancesOnPolicyBreach\": false\r\n }\r\n }\r\n}", "StatusCode": 200 }, { @@ -478,19 +478,19 @@ "EncodedRequestUri": "L3Bvb2xzL3JlbW92ZW5vZGVwb29sP2FwaS12ZXJzaW9uPTIwMjQtMDItMDEuMTkuMA==", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "9998be5e-c49b-467a-ad6a-9b458899c15f" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "99ef602c-b279-4998-b1ee-be52a37c5152" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:32:09 GMT" + "Thu, 11 Sep 2025 22:25:43 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -501,13 +501,13 @@ "chunked" ], "ETag": [ - "0x8DD042A8BE1BB42" + "0x8DDF182101FE921" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "4b7a4ae3-3aca-4cfa-85c4-9d0e91fa6ef3" + "020e52b7-c6c8-40f8-a855-ecbbb5d6586a" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -519,16 +519,16 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:32:09 GMT" + "Thu, 11 Sep 2025 22:25:42 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:31:33 GMT" + "Thu, 11 Sep 2025 22:25:07 GMT" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"removenodepool\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/pools/removenodepool\",\r\n \"eTag\": \"0x8DD042A8BE1BB42\",\r\n \"lastModified\": \"2024-11-13T21:31:33.8442562Z\",\r\n \"creationTime\": \"2024-11-13T21:31:33.844255Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2024-11-13T21:31:33.844255Z\",\r\n \"allocationState\": \"steady\",\r\n \"allocationStateTransitionTime\": \"2024-11-13T21:32:06.31785Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 2,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\",\r\n \"currentNodeCommunicationMode\": \"classic\",\r\n \"upgradePolicy\": {\r\n \"mode\": \"automatic\",\r\n \"automaticOSUpgradePolicy\": {\r\n \"disableAutomaticRollback\": true,\r\n \"enableAutomaticOSUpgrade\": true,\r\n \"useRollingUpgradePolicy\": true,\r\n \"osRollingUpgradeDeferral\": true\r\n },\r\n \"rollingUpgradePolicy\": {\r\n \"enableCrossZoneUpgrade\": true,\r\n \"maxBatchInstancePercent\": 20,\r\n \"maxUnhealthyInstancePercent\": 20,\r\n \"maxUnhealthyUpgradedInstancePercent\": 20,\r\n \"pauseTimeBetweenBatches\": \"PT5S\",\r\n \"prioritizeUnhealthyInstances\": false,\r\n \"rollbackFailedInstancesOnPolicyBreach\": false\r\n }\r\n }\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"removenodepool\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/removenodepool\",\r\n \"eTag\": \"0x8DDF182101FE921\",\r\n \"lastModified\": \"2025-09-11T22:25:07.5047713Z\",\r\n \"creationTime\": \"2025-09-11T22:25:07.5047701Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T22:25:07.5047701Z\",\r\n \"allocationState\": \"steady\",\r\n \"allocationStateTransitionTime\": \"2025-09-11T22:25:40.2053861Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 2,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\",\r\n \"currentNodeCommunicationMode\": \"simplified\",\r\n \"upgradePolicy\": {\r\n \"mode\": \"automatic\",\r\n \"automaticOSUpgradePolicy\": {\r\n \"disableAutomaticRollback\": true,\r\n \"enableAutomaticOSUpgrade\": true,\r\n \"useRollingUpgradePolicy\": true,\r\n \"osRollingUpgradeDeferral\": true\r\n },\r\n \"rollingUpgradePolicy\": {\r\n \"enableCrossZoneUpgrade\": true,\r\n \"maxBatchInstancePercent\": 20,\r\n \"maxUnhealthyInstancePercent\": 20,\r\n \"maxUnhealthyUpgradedInstancePercent\": 20,\r\n \"pauseTimeBetweenBatches\": \"PT5S\",\r\n \"prioritizeUnhealthyInstances\": false,\r\n \"rollbackFailedInstancesOnPolicyBreach\": false\r\n }\r\n }\r\n}", "StatusCode": 200 }, { @@ -536,22 +536,22 @@ "EncodedRequestUri": "L3Bvb2xzL3JlbW92ZW5vZGVwb29sL25vZGVzP2FwaS12ZXJzaW9uPTIwMjQtMDItMDEuMTkuMA==", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "95130094-0882-441d-a029-137f226a0038" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "abbcad97-d934-4030-a8c9-0dd4b20fdaec" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:32:10 GMT" + "Thu, 11 Sep 2025 22:26:01 GMT" ], "x-ms-client-request-id": [ - "4fdd8951-738d-4b78-b6f1-436f83387c8e" + "11c1da43-e301-42e8-95fa-cf7c42c1c845" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -565,7 +565,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "60b9bab3-8a3e-4438-945e-c935dc91a314" + "f5f64bc4-1cb2-4af4-86c0-422ffe5e698e" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -577,13 +577,13 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:32:09 GMT" + "Thu, 11 Sep 2025 22:26:01 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#nodes\",\r\n \"value\": [\r\n {\r\n \"id\": \"tvmps_1a8900466d782ae6f94c7d82948a9873cab32d48e8a0f949f9517c18b7b1344e_d\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/pools/removenodepool/nodes/tvmps_1a8900466d782ae6f94c7d82948a9873cab32d48e8a0f949f9517c18b7b1344e_d\",\r\n \"state\": \"creating\",\r\n \"schedulingState\": \"enabled\",\r\n \"stateTransitionTime\": \"2024-11-13T21:32:05.9358569Z\",\r\n \"allocationTime\": \"2024-11-13T21:32:05.9358649Z\",\r\n \"ipAddress\": \"10.0.0.4\",\r\n \"affinityId\": \"TVM:tvmps_1a8900466d782ae6f94c7d82948a9873cab32d48e8a0f949f9517c18b7b1344e_d\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"totalTasksRun\": 0,\r\n \"totalTasksSucceeded\": 0,\r\n \"runningTasksCount\": 0,\r\n \"runningTaskSlotsCount\": 0,\r\n \"isDedicated\": true,\r\n \"endpointConfiguration\": {\r\n \"inboundEndpoints\": [\r\n {\r\n \"name\": \"SSHRule.0\",\r\n \"protocol\": \"tcp\",\r\n \"publicIPAddress\": \"4.152.208.181\",\r\n \"publicFQDN\": \"dnsf896263c-0aa5-4ca3-9d21-b8cc4862bba3-azurebatch-cloudservice.eastus2.cloudapp.azure.com\",\r\n \"frontendPort\": 50000,\r\n \"backendPort\": 22\r\n }\r\n ]\r\n },\r\n \"virtualMachineInfo\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\",\r\n \"exactVersion\": \"latest\"\r\n }\r\n }\r\n },\r\n {\r\n \"id\": \"tvmps_fa134cf0299e89f6b4d24a30c301ad91a9e8f1677deb5e7260d67146fd98a65d_d\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/pools/removenodepool/nodes/tvmps_fa134cf0299e89f6b4d24a30c301ad91a9e8f1677deb5e7260d67146fd98a65d_d\",\r\n \"state\": \"creating\",\r\n \"schedulingState\": \"enabled\",\r\n \"stateTransitionTime\": \"2024-11-13T21:32:05.9358914Z\",\r\n \"allocationTime\": \"2024-11-13T21:32:05.9358936Z\",\r\n \"ipAddress\": \"10.0.0.5\",\r\n \"affinityId\": \"TVM:tvmps_fa134cf0299e89f6b4d24a30c301ad91a9e8f1677deb5e7260d67146fd98a65d_d\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"totalTasksRun\": 0,\r\n \"totalTasksSucceeded\": 0,\r\n \"runningTasksCount\": 0,\r\n \"runningTaskSlotsCount\": 0,\r\n \"isDedicated\": true,\r\n \"endpointConfiguration\": {\r\n \"inboundEndpoints\": [\r\n {\r\n \"name\": \"SSHRule.1\",\r\n \"protocol\": \"tcp\",\r\n \"publicIPAddress\": \"4.152.208.181\",\r\n \"publicFQDN\": \"dnsf896263c-0aa5-4ca3-9d21-b8cc4862bba3-azurebatch-cloudservice.eastus2.cloudapp.azure.com\",\r\n \"frontendPort\": 50001,\r\n \"backendPort\": 22\r\n }\r\n ]\r\n },\r\n \"virtualMachineInfo\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\",\r\n \"exactVersion\": \"latest\"\r\n }\r\n }\r\n }\r\n ]\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#nodes\",\r\n \"value\": [\r\n {\r\n \"id\": \"tvmps_8830c8b0d77a39903cccb1010ccae43775e6d2addd4c869ed7e4d1f8266d1b20_d\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/removenodepool/nodes/tvmps_8830c8b0d77a39903cccb1010ccae43775e6d2addd4c869ed7e4d1f8266d1b20_d\",\r\n \"state\": \"idle\",\r\n \"schedulingState\": \"enabled\",\r\n \"stateTransitionTime\": \"2025-09-11T22:25:58.514372Z\",\r\n \"lastBootTime\": \"2025-09-11T22:25:58.415912Z\",\r\n \"allocationTime\": \"2025-09-11T22:25:39.5197982Z\",\r\n \"ipAddress\": \"10.0.0.5\",\r\n \"affinityId\": \"TVM:tvmps_8830c8b0d77a39903cccb1010ccae43775e6d2addd4c869ed7e4d1f8266d1b20_d\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"totalTasksRun\": 0,\r\n \"totalTasksSucceeded\": 0,\r\n \"runningTasksCount\": 0,\r\n \"runningTaskSlotsCount\": 0,\r\n \"certificateReferences\": [],\r\n \"isDedicated\": true,\r\n \"endpointConfiguration\": {\r\n \"inboundEndpoints\": [\r\n {\r\n \"name\": \"SSHRule.1\",\r\n \"protocol\": \"tcp\",\r\n \"publicIPAddress\": \"172.210.166.26\",\r\n \"publicFQDN\": \"dns5cca86fc-7e71-41ee-9815-5ab6ee70bafb-azurebatch-cloudservice.eastus2.cloudapp.azure.com\",\r\n \"frontendPort\": 50001,\r\n \"backendPort\": 22\r\n }\r\n ]\r\n },\r\n \"nodeAgentInfo\": {\r\n \"lastUpdateTime\": \"2025-09-11T22:25:58.415912Z\",\r\n \"version\": \"1.12.24\"\r\n },\r\n \"virtualMachineInfo\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\",\r\n \"exactVersion\": \"latest\"\r\n }\r\n }\r\n },\r\n {\r\n \"id\": \"tvmps_de53a6f8a28de5be3fd45e6638f7a595b82697e1a407094fc57cc0fa095adfaa_d\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/removenodepool/nodes/tvmps_de53a6f8a28de5be3fd45e6638f7a595b82697e1a407094fc57cc0fa095adfaa_d\",\r\n \"state\": \"starting\",\r\n \"schedulingState\": \"enabled\",\r\n \"stateTransitionTime\": \"2025-09-11T22:25:50.2184295Z\",\r\n \"allocationTime\": \"2025-09-11T22:25:39.5198277Z\",\r\n \"ipAddress\": \"10.0.0.4\",\r\n \"affinityId\": \"TVM:tvmps_de53a6f8a28de5be3fd45e6638f7a595b82697e1a407094fc57cc0fa095adfaa_d\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"totalTasksRun\": 0,\r\n \"totalTasksSucceeded\": 0,\r\n \"runningTasksCount\": 0,\r\n \"runningTaskSlotsCount\": 0,\r\n \"isDedicated\": true,\r\n \"endpointConfiguration\": {\r\n \"inboundEndpoints\": [\r\n {\r\n \"name\": \"SSHRule.0\",\r\n \"protocol\": \"tcp\",\r\n \"publicIPAddress\": \"172.210.166.26\",\r\n \"publicFQDN\": \"dns5cca86fc-7e71-41ee-9815-5ab6ee70bafb-azurebatch-cloudservice.eastus2.cloudapp.azure.com\",\r\n \"frontendPort\": 50000,\r\n \"backendPort\": 22\r\n }\r\n ]\r\n },\r\n \"virtualMachineInfo\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\",\r\n \"exactVersion\": \"latest\"\r\n }\r\n }\r\n }\r\n ]\r\n}", "StatusCode": 200 }, { @@ -591,22 +591,22 @@ "EncodedRequestUri": "L3Bvb2xzL3JlbW92ZW5vZGVwb29sL3JlbW92ZW5vZGVzP2FwaS12ZXJzaW9uPTIwMjQtMDItMDEuMTkuMA==", "RequestMethod": "POST", "RequestHeaders": { - "client-request-id": [ - "48d6aa41-807f-4c4e-8415-f49110871f4a" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "450b860d-6415-4b35-9d88-27c6c89a5c39" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:32:10 GMT" + "Thu, 11 Sep 2025 22:26:02 GMT" ], "x-ms-client-request-id": [ - "4f93679a-16a8-4ee1-80e0-ab7001a70d7f" + "8777a894-ca06-4f9b-95a4-53ee699ae1a4" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ], @@ -617,19 +617,19 @@ "187" ] }, - "RequestBody": "{\r\n \"nodeList\": [\r\n \"tvmps_1a8900466d782ae6f94c7d82948a9873cab32d48e8a0f949f9517c18b7b1344e_d\",\r\n \"tvmps_fa134cf0299e89f6b4d24a30c301ad91a9e8f1677deb5e7260d67146fd98a65d_d\"\r\n ]\r\n}", + "RequestBody": "{\r\n \"nodeList\": [\r\n \"tvmps_8830c8b0d77a39903cccb1010ccae43775e6d2addd4c869ed7e4d1f8266d1b20_d\",\r\n \"tvmps_de53a6f8a28de5be3fd45e6638f7a595b82697e1a407094fc57cc0fa095adfaa_d\"\r\n ]\r\n}", "ResponseHeaders": { "Transfer-Encoding": [ "chunked" ], "ETag": [ - "0x8DD042AA19F46E0" + "0x8DDF18230FAEF23" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "fb644161-2e18-4b9f-98ee-72ae4d111b4c" + "acfd7f65-010b-452c-b7b8-21f3b61823c9" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -641,13 +641,13 @@ "3.0" ], "DataServiceId": [ - "https://dawatrouhobo.eastus2.batch.azure.com/pools/removenodepool/removenodes" + "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/removenodepool/removenodes" ], "Date": [ - "Wed, 13 Nov 2024 21:32:09 GMT" + "Thu, 11 Sep 2025 22:26:02 GMT" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:32:10 GMT" + "Thu, 11 Sep 2025 22:26:02 GMT" ] }, "ResponseBody": "", @@ -658,22 +658,22 @@ "EncodedRequestUri": "L3Bvb2xzL3JlbW92ZW5vZGVwb29sL25vZGVzP2FwaS12ZXJzaW9uPTIwMjQtMDItMDEuMTkuMCYkc2VsZWN0PWlkJTJDc3RhdGU=", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "1f0bc6c3-42c3-4d05-b60d-3e8e7f75d7ad" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "d28d6bb0-bbd1-4f8d-947a-6ca2e5803805" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:32:10 GMT" + "Thu, 11 Sep 2025 22:26:02 GMT" ], "x-ms-client-request-id": [ - "a0795fc8-5163-40b6-be3c-ddec84100e9c" + "f3457a14-6a4c-4481-8be9-b3635c19f833" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -687,7 +687,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "6ccc8b3b-98ae-472d-a41a-10c91751095d" + "6eb0b303-9050-43d5-a542-c5caa3a5f001" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -699,13 +699,13 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:32:09 GMT" + "Thu, 11 Sep 2025 22:26:02 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#nodes\",\r\n \"value\": [\r\n {\r\n \"id\": \"tvmps_1a8900466d782ae6f94c7d82948a9873cab32d48e8a0f949f9517c18b7b1344e_d\",\r\n \"state\": \"creating\",\r\n \"virtualMachineInfo\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\",\r\n \"exactVersion\": \"latest\"\r\n }\r\n }\r\n },\r\n {\r\n \"id\": \"tvmps_fa134cf0299e89f6b4d24a30c301ad91a9e8f1677deb5e7260d67146fd98a65d_d\",\r\n \"state\": \"creating\",\r\n \"virtualMachineInfo\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\",\r\n \"exactVersion\": \"latest\"\r\n }\r\n }\r\n }\r\n ]\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#nodes\",\r\n \"value\": [\r\n {\r\n \"id\": \"tvmps_8830c8b0d77a39903cccb1010ccae43775e6d2addd4c869ed7e4d1f8266d1b20_d\",\r\n \"state\": \"idle\",\r\n \"virtualMachineInfo\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\",\r\n \"exactVersion\": \"latest\"\r\n }\r\n }\r\n },\r\n {\r\n \"id\": \"tvmps_de53a6f8a28de5be3fd45e6638f7a595b82697e1a407094fc57cc0fa095adfaa_d\",\r\n \"state\": \"idle\",\r\n \"virtualMachineInfo\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\",\r\n \"exactVersion\": \"latest\"\r\n }\r\n }\r\n }\r\n ]\r\n}", "StatusCode": 200 }, { @@ -713,22 +713,22 @@ "EncodedRequestUri": "L3Bvb2xzL3JlbW92ZW5vZGVwb29sL25vZGVzP2FwaS12ZXJzaW9uPTIwMjQtMDItMDEuMTkuMCYkc2VsZWN0PWlkJTJDc3RhdGU=", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "e0c705e8-12d8-4f6e-bdd5-af85085b9133" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "c71f4317-c6c7-474f-8e83-ad90e1a63a86" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:32:11 GMT" + "Thu, 11 Sep 2025 22:26:03 GMT" ], "x-ms-client-request-id": [ - "234f3136-9556-4795-99a7-6108fcdcefef" + "f78c8288-b0f1-4207-8984-1b7a107540af" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -742,7 +742,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "608e924c-9ea5-4746-ae97-7153421c4059" + "049ccf32-e521-4978-9dc9-15cf0bd4dfeb" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -754,13 +754,13 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:32:10 GMT" + "Thu, 11 Sep 2025 22:26:03 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#nodes\",\r\n \"value\": [\r\n {\r\n \"id\": \"tvmps_1a8900466d782ae6f94c7d82948a9873cab32d48e8a0f949f9517c18b7b1344e_d\",\r\n \"state\": \"leavingpool\",\r\n \"virtualMachineInfo\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\",\r\n \"exactVersion\": \"latest\"\r\n }\r\n }\r\n },\r\n {\r\n \"id\": \"tvmps_fa134cf0299e89f6b4d24a30c301ad91a9e8f1677deb5e7260d67146fd98a65d_d\",\r\n \"state\": \"leavingpool\",\r\n \"virtualMachineInfo\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\",\r\n \"exactVersion\": \"latest\"\r\n }\r\n }\r\n }\r\n ]\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#nodes\",\r\n \"value\": [\r\n {\r\n \"id\": \"tvmps_8830c8b0d77a39903cccb1010ccae43775e6d2addd4c869ed7e4d1f8266d1b20_d\",\r\n \"state\": \"leavingpool\",\r\n \"virtualMachineInfo\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\",\r\n \"exactVersion\": \"latest\"\r\n }\r\n }\r\n },\r\n {\r\n \"id\": \"tvmps_de53a6f8a28de5be3fd45e6638f7a595b82697e1a407094fc57cc0fa095adfaa_d\",\r\n \"state\": \"leavingpool\",\r\n \"virtualMachineInfo\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\",\r\n \"exactVersion\": \"latest\"\r\n }\r\n }\r\n }\r\n ]\r\n}", "StatusCode": 200 }, { @@ -768,19 +768,19 @@ "EncodedRequestUri": "L3Bvb2xzL3JlbW92ZW5vZGVwb29sP2FwaS12ZXJzaW9uPTIwMjQtMDItMDEuMTkuMA==", "RequestMethod": "DELETE", "RequestHeaders": { - "client-request-id": [ - "9a52b82d-e0cd-4385-9fea-1a4af4d81483" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "ec73f6b3-ce3b-44b4-a625-fce57c6d666d" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:32:11 GMT" + "Thu, 11 Sep 2025 22:26:03 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ], @@ -797,7 +797,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "5515c497-841f-475c-9852-7a2036218868" + "9a9f5eb7-9148-4e37-936b-0cae3febd526" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -809,7 +809,7 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:32:11 GMT" + "Thu, 11 Sep 2025 22:26:03 GMT" ] }, "ResponseBody": "", @@ -818,9 +818,9 @@ ], "Names": {}, "Variables": { - "SubscriptionId": "21abd678-18c5-4660-9fdd-8c5ba6b6fe1f", - "AZURE_BATCH_ACCOUNT": "dawatrouhobo", - "AZURE_BATCH_ENDPOINT": "https://dawatrouhobo.eastus2.batch.azure.com", - "AZURE_BATCH_RESOURCE_GROUP": "dawatrou-rg" + "SubscriptionId": "94bd7ded-68b4-4ffa-82a5-37ac72caa2ec", + "AZURE_BATCH_ACCOUNT": "dotnotsdkbatchaccount2", + "AZURE_BATCH_ENDPOINT": "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com", + "AZURE_BATCH_RESOURCE_GROUP": "automation" } } \ No newline at end of file diff --git a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.ComputeNodeUserTests/TestComputeNodeUserEndToEnd.json b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.ComputeNodeUserTests/TestComputeNodeUserEndToEnd.json index 9e848bc21da0..e40975264d26 100644 --- a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.ComputeNodeUserTests/TestComputeNodeUserEndToEnd.json +++ b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.ComputeNodeUserTests/TestComputeNodeUserEndToEnd.json @@ -5,19 +5,19 @@ "EncodedRequestUri": "L3Bvb2xzP2FwaS12ZXJzaW9uPTIwMjQtMDItMDEuMTkuMA==", "RequestMethod": "POST", "RequestHeaders": { - "client-request-id": [ - "29f08a48-0b43-46ef-bc09-39b0bf8d1e98" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "6114a085-f0e7-4593-a142-814af367f349" + ], "ocp-date": [ - "Wed, 20 Nov 2024 17:43:15 GMT" + "Thu, 11 Sep 2025 22:28:22 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ], @@ -34,16 +34,16 @@ "chunked" ], "ETag": [ - "0x8DD098ACFC8E410" + "0x8DDF18284C15AA2" ], "Location": [ - "https://dawatrouhobo.eastus2.batch.azure.com/pools/computenodeuserendtoendpool" + "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/computenodeuserendtoendpool" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "1263fdad-ed55-4fa3-885a-74e290fac685" + "2fba206e-ea5f-4932-b69d-c1446e2d3bf8" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -55,13 +55,13 @@ "3.0" ], "DataServiceId": [ - "https://dawatrouhobo.eastus2.batch.azure.com/pools/computenodeuserendtoendpool" + "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/computenodeuserendtoendpool" ], "Date": [ - "Wed, 20 Nov 2024 17:43:14 GMT" + "Thu, 11 Sep 2025 22:28:22 GMT" ], "Last-Modified": [ - "Wed, 20 Nov 2024 17:43:15 GMT" + "Thu, 11 Sep 2025 22:28:23 GMT" ] }, "ResponseBody": "", @@ -72,19 +72,19 @@ "EncodedRequestUri": "L3Bvb2xzL2NvbXB1dGVub2RldXNlcmVuZHRvZW5kcG9vbD9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjA=", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "c4d954a3-3544-4835-83b9-5169abe36a8f" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "9e3cc27d-d0e3-493d-995c-77c090301ce4" + ], "ocp-date": [ - "Wed, 20 Nov 2024 17:43:16 GMT" + "Thu, 11 Sep 2025 22:28:23 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -95,13 +95,13 @@ "chunked" ], "ETag": [ - "0x8DD098ACFC8E410" + "0x8DDF18284C15AA2" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "f8403f5b-d81c-4da8-a164-bd55a2b26f81" + "1f49b033-4810-44e1-9cb9-6dbea0a0421d" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -113,16 +113,16 @@ "3.0" ], "Date": [ - "Wed, 20 Nov 2024 17:43:14 GMT" + "Thu, 11 Sep 2025 22:28:23 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ], "Last-Modified": [ - "Wed, 20 Nov 2024 17:43:15 GMT" + "Thu, 11 Sep 2025 22:28:23 GMT" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"computenodeuserendtoendpool\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/pools/computenodeuserendtoendpool\",\r\n \"eTag\": \"0x8DD098ACFC8E410\",\r\n \"lastModified\": \"2024-11-20T17:43:15.2664592Z\",\r\n \"creationTime\": \"2024-11-20T17:43:15.2664581Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2024-11-20T17:43:15.2664581Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2024-11-20T17:43:15.2664592Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"computenodeuserendtoendpool\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/computenodeuserendtoendpool\",\r\n \"eTag\": \"0x8DDF18284C15AA2\",\r\n \"lastModified\": \"2025-09-11T22:28:23.1785122Z\",\r\n \"creationTime\": \"2025-09-11T22:28:23.1785096Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T22:28:23.1785096Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2025-09-11T22:28:23.1785123Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", "StatusCode": 200 }, { @@ -130,19 +130,19 @@ "EncodedRequestUri": "L3Bvb2xzL2NvbXB1dGVub2RldXNlcmVuZHRvZW5kcG9vbD9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjA=", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "4dec2841-2862-4fcb-92bd-9d4583ab362d" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "ff9cd961-c110-40cf-8202-039850637bad" + ], "ocp-date": [ - "Wed, 20 Nov 2024 17:43:21 GMT" + "Thu, 11 Sep 2025 22:28:28 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -153,13 +153,13 @@ "chunked" ], "ETag": [ - "0x8DD098ACFC8E410" + "0x8DDF18284C15AA2" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "45a31c65-ce70-4a07-9f5e-2009bbc61d1e" + "9e3547f2-66a6-4d0a-a046-68c9ed40c671" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -171,16 +171,16 @@ "3.0" ], "Date": [ - "Wed, 20 Nov 2024 17:43:19 GMT" + "Thu, 11 Sep 2025 22:28:28 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ], "Last-Modified": [ - "Wed, 20 Nov 2024 17:43:15 GMT" + "Thu, 11 Sep 2025 22:28:23 GMT" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"computenodeuserendtoendpool\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/pools/computenodeuserendtoendpool\",\r\n \"eTag\": \"0x8DD098ACFC8E410\",\r\n \"lastModified\": \"2024-11-20T17:43:15.2664592Z\",\r\n \"creationTime\": \"2024-11-20T17:43:15.2664581Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2024-11-20T17:43:15.2664581Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2024-11-20T17:43:15.2664592Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"computenodeuserendtoendpool\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/computenodeuserendtoendpool\",\r\n \"eTag\": \"0x8DDF18284C15AA2\",\r\n \"lastModified\": \"2025-09-11T22:28:23.1785122Z\",\r\n \"creationTime\": \"2025-09-11T22:28:23.1785096Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T22:28:23.1785096Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2025-09-11T22:28:23.1785123Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", "StatusCode": 200 }, { @@ -188,19 +188,19 @@ "EncodedRequestUri": "L3Bvb2xzL2NvbXB1dGVub2RldXNlcmVuZHRvZW5kcG9vbD9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjA=", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "ae6b749a-3d59-40b1-bf63-8bce9406304b" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "0f245c87-90bd-46eb-bbf7-e3da6021f75a" + ], "ocp-date": [ - "Wed, 20 Nov 2024 17:43:26 GMT" + "Thu, 11 Sep 2025 22:28:33 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -211,13 +211,13 @@ "chunked" ], "ETag": [ - "0x8DD098ACFC8E410" + "0x8DDF18284C15AA2" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "9b165943-9f2e-45ee-b341-f39970189117" + "b88202d5-6497-4e96-9e0f-eaa4e4bdbdde" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -229,16 +229,16 @@ "3.0" ], "Date": [ - "Wed, 20 Nov 2024 17:43:25 GMT" + "Thu, 11 Sep 2025 22:28:33 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ], "Last-Modified": [ - "Wed, 20 Nov 2024 17:43:15 GMT" + "Thu, 11 Sep 2025 22:28:23 GMT" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"computenodeuserendtoendpool\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/pools/computenodeuserendtoendpool\",\r\n \"eTag\": \"0x8DD098ACFC8E410\",\r\n \"lastModified\": \"2024-11-20T17:43:15.2664592Z\",\r\n \"creationTime\": \"2024-11-20T17:43:15.2664581Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2024-11-20T17:43:15.2664581Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2024-11-20T17:43:15.2664592Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"computenodeuserendtoendpool\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/computenodeuserendtoendpool\",\r\n \"eTag\": \"0x8DDF18284C15AA2\",\r\n \"lastModified\": \"2025-09-11T22:28:23.1785122Z\",\r\n \"creationTime\": \"2025-09-11T22:28:23.1785096Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T22:28:23.1785096Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2025-09-11T22:28:23.1785123Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", "StatusCode": 200 }, { @@ -246,19 +246,19 @@ "EncodedRequestUri": "L3Bvb2xzL2NvbXB1dGVub2RldXNlcmVuZHRvZW5kcG9vbD9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjA=", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "ff85994f-497f-4be5-b10b-f152de4bd992" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "4f10f7a2-b6ab-43a5-8bd0-049a207e5822" + ], "ocp-date": [ - "Wed, 20 Nov 2024 17:43:31 GMT" + "Thu, 11 Sep 2025 22:28:38 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -269,13 +269,13 @@ "chunked" ], "ETag": [ - "0x8DD098ACFC8E410" + "0x8DDF18284C15AA2" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "f2a3eb9e-3d98-43d0-b627-ad0b03675edb" + "44c22cc6-8af1-4ff7-bd88-0757a1d3869d" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -287,16 +287,16 @@ "3.0" ], "Date": [ - "Wed, 20 Nov 2024 17:43:30 GMT" + "Thu, 11 Sep 2025 22:28:38 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ], "Last-Modified": [ - "Wed, 20 Nov 2024 17:43:15 GMT" + "Thu, 11 Sep 2025 22:28:23 GMT" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"computenodeuserendtoendpool\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/pools/computenodeuserendtoendpool\",\r\n \"eTag\": \"0x8DD098ACFC8E410\",\r\n \"lastModified\": \"2024-11-20T17:43:15.2664592Z\",\r\n \"creationTime\": \"2024-11-20T17:43:15.2664581Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2024-11-20T17:43:15.2664581Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2024-11-20T17:43:15.2664592Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"computenodeuserendtoendpool\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/computenodeuserendtoendpool\",\r\n \"eTag\": \"0x8DDF18284C15AA2\",\r\n \"lastModified\": \"2025-09-11T22:28:23.1785122Z\",\r\n \"creationTime\": \"2025-09-11T22:28:23.1785096Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T22:28:23.1785096Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2025-09-11T22:28:23.1785123Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", "StatusCode": 200 }, { @@ -304,19 +304,19 @@ "EncodedRequestUri": "L3Bvb2xzL2NvbXB1dGVub2RldXNlcmVuZHRvZW5kcG9vbD9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjA=", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "98b4ec78-c3f8-4bff-8837-52ac8b6157cd" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "b4cab326-dac0-478f-8459-7c8e909d841c" + ], "ocp-date": [ - "Wed, 20 Nov 2024 17:43:36 GMT" + "Thu, 11 Sep 2025 22:28:44 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -327,13 +327,13 @@ "chunked" ], "ETag": [ - "0x8DD098ACFC8E410" + "0x8DDF18284C15AA2" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "9c218f4d-3e91-4995-a957-5b827591b5ed" + "04612527-8ce5-4fe5-85da-4c56cf4fbf99" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -345,16 +345,16 @@ "3.0" ], "Date": [ - "Wed, 20 Nov 2024 17:43:35 GMT" + "Thu, 11 Sep 2025 22:28:44 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ], "Last-Modified": [ - "Wed, 20 Nov 2024 17:43:15 GMT" + "Thu, 11 Sep 2025 22:28:23 GMT" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"computenodeuserendtoendpool\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/pools/computenodeuserendtoendpool\",\r\n \"eTag\": \"0x8DD098ACFC8E410\",\r\n \"lastModified\": \"2024-11-20T17:43:15.2664592Z\",\r\n \"creationTime\": \"2024-11-20T17:43:15.2664581Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2024-11-20T17:43:15.2664581Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2024-11-20T17:43:15.2664592Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"computenodeuserendtoendpool\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/computenodeuserendtoendpool\",\r\n \"eTag\": \"0x8DDF18284C15AA2\",\r\n \"lastModified\": \"2025-09-11T22:28:23.1785122Z\",\r\n \"creationTime\": \"2025-09-11T22:28:23.1785096Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T22:28:23.1785096Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2025-09-11T22:28:23.1785123Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", "StatusCode": 200 }, { @@ -362,19 +362,19 @@ "EncodedRequestUri": "L3Bvb2xzL2NvbXB1dGVub2RldXNlcmVuZHRvZW5kcG9vbD9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjA=", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "2194e8f3-5076-4a87-a18e-788c407e591a" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "75bd7ba2-63e5-481d-a5c3-112764aa9c46" + ], "ocp-date": [ - "Wed, 20 Nov 2024 17:43:41 GMT" + "Thu, 11 Sep 2025 22:28:49 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -385,13 +385,13 @@ "chunked" ], "ETag": [ - "0x8DD098ACFC8E410" + "0x8DDF18284C15AA2" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "b42969b4-c45b-4d0c-8607-12f5ac4e7169" + "5e3f83d0-71bd-41c7-a14f-80a0325f22ed" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -403,16 +403,16 @@ "3.0" ], "Date": [ - "Wed, 20 Nov 2024 17:43:40 GMT" + "Thu, 11 Sep 2025 22:28:48 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ], "Last-Modified": [ - "Wed, 20 Nov 2024 17:43:15 GMT" + "Thu, 11 Sep 2025 22:28:23 GMT" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"computenodeuserendtoendpool\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/pools/computenodeuserendtoendpool\",\r\n \"eTag\": \"0x8DD098ACFC8E410\",\r\n \"lastModified\": \"2024-11-20T17:43:15.2664592Z\",\r\n \"creationTime\": \"2024-11-20T17:43:15.2664581Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2024-11-20T17:43:15.2664581Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2024-11-20T17:43:15.2664592Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"computenodeuserendtoendpool\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/computenodeuserendtoendpool\",\r\n \"eTag\": \"0x8DDF18284C15AA2\",\r\n \"lastModified\": \"2025-09-11T22:28:23.1785122Z\",\r\n \"creationTime\": \"2025-09-11T22:28:23.1785096Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T22:28:23.1785096Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2025-09-11T22:28:23.1785123Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", "StatusCode": 200 }, { @@ -420,19 +420,19 @@ "EncodedRequestUri": "L3Bvb2xzL2NvbXB1dGVub2RldXNlcmVuZHRvZW5kcG9vbD9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjA=", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "189abc18-d10e-46f4-89c2-a8e7f1489343" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "408a391c-e6fe-4335-ab90-d6c8b7d632e0" + ], "ocp-date": [ - "Wed, 20 Nov 2024 17:43:46 GMT" + "Thu, 11 Sep 2025 22:28:54 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -443,13 +443,13 @@ "chunked" ], "ETag": [ - "0x8DD098ACFC8E410" + "0x8DDF18284C15AA2" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "206ae290-78c6-4889-98a7-c219ed3d9d6e" + "2c953e6a-c7b8-4f8d-b234-274dfb65cd8b" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -461,16 +461,16 @@ "3.0" ], "Date": [ - "Wed, 20 Nov 2024 17:43:45 GMT" + "Thu, 11 Sep 2025 22:28:54 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ], "Last-Modified": [ - "Wed, 20 Nov 2024 17:43:15 GMT" + "Thu, 11 Sep 2025 22:28:23 GMT" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"computenodeuserendtoendpool\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/pools/computenodeuserendtoendpool\",\r\n \"eTag\": \"0x8DD098ACFC8E410\",\r\n \"lastModified\": \"2024-11-20T17:43:15.2664592Z\",\r\n \"creationTime\": \"2024-11-20T17:43:15.2664581Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2024-11-20T17:43:15.2664581Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2024-11-20T17:43:15.2664592Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"computenodeuserendtoendpool\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/computenodeuserendtoendpool\",\r\n \"eTag\": \"0x8DDF18284C15AA2\",\r\n \"lastModified\": \"2025-09-11T22:28:23.1785122Z\",\r\n \"creationTime\": \"2025-09-11T22:28:23.1785096Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T22:28:23.1785096Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2025-09-11T22:28:23.1785123Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", "StatusCode": 200 }, { @@ -478,19 +478,19 @@ "EncodedRequestUri": "L3Bvb2xzL2NvbXB1dGVub2RldXNlcmVuZHRvZW5kcG9vbD9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjA=", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "266f2146-c498-4cd5-95a3-bd1cfba6c9ef" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "ff2930cf-a815-4c33-82a2-01f7cc5c8186" + ], "ocp-date": [ - "Wed, 20 Nov 2024 17:43:51 GMT" + "Thu, 11 Sep 2025 22:28:59 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -501,13 +501,13 @@ "chunked" ], "ETag": [ - "0x8DD098ACFC8E410" + "0x8DDF18284C15AA2" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "eda3baed-9bbf-4f2a-b864-7bf5463c9e9c" + "37709119-fc24-4a5b-a072-1d284f9954bc" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -519,16 +519,16 @@ "3.0" ], "Date": [ - "Wed, 20 Nov 2024 17:43:50 GMT" + "Thu, 11 Sep 2025 22:28:59 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ], "Last-Modified": [ - "Wed, 20 Nov 2024 17:43:15 GMT" + "Thu, 11 Sep 2025 22:28:23 GMT" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"computenodeuserendtoendpool\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/pools/computenodeuserendtoendpool\",\r\n \"eTag\": \"0x8DD098ACFC8E410\",\r\n \"lastModified\": \"2024-11-20T17:43:15.2664592Z\",\r\n \"creationTime\": \"2024-11-20T17:43:15.2664581Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2024-11-20T17:43:15.2664581Z\",\r\n \"allocationState\": \"steady\",\r\n \"allocationStateTransitionTime\": \"2024-11-20T17:43:48.7945168Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 2,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\",\r\n \"currentNodeCommunicationMode\": \"classic\"\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"computenodeuserendtoendpool\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/computenodeuserendtoendpool\",\r\n \"eTag\": \"0x8DDF18284C15AA2\",\r\n \"lastModified\": \"2025-09-11T22:28:23.1785122Z\",\r\n \"creationTime\": \"2025-09-11T22:28:23.1785096Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T22:28:23.1785096Z\",\r\n \"allocationState\": \"steady\",\r\n \"allocationStateTransitionTime\": \"2025-09-11T22:28:55.5645838Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 2,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\",\r\n \"currentNodeCommunicationMode\": \"simplified\"\r\n}", "StatusCode": 200 }, { @@ -536,77 +536,22 @@ "EncodedRequestUri": "L3Bvb2xzL2NvbXB1dGVub2RldXNlcmVuZHRvZW5kcG9vbC9ub2Rlcz9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjA=", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "98dc094e-0935-40c6-b875-93af7f0a3c80" - ], "Accept-Language": [ "en-US" ], - "ocp-date": [ - "Wed, 20 Nov 2024 17:43:54 GMT" - ], - "x-ms-client-request-id": [ - "97f3940f-19e0-4a3c-9d69-c7fef733b061" - ], - "User-Agent": [ - "FxVersion/6.0.3524.45918", - "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", - "AzurePowershell/Az1.0.0" - ] - }, - "RequestBody": "", - "ResponseHeaders": { - "Transfer-Encoding": [ - "chunked" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "f795fbb8-be84-4ad8-b56a-090795eabdb5" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ], - "Date": [ - "Wed, 20 Nov 2024 17:43:53 GMT" - ], - "Content-Type": [ - "application/json; odata=minimalmetadata" - ] - }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#nodes\",\r\n \"value\": [\r\n {\r\n \"id\": \"tvmps_60cfed2e81a0ebbb0d994f322486c94bb5b42a907a87ae8a39b6b5733bcbdf01_d\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/pools/computenodeuserendtoendpool/nodes/tvmps_60cfed2e81a0ebbb0d994f322486c94bb5b42a907a87ae8a39b6b5733bcbdf01_d\",\r\n \"state\": \"creating\",\r\n \"schedulingState\": \"enabled\",\r\n \"stateTransitionTime\": \"2024-11-20T17:43:47.7680283Z\",\r\n \"allocationTime\": \"2024-11-20T17:43:47.7680309Z\",\r\n \"ipAddress\": \"10.0.0.4\",\r\n \"affinityId\": \"TVM:tvmps_60cfed2e81a0ebbb0d994f322486c94bb5b42a907a87ae8a39b6b5733bcbdf01_d\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"totalTasksRun\": 0,\r\n \"totalTasksSucceeded\": 0,\r\n \"runningTasksCount\": 0,\r\n \"runningTaskSlotsCount\": 0,\r\n \"isDedicated\": true,\r\n \"endpointConfiguration\": {\r\n \"inboundEndpoints\": [\r\n {\r\n \"name\": \"SSHRule.0\",\r\n \"protocol\": \"tcp\",\r\n \"publicIPAddress\": \"135.224.241.119\",\r\n \"publicFQDN\": \"dnsadf97d16-8946-43ae-bd82-a54de6b2f835-azurebatch-cloudservice.eastus2.cloudapp.azure.com\",\r\n \"frontendPort\": 50000,\r\n \"backendPort\": 22\r\n }\r\n ]\r\n },\r\n \"virtualMachineInfo\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\",\r\n \"exactVersion\": \"latest\"\r\n }\r\n }\r\n },\r\n {\r\n \"id\": \"tvmps_ccf4720b66e19be20c75f22fb04ec44f66fca28c6db0ebf163a5641ce5b4dc4f_d\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/pools/computenodeuserendtoendpool/nodes/tvmps_ccf4720b66e19be20c75f22fb04ec44f66fca28c6db0ebf163a5641ce5b4dc4f_d\",\r\n \"state\": \"creating\",\r\n \"schedulingState\": \"enabled\",\r\n \"stateTransitionTime\": \"2024-11-20T17:43:47.7679904Z\",\r\n \"allocationTime\": \"2024-11-20T17:43:47.7679988Z\",\r\n \"ipAddress\": \"10.0.0.5\",\r\n \"affinityId\": \"TVM:tvmps_ccf4720b66e19be20c75f22fb04ec44f66fca28c6db0ebf163a5641ce5b4dc4f_d\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"totalTasksRun\": 0,\r\n \"totalTasksSucceeded\": 0,\r\n \"runningTasksCount\": 0,\r\n \"runningTaskSlotsCount\": 0,\r\n \"isDedicated\": true,\r\n \"endpointConfiguration\": {\r\n \"inboundEndpoints\": [\r\n {\r\n \"name\": \"SSHRule.1\",\r\n \"protocol\": \"tcp\",\r\n \"publicIPAddress\": \"135.224.241.119\",\r\n \"publicFQDN\": \"dnsadf97d16-8946-43ae-bd82-a54de6b2f835-azurebatch-cloudservice.eastus2.cloudapp.azure.com\",\r\n \"frontendPort\": 50001,\r\n \"backendPort\": 22\r\n }\r\n ]\r\n },\r\n \"virtualMachineInfo\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\",\r\n \"exactVersion\": \"latest\"\r\n }\r\n }\r\n }\r\n ]\r\n}", - "StatusCode": 200 - }, - { - "RequestUri": "/pools/computenodeuserendtoendpool/nodes/tvmps_60cfed2e81a0ebbb0d994f322486c94bb5b42a907a87ae8a39b6b5733bcbdf01_d?api-version=2024-02-01.19.0&$select=id%2Cstate", - "EncodedRequestUri": "L3Bvb2xzL2NvbXB1dGVub2RldXNlcmVuZHRvZW5kcG9vbC9ub2Rlcy90dm1wc182MGNmZWQyZTgxYTBlYmJiMGQ5OTRmMzIyNDg2Yzk0YmI1YjQyYTkwN2E4N2FlOGEzOWI2YjU3MzNiY2JkZjAxX2Q/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4wJiRzZWxlY3Q9aWQlMkNzdGF0ZQ==", - "RequestMethod": "GET", - "RequestHeaders": { "client-request-id": [ - "e7ce7505-1868-425e-9373-d7383c3c7238" - ], - "Accept-Language": [ - "en-US" + "a9e60a84-d305-45f8-a8a7-a7b082d67470" ], "ocp-date": [ - "Wed, 20 Nov 2024 17:43:54 GMT" + "Thu, 11 Sep 2025 22:29:02 GMT" ], "x-ms-client-request-id": [ - "e9085d16-2f50-4a9d-a67b-83034b2c5da4" + "46328919-adce-4a48-a66c-f5133d535b0b" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -620,7 +565,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "87ce1dd4-d412-4b62-8b16-b3d8ac76effd" + "e60fef71-815a-4d4a-b175-bfa543a685aa" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -632,36 +577,36 @@ "3.0" ], "Date": [ - "Wed, 20 Nov 2024 17:43:53 GMT" + "Thu, 11 Sep 2025 22:29:01 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#nodes/@Element\",\r\n \"id\": \"tvmps_60cfed2e81a0ebbb0d994f322486c94bb5b42a907a87ae8a39b6b5733bcbdf01_d\",\r\n \"state\": \"creating\",\r\n \"virtualMachineInfo\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\",\r\n \"exactVersion\": \"latest\"\r\n }\r\n }\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#nodes\",\r\n \"value\": [\r\n {\r\n \"id\": \"tvmps_3ae958d5ab40d3bcd5a296ad531fd80ff726b59c73155d1de1ee6e75ce10b0b6_d\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/computenodeuserendtoendpool/nodes/tvmps_3ae958d5ab40d3bcd5a296ad531fd80ff726b59c73155d1de1ee6e75ce10b0b6_d\",\r\n \"state\": \"creating\",\r\n \"schedulingState\": \"enabled\",\r\n \"stateTransitionTime\": \"2025-09-11T22:28:55.0218842Z\",\r\n \"allocationTime\": \"2025-09-11T22:28:55.0218923Z\",\r\n \"ipAddress\": \"10.0.0.5\",\r\n \"affinityId\": \"TVM:tvmps_3ae958d5ab40d3bcd5a296ad531fd80ff726b59c73155d1de1ee6e75ce10b0b6_d\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"totalTasksRun\": 0,\r\n \"totalTasksSucceeded\": 0,\r\n \"runningTasksCount\": 0,\r\n \"runningTaskSlotsCount\": 0,\r\n \"isDedicated\": true,\r\n \"endpointConfiguration\": {\r\n \"inboundEndpoints\": [\r\n {\r\n \"name\": \"SSHRule.1\",\r\n \"protocol\": \"tcp\",\r\n \"publicIPAddress\": \"135.119.184.20\",\r\n \"publicFQDN\": \"dns6313c128-d0bb-4c4b-91ea-7d932f208f85-azurebatch-cloudservice.eastus2.cloudapp.azure.com\",\r\n \"frontendPort\": 50001,\r\n \"backendPort\": 22\r\n }\r\n ]\r\n },\r\n \"virtualMachineInfo\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\",\r\n \"exactVersion\": \"latest\"\r\n }\r\n }\r\n },\r\n {\r\n \"id\": \"tvmps_e63720e556315e2e4cfd9ca48f2d77cbcabef1a7bb3b3cb9226f38e82f0e4cfd_d\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/computenodeuserendtoendpool/nodes/tvmps_e63720e556315e2e4cfd9ca48f2d77cbcabef1a7bb3b3cb9226f38e82f0e4cfd_d\",\r\n \"state\": \"creating\",\r\n \"schedulingState\": \"enabled\",\r\n \"stateTransitionTime\": \"2025-09-11T22:28:55.021919Z\",\r\n \"allocationTime\": \"2025-09-11T22:28:55.0219214Z\",\r\n \"ipAddress\": \"10.0.0.4\",\r\n \"affinityId\": \"TVM:tvmps_e63720e556315e2e4cfd9ca48f2d77cbcabef1a7bb3b3cb9226f38e82f0e4cfd_d\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"totalTasksRun\": 0,\r\n \"totalTasksSucceeded\": 0,\r\n \"runningTasksCount\": 0,\r\n \"runningTaskSlotsCount\": 0,\r\n \"isDedicated\": true,\r\n \"endpointConfiguration\": {\r\n \"inboundEndpoints\": [\r\n {\r\n \"name\": \"SSHRule.0\",\r\n \"protocol\": \"tcp\",\r\n \"publicIPAddress\": \"135.119.184.20\",\r\n \"publicFQDN\": \"dns6313c128-d0bb-4c4b-91ea-7d932f208f85-azurebatch-cloudservice.eastus2.cloudapp.azure.com\",\r\n \"frontendPort\": 50000,\r\n \"backendPort\": 22\r\n }\r\n ]\r\n },\r\n \"virtualMachineInfo\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\",\r\n \"exactVersion\": \"latest\"\r\n }\r\n }\r\n }\r\n ]\r\n}", "StatusCode": 200 }, { - "RequestUri": "/pools/computenodeuserendtoendpool/nodes/tvmps_60cfed2e81a0ebbb0d994f322486c94bb5b42a907a87ae8a39b6b5733bcbdf01_d?api-version=2024-02-01.19.0&$select=id%2Cstate", - "EncodedRequestUri": "L3Bvb2xzL2NvbXB1dGVub2RldXNlcmVuZHRvZW5kcG9vbC9ub2Rlcy90dm1wc182MGNmZWQyZTgxYTBlYmJiMGQ5OTRmMzIyNDg2Yzk0YmI1YjQyYTkwN2E4N2FlOGEzOWI2YjU3MzNiY2JkZjAxX2Q/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4wJiRzZWxlY3Q9aWQlMkNzdGF0ZQ==", + "RequestUri": "/pools/computenodeuserendtoendpool/nodes/tvmps_3ae958d5ab40d3bcd5a296ad531fd80ff726b59c73155d1de1ee6e75ce10b0b6_d?api-version=2024-02-01.19.0&$select=id%2Cstate", + "EncodedRequestUri": "L3Bvb2xzL2NvbXB1dGVub2RldXNlcmVuZHRvZW5kcG9vbC9ub2Rlcy90dm1wc18zYWU5NThkNWFiNDBkM2JjZDVhMjk2YWQ1MzFmZDgwZmY3MjZiNTljNzMxNTVkMWRlMWVlNmU3NWNlMTBiMGI2X2Q/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4wJiRzZWxlY3Q9aWQlMkNzdGF0ZQ==", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "bb8056fb-33fc-4ce8-9261-0db19e0cfd48" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "a96ac753-d2f5-4ffd-bc02-40cc53586e82" + ], "ocp-date": [ - "Wed, 20 Nov 2024 17:43:59 GMT" + "Thu, 11 Sep 2025 22:29:02 GMT" ], "x-ms-client-request-id": [ - "746bd197-b66e-4fb1-8ffb-445ce5e80efa" + "4193fe07-2c63-4632-bd7f-42011300f045" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -675,7 +620,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "4316d9b1-e000-47a4-bc1f-861c608d3028" + "1897e02f-b661-4664-a922-ef42ebfa64bb" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -687,36 +632,36 @@ "3.0" ], "Date": [ - "Wed, 20 Nov 2024 17:43:58 GMT" + "Thu, 11 Sep 2025 22:29:01 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#nodes/@Element\",\r\n \"id\": \"tvmps_60cfed2e81a0ebbb0d994f322486c94bb5b42a907a87ae8a39b6b5733bcbdf01_d\",\r\n \"state\": \"creating\",\r\n \"virtualMachineInfo\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\",\r\n \"exactVersion\": \"latest\"\r\n }\r\n }\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#nodes/@Element\",\r\n \"id\": \"tvmps_3ae958d5ab40d3bcd5a296ad531fd80ff726b59c73155d1de1ee6e75ce10b0b6_d\",\r\n \"state\": \"creating\",\r\n \"virtualMachineInfo\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\",\r\n \"exactVersion\": \"latest\"\r\n }\r\n }\r\n}", "StatusCode": 200 }, { - "RequestUri": "/pools/computenodeuserendtoendpool/nodes/tvmps_60cfed2e81a0ebbb0d994f322486c94bb5b42a907a87ae8a39b6b5733bcbdf01_d?api-version=2024-02-01.19.0&$select=id%2Cstate", - "EncodedRequestUri": "L3Bvb2xzL2NvbXB1dGVub2RldXNlcmVuZHRvZW5kcG9vbC9ub2Rlcy90dm1wc182MGNmZWQyZTgxYTBlYmJiMGQ5OTRmMzIyNDg2Yzk0YmI1YjQyYTkwN2E4N2FlOGEzOWI2YjU3MzNiY2JkZjAxX2Q/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4wJiRzZWxlY3Q9aWQlMkNzdGF0ZQ==", + "RequestUri": "/pools/computenodeuserendtoendpool/nodes/tvmps_3ae958d5ab40d3bcd5a296ad531fd80ff726b59c73155d1de1ee6e75ce10b0b6_d?api-version=2024-02-01.19.0&$select=id%2Cstate", + "EncodedRequestUri": "L3Bvb2xzL2NvbXB1dGVub2RldXNlcmVuZHRvZW5kcG9vbC9ub2Rlcy90dm1wc18zYWU5NThkNWFiNDBkM2JjZDVhMjk2YWQ1MzFmZDgwZmY3MjZiNTljNzMxNTVkMWRlMWVlNmU3NWNlMTBiMGI2X2Q/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4wJiRzZWxlY3Q9aWQlMkNzdGF0ZQ==", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "acee031c-2496-4e8b-80ca-37fd21bf54b8" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "01df579c-b656-4f50-85ea-0467d25e6adb" + ], "ocp-date": [ - "Wed, 20 Nov 2024 17:44:04 GMT" + "Thu, 11 Sep 2025 22:29:07 GMT" ], "x-ms-client-request-id": [ - "0f6880eb-b681-4595-bb44-591f79c2f147" + "18fd17ba-1c85-4ffd-98c2-f15f6730adb8" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -730,7 +675,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "fe7fa9bb-cb0b-4a2b-b76e-99325ce536bf" + "ab496f79-519e-4b9a-827a-28009adde7cc" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -742,36 +687,36 @@ "3.0" ], "Date": [ - "Wed, 20 Nov 2024 17:44:03 GMT" + "Thu, 11 Sep 2025 22:29:06 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#nodes/@Element\",\r\n \"id\": \"tvmps_60cfed2e81a0ebbb0d994f322486c94bb5b42a907a87ae8a39b6b5733bcbdf01_d\",\r\n \"state\": \"starting\",\r\n \"virtualMachineInfo\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\",\r\n \"exactVersion\": \"latest\"\r\n }\r\n }\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#nodes/@Element\",\r\n \"id\": \"tvmps_3ae958d5ab40d3bcd5a296ad531fd80ff726b59c73155d1de1ee6e75ce10b0b6_d\",\r\n \"state\": \"starting\",\r\n \"virtualMachineInfo\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\",\r\n \"exactVersion\": \"latest\"\r\n }\r\n }\r\n}", "StatusCode": 200 }, { - "RequestUri": "/pools/computenodeuserendtoendpool/nodes/tvmps_60cfed2e81a0ebbb0d994f322486c94bb5b42a907a87ae8a39b6b5733bcbdf01_d?api-version=2024-02-01.19.0&$select=id%2Cstate", - "EncodedRequestUri": "L3Bvb2xzL2NvbXB1dGVub2RldXNlcmVuZHRvZW5kcG9vbC9ub2Rlcy90dm1wc182MGNmZWQyZTgxYTBlYmJiMGQ5OTRmMzIyNDg2Yzk0YmI1YjQyYTkwN2E4N2FlOGEzOWI2YjU3MzNiY2JkZjAxX2Q/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4wJiRzZWxlY3Q9aWQlMkNzdGF0ZQ==", + "RequestUri": "/pools/computenodeuserendtoendpool/nodes/tvmps_3ae958d5ab40d3bcd5a296ad531fd80ff726b59c73155d1de1ee6e75ce10b0b6_d?api-version=2024-02-01.19.0&$select=id%2Cstate", + "EncodedRequestUri": "L3Bvb2xzL2NvbXB1dGVub2RldXNlcmVuZHRvZW5kcG9vbC9ub2Rlcy90dm1wc18zYWU5NThkNWFiNDBkM2JjZDVhMjk2YWQ1MzFmZDgwZmY3MjZiNTljNzMxNTVkMWRlMWVlNmU3NWNlMTBiMGI2X2Q/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4wJiRzZWxlY3Q9aWQlMkNzdGF0ZQ==", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "2dcef246-63b2-4dff-ad88-51b9e0deae8f" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "3f32e9c4-4f76-4c41-8568-e538aa3a5eec" + ], "ocp-date": [ - "Wed, 20 Nov 2024 17:44:09 GMT" + "Thu, 11 Sep 2025 22:29:12 GMT" ], "x-ms-client-request-id": [ - "2e2d97ac-5401-4f06-98fb-e3a75e6c94b0" + "4975e3f9-5d1b-4f5a-a8c4-44b4fc4179c2" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -785,7 +730,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "a018eb4e-ecd0-42e7-8da1-2dcc3516e646" + "63e2cb67-006a-4d77-b061-8fa211506269" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -797,36 +742,36 @@ "3.0" ], "Date": [ - "Wed, 20 Nov 2024 17:44:08 GMT" + "Thu, 11 Sep 2025 22:29:12 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#nodes/@Element\",\r\n \"id\": \"tvmps_60cfed2e81a0ebbb0d994f322486c94bb5b42a907a87ae8a39b6b5733bcbdf01_d\",\r\n \"state\": \"starting\",\r\n \"virtualMachineInfo\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\",\r\n \"exactVersion\": \"latest\"\r\n }\r\n }\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#nodes/@Element\",\r\n \"id\": \"tvmps_3ae958d5ab40d3bcd5a296ad531fd80ff726b59c73155d1de1ee6e75ce10b0b6_d\",\r\n \"state\": \"starting\",\r\n \"virtualMachineInfo\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\",\r\n \"exactVersion\": \"latest\"\r\n }\r\n }\r\n}", "StatusCode": 200 }, { - "RequestUri": "/pools/computenodeuserendtoendpool/nodes/tvmps_60cfed2e81a0ebbb0d994f322486c94bb5b42a907a87ae8a39b6b5733bcbdf01_d?api-version=2024-02-01.19.0&$select=id%2Cstate", - "EncodedRequestUri": "L3Bvb2xzL2NvbXB1dGVub2RldXNlcmVuZHRvZW5kcG9vbC9ub2Rlcy90dm1wc182MGNmZWQyZTgxYTBlYmJiMGQ5OTRmMzIyNDg2Yzk0YmI1YjQyYTkwN2E4N2FlOGEzOWI2YjU3MzNiY2JkZjAxX2Q/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4wJiRzZWxlY3Q9aWQlMkNzdGF0ZQ==", + "RequestUri": "/pools/computenodeuserendtoendpool/nodes/tvmps_3ae958d5ab40d3bcd5a296ad531fd80ff726b59c73155d1de1ee6e75ce10b0b6_d?api-version=2024-02-01.19.0&$select=id%2Cstate", + "EncodedRequestUri": "L3Bvb2xzL2NvbXB1dGVub2RldXNlcmVuZHRvZW5kcG9vbC9ub2Rlcy90dm1wc18zYWU5NThkNWFiNDBkM2JjZDVhMjk2YWQ1MzFmZDgwZmY3MjZiNTljNzMxNTVkMWRlMWVlNmU3NWNlMTBiMGI2X2Q/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4wJiRzZWxlY3Q9aWQlMkNzdGF0ZQ==", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "59cc6b0a-94f2-4ad2-bcc9-679bd972cca5" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "ce581190-26ce-4e4c-a301-962eedc5301c" + ], "ocp-date": [ - "Wed, 20 Nov 2024 17:44:14 GMT" + "Thu, 11 Sep 2025 22:29:18 GMT" ], "x-ms-client-request-id": [ - "7b28ef1d-5e7b-4b73-b651-de700c5c1e5e" + "3a6357b9-8387-41f8-8fe3-37bb9f4a0a29" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -840,7 +785,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "ab88edb0-6770-4fdb-8bce-30b5c47fb22b" + "194857b2-27fd-4dfc-b5e4-77fe8a10d920" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -852,36 +797,36 @@ "3.0" ], "Date": [ - "Wed, 20 Nov 2024 17:44:13 GMT" + "Thu, 11 Sep 2025 22:29:18 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#nodes/@Element\",\r\n \"id\": \"tvmps_60cfed2e81a0ebbb0d994f322486c94bb5b42a907a87ae8a39b6b5733bcbdf01_d\",\r\n \"state\": \"starting\",\r\n \"virtualMachineInfo\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\",\r\n \"exactVersion\": \"latest\"\r\n }\r\n }\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#nodes/@Element\",\r\n \"id\": \"tvmps_3ae958d5ab40d3bcd5a296ad531fd80ff726b59c73155d1de1ee6e75ce10b0b6_d\",\r\n \"state\": \"starting\",\r\n \"virtualMachineInfo\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\",\r\n \"exactVersion\": \"latest\"\r\n }\r\n }\r\n}", "StatusCode": 200 }, { - "RequestUri": "/pools/computenodeuserendtoendpool/nodes/tvmps_60cfed2e81a0ebbb0d994f322486c94bb5b42a907a87ae8a39b6b5733bcbdf01_d?api-version=2024-02-01.19.0&$select=id%2Cstate", - "EncodedRequestUri": "L3Bvb2xzL2NvbXB1dGVub2RldXNlcmVuZHRvZW5kcG9vbC9ub2Rlcy90dm1wc182MGNmZWQyZTgxYTBlYmJiMGQ5OTRmMzIyNDg2Yzk0YmI1YjQyYTkwN2E4N2FlOGEzOWI2YjU3MzNiY2JkZjAxX2Q/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4wJiRzZWxlY3Q9aWQlMkNzdGF0ZQ==", + "RequestUri": "/pools/computenodeuserendtoendpool/nodes/tvmps_3ae958d5ab40d3bcd5a296ad531fd80ff726b59c73155d1de1ee6e75ce10b0b6_d?api-version=2024-02-01.19.0&$select=id%2Cstate", + "EncodedRequestUri": "L3Bvb2xzL2NvbXB1dGVub2RldXNlcmVuZHRvZW5kcG9vbC9ub2Rlcy90dm1wc18zYWU5NThkNWFiNDBkM2JjZDVhMjk2YWQ1MzFmZDgwZmY3MjZiNTljNzMxNTVkMWRlMWVlNmU3NWNlMTBiMGI2X2Q/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4wJiRzZWxlY3Q9aWQlMkNzdGF0ZQ==", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "062c37f1-9322-484c-b05a-43e401812113" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "f05b89a1-81d3-4b66-a835-91b83a8cbd34" + ], "ocp-date": [ - "Wed, 20 Nov 2024 17:44:19 GMT" + "Thu, 11 Sep 2025 22:29:23 GMT" ], "x-ms-client-request-id": [ - "6c76c6d4-fc28-4b90-9879-68af8dcac6ac" + "b282ba90-7ae4-4e00-aa16-47d3993ae237" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -895,7 +840,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "bf70edcf-e662-4e9d-a92d-064cce5baeff" + "a755c105-706c-49c5-be85-330c77250a39" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -907,36 +852,36 @@ "3.0" ], "Date": [ - "Wed, 20 Nov 2024 17:44:18 GMT" + "Thu, 11 Sep 2025 22:29:23 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#nodes/@Element\",\r\n \"id\": \"tvmps_60cfed2e81a0ebbb0d994f322486c94bb5b42a907a87ae8a39b6b5733bcbdf01_d\",\r\n \"state\": \"idle\",\r\n \"virtualMachineInfo\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\",\r\n \"exactVersion\": \"latest\"\r\n }\r\n }\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#nodes/@Element\",\r\n \"id\": \"tvmps_3ae958d5ab40d3bcd5a296ad531fd80ff726b59c73155d1de1ee6e75ce10b0b6_d\",\r\n \"state\": \"idle\",\r\n \"virtualMachineInfo\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\",\r\n \"exactVersion\": \"latest\"\r\n }\r\n }\r\n}", "StatusCode": 200 }, { - "RequestUri": "/pools/computenodeuserendtoendpool/nodes/tvmps_60cfed2e81a0ebbb0d994f322486c94bb5b42a907a87ae8a39b6b5733bcbdf01_d/users?api-version=2024-02-01.19.0", - "EncodedRequestUri": "L3Bvb2xzL2NvbXB1dGVub2RldXNlcmVuZHRvZW5kcG9vbC9ub2Rlcy90dm1wc182MGNmZWQyZTgxYTBlYmJiMGQ5OTRmMzIyNDg2Yzk0YmI1YjQyYTkwN2E4N2FlOGEzOWI2YjU3MzNiY2JkZjAxX2QvdXNlcnM/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4w", + "RequestUri": "/pools/computenodeuserendtoendpool/nodes/tvmps_3ae958d5ab40d3bcd5a296ad531fd80ff726b59c73155d1de1ee6e75ce10b0b6_d/users?api-version=2024-02-01.19.0", + "EncodedRequestUri": "L3Bvb2xzL2NvbXB1dGVub2RldXNlcmVuZHRvZW5kcG9vbC9ub2Rlcy90dm1wc18zYWU5NThkNWFiNDBkM2JjZDVhMjk2YWQ1MzFmZDgwZmY3MjZiNTljNzMxNTVkMWRlMWVlNmU3NWNlMTBiMGI2X2QvdXNlcnM/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4w", "RequestMethod": "POST", "RequestHeaders": { - "client-request-id": [ - "f0e673c5-3b55-4e6b-b8d8-c8d3cf301aa4" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "c2dcc231-9ae3-4cbb-ab0c-fcda975f629e" + ], "ocp-date": [ - "Wed, 20 Nov 2024 17:44:20 GMT" + "Thu, 11 Sep 2025 22:29:23 GMT" ], "x-ms-client-request-id": [ - "465c87fd-ec82-4f8a-89a5-ff159edcc486" + "8d8b1e7e-b2fb-415a-87c9-f8b0178bcb06" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ], @@ -953,13 +898,13 @@ "chunked" ], "Location": [ - "https://dawatrouhobo.eastus2.batch.azure.com/pools/computenodeuserendtoendpool/nodes/tvmps_60cfed2e81a0ebbb0d994f322486c94bb5b42a907a87ae8a39b6b5733bcbdf01_d/users/userendtoend" + "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/computenodeuserendtoendpool/nodes/tvmps_3ae958d5ab40d3bcd5a296ad531fd80ff726b59c73155d1de1ee6e75ce10b0b6_d/users/userendtoend" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "eb062c59-fcac-4ce3-b64d-c58214d71d29" + "3d1f0a3b-1da5-4796-a0f8-d2798991d13a" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -971,36 +916,36 @@ "3.0" ], "DataServiceId": [ - "https://dawatrouhobo.eastus2.batch.azure.com/pools/computenodeuserendtoendpool/nodes/tvmps_60cfed2e81a0ebbb0d994f322486c94bb5b42a907a87ae8a39b6b5733bcbdf01_d/users/userendtoend" + "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/computenodeuserendtoendpool/nodes/tvmps_3ae958d5ab40d3bcd5a296ad531fd80ff726b59c73155d1de1ee6e75ce10b0b6_d/users/userendtoend" ], "Date": [ - "Wed, 20 Nov 2024 17:44:18 GMT" + "Thu, 11 Sep 2025 22:29:23 GMT" ] }, "ResponseBody": "", "StatusCode": 201 }, { - "RequestUri": "/pools/computenodeuserendtoendpool/nodes/tvmps_60cfed2e81a0ebbb0d994f322486c94bb5b42a907a87ae8a39b6b5733bcbdf01_d/users/userendtoend?api-version=2024-02-01.19.0", - "EncodedRequestUri": "L3Bvb2xzL2NvbXB1dGVub2RldXNlcmVuZHRvZW5kcG9vbC9ub2Rlcy90dm1wc182MGNmZWQyZTgxYTBlYmJiMGQ5OTRmMzIyNDg2Yzk0YmI1YjQyYTkwN2E4N2FlOGEzOWI2YjU3MzNiY2JkZjAxX2QvdXNlcnMvdXNlcmVuZHRvZW5kP2FwaS12ZXJzaW9uPTIwMjQtMDItMDEuMTkuMA==", + "RequestUri": "/pools/computenodeuserendtoendpool/nodes/tvmps_3ae958d5ab40d3bcd5a296ad531fd80ff726b59c73155d1de1ee6e75ce10b0b6_d/users/userendtoend?api-version=2024-02-01.19.0", + "EncodedRequestUri": "L3Bvb2xzL2NvbXB1dGVub2RldXNlcmVuZHRvZW5kcG9vbC9ub2Rlcy90dm1wc18zYWU5NThkNWFiNDBkM2JjZDVhMjk2YWQ1MzFmZDgwZmY3MjZiNTljNzMxNTVkMWRlMWVlNmU3NWNlMTBiMGI2X2QvdXNlcnMvdXNlcmVuZHRvZW5kP2FwaS12ZXJzaW9uPTIwMjQtMDItMDEuMTkuMA==", "RequestMethod": "PUT", "RequestHeaders": { - "client-request-id": [ - "c7c1d28a-b36b-4334-8fa5-699a494be2f3" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "f5214b97-06d8-4e35-b98d-ea33742bb84f" + ], "ocp-date": [ - "Wed, 20 Nov 2024 17:44:20 GMT" + "Thu, 11 Sep 2025 22:29:23 GMT" ], "x-ms-client-request-id": [ - "42c8c159-b898-43b2-86ee-c4703974bd22" + "42f3e11e-77c4-4a65-8468-b7232e0243e6" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ], @@ -1011,7 +956,7 @@ "87" ] }, - "RequestBody": "{\r\n \"password\": \"Sanitized\",\r\n \"expiryTime\": \"2024-11-25T17:44:20.1985799Z\"\r\n}", + "RequestBody": "{\r\n \"password\": \"Sanitized\",\r\n \"expiryTime\": \"2025-09-16T22:29:23.5659876Z\"\r\n}", "ResponseHeaders": { "Transfer-Encoding": [ "chunked" @@ -1020,7 +965,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "f69feb98-88f6-4885-994e-b332ca8db9eb" + "a15a18b0-597a-40ca-bb77-fdcfc9f09452" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -1032,36 +977,36 @@ "3.0" ], "DataServiceId": [ - "https://dawatrouhobo.eastus2.batch.azure.com/pools/computenodeuserendtoendpool/nodes/tvmps_60cfed2e81a0ebbb0d994f322486c94bb5b42a907a87ae8a39b6b5733bcbdf01_d/users/userendtoend" + "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/computenodeuserendtoendpool/nodes/tvmps_3ae958d5ab40d3bcd5a296ad531fd80ff726b59c73155d1de1ee6e75ce10b0b6_d/users/userendtoend" ], "Date": [ - "Wed, 20 Nov 2024 17:44:19 GMT" + "Thu, 11 Sep 2025 22:29:23 GMT" ] }, "ResponseBody": "", "StatusCode": 200 }, { - "RequestUri": "/pools/computenodeuserendtoendpool/nodes/tvmps_60cfed2e81a0ebbb0d994f322486c94bb5b42a907a87ae8a39b6b5733bcbdf01_d/users/userendtoend?api-version=2024-02-01.19.0", - "EncodedRequestUri": "L3Bvb2xzL2NvbXB1dGVub2RldXNlcmVuZHRvZW5kcG9vbC9ub2Rlcy90dm1wc182MGNmZWQyZTgxYTBlYmJiMGQ5OTRmMzIyNDg2Yzk0YmI1YjQyYTkwN2E4N2FlOGEzOWI2YjU3MzNiY2JkZjAxX2QvdXNlcnMvdXNlcmVuZHRvZW5kP2FwaS12ZXJzaW9uPTIwMjQtMDItMDEuMTkuMA==", + "RequestUri": "/pools/computenodeuserendtoendpool/nodes/tvmps_3ae958d5ab40d3bcd5a296ad531fd80ff726b59c73155d1de1ee6e75ce10b0b6_d/users/userendtoend?api-version=2024-02-01.19.0", + "EncodedRequestUri": "L3Bvb2xzL2NvbXB1dGVub2RldXNlcmVuZHRvZW5kcG9vbC9ub2Rlcy90dm1wc18zYWU5NThkNWFiNDBkM2JjZDVhMjk2YWQ1MzFmZDgwZmY3MjZiNTljNzMxNTVkMWRlMWVlNmU3NWNlMTBiMGI2X2QvdXNlcnMvdXNlcmVuZHRvZW5kP2FwaS12ZXJzaW9uPTIwMjQtMDItMDEuMTkuMA==", "RequestMethod": "DELETE", "RequestHeaders": { - "client-request-id": [ - "4ae57cdb-d327-483d-b5b3-9e4f8ed1a5aa" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "7107ba90-6d82-419c-bfc1-7aa28bc5ba11" + ], "ocp-date": [ - "Wed, 20 Nov 2024 17:44:20 GMT" + "Thu, 11 Sep 2025 22:29:23 GMT" ], "x-ms-client-request-id": [ - "11e487ab-a9cb-4615-9d66-29f7e5b2fc8a" + "b709ae58-05d6-4efc-8101-963bd7bc6e40" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ], @@ -1078,7 +1023,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "8a7eecfd-d070-46ae-9bf5-327c4ece7e8e" + "41fa1242-03e2-4eee-9dd9-5dee3611d359" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -1090,33 +1035,33 @@ "3.0" ], "Date": [ - "Wed, 20 Nov 2024 17:44:19 GMT" + "Thu, 11 Sep 2025 22:29:23 GMT" ] }, "ResponseBody": "", "StatusCode": 200 }, { - "RequestUri": "/pools/computenodeuserendtoendpool/nodes/tvmps_60cfed2e81a0ebbb0d994f322486c94bb5b42a907a87ae8a39b6b5733bcbdf01_d/users/userendtoend?api-version=2024-02-01.19.0", - "EncodedRequestUri": "L3Bvb2xzL2NvbXB1dGVub2RldXNlcmVuZHRvZW5kcG9vbC9ub2Rlcy90dm1wc182MGNmZWQyZTgxYTBlYmJiMGQ5OTRmMzIyNDg2Yzk0YmI1YjQyYTkwN2E4N2FlOGEzOWI2YjU3MzNiY2JkZjAxX2QvdXNlcnMvdXNlcmVuZHRvZW5kP2FwaS12ZXJzaW9uPTIwMjQtMDItMDEuMTkuMA==", + "RequestUri": "/pools/computenodeuserendtoendpool/nodes/tvmps_3ae958d5ab40d3bcd5a296ad531fd80ff726b59c73155d1de1ee6e75ce10b0b6_d/users/userendtoend?api-version=2024-02-01.19.0", + "EncodedRequestUri": "L3Bvb2xzL2NvbXB1dGVub2RldXNlcmVuZHRvZW5kcG9vbC9ub2Rlcy90dm1wc18zYWU5NThkNWFiNDBkM2JjZDVhMjk2YWQ1MzFmZDgwZmY3MjZiNTljNzMxNTVkMWRlMWVlNmU3NWNlMTBiMGI2X2QvdXNlcnMvdXNlcmVuZHRvZW5kP2FwaS12ZXJzaW9uPTIwMjQtMDItMDEuMTkuMA==", "RequestMethod": "DELETE", "RequestHeaders": { - "client-request-id": [ - "1a7b0a6c-8561-43fd-ab61-8de94b7b93a2" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "668e1df9-f843-4933-9fa2-910dda2578e7" + ], "ocp-date": [ - "Wed, 20 Nov 2024 17:44:20 GMT" + "Thu, 11 Sep 2025 22:29:24 GMT" ], "x-ms-client-request-id": [ - "ef7d637c-ee94-4082-862d-2dabd3ea8655" + "9da65f02-4dad-414e-9673-63c716718fd7" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ], @@ -1130,7 +1075,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "5289d960-216e-4097-a870-3ee2e52592c5" + "877003c8-3e18-4190-82ec-a927f6db0493" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -1142,16 +1087,16 @@ "3.0" ], "Date": [ - "Wed, 20 Nov 2024 17:44:19 GMT" + "Thu, 11 Sep 2025 22:29:23 GMT" ], "Content-Length": [ - "343" + "353" ], "Content-Type": [ "application/json; odata=minimalmetadata" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#Microsoft.Azure.Batch.Protocol.Entities.Container.errors/@Element\",\r\n \"code\": \"NodeUserNotFound\",\r\n \"message\": {\r\n \"lang\": \"en-US\",\r\n \"value\": \"The specified node user does not exist.\\nRequestId:5289d960-216e-4097-a870-3ee2e52592c5\\nTime:2024-11-20T17:44:19.8906540Z\"\r\n }\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#Microsoft.Azure.Batch.Protocol.Entities.Container.errors/@Element\",\r\n \"code\": \"NodeUserNotFound\",\r\n \"message\": {\r\n \"lang\": \"en-US\",\r\n \"value\": \"The specified node user does not exist.\\nRequestId:877003c8-3e18-4190-82ec-a927f6db0493\\nTime:2025-09-11T22:29:24.2168558Z\"\r\n }\r\n}", "StatusCode": 404 }, { @@ -1159,19 +1104,19 @@ "EncodedRequestUri": "L3Bvb2xzL2NvbXB1dGVub2RldXNlcmVuZHRvZW5kcG9vbD9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjA=", "RequestMethod": "DELETE", "RequestHeaders": { - "client-request-id": [ - "2677978a-f909-4008-ad3c-dffd64b0f3f9" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "a1ecb32f-f0ab-4091-9887-e532c9924faa" + ], "ocp-date": [ - "Wed, 20 Nov 2024 17:44:20 GMT" + "Thu, 11 Sep 2025 22:29:24 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ], @@ -1188,7 +1133,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "f1d7c72b-0666-439a-a634-007e9bd08848" + "b3648877-3d51-4f82-b1c5-89f54a0c58a5" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -1200,7 +1145,7 @@ "3.0" ], "Date": [ - "Wed, 20 Nov 2024 17:44:19 GMT" + "Thu, 11 Sep 2025 22:29:24 GMT" ] }, "ResponseBody": "", @@ -1209,9 +1154,9 @@ ], "Names": {}, "Variables": { - "SubscriptionId": "21abd678-18c5-4660-9fdd-8c5ba6b6fe1f", - "AZURE_BATCH_ACCOUNT": "dawatrouhobo", - "AZURE_BATCH_ENDPOINT": "https://dawatrouhobo.eastus2.batch.azure.com", - "AZURE_BATCH_RESOURCE_GROUP": "dawatrou-rg" + "SubscriptionId": "94bd7ded-68b4-4ffa-82a5-37ac72caa2ec", + "AZURE_BATCH_ACCOUNT": "dotnotsdkbatchaccount2", + "AZURE_BATCH_ENDPOINT": "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com", + "AZURE_BATCH_RESOURCE_GROUP": "automation" } } \ No newline at end of file diff --git a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.JobScheduleTests/TestDisableEnableTerminateJobSchedule.json b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.JobScheduleTests/TestDisableEnableTerminateJobSchedule.json index d113acc652a6..092cba1e7e0c 100644 --- a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.JobScheduleTests/TestDisableEnableTerminateJobSchedule.json +++ b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.JobScheduleTests/TestDisableEnableTerminateJobSchedule.json @@ -5,19 +5,19 @@ "EncodedRequestUri": "L2pvYnNjaGVkdWxlcz9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjA=", "RequestMethod": "POST", "RequestHeaders": { - "client-request-id": [ - "9cfa8eb4-1c75-4f8f-b2df-4e95416eade0" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "2cfecd32-802e-4ee0-930e-f9eb3dee3def" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:16:05 GMT" + "Thu, 11 Sep 2025 22:43:05 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ], @@ -34,16 +34,16 @@ "chunked" ], "ETag": [ - "0x8DD0428627DAB3C" + "0x8DDF18492949F79" ], "Location": [ - "https://dawatrouhobo.eastus2.batch.azure.com/jobschedules/testDisableEnableTerminateJobSchedule" + "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/jobschedules/testDisableEnableTerminateJobSchedule" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "4dd2fba5-1a46-4c2b-8e22-cd43cfbb7632" + "676ee764-22a3-4975-ab90-023b51212c0f" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -55,13 +55,13 @@ "3.0" ], "DataServiceId": [ - "https://dawatrouhobo.eastus2.batch.azure.com/jobschedules/testDisableEnableTerminateJobSchedule" + "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/jobschedules/testDisableEnableTerminateJobSchedule" ], "Date": [ - "Wed, 13 Nov 2024 21:16:04 GMT" + "Thu, 11 Sep 2025 22:43:04 GMT" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:16:05 GMT" + "Thu, 11 Sep 2025 22:43:05 GMT" ] }, "ResponseBody": "", @@ -72,22 +72,22 @@ "EncodedRequestUri": "L2pvYnNjaGVkdWxlcy90ZXN0RGlzYWJsZUVuYWJsZVRlcm1pbmF0ZUpvYlNjaGVkdWxlL2Rpc2FibGU/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4w", "RequestMethod": "POST", "RequestHeaders": { - "client-request-id": [ - "0a8a1e2d-4777-40fc-b2ec-1754d02a572f" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "a97c5dfa-a2b4-4cb1-aa56-ba2d813c238d" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:16:05 GMT" + "Thu, 11 Sep 2025 22:43:06 GMT" ], "x-ms-client-request-id": [ - "8f54f57b-73ee-4784-a7e6-a58a91897c5a" + "18604036-6e9c-4d31-9424-12a916ea97a4" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ], @@ -98,13 +98,13 @@ "RequestBody": "", "ResponseHeaders": { "ETag": [ - "0x8DD042862D40B34" + "0x8DDF18493AC28D0" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "1e11dc31-b226-49a0-aea6-6aa2a4be2a81" + "1c9d6b7f-a663-4de5-98a8-94707e055e07" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -116,16 +116,16 @@ "3.0" ], "DataServiceId": [ - "https://dawatrouhobo.eastus2.batch.azure.com/jobschedules/testDisableEnableTerminateJobSchedule/disable" + "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/jobschedules/testDisableEnableTerminateJobSchedule/disable" ], "Date": [ - "Wed, 13 Nov 2024 21:16:05 GMT" + "Thu, 11 Sep 2025 22:43:06 GMT" ], "Content-Length": [ "0" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:16:05 GMT" + "Thu, 11 Sep 2025 22:43:07 GMT" ] }, "ResponseBody": "", @@ -136,22 +136,22 @@ "EncodedRequestUri": "L2pvYnNjaGVkdWxlcy90ZXN0RGlzYWJsZUVuYWJsZVRlcm1pbmF0ZUpvYlNjaGVkdWxlP2FwaS12ZXJzaW9uPTIwMjQtMDItMDEuMTkuMA==", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "2ab4c9a6-e9a9-4896-a734-f65463cbaee6" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "8a1acdab-dd16-48a7-b506-ea0ce036a3d2" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:16:05 GMT" + "Thu, 11 Sep 2025 22:43:07 GMT" ], "x-ms-client-request-id": [ - "675ee1ea-dddb-481e-81d1-0fe616e5c284" + "ed8a53b5-bb2a-4bfb-b164-bf8a571a3b98" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -162,13 +162,13 @@ "chunked" ], "ETag": [ - "0x8DD042862D40B34" + "0x8DDF18493AC28D0" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "5d4fd5ba-9edb-4bfc-a732-2aa8245e43ff" + "5d868dd8-7ea3-4466-b382-b1ab0571f19f" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -180,16 +180,16 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:16:06 GMT" + "Thu, 11 Sep 2025 22:43:06 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:16:05 GMT" + "Thu, 11 Sep 2025 22:43:07 GMT" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#jobschedules/@Element\",\r\n \"id\": \"testDisableEnableTerminateJobSchedule\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/jobschedules/testDisableEnableTerminateJobSchedule\",\r\n \"eTag\": \"0x8DD042862D40B34\",\r\n \"lastModified\": \"2024-11-13T21:16:05.9745076Z\",\r\n \"creationTime\": \"2024-11-13T21:16:05.4084412Z\",\r\n \"state\": \"disabled\",\r\n \"stateTransitionTime\": \"2024-11-13T21:16:05.9745076Z\",\r\n \"previousState\": \"active\",\r\n \"previousStateTransitionTime\": \"2024-11-13T21:16:05.4084412Z\",\r\n \"jobSpecification\": {\r\n \"priority\": 0,\r\n \"maxParallelTasks\": -1,\r\n \"allowTaskPreemption\": false,\r\n \"usesTaskDependencies\": false,\r\n \"onAllTasksComplete\": \"noaction\",\r\n \"onTaskFailure\": \"noaction\",\r\n \"constraints\": {\r\n \"maxWallClockTime\": \"P10675199DT2H48M5.4775807S\",\r\n \"maxTaskRetryCount\": 0\r\n },\r\n \"poolInfo\": {\r\n \"poolId\": \"testPool\"\r\n }\r\n },\r\n \"executionInfo\": {\r\n \"recentJob\": {\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/jobs/testDisableEnableTerminateJobSchedule:job-1\",\r\n \"id\": \"testDisableEnableTerminateJobSchedule:job-1\"\r\n }\r\n }\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#jobschedules/@Element\",\r\n \"id\": \"testDisableEnableTerminateJobSchedule\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/jobschedules/testDisableEnableTerminateJobSchedule\",\r\n \"eTag\": \"0x8DDF18493AC28D0\",\r\n \"lastModified\": \"2025-09-11T22:43:07.1988944Z\",\r\n \"creationTime\": \"2025-09-11T22:43:05.3669241Z\",\r\n \"state\": \"disabled\",\r\n \"stateTransitionTime\": \"2025-09-11T22:43:07.1988944Z\",\r\n \"previousState\": \"active\",\r\n \"previousStateTransitionTime\": \"2025-09-11T22:43:05.3669241Z\",\r\n \"jobSpecification\": {\r\n \"priority\": 0,\r\n \"maxParallelTasks\": -1,\r\n \"allowTaskPreemption\": false,\r\n \"usesTaskDependencies\": false,\r\n \"onAllTasksComplete\": \"noaction\",\r\n \"onTaskFailure\": \"noaction\",\r\n \"constraints\": {\r\n \"maxWallClockTime\": \"P10675199DT2H48M5.4775807S\",\r\n \"maxTaskRetryCount\": 0\r\n },\r\n \"poolInfo\": {\r\n \"poolId\": \"testPool\"\r\n }\r\n },\r\n \"executionInfo\": {\r\n \"recentJob\": {\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/jobs/testDisableEnableTerminateJobSchedule:job-1\",\r\n \"id\": \"testDisableEnableTerminateJobSchedule:job-1\"\r\n }\r\n }\r\n}", "StatusCode": 200 }, { @@ -197,22 +197,22 @@ "EncodedRequestUri": "L2pvYnNjaGVkdWxlcy90ZXN0RGlzYWJsZUVuYWJsZVRlcm1pbmF0ZUpvYlNjaGVkdWxlP2FwaS12ZXJzaW9uPTIwMjQtMDItMDEuMTkuMA==", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "f3607372-34ea-46d5-bf6e-7c9d6c2f498f" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "00e7bf64-f052-46be-bee2-b1a1f6526ea9" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:16:06 GMT" + "Thu, 11 Sep 2025 22:43:07 GMT" ], "x-ms-client-request-id": [ - "8eb56fe4-9d08-4216-b455-f0b3d52c9509" + "898c6933-c7ac-4c2f-9ae4-811240f56997" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -223,13 +223,13 @@ "chunked" ], "ETag": [ - "0x8DD042862F532F0" + "0x8DDF184940C57D6" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "a2308dcc-55d4-4990-887c-bad34ce0f05f" + "2d9066df-2986-42a3-b420-880a78d54aad" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -241,16 +241,16 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:16:06 GMT" + "Thu, 11 Sep 2025 22:43:07 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:16:06 GMT" + "Thu, 11 Sep 2025 22:43:07 GMT" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#jobschedules/@Element\",\r\n \"id\": \"testDisableEnableTerminateJobSchedule\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/jobschedules/testDisableEnableTerminateJobSchedule\",\r\n \"eTag\": \"0x8DD042862F532F0\",\r\n \"lastModified\": \"2024-11-13T21:16:06.1917936Z\",\r\n \"creationTime\": \"2024-11-13T21:16:05.4084412Z\",\r\n \"state\": \"terminating\",\r\n \"stateTransitionTime\": \"2024-11-13T21:16:06.1917936Z\",\r\n \"previousState\": \"active\",\r\n \"previousStateTransitionTime\": \"2024-11-13T21:16:06.0827938Z\",\r\n \"jobSpecification\": {\r\n \"priority\": 0,\r\n \"maxParallelTasks\": -1,\r\n \"allowTaskPreemption\": false,\r\n \"usesTaskDependencies\": false,\r\n \"onAllTasksComplete\": \"noaction\",\r\n \"onTaskFailure\": \"noaction\",\r\n \"constraints\": {\r\n \"maxWallClockTime\": \"P10675199DT2H48M5.4775807S\",\r\n \"maxTaskRetryCount\": 0\r\n },\r\n \"poolInfo\": {\r\n \"poolId\": \"testPool\"\r\n }\r\n },\r\n \"executionInfo\": {\r\n \"recentJob\": {\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/jobs/testDisableEnableTerminateJobSchedule:job-1\",\r\n \"id\": \"testDisableEnableTerminateJobSchedule:job-1\"\r\n }\r\n }\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#jobschedules/@Element\",\r\n \"id\": \"testDisableEnableTerminateJobSchedule\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/jobschedules/testDisableEnableTerminateJobSchedule\",\r\n \"eTag\": \"0x8DDF184940C57D6\",\r\n \"lastModified\": \"2025-09-11T22:43:07.8292438Z\",\r\n \"creationTime\": \"2025-09-11T22:43:05.3669241Z\",\r\n \"state\": \"terminating\",\r\n \"stateTransitionTime\": \"2025-09-11T22:43:07.8292438Z\",\r\n \"previousState\": \"active\",\r\n \"previousStateTransitionTime\": \"2025-09-11T22:43:07.528895Z\",\r\n \"jobSpecification\": {\r\n \"priority\": 0,\r\n \"maxParallelTasks\": -1,\r\n \"allowTaskPreemption\": false,\r\n \"usesTaskDependencies\": false,\r\n \"onAllTasksComplete\": \"noaction\",\r\n \"onTaskFailure\": \"noaction\",\r\n \"constraints\": {\r\n \"maxWallClockTime\": \"P10675199DT2H48M5.4775807S\",\r\n \"maxTaskRetryCount\": 0\r\n },\r\n \"poolInfo\": {\r\n \"poolId\": \"testPool\"\r\n }\r\n },\r\n \"executionInfo\": {\r\n \"recentJob\": {\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/jobs/testDisableEnableTerminateJobSchedule:job-1\",\r\n \"id\": \"testDisableEnableTerminateJobSchedule:job-1\"\r\n }\r\n }\r\n}", "StatusCode": 200 }, { @@ -258,22 +258,22 @@ "EncodedRequestUri": "L2pvYnNjaGVkdWxlcy90ZXN0RGlzYWJsZUVuYWJsZVRlcm1pbmF0ZUpvYlNjaGVkdWxlL2VuYWJsZT9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjA=", "RequestMethod": "POST", "RequestHeaders": { - "client-request-id": [ - "b9d0487c-09a3-4f55-ab3a-74495e743c75" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "516891a2-3838-4ed2-bbbc-f0674aae6ac6" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:16:06 GMT" + "Thu, 11 Sep 2025 22:43:07 GMT" ], "x-ms-client-request-id": [ - "0e91fc03-ab97-4fbb-9673-de40eaf2f746" + "efd533ba-ba23-4e7d-90ac-9a5f0c0a9868" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ], @@ -284,13 +284,13 @@ "RequestBody": "", "ResponseHeaders": { "ETag": [ - "0x8DD042862E49122" + "0x8DDF18493DE8376" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "32ab6d39-9136-469e-bb8d-a55ddb6d47b8" + "ee4a15c5-548e-4266-94af-4d0a08ae7fc9" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -302,16 +302,16 @@ "3.0" ], "DataServiceId": [ - "https://dawatrouhobo.eastus2.batch.azure.com/jobschedules/testDisableEnableTerminateJobSchedule/enable" + "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/jobschedules/testDisableEnableTerminateJobSchedule/enable" ], "Date": [ - "Wed, 13 Nov 2024 21:16:06 GMT" + "Thu, 11 Sep 2025 22:43:07 GMT" ], "Content-Length": [ "0" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:16:06 GMT" + "Thu, 11 Sep 2025 22:43:07 GMT" ] }, "ResponseBody": "", @@ -322,22 +322,22 @@ "EncodedRequestUri": "L2pvYnNjaGVkdWxlcz9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjAmJGZpbHRlcj1pZCUyMGVxJTIwJTI3dGVzdERpc2FibGVFbmFibGVUZXJtaW5hdGVKb2JTY2hlZHVsZSUyNw==", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "f07ade65-c507-4f2c-ab25-1f171f6e5b08" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "2086626b-426b-451b-a4c9-c5579051f095" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:16:06 GMT" + "Thu, 11 Sep 2025 22:43:07 GMT" ], "x-ms-client-request-id": [ - "abef6f00-6060-44e4-b8f2-bdce92e51c50" + "c236a6a2-a72d-4579-80eb-0ecfc5f626fc" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -351,7 +351,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "77b8bcfa-b5c6-496f-be2d-dbbb88a86339" + "7d15409e-9bf2-4183-b537-9a7a93746730" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -363,13 +363,13 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:16:06 GMT" + "Thu, 11 Sep 2025 22:43:07 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#jobschedules\",\r\n \"value\": [\r\n {\r\n \"id\": \"testDisableEnableTerminateJobSchedule\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/jobschedules/testDisableEnableTerminateJobSchedule\",\r\n \"eTag\": \"0x8DD042862E49122\",\r\n \"lastModified\": \"2024-11-13T21:16:06.0827938Z\",\r\n \"creationTime\": \"2024-11-13T21:16:05.4084412Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2024-11-13T21:16:06.0827938Z\",\r\n \"previousState\": \"disabled\",\r\n \"previousStateTransitionTime\": \"2024-11-13T21:16:05.9745076Z\",\r\n \"jobSpecification\": {\r\n \"priority\": 0,\r\n \"maxParallelTasks\": -1,\r\n \"allowTaskPreemption\": false,\r\n \"usesTaskDependencies\": false,\r\n \"onAllTasksComplete\": \"noaction\",\r\n \"onTaskFailure\": \"noaction\",\r\n \"constraints\": {\r\n \"maxWallClockTime\": \"P10675199DT2H48M5.4775807S\",\r\n \"maxTaskRetryCount\": 0\r\n },\r\n \"poolInfo\": {\r\n \"poolId\": \"testPool\"\r\n }\r\n },\r\n \"executionInfo\": {\r\n \"recentJob\": {\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/jobs/testDisableEnableTerminateJobSchedule:job-1\",\r\n \"id\": \"testDisableEnableTerminateJobSchedule:job-1\"\r\n }\r\n }\r\n }\r\n ]\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#jobschedules\",\r\n \"value\": [\r\n {\r\n \"id\": \"testDisableEnableTerminateJobSchedule\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/jobschedules/testDisableEnableTerminateJobSchedule\",\r\n \"eTag\": \"0x8DDF18493DE8376\",\r\n \"lastModified\": \"2025-09-11T22:43:07.528895Z\",\r\n \"creationTime\": \"2025-09-11T22:43:05.3669241Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T22:43:07.528895Z\",\r\n \"previousState\": \"disabled\",\r\n \"previousStateTransitionTime\": \"2025-09-11T22:43:07.1988944Z\",\r\n \"jobSpecification\": {\r\n \"priority\": 0,\r\n \"maxParallelTasks\": -1,\r\n \"allowTaskPreemption\": false,\r\n \"usesTaskDependencies\": false,\r\n \"onAllTasksComplete\": \"noaction\",\r\n \"onTaskFailure\": \"noaction\",\r\n \"constraints\": {\r\n \"maxWallClockTime\": \"P10675199DT2H48M5.4775807S\",\r\n \"maxTaskRetryCount\": 0\r\n },\r\n \"poolInfo\": {\r\n \"poolId\": \"testPool\"\r\n }\r\n },\r\n \"executionInfo\": {\r\n \"recentJob\": {\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/jobs/testDisableEnableTerminateJobSchedule:job-1\",\r\n \"id\": \"testDisableEnableTerminateJobSchedule:job-1\"\r\n }\r\n }\r\n }\r\n ]\r\n}", "StatusCode": 200 }, { @@ -377,22 +377,22 @@ "EncodedRequestUri": "L2pvYnNjaGVkdWxlcy90ZXN0RGlzYWJsZUVuYWJsZVRlcm1pbmF0ZUpvYlNjaGVkdWxlL3Rlcm1pbmF0ZT9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjA=", "RequestMethod": "POST", "RequestHeaders": { - "client-request-id": [ - "8f8fce39-a1e3-4e55-bb1e-cfad3deffa97" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "3be9b952-0d1a-45ab-963e-a06b8d4a9107" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:16:06 GMT" + "Thu, 11 Sep 2025 22:43:07 GMT" ], "x-ms-client-request-id": [ - "91754b90-bd5a-4177-a853-bbe3f50409d7" + "545514dc-0214-422a-89ec-564bcc1448a3" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ], @@ -406,13 +406,13 @@ "chunked" ], "ETag": [ - "0x8DD042862F532F0" + "0x8DDF184940C57D6" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "01afca34-a371-44d5-a879-19980586971d" + "e0c6b6f4-0ddf-4eff-80ba-3b5a4a2fdffb" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -424,13 +424,13 @@ "3.0" ], "DataServiceId": [ - "https://dawatrouhobo.eastus2.batch.azure.com/jobschedules/testDisableEnableTerminateJobSchedule/terminate" + "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/jobschedules/testDisableEnableTerminateJobSchedule/terminate" ], "Date": [ - "Wed, 13 Nov 2024 21:16:06 GMT" + "Thu, 11 Sep 2025 22:43:07 GMT" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:16:06 GMT" + "Thu, 11 Sep 2025 22:43:07 GMT" ] }, "ResponseBody": "", @@ -441,19 +441,19 @@ "EncodedRequestUri": "L2pvYnNjaGVkdWxlcy90ZXN0RGlzYWJsZUVuYWJsZVRlcm1pbmF0ZUpvYlNjaGVkdWxlP2FwaS12ZXJzaW9uPTIwMjQtMDItMDEuMTkuMA==", "RequestMethod": "DELETE", "RequestHeaders": { - "client-request-id": [ - "6aa56695-543d-4c1e-a9b9-af0b6aa75d0a" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "a27a6e57-f082-4884-94c8-5b06882a9ca5" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:16:06 GMT" + "Thu, 11 Sep 2025 22:43:07 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ], @@ -470,7 +470,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "65105411-e37a-4ff2-9504-22c599ac5a7c" + "ff9ea1bb-f454-4a9b-a0b3-d66f7802c0c1" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -482,7 +482,7 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:16:06 GMT" + "Thu, 11 Sep 2025 22:43:08 GMT" ] }, "ResponseBody": "", @@ -491,9 +491,9 @@ ], "Names": {}, "Variables": { - "SubscriptionId": "21abd678-18c5-4660-9fdd-8c5ba6b6fe1f", - "AZURE_BATCH_ACCOUNT": "dawatrouhobo", - "AZURE_BATCH_ENDPOINT": "https://dawatrouhobo.eastus2.batch.azure.com", - "AZURE_BATCH_RESOURCE_GROUP": "dawatrou-rg" + "SubscriptionId": "94bd7ded-68b4-4ffa-82a5-37ac72caa2ec", + "AZURE_BATCH_ACCOUNT": "dotnotsdkbatchaccount2", + "AZURE_BATCH_ENDPOINT": "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com", + "AZURE_BATCH_RESOURCE_GROUP": "automation" } } \ No newline at end of file diff --git a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.JobScheduleTests/TestJobScheduleCRUD.json b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.JobScheduleTests/TestJobScheduleCRUD.json index 80ddcb5005ed..58a5fac099ab 100644 --- a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.JobScheduleTests/TestJobScheduleCRUD.json +++ b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.JobScheduleTests/TestJobScheduleCRUD.json @@ -5,692 +5,36 @@ "EncodedRequestUri": "L3Bvb2xzP2FwaS12ZXJzaW9uPTIwMjQtMDItMDEuMTkuMA==", "RequestMethod": "POST", "RequestHeaders": { - "client-request-id": [ - "8bd557cb-551a-43c5-980a-1a6fd091e1f5" - ], - "Accept-Language": [ - "en-US" - ], - "ocp-date": [ - "Wed, 13 Nov 2024 21:14:59 GMT" - ], - "User-Agent": [ - "FxVersion/6.0.3524.45918", - "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", - "AzurePowershell/Az1.0.0" - ], - "Content-Type": [ - "application/json; odata=minimalmetadata; charset=utf-8" - ], - "Content-Length": [ - "531" - ] - }, - "RequestBody": "{\r\n \"id\": \"testPool\",\r\n \"vmSize\": \"STANDARD_D2S_V3\",\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"zonal\"\r\n }\r\n },\r\n \"targetDedicatedNodes\": 2,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableInterNodeCommunication\": true,\r\n \"taskSlotsPerNode\": 1,\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", - "ResponseHeaders": { - "Transfer-Encoding": [ - "chunked" - ], - "ETag": [ - "0x8DD04283B7A6D27" - ], - "Location": [ - "https://dawatrouhobo.eastus2.batch.azure.com/pools/testPool" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "361d9ae8-e4be-4367-9a49-a21ea2c39266" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ], - "DataServiceId": [ - "https://dawatrouhobo.eastus2.batch.azure.com/pools/testPool" - ], - "Date": [ - "Wed, 13 Nov 2024 21:14:59 GMT" - ], - "Last-Modified": [ - "Wed, 13 Nov 2024 21:14:59 GMT" - ] - }, - "ResponseBody": "", - "StatusCode": 201 - }, - { - "RequestUri": "/pools?api-version=2024-02-01.19.0", - "EncodedRequestUri": "L3Bvb2xzP2FwaS12ZXJzaW9uPTIwMjQtMDItMDEuMTkuMA==", - "RequestMethod": "POST", - "RequestHeaders": { - "client-request-id": [ - "371edbe9-998c-494c-a56f-713b199729b1" - ], - "Accept-Language": [ - "en-US" - ], - "ocp-date": [ - "Wed, 13 Nov 2024 21:15:30 GMT" - ], - "User-Agent": [ - "FxVersion/6.0.3524.45918", - "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", - "AzurePowershell/Az1.0.0" - ], - "Content-Type": [ - "application/json; odata=minimalmetadata; charset=utf-8" - ], - "Content-Length": [ - "532" - ] - }, - "RequestBody": "{\r\n \"id\": \"testPool2\",\r\n \"vmSize\": \"STANDARD_D2S_V3\",\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"zonal\"\r\n }\r\n },\r\n \"targetDedicatedNodes\": 2,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableInterNodeCommunication\": true,\r\n \"taskSlotsPerNode\": 1,\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", - "ResponseHeaders": { - "Transfer-Encoding": [ - "chunked" - ], - "ETag": [ - "0x8DD04284DBCFEAA" - ], - "Location": [ - "https://dawatrouhobo.eastus2.batch.azure.com/pools/testPool2" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "e29aa19b-d169-43da-90d4-888ef72b27d8" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ], - "DataServiceId": [ - "https://dawatrouhobo.eastus2.batch.azure.com/pools/testPool2" - ], - "Date": [ - "Wed, 13 Nov 2024 21:15:30 GMT" - ], - "Last-Modified": [ - "Wed, 13 Nov 2024 21:15:30 GMT" - ] - }, - "ResponseBody": "", - "StatusCode": 201 - }, - { - "RequestUri": "/pools/testPool?api-version=2024-02-01.19.0", - "EncodedRequestUri": "L3Bvb2xzL3Rlc3RQb29sP2FwaS12ZXJzaW9uPTIwMjQtMDItMDEuMTkuMA==", - "RequestMethod": "GET", - "RequestHeaders": { - "client-request-id": [ - "60b9286c-d38c-4ff2-be9c-72afbffff369" - ], - "Accept-Language": [ - "en-US" - ], - "ocp-date": [ - "Wed, 13 Nov 2024 21:15:00 GMT" - ], - "User-Agent": [ - "FxVersion/6.0.3524.45918", - "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", - "AzurePowershell/Az1.0.0" - ] - }, - "RequestBody": "", - "ResponseHeaders": { - "Transfer-Encoding": [ - "chunked" - ], - "ETag": [ - "0x8DD04283B7A6D27" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "b0fa9136-65d1-4605-b677-fd094fa8bfe2" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ], - "Date": [ - "Wed, 13 Nov 2024 21:14:59 GMT" - ], - "Content-Type": [ - "application/json; odata=minimalmetadata" - ], - "Last-Modified": [ - "Wed, 13 Nov 2024 21:14:59 GMT" - ] - }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"testPool\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/pools/testPool\",\r\n \"eTag\": \"0x8DD04283B7A6D27\",\r\n \"lastModified\": \"2024-11-13T21:14:59.9560487Z\",\r\n \"creationTime\": \"2024-11-13T21:14:59.9560475Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2024-11-13T21:14:59.9560475Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2024-11-13T21:14:59.9560488Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", - "StatusCode": 200 - }, - { - "RequestUri": "/pools/testPool?api-version=2024-02-01.19.0", - "EncodedRequestUri": "L3Bvb2xzL3Rlc3RQb29sP2FwaS12ZXJzaW9uPTIwMjQtMDItMDEuMTkuMA==", - "RequestMethod": "GET", - "RequestHeaders": { - "client-request-id": [ - "c68c7ff4-ab13-47d3-a544-061c9c164387" - ], - "Accept-Language": [ - "en-US" - ], - "ocp-date": [ - "Wed, 13 Nov 2024 21:15:05 GMT" - ], - "User-Agent": [ - "FxVersion/6.0.3524.45918", - "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", - "AzurePowershell/Az1.0.0" - ] - }, - "RequestBody": "", - "ResponseHeaders": { - "Transfer-Encoding": [ - "chunked" - ], - "ETag": [ - "0x8DD04283B7A6D27" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "cd8452f8-3186-4fe3-9460-b68076627228" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ], - "Date": [ - "Wed, 13 Nov 2024 21:15:04 GMT" - ], - "Content-Type": [ - "application/json; odata=minimalmetadata" - ], - "Last-Modified": [ - "Wed, 13 Nov 2024 21:14:59 GMT" - ] - }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"testPool\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/pools/testPool\",\r\n \"eTag\": \"0x8DD04283B7A6D27\",\r\n \"lastModified\": \"2024-11-13T21:14:59.9560487Z\",\r\n \"creationTime\": \"2024-11-13T21:14:59.9560475Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2024-11-13T21:14:59.9560475Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2024-11-13T21:14:59.9560488Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", - "StatusCode": 200 - }, - { - "RequestUri": "/pools/testPool?api-version=2024-02-01.19.0", - "EncodedRequestUri": "L3Bvb2xzL3Rlc3RQb29sP2FwaS12ZXJzaW9uPTIwMjQtMDItMDEuMTkuMA==", - "RequestMethod": "GET", - "RequestHeaders": { - "client-request-id": [ - "ee668ec3-cb7d-4714-bd98-f6024c0b5fc4" - ], - "Accept-Language": [ - "en-US" - ], - "ocp-date": [ - "Wed, 13 Nov 2024 21:15:10 GMT" - ], - "User-Agent": [ - "FxVersion/6.0.3524.45918", - "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", - "AzurePowershell/Az1.0.0" - ] - }, - "RequestBody": "", - "ResponseHeaders": { - "Transfer-Encoding": [ - "chunked" - ], - "ETag": [ - "0x8DD04283B7A6D27" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "66f820ff-992d-4e7c-9358-47173250e596" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ], - "Date": [ - "Wed, 13 Nov 2024 21:15:10 GMT" - ], - "Content-Type": [ - "application/json; odata=minimalmetadata" - ], - "Last-Modified": [ - "Wed, 13 Nov 2024 21:14:59 GMT" - ] - }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"testPool\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/pools/testPool\",\r\n \"eTag\": \"0x8DD04283B7A6D27\",\r\n \"lastModified\": \"2024-11-13T21:14:59.9560487Z\",\r\n \"creationTime\": \"2024-11-13T21:14:59.9560475Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2024-11-13T21:14:59.9560475Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2024-11-13T21:14:59.9560488Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", - "StatusCode": 200 - }, - { - "RequestUri": "/pools/testPool?api-version=2024-02-01.19.0", - "EncodedRequestUri": "L3Bvb2xzL3Rlc3RQb29sP2FwaS12ZXJzaW9uPTIwMjQtMDItMDEuMTkuMA==", - "RequestMethod": "GET", - "RequestHeaders": { - "client-request-id": [ - "8a58c448-612c-480f-8066-66bf68347cc7" - ], - "Accept-Language": [ - "en-US" - ], - "ocp-date": [ - "Wed, 13 Nov 2024 21:15:15 GMT" - ], - "User-Agent": [ - "FxVersion/6.0.3524.45918", - "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", - "AzurePowershell/Az1.0.0" - ] - }, - "RequestBody": "", - "ResponseHeaders": { - "Transfer-Encoding": [ - "chunked" - ], - "ETag": [ - "0x8DD04283B7A6D27" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "17358886-bcc0-4c20-b2f4-07a451440472" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ], - "Date": [ - "Wed, 13 Nov 2024 21:15:15 GMT" - ], - "Content-Type": [ - "application/json; odata=minimalmetadata" - ], - "Last-Modified": [ - "Wed, 13 Nov 2024 21:14:59 GMT" - ] - }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"testPool\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/pools/testPool\",\r\n \"eTag\": \"0x8DD04283B7A6D27\",\r\n \"lastModified\": \"2024-11-13T21:14:59.9560487Z\",\r\n \"creationTime\": \"2024-11-13T21:14:59.9560475Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2024-11-13T21:14:59.9560475Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2024-11-13T21:14:59.9560488Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", - "StatusCode": 200 - }, - { - "RequestUri": "/pools/testPool?api-version=2024-02-01.19.0", - "EncodedRequestUri": "L3Bvb2xzL3Rlc3RQb29sP2FwaS12ZXJzaW9uPTIwMjQtMDItMDEuMTkuMA==", - "RequestMethod": "GET", - "RequestHeaders": { - "client-request-id": [ - "b1b2c83d-3a50-4934-a3dd-5d72f54fc6f8" - ], - "Accept-Language": [ - "en-US" - ], - "ocp-date": [ - "Wed, 13 Nov 2024 21:15:20 GMT" - ], - "User-Agent": [ - "FxVersion/6.0.3524.45918", - "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", - "AzurePowershell/Az1.0.0" - ] - }, - "RequestBody": "", - "ResponseHeaders": { - "Transfer-Encoding": [ - "chunked" - ], - "ETag": [ - "0x8DD04283B7A6D27" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "b48648b0-e9a0-47ba-987c-7e5fe1a0759b" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ], - "Date": [ - "Wed, 13 Nov 2024 21:15:19 GMT" - ], - "Content-Type": [ - "application/json; odata=minimalmetadata" - ], - "Last-Modified": [ - "Wed, 13 Nov 2024 21:14:59 GMT" - ] - }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"testPool\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/pools/testPool\",\r\n \"eTag\": \"0x8DD04283B7A6D27\",\r\n \"lastModified\": \"2024-11-13T21:14:59.9560487Z\",\r\n \"creationTime\": \"2024-11-13T21:14:59.9560475Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2024-11-13T21:14:59.9560475Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2024-11-13T21:14:59.9560488Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", - "StatusCode": 200 - }, - { - "RequestUri": "/pools/testPool?api-version=2024-02-01.19.0", - "EncodedRequestUri": "L3Bvb2xzL3Rlc3RQb29sP2FwaS12ZXJzaW9uPTIwMjQtMDItMDEuMTkuMA==", - "RequestMethod": "GET", - "RequestHeaders": { - "client-request-id": [ - "1f91ab2f-db5c-4deb-ace3-910ad083168d" - ], - "Accept-Language": [ - "en-US" - ], - "ocp-date": [ - "Wed, 13 Nov 2024 21:15:25 GMT" - ], - "User-Agent": [ - "FxVersion/6.0.3524.45918", - "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", - "AzurePowershell/Az1.0.0" - ] - }, - "RequestBody": "", - "ResponseHeaders": { - "Transfer-Encoding": [ - "chunked" - ], - "ETag": [ - "0x8DD04283B7A6D27" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "8c7c21f7-5f16-4f19-b43f-fcb22c593e1d" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ], - "Date": [ - "Wed, 13 Nov 2024 21:15:24 GMT" - ], - "Content-Type": [ - "application/json; odata=minimalmetadata" - ], - "Last-Modified": [ - "Wed, 13 Nov 2024 21:14:59 GMT" - ] - }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"testPool\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/pools/testPool\",\r\n \"eTag\": \"0x8DD04283B7A6D27\",\r\n \"lastModified\": \"2024-11-13T21:14:59.9560487Z\",\r\n \"creationTime\": \"2024-11-13T21:14:59.9560475Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2024-11-13T21:14:59.9560475Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2024-11-13T21:14:59.9560488Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", - "StatusCode": 200 - }, - { - "RequestUri": "/pools/testPool?api-version=2024-02-01.19.0", - "EncodedRequestUri": "L3Bvb2xzL3Rlc3RQb29sP2FwaS12ZXJzaW9uPTIwMjQtMDItMDEuMTkuMA==", - "RequestMethod": "GET", - "RequestHeaders": { - "client-request-id": [ - "fd526333-784d-4bb5-943e-8741d44b3bde" - ], - "Accept-Language": [ - "en-US" - ], - "ocp-date": [ - "Wed, 13 Nov 2024 21:15:30 GMT" - ], - "User-Agent": [ - "FxVersion/6.0.3524.45918", - "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", - "AzurePowershell/Az1.0.0" - ] - }, - "RequestBody": "", - "ResponseHeaders": { - "Transfer-Encoding": [ - "chunked" - ], - "ETag": [ - "0x8DD04283B7A6D27" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "595e3479-4b9d-4b23-a46d-d6003a8be1b1" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ], - "Date": [ - "Wed, 13 Nov 2024 21:15:30 GMT" - ], - "Content-Type": [ - "application/json; odata=minimalmetadata" - ], - "Last-Modified": [ - "Wed, 13 Nov 2024 21:14:59 GMT" - ] - }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"testPool\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/pools/testPool\",\r\n \"eTag\": \"0x8DD04283B7A6D27\",\r\n \"lastModified\": \"2024-11-13T21:14:59.9560487Z\",\r\n \"creationTime\": \"2024-11-13T21:14:59.9560475Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2024-11-13T21:14:59.9560475Z\",\r\n \"allocationState\": \"steady\",\r\n \"allocationStateTransitionTime\": \"2024-11-13T21:15:27.6371549Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 2,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\",\r\n \"currentNodeCommunicationMode\": \"classic\"\r\n}", - "StatusCode": 200 - }, - { - "RequestUri": "/pools/testPool2?api-version=2024-02-01.19.0", - "EncodedRequestUri": "L3Bvb2xzL3Rlc3RQb29sMj9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjA=", - "RequestMethod": "GET", - "RequestHeaders": { - "client-request-id": [ - "cac4020e-393f-4cfe-adc0-844c1c3e09f7" - ], "Accept-Language": [ "en-US" ], - "ocp-date": [ - "Wed, 13 Nov 2024 21:15:30 GMT" - ], - "User-Agent": [ - "FxVersion/6.0.3524.45918", - "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", - "AzurePowershell/Az1.0.0" - ] - }, - "RequestBody": "", - "ResponseHeaders": { - "Transfer-Encoding": [ - "chunked" - ], - "ETag": [ - "0x8DD04284DBCFEAA" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "938c697e-88ed-4b08-96d0-3d993ab457a3" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ], - "Date": [ - "Wed, 13 Nov 2024 21:15:30 GMT" - ], - "Content-Type": [ - "application/json; odata=minimalmetadata" - ], - "Last-Modified": [ - "Wed, 13 Nov 2024 21:15:30 GMT" - ] - }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"testPool2\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/pools/testPool2\",\r\n \"eTag\": \"0x8DD04284DBCFEAA\",\r\n \"lastModified\": \"2024-11-13T21:15:30.5913002Z\",\r\n \"creationTime\": \"2024-11-13T21:15:30.5912986Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2024-11-13T21:15:30.5912986Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2024-11-13T21:15:30.5913002Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", - "StatusCode": 200 - }, - { - "RequestUri": "/pools/testPool2?api-version=2024-02-01.19.0", - "EncodedRequestUri": "L3Bvb2xzL3Rlc3RQb29sMj9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjA=", - "RequestMethod": "GET", - "RequestHeaders": { "client-request-id": [ - "49aecffd-2431-40e9-aae6-80f8e3776a7a" - ], - "Accept-Language": [ - "en-US" + "8cdc5996-d044-45bd-b0c3-0a2a39925f08" ], "ocp-date": [ - "Wed, 13 Nov 2024 21:15:35 GMT" + "Thu, 11 Sep 2025 23:16:09 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" - ] - }, - "RequestBody": "", - "ResponseHeaders": { - "Transfer-Encoding": [ - "chunked" - ], - "ETag": [ - "0x8DD04284DBCFEAA" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "02cfd886-6956-46af-944c-c35b58a6765e" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ], - "Date": [ - "Wed, 13 Nov 2024 21:15:35 GMT" ], "Content-Type": [ - "application/json; odata=minimalmetadata" - ], - "Last-Modified": [ - "Wed, 13 Nov 2024 21:15:30 GMT" - ] - }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"testPool2\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/pools/testPool2\",\r\n \"eTag\": \"0x8DD04284DBCFEAA\",\r\n \"lastModified\": \"2024-11-13T21:15:30.5913002Z\",\r\n \"creationTime\": \"2024-11-13T21:15:30.5912986Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2024-11-13T21:15:30.5912986Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2024-11-13T21:15:30.5913002Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", - "StatusCode": 200 - }, - { - "RequestUri": "/pools/testPool2?api-version=2024-02-01.19.0", - "EncodedRequestUri": "L3Bvb2xzL3Rlc3RQb29sMj9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjA=", - "RequestMethod": "GET", - "RequestHeaders": { - "client-request-id": [ - "0e9acf99-fa62-46ab-a6bb-9e09d249e25a" - ], - "Accept-Language": [ - "en-US" - ], - "ocp-date": [ - "Wed, 13 Nov 2024 21:15:40 GMT" + "application/json; odata=minimalmetadata; charset=utf-8" ], - "User-Agent": [ - "FxVersion/6.0.3524.45918", - "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", - "AzurePowershell/Az1.0.0" + "Content-Length": [ + "531" ] }, - "RequestBody": "", + "RequestBody": "{\r\n \"id\": \"testPool\",\r\n \"vmSize\": \"STANDARD_D2S_V3\",\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"zonal\"\r\n }\r\n },\r\n \"targetDedicatedNodes\": 2,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableInterNodeCommunication\": true,\r\n \"taskSlotsPerNode\": 1,\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", "ResponseHeaders": { - "Transfer-Encoding": [ - "chunked" - ], - "ETag": [ - "0x8DD04284DBCFEAA" - ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "bf0975c5-6eaa-4add-a1cf-f9661384f7bf" + "89d3bc5d-b8e7-4cc1-ae4d-f32b910af0da" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -702,111 +46,53 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:15:40 GMT" + "Thu, 11 Sep 2025 23:16:09 GMT" + ], + "Content-Length": [ + "342" ], "Content-Type": [ "application/json; odata=minimalmetadata" - ], - "Last-Modified": [ - "Wed, 13 Nov 2024 21:15:30 GMT" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"testPool2\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/pools/testPool2\",\r\n \"eTag\": \"0x8DD04284DBCFEAA\",\r\n \"lastModified\": \"2024-11-13T21:15:30.5913002Z\",\r\n \"creationTime\": \"2024-11-13T21:15:30.5912986Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2024-11-13T21:15:30.5912986Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2024-11-13T21:15:30.5913002Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", - "StatusCode": 200 + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#Microsoft.Azure.Batch.Protocol.Entities.Container.errors/@Element\",\r\n \"code\": \"PoolExists\",\r\n \"message\": {\r\n \"lang\": \"en-US\",\r\n \"value\": \"The specified pool already exists.\\nRequestId:89d3bc5d-b8e7-4cc1-ae4d-f32b910af0da\\nTime:2025-09-11T23:16:09.9370655Z\"\r\n }\r\n}", + "StatusCode": 409 }, { - "RequestUri": "/pools/testPool2?api-version=2024-02-01.19.0", - "EncodedRequestUri": "L3Bvb2xzL3Rlc3RQb29sMj9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjA=", - "RequestMethod": "GET", + "RequestUri": "/pools?api-version=2024-02-01.19.0", + "EncodedRequestUri": "L3Bvb2xzP2FwaS12ZXJzaW9uPTIwMjQtMDItMDEuMTkuMA==", + "RequestMethod": "POST", "RequestHeaders": { - "client-request-id": [ - "497357dc-2d3d-4dba-b689-fc3daa74d5c1" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "45151947-e4df-414e-811d-4d390e995c9d" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:15:45 GMT" + "Thu, 11 Sep 2025 23:16:10 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" - ] - }, - "RequestBody": "", - "ResponseHeaders": { - "Transfer-Encoding": [ - "chunked" - ], - "ETag": [ - "0x8DD04284DBCFEAA" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "acd9f888-10c1-4e9a-96c4-128c929d2180" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ], - "Date": [ - "Wed, 13 Nov 2024 21:15:45 GMT" ], "Content-Type": [ - "application/json; odata=minimalmetadata" - ], - "Last-Modified": [ - "Wed, 13 Nov 2024 21:15:30 GMT" - ] - }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"testPool2\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/pools/testPool2\",\r\n \"eTag\": \"0x8DD04284DBCFEAA\",\r\n \"lastModified\": \"2024-11-13T21:15:30.5913002Z\",\r\n \"creationTime\": \"2024-11-13T21:15:30.5912986Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2024-11-13T21:15:30.5912986Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2024-11-13T21:15:30.5913002Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", - "StatusCode": 200 - }, - { - "RequestUri": "/pools/testPool2?api-version=2024-02-01.19.0", - "EncodedRequestUri": "L3Bvb2xzL3Rlc3RQb29sMj9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjA=", - "RequestMethod": "GET", - "RequestHeaders": { - "client-request-id": [ - "f4be3e0f-8b77-4497-aa7b-5f976b9d2f11" - ], - "Accept-Language": [ - "en-US" - ], - "ocp-date": [ - "Wed, 13 Nov 2024 21:15:50 GMT" + "application/json; odata=minimalmetadata; charset=utf-8" ], - "User-Agent": [ - "FxVersion/6.0.3524.45918", - "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", - "AzurePowershell/Az1.0.0" + "Content-Length": [ + "532" ] }, - "RequestBody": "", + "RequestBody": "{\r\n \"id\": \"testPool2\",\r\n \"vmSize\": \"STANDARD_D2S_V3\",\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"zonal\"\r\n }\r\n },\r\n \"targetDedicatedNodes\": 2,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableInterNodeCommunication\": true,\r\n \"taskSlotsPerNode\": 1,\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", "ResponseHeaders": { - "Transfer-Encoding": [ - "chunked" - ], - "ETag": [ - "0x8DD04284DBCFEAA" - ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "b8660974-c952-4518-99f2-e1019e9d1c6d" + "46048655-1464-4a68-b069-7216e8a53d20" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -818,36 +104,36 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:15:50 GMT" + "Thu, 11 Sep 2025 23:16:09 GMT" + ], + "Content-Length": [ + "342" ], "Content-Type": [ "application/json; odata=minimalmetadata" - ], - "Last-Modified": [ - "Wed, 13 Nov 2024 21:15:30 GMT" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"testPool2\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/pools/testPool2\",\r\n \"eTag\": \"0x8DD04284DBCFEAA\",\r\n \"lastModified\": \"2024-11-13T21:15:30.5913002Z\",\r\n \"creationTime\": \"2024-11-13T21:15:30.5912986Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2024-11-13T21:15:30.5912986Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2024-11-13T21:15:30.5913002Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", - "StatusCode": 200 + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#Microsoft.Azure.Batch.Protocol.Entities.Container.errors/@Element\",\r\n \"code\": \"PoolExists\",\r\n \"message\": {\r\n \"lang\": \"en-US\",\r\n \"value\": \"The specified pool already exists.\\nRequestId:46048655-1464-4a68-b069-7216e8a53d20\\nTime:2025-09-11T23:16:10.3050680Z\"\r\n }\r\n}", + "StatusCode": 409 }, { - "RequestUri": "/pools/testPool2?api-version=2024-02-01.19.0", - "EncodedRequestUri": "L3Bvb2xzL3Rlc3RQb29sMj9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjA=", + "RequestUri": "/pools/testPool?api-version=2024-02-01.19.0", + "EncodedRequestUri": "L3Bvb2xzL3Rlc3RQb29sP2FwaS12ZXJzaW9uPTIwMjQtMDItMDEuMTkuMA==", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "bbb286e6-621d-4736-94d8-1d91fbf9f5d9" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "815f96a0-9e43-4e25-b1f5-7e368300e804" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:15:55 GMT" + "Thu, 11 Sep 2025 23:16:09 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -858,13 +144,13 @@ "chunked" ], "ETag": [ - "0x8DD04284DBCFEAA" + "0x8DDF187F2E2D964" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "406af934-4584-4e8b-866e-375593f2f4a8" + "683b5093-488e-491b-b30a-01f38cacc737" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -876,16 +162,16 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:15:55 GMT" + "Thu, 11 Sep 2025 23:16:09 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:15:30 GMT" + "Thu, 11 Sep 2025 23:07:15 GMT" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"testPool2\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/pools/testPool2\",\r\n \"eTag\": \"0x8DD04284DBCFEAA\",\r\n \"lastModified\": \"2024-11-13T21:15:30.5913002Z\",\r\n \"creationTime\": \"2024-11-13T21:15:30.5912986Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2024-11-13T21:15:30.5912986Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2024-11-13T21:15:30.5913002Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"testPool\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/testPool\",\r\n \"eTag\": \"0x8DDF187F2E2D964\",\r\n \"lastModified\": \"2025-09-11T23:07:15.43105Z\",\r\n \"creationTime\": \"2025-09-11T23:07:15.4310489Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T23:07:15.4310489Z\",\r\n \"allocationState\": \"steady\",\r\n \"allocationStateTransitionTime\": \"2025-09-11T23:08:08.0132508Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 2,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\",\r\n \"currentNodeCommunicationMode\": \"simplified\"\r\n}", "StatusCode": 200 }, { @@ -893,19 +179,19 @@ "EncodedRequestUri": "L3Bvb2xzL3Rlc3RQb29sMj9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjA=", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "e750a0a8-002b-42c1-b11b-3774cc7677f9" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "fcfa616c-8c66-4448-8a4a-33eedb116fc6" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:16:01 GMT" + "Thu, 11 Sep 2025 23:16:10 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -916,13 +202,13 @@ "chunked" ], "ETag": [ - "0x8DD04284DBCFEAA" + "0x8DDF188155DB50C" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "17eb20d3-8b52-494e-81ce-adb18e3184f4" + "c644d684-c144-45e4-b4ed-0d823c047dc5" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -934,16 +220,16 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:16:01 GMT" + "Thu, 11 Sep 2025 23:16:09 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:15:30 GMT" + "Thu, 11 Sep 2025 23:08:13 GMT" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"testPool2\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/pools/testPool2\",\r\n \"eTag\": \"0x8DD04284DBCFEAA\",\r\n \"lastModified\": \"2024-11-13T21:15:30.5913002Z\",\r\n \"creationTime\": \"2024-11-13T21:15:30.5912986Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2024-11-13T21:15:30.5912986Z\",\r\n \"allocationState\": \"steady\",\r\n \"allocationStateTransitionTime\": \"2024-11-13T21:15:58.0460221Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 2,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\",\r\n \"currentNodeCommunicationMode\": \"classic\"\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"testPool2\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/testPool2\",\r\n \"eTag\": \"0x8DDF188155DB50C\",\r\n \"lastModified\": \"2025-09-11T23:08:13.2787468Z\",\r\n \"creationTime\": \"2025-09-11T23:08:13.2787458Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T23:08:13.2787458Z\",\r\n \"allocationState\": \"steady\",\r\n \"allocationStateTransitionTime\": \"2025-09-11T23:08:45.7408527Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 2,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\",\r\n \"currentNodeCommunicationMode\": \"simplified\"\r\n}", "StatusCode": 200 }, { @@ -951,22 +237,22 @@ "EncodedRequestUri": "L2pvYnNjaGVkdWxlcz9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjA=", "RequestMethod": "POST", "RequestHeaders": { - "client-request-id": [ - "68aac707-04cb-4909-8984-f1da5c30669f" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "f2ab0555-4a43-4697-bee5-4ffc6992f925" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:16:04 GMT" + "Thu, 11 Sep 2025 23:16:13 GMT" ], "x-ms-client-request-id": [ - "6799bb8d-9264-449e-a28a-10f532a781c3" + "caaf851a-73d3-4273-a504-ca21898cdd35" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ], @@ -983,16 +269,16 @@ "chunked" ], "ETag": [ - "0x8DD042861F43B04" + "0x8DDF18933A4F7DE" ], "Location": [ - "https://dawatrouhobo.eastus2.batch.azure.com/jobschedules/jobSchedule1" + "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/jobschedules/jobSchedule1" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "f88ab7f7-0f89-4ebd-82b4-57ffb3de0cf6" + "0c59c9b8-ccdd-41d3-9c91-809c5ddc1cad" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -1004,13 +290,13 @@ "3.0" ], "DataServiceId": [ - "https://dawatrouhobo.eastus2.batch.azure.com/jobschedules/jobSchedule1" + "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/jobschedules/jobSchedule1" ], "Date": [ - "Wed, 13 Nov 2024 21:16:03 GMT" + "Thu, 11 Sep 2025 23:16:12 GMT" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:16:04 GMT" + "Thu, 11 Sep 2025 23:16:13 GMT" ] }, "ResponseBody": "", @@ -1021,22 +307,22 @@ "EncodedRequestUri": "L2pvYnNjaGVkdWxlcz9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjA=", "RequestMethod": "POST", "RequestHeaders": { - "client-request-id": [ - "6ee9f682-9876-4039-87cc-c07aea0d6710" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "9dc8e32a-25e9-4d9f-889f-5d1a103a8ab4" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:16:04 GMT" + "Thu, 11 Sep 2025 23:16:13 GMT" ], "x-ms-client-request-id": [ - "297503cc-2cd4-4c89-886f-35db203d60c8" + "74cb990d-8f0e-48fb-be46-0172d3d7580b" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ], @@ -1047,22 +333,22 @@ "182" ] }, - "RequestBody": "{\r\n \"id\": \"jobSchedule2\",\r\n \"schedule\": {\r\n \"doNotRunUntil\": \"2024-12-01T12:30:00Z\"\r\n },\r\n \"jobSpecification\": {\r\n \"poolInfo\": {\r\n \"poolId\": \"testPool2\"\r\n }\r\n }\r\n}", + "RequestBody": "{\r\n \"id\": \"jobSchedule2\",\r\n \"schedule\": {\r\n \"doNotRunUntil\": \"2025-12-01T12:30:00Z\"\r\n },\r\n \"jobSpecification\": {\r\n \"poolInfo\": {\r\n \"poolId\": \"testPool2\"\r\n }\r\n }\r\n}", "ResponseHeaders": { "Transfer-Encoding": [ "chunked" ], "ETag": [ - "0x8DD042861FDB0E6" + "0x8DDF18933B635AB" ], "Location": [ - "https://dawatrouhobo.eastus2.batch.azure.com/jobschedules/jobSchedule2" + "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/jobschedules/jobSchedule2" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "b9ab83e1-3830-48e3-9b98-22e469c53c27" + "78ac550f-ed77-460b-af37-dfad1f8a1175" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -1074,13 +360,13 @@ "3.0" ], "DataServiceId": [ - "https://dawatrouhobo.eastus2.batch.azure.com/jobschedules/jobSchedule2" + "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/jobschedules/jobSchedule2" ], "Date": [ - "Wed, 13 Nov 2024 21:16:03 GMT" + "Thu, 11 Sep 2025 23:16:12 GMT" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:16:04 GMT" + "Thu, 11 Sep 2025 23:16:13 GMT" ] }, "ResponseBody": "", @@ -1091,22 +377,22 @@ "EncodedRequestUri": "L2pvYnNjaGVkdWxlcz9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjAmJGZpbHRlcj1pZCUyMGVxJTIwJTI3am9iU2NoZWR1bGUxJTI3JTIwb3IlMjBpZCUyMGVxJTIwJTI3am9iU2NoZWR1bGUyJTI3", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "1e03a968-3eb2-471b-b476-6d8eb4e910bf" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "8d1e0ed6-0ab4-4601-8d27-eb081d2724d7" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:16:04 GMT" + "Thu, 11 Sep 2025 23:16:13 GMT" ], "x-ms-client-request-id": [ - "48501ece-b516-46d4-841d-71a579f7c540" + "03056beb-8b35-4f05-b4a0-4bcac14a82ad" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -1120,7 +406,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "cdf2b38d-9397-43f1-8e05-9b9ed03babe2" + "5f64495a-1714-4477-84b7-2d9881f0f15b" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -1132,13 +418,13 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:16:03 GMT" + "Thu, 11 Sep 2025 23:16:12 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#jobschedules\",\r\n \"value\": [\r\n {\r\n \"id\": \"jobSchedule1\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/jobschedules/jobSchedule1\",\r\n \"eTag\": \"0x8DD042861F43B04\",\r\n \"lastModified\": \"2024-11-13T21:16:04.5077252Z\",\r\n \"creationTime\": \"2024-11-13T21:16:04.5077252Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2024-11-13T21:16:04.5077252Z\",\r\n \"jobSpecification\": {\r\n \"priority\": 0,\r\n \"maxParallelTasks\": -1,\r\n \"allowTaskPreemption\": false,\r\n \"usesTaskDependencies\": false,\r\n \"onAllTasksComplete\": \"noaction\",\r\n \"onTaskFailure\": \"noaction\",\r\n \"constraints\": {\r\n \"maxWallClockTime\": \"P10675199DT2H48M5.4775807S\",\r\n \"maxTaskRetryCount\": 0\r\n },\r\n \"poolInfo\": {\r\n \"poolId\": \"testPool\"\r\n }\r\n },\r\n \"executionInfo\": {\r\n \"recentJob\": {\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/jobs/jobSchedule1:job-1\",\r\n \"id\": \"jobSchedule1:job-1\"\r\n }\r\n }\r\n },\r\n {\r\n \"id\": \"jobSchedule2\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/jobschedules/jobSchedule2\",\r\n \"eTag\": \"0x8DD042861FDB0E6\",\r\n \"lastModified\": \"2024-11-13T21:16:04.5697254Z\",\r\n \"creationTime\": \"2024-11-13T21:16:04.5697254Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2024-11-13T21:16:04.5697254Z\",\r\n \"schedule\": {\r\n \"doNotRunUntil\": \"2024-12-01T12:30:00Z\"\r\n },\r\n \"jobSpecification\": {\r\n \"priority\": 0,\r\n \"maxParallelTasks\": -1,\r\n \"allowTaskPreemption\": false,\r\n \"usesTaskDependencies\": false,\r\n \"onAllTasksComplete\": \"noaction\",\r\n \"onTaskFailure\": \"noaction\",\r\n \"constraints\": {\r\n \"maxWallClockTime\": \"P10675199DT2H48M5.4775807S\",\r\n \"maxTaskRetryCount\": 0\r\n },\r\n \"poolInfo\": {\r\n \"poolId\": \"testPool2\"\r\n }\r\n },\r\n \"executionInfo\": {\r\n \"nextRunTime\": \"2024-12-01T12:30:00Z\"\r\n }\r\n }\r\n ]\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#jobschedules\",\r\n \"value\": [\r\n {\r\n \"id\": \"jobSchedule1\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/jobschedules/jobSchedule1\",\r\n \"eTag\": \"0x8DDF18933A4F7DE\",\r\n \"lastModified\": \"2025-09-11T23:16:13.5741406Z\",\r\n \"creationTime\": \"2025-09-11T23:16:13.5741406Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T23:16:13.5741406Z\",\r\n \"jobSpecification\": {\r\n \"priority\": 0,\r\n \"maxParallelTasks\": -1,\r\n \"allowTaskPreemption\": false,\r\n \"usesTaskDependencies\": false,\r\n \"onAllTasksComplete\": \"noaction\",\r\n \"onTaskFailure\": \"noaction\",\r\n \"constraints\": {\r\n \"maxWallClockTime\": \"P10675199DT2H48M5.4775807S\",\r\n \"maxTaskRetryCount\": 0\r\n },\r\n \"poolInfo\": {\r\n \"poolId\": \"testPool\"\r\n }\r\n },\r\n \"executionInfo\": {\r\n \"recentJob\": {\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/jobs/jobSchedule1:job-1\",\r\n \"id\": \"jobSchedule1:job-1\"\r\n }\r\n }\r\n },\r\n {\r\n \"id\": \"jobSchedule2\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/jobschedules/jobSchedule2\",\r\n \"eTag\": \"0x8DDF18933B635AB\",\r\n \"lastModified\": \"2025-09-11T23:16:13.6871339Z\",\r\n \"creationTime\": \"2025-09-11T23:16:13.6871339Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T23:16:13.6871339Z\",\r\n \"schedule\": {\r\n \"doNotRunUntil\": \"2025-12-01T12:30:00Z\"\r\n },\r\n \"jobSpecification\": {\r\n \"priority\": 0,\r\n \"maxParallelTasks\": -1,\r\n \"allowTaskPreemption\": false,\r\n \"usesTaskDependencies\": false,\r\n \"onAllTasksComplete\": \"noaction\",\r\n \"onTaskFailure\": \"noaction\",\r\n \"constraints\": {\r\n \"maxWallClockTime\": \"P10675199DT2H48M5.4775807S\",\r\n \"maxTaskRetryCount\": 0\r\n },\r\n \"poolInfo\": {\r\n \"poolId\": \"testPool2\"\r\n }\r\n },\r\n \"executionInfo\": {\r\n \"nextRunTime\": \"2025-12-01T12:30:00Z\"\r\n }\r\n }\r\n ]\r\n}", "StatusCode": 200 }, { @@ -1146,22 +432,22 @@ "EncodedRequestUri": "L2pvYnNjaGVkdWxlcy9qb2JTY2hlZHVsZTI/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4w", "RequestMethod": "PUT", "RequestHeaders": { - "client-request-id": [ - "867615ee-ddd4-4e8f-92fd-a30a7eb3d422" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "c930f8d5-5f9a-48b7-9596-c49a5e8b8aee" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:16:04 GMT" + "Thu, 11 Sep 2025 23:16:14 GMT" ], "x-ms-client-request-id": [ - "dedd5ed0-7ca1-44b3-899f-0a0150e1427e" + "317ac49f-5161-40f8-ad39-bc7b7f6df716" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ], @@ -1172,19 +458,19 @@ "467" ] }, - "RequestBody": "{\r\n \"schedule\": {\r\n \"doNotRunUntil\": \"2025-01-01T12:30:00Z\"\r\n },\r\n \"jobSpecification\": {\r\n \"priority\": 0,\r\n \"allowTaskPreemption\": false,\r\n \"maxParallelTasks\": -1,\r\n \"usesTaskDependencies\": false,\r\n \"onAllTasksComplete\": \"noaction\",\r\n \"onTaskFailure\": \"noaction\",\r\n \"constraints\": {\r\n \"maxWallClockTime\": \"P10675199DT2H48M5.4775807S\",\r\n \"maxTaskRetryCount\": 0\r\n },\r\n \"poolInfo\": {\r\n \"poolId\": \"testPool2\"\r\n }\r\n }\r\n}", + "RequestBody": "{\r\n \"schedule\": {\r\n \"doNotRunUntil\": \"2026-01-01T12:30:00Z\"\r\n },\r\n \"jobSpecification\": {\r\n \"priority\": 0,\r\n \"allowTaskPreemption\": false,\r\n \"maxParallelTasks\": -1,\r\n \"usesTaskDependencies\": false,\r\n \"onAllTasksComplete\": \"noaction\",\r\n \"onTaskFailure\": \"noaction\",\r\n \"constraints\": {\r\n \"maxWallClockTime\": \"P10675199DT2H48M5.4775807S\",\r\n \"maxTaskRetryCount\": 0\r\n },\r\n \"poolInfo\": {\r\n \"poolId\": \"testPool2\"\r\n }\r\n }\r\n}", "ResponseHeaders": { "Transfer-Encoding": [ "chunked" ], "ETag": [ - "0x8DD04286220C943" + "0x8DDF189345DA3A8" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "6c5b882f-57da-4844-b66a-df872a72fe3f" + "eba0fd38-f803-4534-86b4-5684cda0ac69" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -1196,13 +482,13 @@ "3.0" ], "DataServiceId": [ - "https://dawatrouhobo.eastus2.batch.azure.com/jobschedules/jobSchedule2" + "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/jobschedules/jobSchedule2" ], "Date": [ - "Wed, 13 Nov 2024 21:16:04 GMT" + "Thu, 11 Sep 2025 23:16:13 GMT" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:16:04 GMT" + "Thu, 11 Sep 2025 23:16:14 GMT" ] }, "ResponseBody": "", @@ -1213,22 +499,22 @@ "EncodedRequestUri": "L2pvYnNjaGVkdWxlcy9qb2JTY2hlZHVsZTI/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4w", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "16e5d82c-ba5f-414c-b830-14aa55defa13" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "a49c745e-5e6a-4413-b0b7-2be726214ebd" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:16:04 GMT" + "Thu, 11 Sep 2025 23:16:14 GMT" ], "x-ms-client-request-id": [ - "034ba99c-59b3-4e35-b2c3-0b985fec7a51" + "86eb594b-c4ad-4b00-9493-49dacb44ccb7" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -1239,13 +525,13 @@ "chunked" ], "ETag": [ - "0x8DD04286220C943" + "0x8DDF189345DA3A8" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "aae09733-6565-4bfa-89ad-d0478207e1d4" + "9f03ac52-36b6-4065-944a-744ecb48f134" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -1257,16 +543,16 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:16:04 GMT" + "Thu, 11 Sep 2025 23:16:14 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:16:04 GMT" + "Thu, 11 Sep 2025 23:16:14 GMT" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#jobschedules/@Element\",\r\n \"id\": \"jobSchedule2\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/jobschedules/jobSchedule2\",\r\n \"eTag\": \"0x8DD04286220C943\",\r\n \"lastModified\": \"2024-11-13T21:16:04.7997251Z\",\r\n \"creationTime\": \"2024-11-13T21:16:04.5697254Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2024-11-13T21:16:04.5697254Z\",\r\n \"schedule\": {\r\n \"doNotRunUntil\": \"2025-01-01T12:30:00Z\"\r\n },\r\n \"jobSpecification\": {\r\n \"priority\": 0,\r\n \"maxParallelTasks\": -1,\r\n \"allowTaskPreemption\": false,\r\n \"usesTaskDependencies\": false,\r\n \"onAllTasksComplete\": \"noaction\",\r\n \"onTaskFailure\": \"noaction\",\r\n \"constraints\": {\r\n \"maxWallClockTime\": \"P10675199DT2H48M5.4775807S\",\r\n \"maxTaskRetryCount\": 0\r\n },\r\n \"poolInfo\": {\r\n \"poolId\": \"testPool2\"\r\n }\r\n },\r\n \"executionInfo\": {\r\n \"nextRunTime\": \"2025-01-01T12:30:00Z\"\r\n }\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#jobschedules/@Element\",\r\n \"id\": \"jobSchedule2\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/jobschedules/jobSchedule2\",\r\n \"eTag\": \"0x8DDF189345DA3A8\",\r\n \"lastModified\": \"2025-09-11T23:16:14.7844008Z\",\r\n \"creationTime\": \"2025-09-11T23:16:13.6871339Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T23:16:13.6871339Z\",\r\n \"schedule\": {\r\n \"doNotRunUntil\": \"2026-01-01T12:30:00Z\"\r\n },\r\n \"jobSpecification\": {\r\n \"priority\": 0,\r\n \"maxParallelTasks\": -1,\r\n \"allowTaskPreemption\": false,\r\n \"usesTaskDependencies\": false,\r\n \"onAllTasksComplete\": \"noaction\",\r\n \"onTaskFailure\": \"noaction\",\r\n \"constraints\": {\r\n \"maxWallClockTime\": \"P10675199DT2H48M5.4775807S\",\r\n \"maxTaskRetryCount\": 0\r\n },\r\n \"poolInfo\": {\r\n \"poolId\": \"testPool2\"\r\n }\r\n },\r\n \"executionInfo\": {\r\n \"nextRunTime\": \"2026-01-01T12:30:00Z\"\r\n }\r\n}", "StatusCode": 200 }, { @@ -1274,22 +560,22 @@ "EncodedRequestUri": "L2pvYnNjaGVkdWxlcy9qb2JTY2hlZHVsZTE/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4w", "RequestMethod": "DELETE", "RequestHeaders": { - "client-request-id": [ - "8168ddf2-6e13-429c-8f2a-2a1597f58e93" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "803a8d4a-4e07-4c59-bdf4-521fbc30e785" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:16:04 GMT" + "Thu, 11 Sep 2025 23:16:14 GMT" ], "x-ms-client-request-id": [ - "0f65bea6-bb58-4169-b2f3-eb2bbfed5cfb" + "e7e0b405-4088-4fb6-84b0-8e0045c6e159" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ], @@ -1306,7 +592,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "9139b4a3-f4e3-4634-81d6-9b90c520d8fe" + "0348e901-985a-46c7-81f5-aa65bbb8f806" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -1318,7 +604,7 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:16:04 GMT" + "Thu, 11 Sep 2025 23:16:14 GMT" ] }, "ResponseBody": "", @@ -1329,22 +615,22 @@ "EncodedRequestUri": "L2pvYnNjaGVkdWxlcy9qb2JTY2hlZHVsZTI/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4w", "RequestMethod": "DELETE", "RequestHeaders": { - "client-request-id": [ - "e434f6a0-8cc9-474b-9902-5be8db152022" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "779dbe71-0d01-4fca-a3a7-5365c3bc48d5" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:16:04 GMT" + "Thu, 11 Sep 2025 23:16:15 GMT" ], "x-ms-client-request-id": [ - "b3291a6a-e24f-4643-b2d1-7da804a2163c" + "fc3e42bd-9cc1-4bae-94f1-b98866b13676" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ], @@ -1361,7 +647,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "d1082bfd-f35b-44a5-9d8f-1796807ecc1c" + "2d1962a9-0486-481a-8e41-c83c798bea12" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -1373,7 +659,7 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:16:04 GMT" + "Thu, 11 Sep 2025 23:16:14 GMT" ] }, "ResponseBody": "", @@ -1384,22 +670,22 @@ "EncodedRequestUri": "L2pvYnNjaGVkdWxlcz9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjA=", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "79bfb7ae-892a-4376-9e61-2ef43bf428cd" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "eeb0ed68-40e9-42ba-bef3-626b4e687aea" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:16:05 GMT" + "Thu, 11 Sep 2025 23:16:15 GMT" ], "x-ms-client-request-id": [ - "2168544b-53d2-40b8-9834-6a495f9a0815" + "567c82ee-d81b-4815-b753-b94943cc7488" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -1413,7 +699,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "06b61410-ccf4-47e3-9a66-076e6652a426" + "a9015f7e-d046-4a0a-80b6-ecf8a269acff" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -1425,13 +711,13 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:16:04 GMT" + "Thu, 11 Sep 2025 23:16:14 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#jobschedules\",\r\n \"value\": [\r\n {\r\n \"id\": \"jobSchedule1\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/jobschedules/jobSchedule1\",\r\n \"eTag\": \"0x8DD042861F43B04\",\r\n \"lastModified\": \"2024-11-13T21:16:04.5077252Z\",\r\n \"creationTime\": \"2024-11-13T21:16:04.5077252Z\",\r\n \"state\": \"deleting\",\r\n \"stateTransitionTime\": \"2024-11-13T21:16:05.0027221Z\",\r\n \"previousState\": \"active\",\r\n \"previousStateTransitionTime\": \"2024-11-13T21:16:04.5077252Z\",\r\n \"jobSpecification\": {\r\n \"priority\": 0,\r\n \"maxParallelTasks\": -1,\r\n \"allowTaskPreemption\": false,\r\n \"usesTaskDependencies\": false,\r\n \"onAllTasksComplete\": \"noaction\",\r\n \"onTaskFailure\": \"noaction\",\r\n \"constraints\": {\r\n \"maxWallClockTime\": \"P10675199DT2H48M5.4775807S\",\r\n \"maxTaskRetryCount\": 0\r\n },\r\n \"poolInfo\": {\r\n \"poolId\": \"testPool\"\r\n }\r\n },\r\n \"executionInfo\": {\r\n \"recentJob\": {\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/jobs/jobSchedule1:job-1\",\r\n \"id\": \"jobSchedule1:job-1\"\r\n }\r\n }\r\n },\r\n {\r\n \"id\": \"jobSchedule2\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/jobschedules/jobSchedule2\",\r\n \"eTag\": \"0x8DD04286220C943\",\r\n \"lastModified\": \"2024-11-13T21:16:04.7997251Z\",\r\n \"creationTime\": \"2024-11-13T21:16:04.5697254Z\",\r\n \"state\": \"deleting\",\r\n \"stateTransitionTime\": \"2024-11-13T21:16:05.0427226Z\",\r\n \"previousState\": \"active\",\r\n \"previousStateTransitionTime\": \"2024-11-13T21:16:04.5697254Z\",\r\n \"schedule\": {\r\n \"doNotRunUntil\": \"2025-01-01T12:30:00Z\"\r\n },\r\n \"jobSpecification\": {\r\n \"priority\": 0,\r\n \"maxParallelTasks\": -1,\r\n \"allowTaskPreemption\": false,\r\n \"usesTaskDependencies\": false,\r\n \"onAllTasksComplete\": \"noaction\",\r\n \"onTaskFailure\": \"noaction\",\r\n \"constraints\": {\r\n \"maxWallClockTime\": \"P10675199DT2H48M5.4775807S\",\r\n \"maxTaskRetryCount\": 0\r\n },\r\n \"poolInfo\": {\r\n \"poolId\": \"testPool2\"\r\n }\r\n },\r\n \"executionInfo\": {\r\n \"nextRunTime\": \"2025-01-01T12:30:00Z\"\r\n }\r\n }\r\n ]\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#jobschedules\",\r\n \"value\": [\r\n {\r\n \"id\": \"jobSchedule1\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/jobschedules/jobSchedule1\",\r\n \"eTag\": \"0x8DDF18933A4F7DE\",\r\n \"lastModified\": \"2025-09-11T23:16:13.5741406Z\",\r\n \"creationTime\": \"2025-09-11T23:16:13.5741406Z\",\r\n \"state\": \"deleting\",\r\n \"stateTransitionTime\": \"2025-09-11T23:16:15.0637207Z\",\r\n \"previousState\": \"active\",\r\n \"previousStateTransitionTime\": \"2025-09-11T23:16:13.5741406Z\",\r\n \"jobSpecification\": {\r\n \"priority\": 0,\r\n \"maxParallelTasks\": -1,\r\n \"allowTaskPreemption\": false,\r\n \"usesTaskDependencies\": false,\r\n \"onAllTasksComplete\": \"noaction\",\r\n \"onTaskFailure\": \"noaction\",\r\n \"constraints\": {\r\n \"maxWallClockTime\": \"P10675199DT2H48M5.4775807S\",\r\n \"maxTaskRetryCount\": 0\r\n },\r\n \"poolInfo\": {\r\n \"poolId\": \"testPool\"\r\n }\r\n },\r\n \"executionInfo\": {\r\n \"recentJob\": {\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/jobs/jobSchedule1:job-1\",\r\n \"id\": \"jobSchedule1:job-1\"\r\n }\r\n }\r\n },\r\n {\r\n \"id\": \"jobSchedule2\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/jobschedules/jobSchedule2\",\r\n \"eTag\": \"0x8DDF189345DA3A8\",\r\n \"lastModified\": \"2025-09-11T23:16:14.7844008Z\",\r\n \"creationTime\": \"2025-09-11T23:16:13.6871339Z\",\r\n \"state\": \"deleting\",\r\n \"stateTransitionTime\": \"2025-09-11T23:16:15.1577193Z\",\r\n \"previousState\": \"active\",\r\n \"previousStateTransitionTime\": \"2025-09-11T23:16:13.6871339Z\",\r\n \"schedule\": {\r\n \"doNotRunUntil\": \"2026-01-01T12:30:00Z\"\r\n },\r\n \"jobSpecification\": {\r\n \"priority\": 0,\r\n \"maxParallelTasks\": -1,\r\n \"allowTaskPreemption\": false,\r\n \"usesTaskDependencies\": false,\r\n \"onAllTasksComplete\": \"noaction\",\r\n \"onTaskFailure\": \"noaction\",\r\n \"constraints\": {\r\n \"maxWallClockTime\": \"P10675199DT2H48M5.4775807S\",\r\n \"maxTaskRetryCount\": 0\r\n },\r\n \"poolInfo\": {\r\n \"poolId\": \"testPool2\"\r\n }\r\n },\r\n \"executionInfo\": {\r\n \"nextRunTime\": \"2026-01-01T12:30:00Z\"\r\n }\r\n }\r\n ]\r\n}", "StatusCode": 200 }, { @@ -1439,19 +725,19 @@ "EncodedRequestUri": "L3Bvb2xzL3Rlc3RQb29sP2FwaS12ZXJzaW9uPTIwMjQtMDItMDEuMTkuMA==", "RequestMethod": "DELETE", "RequestHeaders": { - "client-request-id": [ - "06ece28e-4577-40ef-9afd-49fe972d897f" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "14a55659-d578-4f1e-995c-3ca2a49b9531" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:16:05 GMT" + "Thu, 11 Sep 2025 23:16:15 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ], @@ -1468,7 +754,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "fbb04046-6940-4beb-8e18-eb232c015e10" + "f9479984-c061-46bd-8e72-4d473206531a" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -1480,7 +766,7 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:16:05 GMT" + "Thu, 11 Sep 2025 23:16:15 GMT" ] }, "ResponseBody": "", @@ -1491,19 +777,19 @@ "EncodedRequestUri": "L3Bvb2xzL3Rlc3RQb29sMj9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjA=", "RequestMethod": "DELETE", "RequestHeaders": { - "client-request-id": [ - "5a0f4a36-5f5d-438a-ad15-cc266ac601cb" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "529d94d6-2b6d-411f-88d9-7de96a3fc162" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:16:05 GMT" + "Thu, 11 Sep 2025 23:16:15 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ], @@ -1520,7 +806,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "3d314bf1-1846-4091-97f6-06f5703e71f2" + "164e5e19-4767-45d4-a1b4-c4907782ceef" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -1532,7 +818,7 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:16:05 GMT" + "Thu, 11 Sep 2025 23:16:15 GMT" ] }, "ResponseBody": "", @@ -1541,9 +827,9 @@ ], "Names": {}, "Variables": { - "SubscriptionId": "21abd678-18c5-4660-9fdd-8c5ba6b6fe1f", - "AZURE_BATCH_ACCOUNT": "dawatrouhobo", - "AZURE_BATCH_ENDPOINT": "https://dawatrouhobo.eastus2.batch.azure.com", - "AZURE_BATCH_RESOURCE_GROUP": "dawatrou-rg" + "SubscriptionId": "94bd7ded-68b4-4ffa-82a5-37ac72caa2ec", + "AZURE_BATCH_ACCOUNT": "dotnotsdkbatchaccount2", + "AZURE_BATCH_ENDPOINT": "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com", + "AZURE_BATCH_RESOURCE_GROUP": "automation" } } \ No newline at end of file diff --git a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.JobTests/IfJobSetsAutoFailure_ItCompletesWhenAnyTaskFails.json b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.JobTests/IfJobSetsAutoFailure_ItCompletesWhenAnyTaskFails.json index 3d8d9d958b1e..35261e43580c 100644 --- a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.JobTests/IfJobSetsAutoFailure_ItCompletesWhenAnyTaskFails.json +++ b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.JobTests/IfJobSetsAutoFailure_ItCompletesWhenAnyTaskFails.json @@ -5,19 +5,19 @@ "EncodedRequestUri": "L3Bvb2xzP2FwaS12ZXJzaW9uPTIwMjQtMDItMDEuMTkuMA==", "RequestMethod": "POST", "RequestHeaders": { - "client-request-id": [ - "9d0585d4-8c24-455d-ad35-5100ebcce340" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "5dc324fd-048b-4b2e-b899-3abf66104c0e" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:22:47 GMT" + "Thu, 11 Sep 2025 22:40:40 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ], @@ -34,16 +34,16 @@ "chunked" ], "ETag": [ - "0x8DD0429526AF612" + "0x8DDF1843C878AFD" ], "Location": [ - "https://dawatrouhobo.eastus2.batch.azure.com/pools/testPool" + "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/testPool" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "9fbfc8cb-e156-4787-8787-e7a003372fff" + "d71720aa-4cfe-43d8-b09f-df317c6d2027" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -55,13 +55,13 @@ "3.0" ], "DataServiceId": [ - "https://dawatrouhobo.eastus2.batch.azure.com/pools/testPool" + "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/testPool" ], "Date": [ - "Wed, 13 Nov 2024 21:22:47 GMT" + "Thu, 11 Sep 2025 22:40:40 GMT" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:22:47 GMT" + "Thu, 11 Sep 2025 22:40:40 GMT" ] }, "ResponseBody": "", @@ -72,19 +72,19 @@ "EncodedRequestUri": "L3Bvb2xzL3Rlc3RQb29sP2FwaS12ZXJzaW9uPTIwMjQtMDItMDEuMTkuMA==", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "b51c54a5-a9a5-4461-a834-a3df8004277b" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "4157936b-8e36-4fe3-8eec-790048eb4a5f" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:22:48 GMT" + "Thu, 11 Sep 2025 22:40:41 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -95,13 +95,13 @@ "chunked" ], "ETag": [ - "0x8DD0429526AF612" + "0x8DDF1843C878AFD" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "42651ebe-1f38-4a61-b942-3da84bf890ae" + "f902b6df-5e60-44da-bcd1-8c759ac17289" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -113,16 +113,16 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:22:47 GMT" + "Thu, 11 Sep 2025 22:40:40 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:22:47 GMT" + "Thu, 11 Sep 2025 22:40:40 GMT" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"testPool\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/pools/testPool\",\r\n \"eTag\": \"0x8DD0429526AF612\",\r\n \"lastModified\": \"2024-11-13T21:22:47.9390226Z\",\r\n \"creationTime\": \"2024-11-13T21:22:47.9390215Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2024-11-13T21:22:47.9390215Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2024-11-13T21:22:47.9390226Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"testPool\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/testPool\",\r\n \"eTag\": \"0x8DDF1843C878AFD\",\r\n \"lastModified\": \"2025-09-11T22:40:40.9971453Z\",\r\n \"creationTime\": \"2025-09-11T22:40:40.9971441Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T22:40:40.9971441Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2025-09-11T22:40:40.9971453Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", "StatusCode": 200 }, { @@ -130,19 +130,19 @@ "EncodedRequestUri": "L3Bvb2xzL3Rlc3RQb29sP2FwaS12ZXJzaW9uPTIwMjQtMDItMDEuMTkuMA==", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "c0795934-970f-451d-9036-ef04e7d62a9a" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "33bd7e69-3886-4b3f-8d85-bd876179472b" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:22:53 GMT" + "Thu, 11 Sep 2025 22:40:46 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -153,13 +153,13 @@ "chunked" ], "ETag": [ - "0x8DD0429526AF612" + "0x8DDF1843C878AFD" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "6bfa0a42-895d-46a9-9d74-41300399c6a0" + "09d44681-5cb1-4c0d-8b34-9afa0bf17439" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -171,16 +171,16 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:22:53 GMT" + "Thu, 11 Sep 2025 22:40:45 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:22:47 GMT" + "Thu, 11 Sep 2025 22:40:40 GMT" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"testPool\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/pools/testPool\",\r\n \"eTag\": \"0x8DD0429526AF612\",\r\n \"lastModified\": \"2024-11-13T21:22:47.9390226Z\",\r\n \"creationTime\": \"2024-11-13T21:22:47.9390215Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2024-11-13T21:22:47.9390215Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2024-11-13T21:22:47.9390226Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"testPool\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/testPool\",\r\n \"eTag\": \"0x8DDF1843C878AFD\",\r\n \"lastModified\": \"2025-09-11T22:40:40.9971453Z\",\r\n \"creationTime\": \"2025-09-11T22:40:40.9971441Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T22:40:40.9971441Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2025-09-11T22:40:40.9971453Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", "StatusCode": 200 }, { @@ -188,19 +188,19 @@ "EncodedRequestUri": "L3Bvb2xzL3Rlc3RQb29sP2FwaS12ZXJzaW9uPTIwMjQtMDItMDEuMTkuMA==", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "46585e01-c4ba-4b7f-8993-68c2deced38e" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "fb585288-f1e4-4a68-8de4-2030bfa2d419" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:22:58 GMT" + "Thu, 11 Sep 2025 22:40:51 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -211,13 +211,13 @@ "chunked" ], "ETag": [ - "0x8DD0429526AF612" + "0x8DDF1843C878AFD" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "489fc676-83d6-43cc-8dc3-e575ce358d35" + "db068d8c-09a5-4009-8fec-81768c97e0e1" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -229,16 +229,16 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:22:57 GMT" + "Thu, 11 Sep 2025 22:40:51 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:22:47 GMT" + "Thu, 11 Sep 2025 22:40:40 GMT" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"testPool\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/pools/testPool\",\r\n \"eTag\": \"0x8DD0429526AF612\",\r\n \"lastModified\": \"2024-11-13T21:22:47.9390226Z\",\r\n \"creationTime\": \"2024-11-13T21:22:47.9390215Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2024-11-13T21:22:47.9390215Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2024-11-13T21:22:47.9390226Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"testPool\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/testPool\",\r\n \"eTag\": \"0x8DDF1843C878AFD\",\r\n \"lastModified\": \"2025-09-11T22:40:40.9971453Z\",\r\n \"creationTime\": \"2025-09-11T22:40:40.9971441Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T22:40:40.9971441Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2025-09-11T22:40:40.9971453Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", "StatusCode": 200 }, { @@ -246,19 +246,19 @@ "EncodedRequestUri": "L3Bvb2xzL3Rlc3RQb29sP2FwaS12ZXJzaW9uPTIwMjQtMDItMDEuMTkuMA==", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "8d3be22e-f748-4f86-b0d9-451a035ff119" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "98599a39-96d0-4c56-b03b-aaed114bb020" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:23:03 GMT" + "Thu, 11 Sep 2025 22:40:56 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -269,13 +269,13 @@ "chunked" ], "ETag": [ - "0x8DD0429526AF612" + "0x8DDF1843C878AFD" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "8aa974c7-1dca-4505-91c1-9a670ff40016" + "72cde8ab-0e9f-4b0d-b5c3-7a068311c3e9" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -287,16 +287,16 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:23:02 GMT" + "Thu, 11 Sep 2025 22:40:56 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:22:47 GMT" + "Thu, 11 Sep 2025 22:40:40 GMT" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"testPool\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/pools/testPool\",\r\n \"eTag\": \"0x8DD0429526AF612\",\r\n \"lastModified\": \"2024-11-13T21:22:47.9390226Z\",\r\n \"creationTime\": \"2024-11-13T21:22:47.9390215Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2024-11-13T21:22:47.9390215Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2024-11-13T21:22:47.9390226Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"testPool\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/testPool\",\r\n \"eTag\": \"0x8DDF1843C878AFD\",\r\n \"lastModified\": \"2025-09-11T22:40:40.9971453Z\",\r\n \"creationTime\": \"2025-09-11T22:40:40.9971441Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T22:40:40.9971441Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2025-09-11T22:40:40.9971453Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", "StatusCode": 200 }, { @@ -304,19 +304,19 @@ "EncodedRequestUri": "L3Bvb2xzL3Rlc3RQb29sP2FwaS12ZXJzaW9uPTIwMjQtMDItMDEuMTkuMA==", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "28121282-9763-47ce-9793-77b763e94576" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "a536a346-1ea0-45a1-bddf-4fa5c4c47377" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:23:08 GMT" + "Thu, 11 Sep 2025 22:41:02 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -327,13 +327,13 @@ "chunked" ], "ETag": [ - "0x8DD0429526AF612" + "0x8DDF1843C878AFD" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "1d694222-0ba8-4476-a741-b9ec013e7aa8" + "ff5814e0-6a5b-4ebe-9721-ef6ecb8372a3" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -345,16 +345,16 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:23:08 GMT" + "Thu, 11 Sep 2025 22:41:01 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:22:47 GMT" + "Thu, 11 Sep 2025 22:40:40 GMT" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"testPool\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/pools/testPool\",\r\n \"eTag\": \"0x8DD0429526AF612\",\r\n \"lastModified\": \"2024-11-13T21:22:47.9390226Z\",\r\n \"creationTime\": \"2024-11-13T21:22:47.9390215Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2024-11-13T21:22:47.9390215Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2024-11-13T21:22:47.9390226Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"testPool\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/testPool\",\r\n \"eTag\": \"0x8DDF1843C878AFD\",\r\n \"lastModified\": \"2025-09-11T22:40:40.9971453Z\",\r\n \"creationTime\": \"2025-09-11T22:40:40.9971441Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T22:40:40.9971441Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2025-09-11T22:40:40.9971453Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", "StatusCode": 200 }, { @@ -362,19 +362,19 @@ "EncodedRequestUri": "L3Bvb2xzL3Rlc3RQb29sP2FwaS12ZXJzaW9uPTIwMjQtMDItMDEuMTkuMA==", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "e2a66d48-f4b2-4552-afe0-49f1820b0750" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "65fc248e-0cd6-4bc9-8645-94a574519636" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:23:13 GMT" + "Thu, 11 Sep 2025 22:41:07 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -385,13 +385,13 @@ "chunked" ], "ETag": [ - "0x8DD0429526AF612" + "0x8DDF1843C878AFD" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "1048d478-8ded-40d2-aa10-f7ec7960abd2" + "ee50d644-00b6-4c76-8e9a-f131c9239aed" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -403,16 +403,16 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:23:12 GMT" + "Thu, 11 Sep 2025 22:41:06 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:22:47 GMT" + "Thu, 11 Sep 2025 22:40:40 GMT" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"testPool\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/pools/testPool\",\r\n \"eTag\": \"0x8DD0429526AF612\",\r\n \"lastModified\": \"2024-11-13T21:22:47.9390226Z\",\r\n \"creationTime\": \"2024-11-13T21:22:47.9390215Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2024-11-13T21:22:47.9390215Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2024-11-13T21:22:47.9390226Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"testPool\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/testPool\",\r\n \"eTag\": \"0x8DDF1843C878AFD\",\r\n \"lastModified\": \"2025-09-11T22:40:40.9971453Z\",\r\n \"creationTime\": \"2025-09-11T22:40:40.9971441Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T22:40:40.9971441Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2025-09-11T22:40:40.9971453Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", "StatusCode": 200 }, { @@ -420,19 +420,19 @@ "EncodedRequestUri": "L3Bvb2xzL3Rlc3RQb29sP2FwaS12ZXJzaW9uPTIwMjQtMDItMDEuMTkuMA==", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "e2a5b051-886f-4e1d-aa8c-67bccb24d22b" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "01614bcb-a8ca-4a67-8fa8-58450f4bf735" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:23:18 GMT" + "Thu, 11 Sep 2025 22:41:12 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -443,13 +443,13 @@ "chunked" ], "ETag": [ - "0x8DD0429526AF612" + "0x8DDF1843C878AFD" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "ed7fc213-1a2f-4ef6-8d66-f8fb680c5e3d" + "c0c8cfc0-b4a8-4300-a86b-660c0879af77" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -461,65 +461,53 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:23:17 GMT" + "Thu, 11 Sep 2025 22:41:12 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:22:47 GMT" + "Thu, 11 Sep 2025 22:40:40 GMT" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"testPool\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/pools/testPool\",\r\n \"eTag\": \"0x8DD0429526AF612\",\r\n \"lastModified\": \"2024-11-13T21:22:47.9390226Z\",\r\n \"creationTime\": \"2024-11-13T21:22:47.9390215Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2024-11-13T21:22:47.9390215Z\",\r\n \"allocationState\": \"steady\",\r\n \"allocationStateTransitionTime\": \"2024-11-13T21:23:15.9066414Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 2,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\",\r\n \"currentNodeCommunicationMode\": \"classic\"\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"testPool\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/testPool\",\r\n \"eTag\": \"0x8DDF1843C878AFD\",\r\n \"lastModified\": \"2025-09-11T22:40:40.9971453Z\",\r\n \"creationTime\": \"2025-09-11T22:40:40.9971441Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T22:40:40.9971441Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2025-09-11T22:40:40.9971453Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", "StatusCode": 200 }, { - "RequestUri": "/jobs?api-version=2024-02-01.19.0", - "EncodedRequestUri": "L2pvYnM/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4w", - "RequestMethod": "POST", + "RequestUri": "/pools/testPool?api-version=2024-02-01.19.0", + "EncodedRequestUri": "L3Bvb2xzL3Rlc3RQb29sP2FwaS12ZXJzaW9uPTIwMjQtMDItMDEuMTkuMA==", + "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "f9f2fad7-706c-4a2d-9459-728c462c61e0" - ], "Accept-Language": [ "en-US" ], - "ocp-date": [ - "Wed, 13 Nov 2024 21:23:18 GMT" + "client-request-id": [ + "6bdcd347-e47f-479a-a0c0-343485b7c0ff" ], - "x-ms-client-request-id": [ - "de843f51-3edc-4cfa-913c-0e0bcdb428db" + "ocp-date": [ + "Thu, 11 Sep 2025 22:41:17 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" - ], - "Content-Type": [ - "application/json; odata=minimalmetadata; charset=utf-8" - ], - "Content-Length": [ - "197" ] }, - "RequestBody": "{\r\n \"id\": \"testJobCompletesWhenTaskFails\",\r\n \"priority\": 0,\r\n \"poolInfo\": {\r\n \"poolId\": \"testPool\"\r\n },\r\n \"onTaskFailure\": \"performexitoptionsjobaction\",\r\n \"usesTaskDependencies\": false\r\n}", + "RequestBody": "", "ResponseHeaders": { "Transfer-Encoding": [ "chunked" ], "ETag": [ - "0x8DD042964F7F756" - ], - "Location": [ - "https://dawatrouhobo.eastus2.batch.azure.com/jobs/job-1" + "0x8DDF1843C878AFD" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "f94535fd-b207-47a9-91f6-fbed44b917e5" + "b572054c-715e-4db8-9358-3c81bc210f62" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -530,66 +518,54 @@ "DataServiceVersion": [ "3.0" ], - "DataServiceId": [ - "https://dawatrouhobo.eastus2.batch.azure.com/jobs/job-1" - ], "Date": [ - "Wed, 13 Nov 2024 21:23:18 GMT" + "Thu, 11 Sep 2025 22:41:17 GMT" + ], + "Content-Type": [ + "application/json; odata=minimalmetadata" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:23:19 GMT" + "Thu, 11 Sep 2025 22:40:40 GMT" ] }, - "ResponseBody": "", - "StatusCode": 201 + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"testPool\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/testPool\",\r\n \"eTag\": \"0x8DDF1843C878AFD\",\r\n \"lastModified\": \"2025-09-11T22:40:40.9971453Z\",\r\n \"creationTime\": \"2025-09-11T22:40:40.9971441Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T22:40:40.9971441Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2025-09-11T22:40:40.9971453Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", + "StatusCode": 200 }, { - "RequestUri": "/jobs/testJobCompletesWhenTaskFails/tasks?api-version=2024-02-01.19.0", - "EncodedRequestUri": "L2pvYnMvdGVzdEpvYkNvbXBsZXRlc1doZW5UYXNrRmFpbHMvdGFza3M/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4w", - "RequestMethod": "POST", + "RequestUri": "/pools/testPool?api-version=2024-02-01.19.0", + "EncodedRequestUri": "L3Bvb2xzL3Rlc3RQb29sP2FwaS12ZXJzaW9uPTIwMjQtMDItMDEuMTkuMA==", + "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "a4e9964c-6e68-4763-a22c-906c23935a3f" - ], "Accept-Language": [ "en-US" ], - "ocp-date": [ - "Wed, 13 Nov 2024 21:23:19 GMT" + "client-request-id": [ + "af0d159b-e8e4-4789-864c-735041cf7227" ], - "x-ms-client-request-id": [ - "f57fd636-68e1-4570-9834-7145357e2b23" + "ocp-date": [ + "Thu, 11 Sep 2025 22:41:22 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" - ], - "Content-Type": [ - "application/json; odata=minimalmetadata; charset=utf-8" - ], - "Content-Length": [ - "251" ] }, - "RequestBody": "{\r\n \"id\": \"taskId-1\",\r\n \"commandLine\": \"cmd /c exit 3\",\r\n \"exitConditions\": {\r\n \"exitCodeRanges\": [\r\n {\r\n \"start\": 2,\r\n \"end\": 4,\r\n \"exitOptions\": {\r\n \"jobAction\": \"terminate\"\r\n }\r\n }\r\n ]\r\n }\r\n}", + "RequestBody": "", "ResponseHeaders": { "Transfer-Encoding": [ "chunked" ], "ETag": [ - "0x8DD0429650AB83A" - ], - "Location": [ - "https://dawatrouhobo.eastus2.batch.azure.com/jobs/testJobCompletesWhenTaskFails/tasks/taskId-1" + "0x8DDF1843C878AFD" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "57b066b8-23d5-4081-89b8-ad84409b8257" + "8c9a6a6d-40e0-4138-9c2d-b3fb320df840" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -600,37 +576,37 @@ "DataServiceVersion": [ "3.0" ], - "DataServiceId": [ - "https://dawatrouhobo.eastus2.batch.azure.com/jobs/testJobCompletesWhenTaskFails/tasks/taskId-1" - ], "Date": [ - "Wed, 13 Nov 2024 21:23:18 GMT" + "Thu, 11 Sep 2025 22:41:22 GMT" + ], + "Content-Type": [ + "application/json; odata=minimalmetadata" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:23:19 GMT" + "Thu, 11 Sep 2025 22:40:40 GMT" ] }, - "ResponseBody": "", - "StatusCode": 201 + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"testPool\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/testPool\",\r\n \"eTag\": \"0x8DDF1843C878AFD\",\r\n \"lastModified\": \"2025-09-11T22:40:40.9971453Z\",\r\n \"creationTime\": \"2025-09-11T22:40:40.9971441Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T22:40:40.9971441Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2025-09-11T22:40:40.9971453Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", + "StatusCode": 200 }, { - "RequestUri": "/jobs?api-version=2024-02-01.19.0", - "EncodedRequestUri": "L2pvYnM/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4w", + "RequestUri": "/pools/testPool?api-version=2024-02-01.19.0", + "EncodedRequestUri": "L3Bvb2xzL3Rlc3RQb29sP2FwaS12ZXJzaW9uPTIwMjQtMDItMDEuMTkuMA==", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "6262113d-5be7-498d-b797-638aa3d41b27" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "6ffe881b-b67c-4163-98eb-684160ef0af3" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:23:19 GMT" + "Thu, 11 Sep 2025 22:41:27 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -640,11 +616,14 @@ "Transfer-Encoding": [ "chunked" ], + "ETag": [ + "0x8DDF1843C878AFD" + ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "774e27dc-40e6-4131-bcca-a4d91887ad7d" + "fd69e179-f23f-4789-be22-b53b01c23fb2" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -656,47 +635,135 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:23:19 GMT" + "Thu, 11 Sep 2025 22:41:27 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" + ], + "Last-Modified": [ + "Thu, 11 Sep 2025 22:40:40 GMT" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#jobs\",\r\n \"value\": [\r\n {\r\n \"id\": \"testJobCompletesWhenTaskFails\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/jobs/testJobCompletesWhenTaskFails\",\r\n \"eTag\": \"0x8DD042964F7F756\",\r\n \"lastModified\": \"2024-11-13T21:23:19.0621014Z\",\r\n \"creationTime\": \"2024-11-13T21:23:19.047095Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2024-11-13T21:23:19.0621014Z\",\r\n \"priority\": 0,\r\n \"maxParallelTasks\": -1,\r\n \"usesTaskDependencies\": false,\r\n \"allowTaskPreemption\": false,\r\n \"constraints\": {\r\n \"maxWallClockTime\": \"P10675199DT2H48M5.4775807S\",\r\n \"maxTaskRetryCount\": 0\r\n },\r\n \"poolInfo\": {\r\n \"poolId\": \"testPool\"\r\n },\r\n \"executionInfo\": {\r\n \"startTime\": \"2024-11-13T21:23:19.0621014Z\",\r\n \"poolId\": \"testPool\"\r\n },\r\n \"onAllTasksComplete\": \"noaction\",\r\n \"onTaskFailure\": \"performexitoptionsjobaction\"\r\n },\r\n {\r\n \"id\": \"testDisableEnableTerminateJobSchedule:job-1\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/jobs/testDisableEnableTerminateJobSchedule:job-1\",\r\n \"eTag\": \"0x8DD04286283296E\",\r\n \"lastModified\": \"2024-11-13T21:16:05.4444398Z\",\r\n \"creationTime\": \"2024-11-13T21:16:05.4204379Z\",\r\n \"state\": \"completed\",\r\n \"stateTransitionTime\": \"2024-11-13T21:16:06.7817205Z\",\r\n \"previousState\": \"active\",\r\n \"previousStateTransitionTime\": \"2024-11-13T21:16:05.4444398Z\",\r\n \"priority\": 0,\r\n \"maxParallelTasks\": -1,\r\n \"usesTaskDependencies\": false,\r\n \"allowTaskPreemption\": false,\r\n \"constraints\": {\r\n \"maxWallClockTime\": \"P10675199DT2H48M5.4775807S\",\r\n \"maxTaskRetryCount\": 0\r\n },\r\n \"poolInfo\": {\r\n \"poolId\": \"testPool\"\r\n },\r\n \"executionInfo\": {\r\n \"startTime\": \"2024-11-13T21:16:05.4444398Z\",\r\n \"endTime\": \"2024-11-13T21:16:06.7817205Z\",\r\n \"poolId\": \"testPool\",\r\n \"terminateReason\": \"TerminateWorkitem\"\r\n },\r\n \"onAllTasksComplete\": \"noaction\",\r\n \"onTaskFailure\": \"noaction\"\r\n }\r\n ]\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"testPool\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/testPool\",\r\n \"eTag\": \"0x8DDF1843C878AFD\",\r\n \"lastModified\": \"2025-09-11T22:40:40.9971453Z\",\r\n \"creationTime\": \"2025-09-11T22:40:40.9971441Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T22:40:40.9971441Z\",\r\n \"allocationState\": \"steady\",\r\n \"allocationStateTransitionTime\": \"2025-09-11T22:41:23.1389929Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 2,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\",\r\n \"currentNodeCommunicationMode\": \"simplified\"\r\n}", "StatusCode": 200 }, { "RequestUri": "/jobs?api-version=2024-02-01.19.0", "EncodedRequestUri": "L2pvYnM/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4w", - "RequestMethod": "GET", + "RequestMethod": "POST", "RequestHeaders": { + "Accept-Language": [ + "en-US" + ], "client-request-id": [ - "b1ccf275-8682-465e-8b78-df550116ea30" + "7513304e-2bdf-43dc-a0ec-b2a66c5f76ae" + ], + "ocp-date": [ + "Thu, 11 Sep 2025 22:41:29 GMT" + ], + "x-ms-client-request-id": [ + "8777a467-1779-41b6-91e4-1c3568463dc9" + ], + "User-Agent": [ + "FxVersion/8.0.2025.41914", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.26100", + "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", + "AzurePowershell/Az1.0.0" ], + "Content-Type": [ + "application/json; odata=minimalmetadata; charset=utf-8" + ], + "Content-Length": [ + "197" + ] + }, + "RequestBody": "{\r\n \"id\": \"testJobCompletesWhenTaskFails\",\r\n \"priority\": 0,\r\n \"poolInfo\": {\r\n \"poolId\": \"testPool\"\r\n },\r\n \"onTaskFailure\": \"performexitoptionsjobaction\",\r\n \"usesTaskDependencies\": false\r\n}", + "ResponseHeaders": { + "Transfer-Encoding": [ + "chunked" + ], + "ETag": [ + "0x8DDF1845965D5A6" + ], + "Location": [ + "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/jobs/job-1" + ], + "Server": [ + "Microsoft-HTTPAPI/2.0" + ], + "request-id": [ + "069a0a00-f58c-4009-bc75-86b6af2623de" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "DataServiceVersion": [ + "3.0" + ], + "DataServiceId": [ + "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/jobs/job-1" + ], + "Date": [ + "Thu, 11 Sep 2025 22:41:29 GMT" + ], + "Last-Modified": [ + "Thu, 11 Sep 2025 22:41:29 GMT" + ] + }, + "ResponseBody": "", + "StatusCode": 201 + }, + { + "RequestUri": "/jobs/testJobCompletesWhenTaskFails/tasks?api-version=2024-02-01.19.0", + "EncodedRequestUri": "L2pvYnMvdGVzdEpvYkNvbXBsZXRlc1doZW5UYXNrRmFpbHMvdGFza3M/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4w", + "RequestMethod": "POST", + "RequestHeaders": { "Accept-Language": [ "en-US" ], + "client-request-id": [ + "a5c7ad68-1b57-4e56-b4c8-b6bc0423d427" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:23:19 GMT" + "Thu, 11 Sep 2025 22:41:29 GMT" + ], + "x-ms-client-request-id": [ + "87704a38-7c8e-4efb-b3fe-6f34936ffb6a" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" + ], + "Content-Type": [ + "application/json; odata=minimalmetadata; charset=utf-8" + ], + "Content-Length": [ + "251" ] }, - "RequestBody": "", + "RequestBody": "{\r\n \"id\": \"taskId-1\",\r\n \"commandLine\": \"cmd /c exit 3\",\r\n \"exitConditions\": {\r\n \"exitCodeRanges\": [\r\n {\r\n \"start\": 2,\r\n \"end\": 4,\r\n \"exitOptions\": {\r\n \"jobAction\": \"terminate\"\r\n }\r\n }\r\n ]\r\n }\r\n}", "ResponseHeaders": { "Transfer-Encoding": [ "chunked" ], + "ETag": [ + "0x8DDF18459862B3B" + ], + "Location": [ + "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/jobs/testJobCompletesWhenTaskFails/tasks/taskId-1" + ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "f2b11482-497a-423e-b6db-527074065dd5" + "f49a74ea-c4d2-4502-9f46-31ff30d492ac" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -707,34 +774,37 @@ "DataServiceVersion": [ "3.0" ], + "DataServiceId": [ + "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/jobs/testJobCompletesWhenTaskFails/tasks/taskId-1" + ], "Date": [ - "Wed, 13 Nov 2024 21:23:19 GMT" + "Thu, 11 Sep 2025 22:41:29 GMT" ], - "Content-Type": [ - "application/json; odata=minimalmetadata" + "Last-Modified": [ + "Thu, 11 Sep 2025 22:41:29 GMT" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#jobs\",\r\n \"value\": [\r\n {\r\n \"id\": \"testJobCompletesWhenTaskFails\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/jobs/testJobCompletesWhenTaskFails\",\r\n \"eTag\": \"0x8DD042964F7F756\",\r\n \"lastModified\": \"2024-11-13T21:23:19.0621014Z\",\r\n \"creationTime\": \"2024-11-13T21:23:19.047095Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2024-11-13T21:23:19.0621014Z\",\r\n \"priority\": 0,\r\n \"maxParallelTasks\": -1,\r\n \"usesTaskDependencies\": false,\r\n \"allowTaskPreemption\": false,\r\n \"constraints\": {\r\n \"maxWallClockTime\": \"P10675199DT2H48M5.4775807S\",\r\n \"maxTaskRetryCount\": 0\r\n },\r\n \"poolInfo\": {\r\n \"poolId\": \"testPool\"\r\n },\r\n \"executionInfo\": {\r\n \"startTime\": \"2024-11-13T21:23:19.0621014Z\",\r\n \"poolId\": \"testPool\"\r\n },\r\n \"onAllTasksComplete\": \"noaction\",\r\n \"onTaskFailure\": \"performexitoptionsjobaction\"\r\n },\r\n {\r\n \"id\": \"testDisableEnableTerminateJobSchedule:job-1\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/jobs/testDisableEnableTerminateJobSchedule:job-1\",\r\n \"eTag\": \"0x8DD04286283296E\",\r\n \"lastModified\": \"2024-11-13T21:16:05.4444398Z\",\r\n \"creationTime\": \"2024-11-13T21:16:05.4204379Z\",\r\n \"state\": \"completed\",\r\n \"stateTransitionTime\": \"2024-11-13T21:16:06.7817205Z\",\r\n \"previousState\": \"active\",\r\n \"previousStateTransitionTime\": \"2024-11-13T21:16:05.4444398Z\",\r\n \"priority\": 0,\r\n \"maxParallelTasks\": -1,\r\n \"usesTaskDependencies\": false,\r\n \"allowTaskPreemption\": false,\r\n \"constraints\": {\r\n \"maxWallClockTime\": \"P10675199DT2H48M5.4775807S\",\r\n \"maxTaskRetryCount\": 0\r\n },\r\n \"poolInfo\": {\r\n \"poolId\": \"testPool\"\r\n },\r\n \"executionInfo\": {\r\n \"startTime\": \"2024-11-13T21:16:05.4444398Z\",\r\n \"endTime\": \"2024-11-13T21:16:06.7817205Z\",\r\n \"poolId\": \"testPool\",\r\n \"terminateReason\": \"TerminateWorkitem\"\r\n },\r\n \"onAllTasksComplete\": \"noaction\",\r\n \"onTaskFailure\": \"noaction\"\r\n }\r\n ]\r\n}", - "StatusCode": 200 + "ResponseBody": "", + "StatusCode": 201 }, { "RequestUri": "/jobs?api-version=2024-02-01.19.0", "EncodedRequestUri": "L2pvYnM/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4w", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "b021888c-abe0-42e2-b938-3314b1a63e41" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "d09a0a11-fa45-40ec-84fb-cd82a29547d7" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:23:39 GMT" + "Thu, 11 Sep 2025 22:41:29 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -748,7 +818,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "54e88a4d-5f0d-40c1-8e8d-343c8005fc51" + "7fddf66c-374b-466b-8c52-ccb4aa6209dc" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -760,13 +830,13 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:23:38 GMT" + "Thu, 11 Sep 2025 22:41:29 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#jobs\",\r\n \"value\": [\r\n {\r\n \"id\": \"testJobCompletesWhenTaskFails\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/jobs/testJobCompletesWhenTaskFails\",\r\n \"eTag\": \"0x8DD042964F7F756\",\r\n \"lastModified\": \"2024-11-13T21:23:19.0621014Z\",\r\n \"creationTime\": \"2024-11-13T21:23:19.047095Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2024-11-13T21:23:19.0621014Z\",\r\n \"priority\": 0,\r\n \"maxParallelTasks\": -1,\r\n \"usesTaskDependencies\": false,\r\n \"allowTaskPreemption\": false,\r\n \"constraints\": {\r\n \"maxWallClockTime\": \"P10675199DT2H48M5.4775807S\",\r\n \"maxTaskRetryCount\": 0\r\n },\r\n \"poolInfo\": {\r\n \"poolId\": \"testPool\"\r\n },\r\n \"executionInfo\": {\r\n \"startTime\": \"2024-11-13T21:23:19.0621014Z\",\r\n \"poolId\": \"testPool\"\r\n },\r\n \"onAllTasksComplete\": \"noaction\",\r\n \"onTaskFailure\": \"performexitoptionsjobaction\"\r\n },\r\n {\r\n \"id\": \"testDisableEnableTerminateJobSchedule:job-1\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/jobs/testDisableEnableTerminateJobSchedule:job-1\",\r\n \"eTag\": \"0x8DD04286283296E\",\r\n \"lastModified\": \"2024-11-13T21:16:05.4444398Z\",\r\n \"creationTime\": \"2024-11-13T21:16:05.4204379Z\",\r\n \"state\": \"completed\",\r\n \"stateTransitionTime\": \"2024-11-13T21:16:06.7817205Z\",\r\n \"previousState\": \"active\",\r\n \"previousStateTransitionTime\": \"2024-11-13T21:16:05.4444398Z\",\r\n \"priority\": 0,\r\n \"maxParallelTasks\": -1,\r\n \"usesTaskDependencies\": false,\r\n \"allowTaskPreemption\": false,\r\n \"constraints\": {\r\n \"maxWallClockTime\": \"P10675199DT2H48M5.4775807S\",\r\n \"maxTaskRetryCount\": 0\r\n },\r\n \"poolInfo\": {\r\n \"poolId\": \"testPool\"\r\n },\r\n \"executionInfo\": {\r\n \"startTime\": \"2024-11-13T21:16:05.4444398Z\",\r\n \"endTime\": \"2024-11-13T21:16:06.7817205Z\",\r\n \"poolId\": \"testPool\",\r\n \"terminateReason\": \"TerminateWorkitem\"\r\n },\r\n \"onAllTasksComplete\": \"noaction\",\r\n \"onTaskFailure\": \"noaction\"\r\n }\r\n ]\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#jobs\",\r\n \"value\": [\r\n {\r\n \"id\": \"testJobCompletesWhenTaskFails\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/jobs/testJobCompletesWhenTaskFails\",\r\n \"eTag\": \"0x8DDF1845965D5A6\",\r\n \"lastModified\": \"2025-09-11T22:41:29.4301606Z\",\r\n \"creationTime\": \"2025-09-11T22:41:29.4151603Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T22:41:29.4301606Z\",\r\n \"priority\": 0,\r\n \"maxParallelTasks\": -1,\r\n \"usesTaskDependencies\": false,\r\n \"allowTaskPreemption\": false,\r\n \"constraints\": {\r\n \"maxWallClockTime\": \"P10675199DT2H48M5.4775807S\",\r\n \"maxTaskRetryCount\": 0\r\n },\r\n \"poolInfo\": {\r\n \"poolId\": \"testPool\"\r\n },\r\n \"executionInfo\": {\r\n \"startTime\": \"2025-09-11T22:41:29.4301606Z\",\r\n \"poolId\": \"testPool\"\r\n },\r\n \"onAllTasksComplete\": \"noaction\",\r\n \"onTaskFailure\": \"performexitoptionsjobaction\"\r\n }\r\n ]\r\n}", "StatusCode": 200 }, { @@ -774,19 +844,19 @@ "EncodedRequestUri": "L2pvYnM/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4w", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "6cc55d8a-ae5d-4feb-a0d8-9a4567c9e003" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "1814ec40-1f9b-4ebc-aa4b-ab40722997eb" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:23:59 GMT" + "Thu, 11 Sep 2025 22:41:29 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -800,7 +870,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "8b061bca-fea4-4de0-a85d-f91b88b13ecd" + "550b3dae-94f0-4fbf-bfb2-5b9fdc4da798" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -812,13 +882,13 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:23:59 GMT" + "Thu, 11 Sep 2025 22:41:29 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#jobs\",\r\n \"value\": [\r\n {\r\n \"id\": \"testJobCompletesWhenTaskFails\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/jobs/testJobCompletesWhenTaskFails\",\r\n \"eTag\": \"0x8DD04297CFBF4C4\",\r\n \"lastModified\": \"2024-11-13T21:23:59.3535684Z\",\r\n \"creationTime\": \"2024-11-13T21:23:19.047095Z\",\r\n \"state\": \"terminating\",\r\n \"stateTransitionTime\": \"2024-11-13T21:23:59.3535684Z\",\r\n \"previousState\": \"active\",\r\n \"previousStateTransitionTime\": \"2024-11-13T21:23:19.0621014Z\",\r\n \"priority\": 0,\r\n \"maxParallelTasks\": -1,\r\n \"usesTaskDependencies\": false,\r\n \"allowTaskPreemption\": false,\r\n \"constraints\": {\r\n \"maxWallClockTime\": \"P10675199DT2H48M5.4775807S\",\r\n \"maxTaskRetryCount\": 0\r\n },\r\n \"poolInfo\": {\r\n \"poolId\": \"testPool\"\r\n },\r\n \"executionInfo\": {\r\n \"startTime\": \"2024-11-13T21:23:19.0621014Z\",\r\n \"poolId\": \"testPool\",\r\n \"terminateReason\": \"TaskFailed\"\r\n },\r\n \"onAllTasksComplete\": \"noaction\",\r\n \"onTaskFailure\": \"performexitoptionsjobaction\"\r\n },\r\n {\r\n \"id\": \"testDisableEnableTerminateJobSchedule:job-1\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/jobs/testDisableEnableTerminateJobSchedule:job-1\",\r\n \"eTag\": \"0x8DD04286283296E\",\r\n \"lastModified\": \"2024-11-13T21:16:05.4444398Z\",\r\n \"creationTime\": \"2024-11-13T21:16:05.4204379Z\",\r\n \"state\": \"completed\",\r\n \"stateTransitionTime\": \"2024-11-13T21:16:06.7817205Z\",\r\n \"previousState\": \"active\",\r\n \"previousStateTransitionTime\": \"2024-11-13T21:16:05.4444398Z\",\r\n \"priority\": 0,\r\n \"maxParallelTasks\": -1,\r\n \"usesTaskDependencies\": false,\r\n \"allowTaskPreemption\": false,\r\n \"constraints\": {\r\n \"maxWallClockTime\": \"P10675199DT2H48M5.4775807S\",\r\n \"maxTaskRetryCount\": 0\r\n },\r\n \"poolInfo\": {\r\n \"poolId\": \"testPool\"\r\n },\r\n \"executionInfo\": {\r\n \"startTime\": \"2024-11-13T21:16:05.4444398Z\",\r\n \"endTime\": \"2024-11-13T21:16:06.7817205Z\",\r\n \"poolId\": \"testPool\",\r\n \"terminateReason\": \"TerminateWorkitem\"\r\n },\r\n \"onAllTasksComplete\": \"noaction\",\r\n \"onTaskFailure\": \"noaction\"\r\n }\r\n ]\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#jobs\",\r\n \"value\": [\r\n {\r\n \"id\": \"testJobCompletesWhenTaskFails\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/jobs/testJobCompletesWhenTaskFails\",\r\n \"eTag\": \"0x8DDF1845965D5A6\",\r\n \"lastModified\": \"2025-09-11T22:41:29.4301606Z\",\r\n \"creationTime\": \"2025-09-11T22:41:29.4151603Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T22:41:29.4301606Z\",\r\n \"priority\": 0,\r\n \"maxParallelTasks\": -1,\r\n \"usesTaskDependencies\": false,\r\n \"allowTaskPreemption\": false,\r\n \"constraints\": {\r\n \"maxWallClockTime\": \"P10675199DT2H48M5.4775807S\",\r\n \"maxTaskRetryCount\": 0\r\n },\r\n \"poolInfo\": {\r\n \"poolId\": \"testPool\"\r\n },\r\n \"executionInfo\": {\r\n \"startTime\": \"2025-09-11T22:41:29.4301606Z\",\r\n \"poolId\": \"testPool\"\r\n },\r\n \"onAllTasksComplete\": \"noaction\",\r\n \"onTaskFailure\": \"performexitoptionsjobaction\"\r\n }\r\n ]\r\n}", "StatusCode": 200 }, { @@ -826,19 +896,19 @@ "EncodedRequestUri": "L2pvYnM/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4w", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "2d5ed422-1a7d-469e-b4e8-0623631ab087" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "501d9012-2246-45bf-812e-a17aedec7f4c" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:24:19 GMT" + "Thu, 11 Sep 2025 22:41:49 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -852,7 +922,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "124c6706-cd86-424e-b407-c7f7eab479c0" + "fdc904ed-4038-4f5d-ac79-21a28ade8250" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -864,13 +934,13 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:24:18 GMT" + "Thu, 11 Sep 2025 22:41:49 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#jobs\",\r\n \"value\": [\r\n {\r\n \"id\": \"testDisableEnableTerminateJobSchedule:job-1\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/jobs/testDisableEnableTerminateJobSchedule:job-1\",\r\n \"eTag\": \"0x8DD04286283296E\",\r\n \"lastModified\": \"2024-11-13T21:16:05.4444398Z\",\r\n \"creationTime\": \"2024-11-13T21:16:05.4204379Z\",\r\n \"state\": \"completed\",\r\n \"stateTransitionTime\": \"2024-11-13T21:16:06.7817205Z\",\r\n \"previousState\": \"active\",\r\n \"previousStateTransitionTime\": \"2024-11-13T21:16:05.4444398Z\",\r\n \"priority\": 0,\r\n \"maxParallelTasks\": -1,\r\n \"usesTaskDependencies\": false,\r\n \"allowTaskPreemption\": false,\r\n \"constraints\": {\r\n \"maxWallClockTime\": \"P10675199DT2H48M5.4775807S\",\r\n \"maxTaskRetryCount\": 0\r\n },\r\n \"poolInfo\": {\r\n \"poolId\": \"testPool\"\r\n },\r\n \"executionInfo\": {\r\n \"startTime\": \"2024-11-13T21:16:05.4444398Z\",\r\n \"endTime\": \"2024-11-13T21:16:06.7817205Z\",\r\n \"poolId\": \"testPool\",\r\n \"terminateReason\": \"TerminateWorkitem\"\r\n },\r\n \"onAllTasksComplete\": \"noaction\",\r\n \"onTaskFailure\": \"noaction\"\r\n },\r\n {\r\n \"id\": \"testJobCompletesWhenTaskFails\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/jobs/testJobCompletesWhenTaskFails\",\r\n \"eTag\": \"0x8DD04297CFBF4C4\",\r\n \"lastModified\": \"2024-11-13T21:23:59.3535684Z\",\r\n \"creationTime\": \"2024-11-13T21:23:19.047095Z\",\r\n \"state\": \"completed\",\r\n \"stateTransitionTime\": \"2024-11-13T21:23:59.9173576Z\",\r\n \"previousState\": \"active\",\r\n \"previousStateTransitionTime\": \"2024-11-13T21:23:19.0621014Z\",\r\n \"priority\": 0,\r\n \"maxParallelTasks\": -1,\r\n \"usesTaskDependencies\": false,\r\n \"allowTaskPreemption\": false,\r\n \"constraints\": {\r\n \"maxWallClockTime\": \"P10675199DT2H48M5.4775807S\",\r\n \"maxTaskRetryCount\": 0\r\n },\r\n \"poolInfo\": {\r\n \"poolId\": \"testPool\"\r\n },\r\n \"executionInfo\": {\r\n \"startTime\": \"2024-11-13T21:23:19.0621014Z\",\r\n \"endTime\": \"2024-11-13T21:23:59.9173576Z\",\r\n \"poolId\": \"testPool\",\r\n \"terminateReason\": \"TaskFailed\"\r\n },\r\n \"onAllTasksComplete\": \"noaction\",\r\n \"onTaskFailure\": \"performexitoptionsjobaction\"\r\n }\r\n ]\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#jobs\",\r\n \"value\": [\r\n {\r\n \"id\": \"testJobCompletesWhenTaskFails\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/jobs/testJobCompletesWhenTaskFails\",\r\n \"eTag\": \"0x8DDF184650545CD\",\r\n \"lastModified\": \"2025-09-11T22:41:48.9299917Z\",\r\n \"creationTime\": \"2025-09-11T22:41:29.4151603Z\",\r\n \"state\": \"completed\",\r\n \"stateTransitionTime\": \"2025-09-11T22:41:49.8936378Z\",\r\n \"previousState\": \"active\",\r\n \"previousStateTransitionTime\": \"2025-09-11T22:41:29.4301606Z\",\r\n \"priority\": 0,\r\n \"maxParallelTasks\": -1,\r\n \"usesTaskDependencies\": false,\r\n \"allowTaskPreemption\": false,\r\n \"constraints\": {\r\n \"maxWallClockTime\": \"P10675199DT2H48M5.4775807S\",\r\n \"maxTaskRetryCount\": 0\r\n },\r\n \"poolInfo\": {\r\n \"poolId\": \"testPool\"\r\n },\r\n \"executionInfo\": {\r\n \"startTime\": \"2025-09-11T22:41:29.4301606Z\",\r\n \"endTime\": \"2025-09-11T22:41:49.8936378Z\",\r\n \"poolId\": \"testPool\",\r\n \"terminateReason\": \"TaskFailed\"\r\n },\r\n \"onAllTasksComplete\": \"noaction\",\r\n \"onTaskFailure\": \"performexitoptionsjobaction\"\r\n }\r\n ]\r\n}", "StatusCode": 200 }, { @@ -878,19 +948,19 @@ "EncodedRequestUri": "L2pvYnMvdGVzdEpvYkNvbXBsZXRlc1doZW5UYXNrRmFpbHM/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4w", "RequestMethod": "DELETE", "RequestHeaders": { - "client-request-id": [ - "6c68d82b-e09e-4a4e-b868-9f9067744fb9" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "bdc25c44-709a-4449-bf6a-e630ae46b47d" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:24:39 GMT" + "Thu, 11 Sep 2025 22:42:10 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ], @@ -907,7 +977,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "6b614066-ba4e-4d9a-bb06-97f28f282ef6" + "a53a0dcd-e892-43d3-9463-0e5977e6b051" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -919,7 +989,7 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:24:38 GMT" + "Thu, 11 Sep 2025 22:42:10 GMT" ] }, "ResponseBody": "", @@ -928,9 +998,9 @@ ], "Names": {}, "Variables": { - "SubscriptionId": "21abd678-18c5-4660-9fdd-8c5ba6b6fe1f", - "AZURE_BATCH_ACCOUNT": "dawatrouhobo", - "AZURE_BATCH_ENDPOINT": "https://dawatrouhobo.eastus2.batch.azure.com", - "AZURE_BATCH_RESOURCE_GROUP": "dawatrou-rg" + "SubscriptionId": "94bd7ded-68b4-4ffa-82a5-37ac72caa2ec", + "AZURE_BATCH_ACCOUNT": "dotnotsdkbatchaccount2", + "AZURE_BATCH_ENDPOINT": "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com", + "AZURE_BATCH_RESOURCE_GROUP": "automation" } } \ No newline at end of file diff --git a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.JobTests/TestDisableEnableTerminateJob.json b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.JobTests/TestDisableEnableTerminateJob.json index 693daa1a7b4e..a4eef08e5d6b 100644 --- a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.JobTests/TestDisableEnableTerminateJob.json +++ b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.JobTests/TestDisableEnableTerminateJob.json @@ -5,19 +5,19 @@ "EncodedRequestUri": "L2pvYnM/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4w", "RequestMethod": "POST", "RequestHeaders": { - "client-request-id": [ - "0c0f0fd3-e8aa-48cd-a7b7-97cd07e73b66" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "8e921bc8-5dd5-43d7-bd9b-9e6dd1f7d8e8" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:22:35 GMT" + "Thu, 11 Sep 2025 22:40:26 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ], @@ -34,16 +34,16 @@ "chunked" ], "ETag": [ - "0x8DD04294B2CBAD6" + "0x8DDF184344FD8AD" ], "Location": [ - "https://dawatrouhobo.eastus2.batch.azure.com/jobs/job-1" + "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/jobs/job-1" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "cffa2049-442e-4c34-a373-936393215d5f" + "87845889-a55a-49bc-8342-1038b687ec44" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -55,13 +55,13 @@ "3.0" ], "DataServiceId": [ - "https://dawatrouhobo.eastus2.batch.azure.com/jobs/job-1" + "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/jobs/job-1" ], "Date": [ - "Wed, 13 Nov 2024 21:22:35 GMT" + "Thu, 11 Sep 2025 22:40:26 GMT" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:22:35 GMT" + "Thu, 11 Sep 2025 22:40:27 GMT" ] }, "ResponseBody": "", @@ -72,22 +72,22 @@ "EncodedRequestUri": "L2pvYnMvdGVzdERpc2FibGVFbmFibGVUZXJtaW5hdGVKb2IvZGlzYWJsZT9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjA=", "RequestMethod": "POST", "RequestHeaders": { - "client-request-id": [ - "5a44f977-b2eb-4154-91bf-c58641cd0225" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "c1c9d6d6-277d-4cde-bc3a-c20a8eb858d9" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:22:36 GMT" + "Thu, 11 Sep 2025 22:40:28 GMT" ], "x-ms-client-request-id": [ - "c854cca1-de2f-4cbd-a149-2dd17b79eb79" + "f5de4fb7-020c-44a9-a5ee-e00578717ddc" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ], @@ -104,13 +104,13 @@ "chunked" ], "ETag": [ - "0x8DD04294B7E5D17" + "0x8DDF18435753FD5" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "28100cd0-f44b-46cc-bd63-0b27fb8279fa" + "a3f5439e-3eb2-4d76-9721-009d12e41737" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -122,13 +122,13 @@ "3.0" ], "DataServiceId": [ - "https://dawatrouhobo.eastus2.batch.azure.com/jobs/testDisableEnableTerminateJob/disable" + "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/jobs/testDisableEnableTerminateJob/disable" ], "Date": [ - "Wed, 13 Nov 2024 21:22:35 GMT" + "Thu, 11 Sep 2025 22:40:28 GMT" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:22:36 GMT" + "Thu, 11 Sep 2025 22:40:29 GMT" ] }, "ResponseBody": "", @@ -139,22 +139,22 @@ "EncodedRequestUri": "L2pvYnMvdGVzdERpc2FibGVFbmFibGVUZXJtaW5hdGVKb2I/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4w", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "1d46b310-b406-4ce2-8062-351863f68965" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "a07042d5-ce8c-4191-bd25-c744cf112da2" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:22:46 GMT" + "Thu, 11 Sep 2025 22:40:39 GMT" ], "x-ms-client-request-id": [ - "a1ae7c8a-2292-45f5-8b20-d2f311052fd4" + "b3af96b3-d949-4921-83a9-b457489811b7" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -165,13 +165,13 @@ "chunked" ], "ETag": [ - "0x8DD04294B7E5D17" + "0x8DDF18435753FD5" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "b7fff1a1-2a00-4cdc-b273-25959937323f" + "41baf701-31bc-49a8-af6f-5c8494d644b5" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -183,16 +183,16 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:22:46 GMT" + "Thu, 11 Sep 2025 22:40:39 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:22:36 GMT" + "Thu, 11 Sep 2025 22:40:29 GMT" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#jobs/@Element\",\r\n \"id\": \"testDisableEnableTerminateJob\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/jobs/testDisableEnableTerminateJob\",\r\n \"eTag\": \"0x8DD04294B7E5D17\",\r\n \"lastModified\": \"2024-11-13T21:22:36.3221271Z\",\r\n \"creationTime\": \"2024-11-13T21:22:35.7711397Z\",\r\n \"state\": \"disabled\",\r\n \"stateTransitionTime\": \"2024-11-13T21:22:36.3311309Z\",\r\n \"previousState\": \"active\",\r\n \"previousStateTransitionTime\": \"2024-11-13T21:22:35.7871318Z\",\r\n \"priority\": 0,\r\n \"maxParallelTasks\": -1,\r\n \"usesTaskDependencies\": false,\r\n \"allowTaskPreemption\": false,\r\n \"constraints\": {\r\n \"maxWallClockTime\": \"P10675199DT2H48M5.4775807S\",\r\n \"maxTaskRetryCount\": 0\r\n },\r\n \"poolInfo\": {\r\n \"poolId\": \"testPool\"\r\n },\r\n \"executionInfo\": {\r\n \"startTime\": \"2024-11-13T21:22:35.7871318Z\",\r\n \"poolId\": \"testPool\"\r\n },\r\n \"onAllTasksComplete\": \"noaction\",\r\n \"onTaskFailure\": \"noaction\"\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#jobs/@Element\",\r\n \"id\": \"testDisableEnableTerminateJob\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/jobs/testDisableEnableTerminateJob\",\r\n \"eTag\": \"0x8DDF18435753FD5\",\r\n \"lastModified\": \"2025-09-11T22:40:29.1332053Z\",\r\n \"creationTime\": \"2025-09-11T22:40:27.1963586Z\",\r\n \"state\": \"disabled\",\r\n \"stateTransitionTime\": \"2025-09-11T22:40:29.1442054Z\",\r\n \"previousState\": \"active\",\r\n \"previousStateTransitionTime\": \"2025-09-11T22:40:27.2103597Z\",\r\n \"priority\": 0,\r\n \"maxParallelTasks\": -1,\r\n \"usesTaskDependencies\": false,\r\n \"allowTaskPreemption\": false,\r\n \"constraints\": {\r\n \"maxWallClockTime\": \"P10675199DT2H48M5.4775807S\",\r\n \"maxTaskRetryCount\": 0\r\n },\r\n \"poolInfo\": {\r\n \"poolId\": \"testPool\"\r\n },\r\n \"executionInfo\": {\r\n \"startTime\": \"2025-09-11T22:40:27.2103597Z\",\r\n \"poolId\": \"testPool\"\r\n },\r\n \"onAllTasksComplete\": \"noaction\",\r\n \"onTaskFailure\": \"noaction\"\r\n}", "StatusCode": 200 }, { @@ -200,22 +200,22 @@ "EncodedRequestUri": "L2pvYnMvdGVzdERpc2FibGVFbmFibGVUZXJtaW5hdGVKb2I/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4w", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "bd1cd6c4-e649-4e4a-b0ff-2e76fcc6254e" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "1e6b2607-2c3d-40d7-ba25-520c6bfa8df6" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:22:46 GMT" + "Thu, 11 Sep 2025 22:40:39 GMT" ], "x-ms-client-request-id": [ - "819a27d9-269e-40bb-947f-9f40cabe10a7" + "c702796d-3fd2-4144-a5b3-5317ad7f57fc" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -226,13 +226,13 @@ "chunked" ], "ETag": [ - "0x8DD042951A4A19B" + "0x8DDF1843BDCA32B" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "7c1a6442-58e1-401e-b36b-e4bcf694c2b8" + "0d9b0a27-0aad-4797-b479-395886e93472" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -244,16 +244,16 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:22:46 GMT" + "Thu, 11 Sep 2025 22:40:39 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:22:46 GMT" + "Thu, 11 Sep 2025 22:40:39 GMT" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#jobs/@Element\",\r\n \"id\": \"testDisableEnableTerminateJob\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/jobs/testDisableEnableTerminateJob\",\r\n \"eTag\": \"0x8DD042951A4A19B\",\r\n \"lastModified\": \"2024-11-13T21:22:46.6392475Z\",\r\n \"creationTime\": \"2024-11-13T21:22:35.7711397Z\",\r\n \"state\": \"terminating\",\r\n \"stateTransitionTime\": \"2024-11-13T21:22:46.6392475Z\",\r\n \"previousState\": \"active\",\r\n \"previousStateTransitionTime\": \"2024-11-13T21:22:46.5119575Z\",\r\n \"priority\": 0,\r\n \"maxParallelTasks\": -1,\r\n \"usesTaskDependencies\": false,\r\n \"allowTaskPreemption\": false,\r\n \"constraints\": {\r\n \"maxWallClockTime\": \"P10675199DT2H48M5.4775807S\",\r\n \"maxTaskRetryCount\": 0\r\n },\r\n \"poolInfo\": {\r\n \"poolId\": \"testPool\"\r\n },\r\n \"executionInfo\": {\r\n \"startTime\": \"2024-11-13T21:22:35.7871318Z\",\r\n \"poolId\": \"testPool\",\r\n \"terminateReason\": \"UserTerminate\"\r\n },\r\n \"onAllTasksComplete\": \"noaction\",\r\n \"onTaskFailure\": \"noaction\"\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#jobs/@Element\",\r\n \"id\": \"testDisableEnableTerminateJob\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/jobs/testDisableEnableTerminateJob\",\r\n \"eTag\": \"0x8DDF1843BDCA32B\",\r\n \"lastModified\": \"2025-09-11T22:40:39.8770987Z\",\r\n \"creationTime\": \"2025-09-11T22:40:27.1963586Z\",\r\n \"state\": \"completed\",\r\n \"stateTransitionTime\": \"2025-09-11T22:40:39.9070987Z\",\r\n \"previousState\": \"active\",\r\n \"previousStateTransitionTime\": \"2025-09-11T22:40:39.5827416Z\",\r\n \"priority\": 0,\r\n \"maxParallelTasks\": -1,\r\n \"usesTaskDependencies\": false,\r\n \"allowTaskPreemption\": false,\r\n \"constraints\": {\r\n \"maxWallClockTime\": \"P10675199DT2H48M5.4775807S\",\r\n \"maxTaskRetryCount\": 0\r\n },\r\n \"poolInfo\": {\r\n \"poolId\": \"testPool\"\r\n },\r\n \"executionInfo\": {\r\n \"startTime\": \"2025-09-11T22:40:27.2103597Z\",\r\n \"endTime\": \"2025-09-11T22:40:39.9070987Z\",\r\n \"poolId\": \"testPool\",\r\n \"terminateReason\": \"UserTerminate\"\r\n },\r\n \"onAllTasksComplete\": \"noaction\",\r\n \"onTaskFailure\": \"noaction\"\r\n}", "StatusCode": 200 }, { @@ -261,22 +261,22 @@ "EncodedRequestUri": "L2pvYnMvdGVzdERpc2FibGVFbmFibGVUZXJtaW5hdGVKb2IvZW5hYmxlP2FwaS12ZXJzaW9uPTIwMjQtMDItMDEuMTkuMA==", "RequestMethod": "POST", "RequestHeaders": { - "client-request-id": [ - "251d92de-1fce-4c98-bb21-a26d0b44fbee" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "3873d722-64dc-4285-9fbd-51654d789a49" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:22:46 GMT" + "Thu, 11 Sep 2025 22:40:39 GMT" ], "x-ms-client-request-id": [ - "05c9eb36-0b28-4cad-a642-829c2aac8e2d" + "da68808b-2289-422b-a505-ac4c9421d165" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ], @@ -290,13 +290,13 @@ "chunked" ], "ETag": [ - "0x8DD042951913557" + "0x8DDF1843BAFB8D8" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "34d899ed-81e3-4a5a-b5e4-b18d5d1e6463" + "732ee5d4-c295-4a35-ac3b-d46107c001af" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -308,13 +308,13 @@ "3.0" ], "DataServiceId": [ - "https://dawatrouhobo.eastus2.batch.azure.com/jobs/testDisableEnableTerminateJob/enable" + "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/jobs/testDisableEnableTerminateJob/enable" ], "Date": [ - "Wed, 13 Nov 2024 21:22:46 GMT" + "Thu, 11 Sep 2025 22:40:39 GMT" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:22:46 GMT" + "Thu, 11 Sep 2025 22:40:39 GMT" ] }, "ResponseBody": "", @@ -325,22 +325,22 @@ "EncodedRequestUri": "L2pvYnM/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4wJiRmaWx0ZXI9aWQlMjBlcSUyMCUyN3Rlc3REaXNhYmxlRW5hYmxlVGVybWluYXRlSm9iJTI3", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "340b8e1d-1bd7-4ac1-84ee-2e01604ade6c" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "11496cd8-55dc-4cac-b5c8-41cac78f1f2d" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:22:46 GMT" + "Thu, 11 Sep 2025 22:40:39 GMT" ], "x-ms-client-request-id": [ - "0f12c22e-60a9-4fdd-8734-6418823455f0" + "753867bc-bd69-451d-a7bc-d17e5670842b" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -354,7 +354,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "b37d74fc-5c80-4cfe-8063-f0a49177b4c7" + "135a25ba-b1ef-45e7-aade-20eac033881f" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -366,13 +366,13 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:22:46 GMT" + "Thu, 11 Sep 2025 22:40:39 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#jobs\",\r\n \"value\": [\r\n {\r\n \"id\": \"testDisableEnableTerminateJob\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/jobs/testDisableEnableTerminateJob\",\r\n \"eTag\": \"0x8DD042951913557\",\r\n \"lastModified\": \"2024-11-13T21:22:46.5119575Z\",\r\n \"creationTime\": \"2024-11-13T21:22:35.7711397Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2024-11-13T21:22:46.5119575Z\",\r\n \"previousState\": \"disabled\",\r\n \"previousStateTransitionTime\": \"2024-11-13T21:22:36.3311309Z\",\r\n \"priority\": 0,\r\n \"maxParallelTasks\": -1,\r\n \"usesTaskDependencies\": false,\r\n \"allowTaskPreemption\": false,\r\n \"constraints\": {\r\n \"maxWallClockTime\": \"P10675199DT2H48M5.4775807S\",\r\n \"maxTaskRetryCount\": 0\r\n },\r\n \"poolInfo\": {\r\n \"poolId\": \"testPool\"\r\n },\r\n \"executionInfo\": {\r\n \"startTime\": \"2024-11-13T21:22:35.7871318Z\",\r\n \"poolId\": \"testPool\"\r\n },\r\n \"onAllTasksComplete\": \"noaction\",\r\n \"onTaskFailure\": \"noaction\"\r\n }\r\n ]\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#jobs\",\r\n \"value\": [\r\n {\r\n \"id\": \"testDisableEnableTerminateJob\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/jobs/testDisableEnableTerminateJob\",\r\n \"eTag\": \"0x8DDF1843BAFB8D8\",\r\n \"lastModified\": \"2025-09-11T22:40:39.5827416Z\",\r\n \"creationTime\": \"2025-09-11T22:40:27.1963586Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T22:40:39.5827416Z\",\r\n \"previousState\": \"disabled\",\r\n \"previousStateTransitionTime\": \"2025-09-11T22:40:29.1442054Z\",\r\n \"priority\": 0,\r\n \"maxParallelTasks\": -1,\r\n \"usesTaskDependencies\": false,\r\n \"allowTaskPreemption\": false,\r\n \"constraints\": {\r\n \"maxWallClockTime\": \"P10675199DT2H48M5.4775807S\",\r\n \"maxTaskRetryCount\": 0\r\n },\r\n \"poolInfo\": {\r\n \"poolId\": \"testPool\"\r\n },\r\n \"executionInfo\": {\r\n \"startTime\": \"2025-09-11T22:40:27.2103597Z\",\r\n \"poolId\": \"testPool\"\r\n },\r\n \"onAllTasksComplete\": \"noaction\",\r\n \"onTaskFailure\": \"noaction\"\r\n }\r\n ]\r\n}", "StatusCode": 200 }, { @@ -380,22 +380,22 @@ "EncodedRequestUri": "L2pvYnMvdGVzdERpc2FibGVFbmFibGVUZXJtaW5hdGVKb2IvdGVybWluYXRlP2FwaS12ZXJzaW9uPTIwMjQtMDItMDEuMTkuMA==", "RequestMethod": "POST", "RequestHeaders": { - "client-request-id": [ - "ee990508-2530-49b5-9c7c-1a36b6598504" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "3361e686-b362-45c8-96cb-bd898acadf3b" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:22:46 GMT" + "Thu, 11 Sep 2025 22:40:39 GMT" ], "x-ms-client-request-id": [ - "7a6e8216-0515-4e13-a6c2-075adb829e48" + "6346ab0f-33fc-44fa-b447-13a74b90a9bb" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ], @@ -409,13 +409,13 @@ "chunked" ], "ETag": [ - "0x8DD042951A4A19B" + "0x8DDF1843BDCA32B" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "f6efc184-580f-480f-b771-8009c36199ab" + "ceb3208c-b990-4afc-91f2-0bd8d95e4ca5" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -427,13 +427,13 @@ "3.0" ], "DataServiceId": [ - "https://dawatrouhobo.eastus2.batch.azure.com/jobs/testDisableEnableTerminateJob/terminate" + "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/jobs/testDisableEnableTerminateJob/terminate" ], "Date": [ - "Wed, 13 Nov 2024 21:22:46 GMT" + "Thu, 11 Sep 2025 22:40:39 GMT" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:22:46 GMT" + "Thu, 11 Sep 2025 22:40:39 GMT" ] }, "ResponseBody": "", @@ -444,19 +444,19 @@ "EncodedRequestUri": "L2pvYnMvdGVzdERpc2FibGVFbmFibGVUZXJtaW5hdGVKb2I/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4w", "RequestMethod": "DELETE", "RequestHeaders": { - "client-request-id": [ - "c3134ccf-deaf-4365-bc2a-563f977cfb2e" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "6ecc9115-5214-44b9-ab0a-356a09b010be" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:22:46 GMT" + "Thu, 11 Sep 2025 22:40:40 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ], @@ -473,7 +473,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "2f46a6b2-dbe6-4b12-9e11-672882e40b05" + "53f24199-67c6-47f8-bb55-a96e90f7cbd2" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -485,7 +485,7 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:22:47 GMT" + "Thu, 11 Sep 2025 22:40:39 GMT" ] }, "ResponseBody": "", @@ -494,9 +494,9 @@ ], "Names": {}, "Variables": { - "SubscriptionId": "21abd678-18c5-4660-9fdd-8c5ba6b6fe1f", - "AZURE_BATCH_ACCOUNT": "dawatrouhobo", - "AZURE_BATCH_ENDPOINT": "https://dawatrouhobo.eastus2.batch.azure.com", - "AZURE_BATCH_RESOURCE_GROUP": "dawatrou-rg" + "SubscriptionId": "94bd7ded-68b4-4ffa-82a5-37ac72caa2ec", + "AZURE_BATCH_ACCOUNT": "dotnotsdkbatchaccount2", + "AZURE_BATCH_ENDPOINT": "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com", + "AZURE_BATCH_RESOURCE_GROUP": "automation" } } \ No newline at end of file diff --git a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.JobTests/TestJobCRUD.json b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.JobTests/TestJobCRUD.json index bc542e170bfb..d3208ade541a 100644 --- a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.JobTests/TestJobCRUD.json +++ b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.JobTests/TestJobCRUD.json @@ -5,22 +5,22 @@ "EncodedRequestUri": "L2pvYnM/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4w", "RequestMethod": "POST", "RequestHeaders": { - "client-request-id": [ - "e467de99-48c5-437d-b7e0-0ffc480e64f3" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "17f2e86d-36ec-4c18-a847-cfe6193fda2d" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:24:39 GMT" + "Thu, 11 Sep 2025 22:42:13 GMT" ], "x-ms-client-request-id": [ - "99f68f56-846c-4eaf-8cea-52210e006125" + "737a33a7-a983-4411-83c0-ae0566c6c9ec" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ], @@ -37,16 +37,16 @@ "chunked" ], "ETag": [ - "0x8DD042995602D0F" + "0x8DDF18473AFA708" ], "Location": [ - "https://dawatrouhobo.eastus2.batch.azure.com/jobs/job-1" + "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/jobs/job-1" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "2110e1cb-d447-4c1f-a68d-68b485d8f959" + "ae7f548a-0ea4-4575-9dfb-bf56afd3d9ea" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -58,13 +58,13 @@ "3.0" ], "DataServiceId": [ - "https://dawatrouhobo.eastus2.batch.azure.com/jobs/job-1" + "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/jobs/job-1" ], "Date": [ - "Wed, 13 Nov 2024 21:24:39 GMT" + "Thu, 11 Sep 2025 22:42:13 GMT" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:24:40 GMT" + "Thu, 11 Sep 2025 22:42:13 GMT" ] }, "ResponseBody": "", @@ -75,22 +75,22 @@ "EncodedRequestUri": "L2pvYnM/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4w", "RequestMethod": "POST", "RequestHeaders": { - "client-request-id": [ - "a76a1979-ff8a-4701-9de8-9112bd622b52" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "9960d8b3-5f6f-4aff-b9de-0937926e3e3b" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:24:40 GMT" + "Thu, 11 Sep 2025 22:42:13 GMT" ], "x-ms-client-request-id": [ - "a19aa319-7a2c-4338-b617-e2b3cad887ef" + "b4e632cb-e9cf-4af5-bf57-d2dec4175d36" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ], @@ -107,16 +107,16 @@ "chunked" ], "ETag": [ - "0x8DD04299569F0ED" + "0x8DDF18473C2B99C" ], "Location": [ - "https://dawatrouhobo.eastus2.batch.azure.com/jobs/job-1" + "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/jobs/job-1" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "74dbcb9b-d7a8-4ada-9ad0-38cb42b5f28f" + "de22a4dc-0fa7-434b-b63f-b21d9cfa4778" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -128,13 +128,13 @@ "3.0" ], "DataServiceId": [ - "https://dawatrouhobo.eastus2.batch.azure.com/jobs/job-1" + "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/jobs/job-1" ], "Date": [ - "Wed, 13 Nov 2024 21:24:39 GMT" + "Thu, 11 Sep 2025 22:42:13 GMT" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:24:40 GMT" + "Thu, 11 Sep 2025 22:42:13 GMT" ] }, "ResponseBody": "", @@ -145,22 +145,22 @@ "EncodedRequestUri": "L2pvYnM/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4wJiRmaWx0ZXI9aWQlMjBlcSUyMCUyN2pvYjElMjclMjBvciUyMGlkJTIwZXElMjAlMjdqb2IyJTI3", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "ef95927a-b210-4e0d-a1ba-b86ac6d88b56" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "f74e0a4e-f4e0-425f-a5bd-bdf702ac8937" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:24:40 GMT" + "Thu, 11 Sep 2025 22:42:13 GMT" ], "x-ms-client-request-id": [ - "be2295ab-ce0a-46a8-baed-db06f482e9e0" + "ff7e8588-4b7e-4190-9eba-af342e41d701" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -174,7 +174,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "d1764bd7-1fde-4ca4-b435-37cd8dde713d" + "0c091c76-4711-4758-ab84-d72982a8b4c4" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -186,13 +186,13 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:24:39 GMT" + "Thu, 11 Sep 2025 22:42:13 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#jobs\",\r\n \"value\": [\r\n {\r\n \"id\": \"job1\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/jobs/job1\",\r\n \"eTag\": \"0x8DD042995602D0F\",\r\n \"lastModified\": \"2024-11-13T21:24:40.2756879Z\",\r\n \"creationTime\": \"2024-11-13T21:24:40.2636889Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2024-11-13T21:24:40.2756879Z\",\r\n \"priority\": 0,\r\n \"maxParallelTasks\": -1,\r\n \"usesTaskDependencies\": false,\r\n \"allowTaskPreemption\": false,\r\n \"constraints\": {\r\n \"maxWallClockTime\": \"P10675199DT2H48M5.4775807S\",\r\n \"maxTaskRetryCount\": 0\r\n },\r\n \"commonEnvironmentSettings\": [\r\n {\r\n \"name\": \"ThisIsAString\",\r\n \"value\": \"Hello world\"\r\n },\r\n {\r\n \"name\": \"ThisIsNull\"\r\n }\r\n ],\r\n \"poolInfo\": {\r\n \"poolId\": \"testPool\"\r\n },\r\n \"executionInfo\": {\r\n \"startTime\": \"2024-11-13T21:24:40.2756879Z\",\r\n \"poolId\": \"testPool\"\r\n },\r\n \"onAllTasksComplete\": \"noaction\",\r\n \"onTaskFailure\": \"noaction\"\r\n },\r\n {\r\n \"id\": \"job2\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/jobs/job2\",\r\n \"eTag\": \"0x8DD04299569F0ED\",\r\n \"lastModified\": \"2024-11-13T21:24:40.3396845Z\",\r\n \"creationTime\": \"2024-11-13T21:24:40.3266851Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2024-11-13T21:24:40.3396845Z\",\r\n \"priority\": 3,\r\n \"maxParallelTasks\": -1,\r\n \"usesTaskDependencies\": false,\r\n \"allowTaskPreemption\": false,\r\n \"constraints\": {\r\n \"maxWallClockTime\": \"P10675199DT2H48M5.4775807S\",\r\n \"maxTaskRetryCount\": 0\r\n },\r\n \"poolInfo\": {\r\n \"poolId\": \"testPool2\"\r\n },\r\n \"executionInfo\": {\r\n \"startTime\": \"2024-11-13T21:24:40.3396845Z\",\r\n \"poolId\": \"testPool2\"\r\n },\r\n \"onAllTasksComplete\": \"noaction\",\r\n \"onTaskFailure\": \"noaction\"\r\n }\r\n ]\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#jobs\",\r\n \"value\": [\r\n {\r\n \"id\": \"job1\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/jobs/job1\",\r\n \"eTag\": \"0x8DDF18473AFA708\",\r\n \"lastModified\": \"2025-09-11T22:42:13.5346952Z\",\r\n \"creationTime\": \"2025-09-11T22:42:13.5186923Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T22:42:13.5346952Z\",\r\n \"priority\": 0,\r\n \"maxParallelTasks\": -1,\r\n \"usesTaskDependencies\": false,\r\n \"allowTaskPreemption\": false,\r\n \"constraints\": {\r\n \"maxWallClockTime\": \"P10675199DT2H48M5.4775807S\",\r\n \"maxTaskRetryCount\": 0\r\n },\r\n \"commonEnvironmentSettings\": [\r\n {\r\n \"name\": \"ThisIsAString\",\r\n \"value\": \"Hello world\"\r\n },\r\n {\r\n \"name\": \"ThisIsNull\"\r\n }\r\n ],\r\n \"poolInfo\": {\r\n \"poolId\": \"testPool\"\r\n },\r\n \"executionInfo\": {\r\n \"startTime\": \"2025-09-11T22:42:13.5346952Z\",\r\n \"poolId\": \"testPool\"\r\n },\r\n \"onAllTasksComplete\": \"noaction\",\r\n \"onTaskFailure\": \"noaction\"\r\n },\r\n {\r\n \"id\": \"job2\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/jobs/job2\",\r\n \"eTag\": \"0x8DDF18473C2B99C\",\r\n \"lastModified\": \"2025-09-11T22:42:13.6596892Z\",\r\n \"creationTime\": \"2025-09-11T22:42:13.6436903Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T22:42:13.6596892Z\",\r\n \"priority\": 3,\r\n \"maxParallelTasks\": -1,\r\n \"usesTaskDependencies\": false,\r\n \"allowTaskPreemption\": false,\r\n \"constraints\": {\r\n \"maxWallClockTime\": \"P10675199DT2H48M5.4775807S\",\r\n \"maxTaskRetryCount\": 0\r\n },\r\n \"poolInfo\": {\r\n \"poolId\": \"testPool2\"\r\n },\r\n \"executionInfo\": {\r\n \"startTime\": \"2025-09-11T22:42:13.6596892Z\",\r\n \"poolId\": \"testPool2\"\r\n },\r\n \"onAllTasksComplete\": \"noaction\",\r\n \"onTaskFailure\": \"noaction\"\r\n }\r\n ]\r\n}", "StatusCode": 200 }, { @@ -200,22 +200,22 @@ "EncodedRequestUri": "L2pvYnMvam9iMj9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjA=", "RequestMethod": "PUT", "RequestHeaders": { - "client-request-id": [ - "dd91846a-b5ae-45c2-b6f4-f9efce16fe41" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "9a8262c2-546d-4f1d-922e-9c4549492293" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:24:40 GMT" + "Thu, 11 Sep 2025 22:42:13 GMT" ], "x-ms-client-request-id": [ - "1fea75c8-a121-4752-b8b4-8b7054fce73b" + "30660916-b143-4464-8345-c32d3b6c7f98" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ], @@ -232,13 +232,13 @@ "chunked" ], "ETag": [ - "0x8DD0429957DA01C" + "0x8DDF184740352A9" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "0d75261d-bc08-4787-a762-0cb407d41117" + "c2fe6008-b141-48d8-8b69-ec461bcf070e" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -250,13 +250,13 @@ "3.0" ], "DataServiceId": [ - "https://dawatrouhobo.eastus2.batch.azure.com/jobs/job2" + "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/jobs/job2" ], "Date": [ - "Wed, 13 Nov 2024 21:24:39 GMT" + "Thu, 11 Sep 2025 22:42:13 GMT" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:24:40 GMT" + "Thu, 11 Sep 2025 22:42:14 GMT" ] }, "ResponseBody": "", @@ -267,22 +267,22 @@ "EncodedRequestUri": "L2pvYnMvam9iMj9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjA=", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "8669ee43-98d1-4992-8ec8-aca59c581f1a" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "549ae268-2311-46a4-ad68-6eb4f7a300c9" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:24:40 GMT" + "Thu, 11 Sep 2025 22:42:14 GMT" ], "x-ms-client-request-id": [ - "e0eb8b8e-7469-4f0c-be81-c7339742d3e4" + "9a73e1db-bb6d-4a0a-a5ea-182f4e8756b8" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -293,13 +293,13 @@ "chunked" ], "ETag": [ - "0x8DD0429957DA01C" + "0x8DDF184740352A9" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "fc78ebbd-a974-42da-ab0a-69b53aec8d5c" + "61e6da44-d65c-4930-b86f-f1aafe21e407" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -311,16 +311,16 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:24:39 GMT" + "Thu, 11 Sep 2025 22:42:13 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:24:40 GMT" + "Thu, 11 Sep 2025 22:42:14 GMT" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#jobs/@Element\",\r\n \"id\": \"job2\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/jobs/job2\",\r\n \"eTag\": \"0x8DD0429957DA01C\",\r\n \"lastModified\": \"2024-11-13T21:24:40.4686876Z\",\r\n \"creationTime\": \"2024-11-13T21:24:40.3266851Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2024-11-13T21:24:40.3396845Z\",\r\n \"priority\": 5,\r\n \"maxParallelTasks\": -1,\r\n \"usesTaskDependencies\": false,\r\n \"allowTaskPreemption\": false,\r\n \"constraints\": {\r\n \"maxWallClockTime\": \"P10675199DT2H48M5.4775807S\",\r\n \"maxTaskRetryCount\": 0\r\n },\r\n \"poolInfo\": {\r\n \"poolId\": \"testPool2\"\r\n },\r\n \"executionInfo\": {\r\n \"startTime\": \"2024-11-13T21:24:40.3396845Z\",\r\n \"poolId\": \"testPool2\"\r\n },\r\n \"onAllTasksComplete\": \"noaction\",\r\n \"onTaskFailure\": \"noaction\"\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#jobs/@Element\",\r\n \"id\": \"job2\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/jobs/job2\",\r\n \"eTag\": \"0x8DDF184740352A9\",\r\n \"lastModified\": \"2025-09-11T22:42:14.0830377Z\",\r\n \"creationTime\": \"2025-09-11T22:42:13.6436903Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T22:42:13.6596892Z\",\r\n \"priority\": 5,\r\n \"maxParallelTasks\": -1,\r\n \"usesTaskDependencies\": false,\r\n \"allowTaskPreemption\": false,\r\n \"constraints\": {\r\n \"maxWallClockTime\": \"P10675199DT2H48M5.4775807S\",\r\n \"maxTaskRetryCount\": 0\r\n },\r\n \"poolInfo\": {\r\n \"poolId\": \"testPool2\"\r\n },\r\n \"executionInfo\": {\r\n \"startTime\": \"2025-09-11T22:42:13.6596892Z\",\r\n \"poolId\": \"testPool2\"\r\n },\r\n \"onAllTasksComplete\": \"noaction\",\r\n \"onTaskFailure\": \"noaction\"\r\n}", "StatusCode": 200 }, { @@ -328,22 +328,22 @@ "EncodedRequestUri": "L2pvYnMvam9iMT9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjA=", "RequestMethod": "DELETE", "RequestHeaders": { - "client-request-id": [ - "6af46699-775d-41b0-9c81-066ee4e62ca6" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "d2c8a735-3b10-4412-b3a8-416eac9c5458" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:24:40 GMT" + "Thu, 11 Sep 2025 22:42:14 GMT" ], "x-ms-client-request-id": [ - "8aa960fc-1172-4d12-a188-dbe2fa1979fd" + "7e6fae31-00ed-4fcd-b9e7-638d8c1a8227" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ], @@ -360,7 +360,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "48d7cd99-494a-432b-84d0-0afac1ae204a" + "289dfff6-08b8-40ad-9d7b-541c73e96126" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -372,7 +372,7 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:24:39 GMT" + "Thu, 11 Sep 2025 22:42:13 GMT" ] }, "ResponseBody": "", @@ -383,22 +383,22 @@ "EncodedRequestUri": "L2pvYnMvam9iMj9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjA=", "RequestMethod": "DELETE", "RequestHeaders": { - "client-request-id": [ - "dc22cd64-5f4f-4eec-9891-99c4b97abab9" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "14739b19-32a5-4622-b7d8-9ec093ae0d20" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:24:40 GMT" + "Thu, 11 Sep 2025 22:42:14 GMT" ], "x-ms-client-request-id": [ - "4c8235bd-2938-4eec-987d-03a88285bf2a" + "69f0c406-b564-4d1f-b348-d5963bf9cbfe" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ], @@ -415,7 +415,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "0df857ad-0d7d-4376-9dc4-be4c67524d37" + "41915490-e228-4937-b747-6011c149d8ce" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -427,7 +427,7 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:24:39 GMT" + "Thu, 11 Sep 2025 22:42:13 GMT" ] }, "ResponseBody": "", @@ -438,22 +438,22 @@ "EncodedRequestUri": "L2pvYnM/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4w", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "5d0ff68c-b984-410f-905a-39cae7303914" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "d1a7504b-325d-4595-8234-ff808195ce59" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:24:40 GMT" + "Thu, 11 Sep 2025 22:42:14 GMT" ], "x-ms-client-request-id": [ - "4f60df65-33d4-427a-9a5e-851f221743f6" + "ee227ba1-d297-4e07-8c8b-b9291d648657" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -467,7 +467,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "584be21a-cb7e-4edc-8c99-d0af3445f0ae" + "50bf762a-1853-42fb-a141-6efcfb95cc3e" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -479,21 +479,21 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:24:39 GMT" + "Thu, 11 Sep 2025 22:42:14 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#jobs\",\r\n \"value\": [\r\n {\r\n \"id\": \"job1\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/jobs/job1\",\r\n \"eTag\": \"0x8DD042995602D0F\",\r\n \"lastModified\": \"2024-11-13T21:24:40.2756879Z\",\r\n \"creationTime\": \"2024-11-13T21:24:40.2636889Z\",\r\n \"state\": \"deleting\",\r\n \"stateTransitionTime\": \"2024-11-13T21:24:40.5570772Z\",\r\n \"previousState\": \"active\",\r\n \"previousStateTransitionTime\": \"2024-11-13T21:24:40.2756879Z\",\r\n \"priority\": 0,\r\n \"maxParallelTasks\": -1,\r\n \"usesTaskDependencies\": false,\r\n \"allowTaskPreemption\": false,\r\n \"constraints\": {\r\n \"maxWallClockTime\": \"P10675199DT2H48M5.4775807S\",\r\n \"maxTaskRetryCount\": 0\r\n },\r\n \"commonEnvironmentSettings\": [\r\n {\r\n \"name\": \"ThisIsAString\",\r\n \"value\": \"Hello world\"\r\n },\r\n {\r\n \"name\": \"ThisIsNull\"\r\n }\r\n ],\r\n \"poolInfo\": {\r\n \"poolId\": \"testPool\"\r\n },\r\n \"executionInfo\": {\r\n \"startTime\": \"2024-11-13T21:24:40.2756879Z\",\r\n \"poolId\": \"testPool\"\r\n },\r\n \"onAllTasksComplete\": \"noaction\",\r\n \"onTaskFailure\": \"noaction\"\r\n }\r\n ]\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#jobs\",\r\n \"value\": [\r\n {\r\n \"id\": \"job1\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/jobs/job1\",\r\n \"eTag\": \"0x8DDF18473AFA708\",\r\n \"lastModified\": \"2025-09-11T22:42:13.5346952Z\",\r\n \"creationTime\": \"2025-09-11T22:42:13.5186923Z\",\r\n \"state\": \"deleting\",\r\n \"stateTransitionTime\": \"2025-09-11T22:42:14.3638435Z\",\r\n \"previousState\": \"active\",\r\n \"previousStateTransitionTime\": \"2025-09-11T22:42:13.5346952Z\",\r\n \"priority\": 0,\r\n \"maxParallelTasks\": -1,\r\n \"usesTaskDependencies\": false,\r\n \"allowTaskPreemption\": false,\r\n \"constraints\": {\r\n \"maxWallClockTime\": \"P10675199DT2H48M5.4775807S\",\r\n \"maxTaskRetryCount\": 0\r\n },\r\n \"commonEnvironmentSettings\": [\r\n {\r\n \"name\": \"ThisIsAString\",\r\n \"value\": \"Hello world\"\r\n },\r\n {\r\n \"name\": \"ThisIsNull\"\r\n }\r\n ],\r\n \"poolInfo\": {\r\n \"poolId\": \"testPool\"\r\n },\r\n \"executionInfo\": {\r\n \"startTime\": \"2025-09-11T22:42:13.5346952Z\",\r\n \"poolId\": \"testPool\"\r\n },\r\n \"onAllTasksComplete\": \"noaction\",\r\n \"onTaskFailure\": \"noaction\"\r\n }\r\n ]\r\n}", "StatusCode": 200 } ], "Names": {}, "Variables": { - "SubscriptionId": "21abd678-18c5-4660-9fdd-8c5ba6b6fe1f", - "AZURE_BATCH_ACCOUNT": "dawatrouhobo", - "AZURE_BATCH_ENDPOINT": "https://dawatrouhobo.eastus2.batch.azure.com", - "AZURE_BATCH_RESOURCE_GROUP": "dawatrou-rg" + "SubscriptionId": "94bd7ded-68b4-4ffa-82a5-37ac72caa2ec", + "AZURE_BATCH_ACCOUNT": "dotnotsdkbatchaccount2", + "AZURE_BATCH_ENDPOINT": "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com", + "AZURE_BATCH_RESOURCE_GROUP": "automation" } } \ No newline at end of file diff --git a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.LocationTests/TestGetLocationQuotas.json b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.LocationTests/TestGetLocationQuotas.json index f48da36266e0..31f6dfd57470 100644 --- a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.LocationTests/TestGetLocationQuotas.json +++ b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.LocationTests/TestGetLocationQuotas.json @@ -1,21 +1,21 @@ { "Entries": [ { - "RequestUri": "/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/providers/Microsoft.Batch?api-version=2016-09-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjFhYmQ2NzgtMThjNS00NjYwLTlmZGQtOGM1YmE2YjZmZTFmL3Byb3ZpZGVycy9NaWNyb3NvZnQuQmF0Y2g/YXBpLXZlcnNpb249MjAxNi0wOS0wMQ==", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/providers/Microsoft.Batch?api-version=2016-09-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Byb3ZpZGVycy9NaWNyb3NvZnQuQmF0Y2g/YXBpLXZlcnNpb249MjAxNi0wOS0wMQ==", "RequestMethod": "GET", "RequestHeaders": { "x-ms-client-request-id": [ - "a45a50f4-ee7d-4e7f-9504-0f7e6742ec7a" + "960b5e7b-d021-482e-8134-68655c1f9ec0" ], "Accept-Language": [ "en-US" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.102" + "OSVersion/Microsoft.Windows.10.0.26100", + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.109" ] }, "RequestBody": "", @@ -33,13 +33,13 @@ "16499" ], "x-ms-request-id": [ - "494b9d55-1e5b-42eb-841c-b985eb9bb623" + "00ae03ac-fe98-4161-bb81-98540cb7db1d" ], "x-ms-correlation-request-id": [ - "494b9d55-1e5b-42eb-841c-b985eb9bb623" + "00ae03ac-fe98-4161-bb81-98540cb7db1d" ], "x-ms-routing-request-id": [ - "EASTUS:20241113T212836Z:494b9d55-1e5b-42eb-841c-b985eb9bb623" + "WESTUS2:20250911T224025Z:00ae03ac-fe98-4161-bb81-98540cb7db1d" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -51,13 +51,13 @@ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: 9962201CC24C45588819C2DCE3952118 Ref B: MNZ221060610031 Ref C: 2024-11-13T21:28:36Z" + "Ref A: 59AE7C81A1BC4A738F77BE7E2824EB4C Ref B: MWH011020808029 Ref C: 2025-09-11T22:40:24Z" ], "Date": [ - "Wed, 13 Nov 2024 21:28:36 GMT" + "Thu, 11 Sep 2025 22:40:25 GMT" ], "Content-Length": [ - "18599" + "19143" ], "Content-Type": [ "application/json; charset=utf-8" @@ -66,25 +66,25 @@ "-1" ] }, - "ResponseBody": "{\r\n \"id\": \"/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/providers/Microsoft.Batch\",\r\n \"namespace\": \"Microsoft.Batch\",\r\n \"authorization\": {\r\n \"applicationId\": \"ddbf3205-c6bd-46ae-8127-60eb93363864\",\r\n \"roleDefinitionId\": \"b7f84953-1d03-4eab-9ea4-45f065258ff8\"\r\n },\r\n \"resourceTypes\": [\r\n {\r\n \"resourceType\": \"batchAccounts\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\",\r\n \"East US\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\",\r\n \"2021-01-01\",\r\n \"2020-09-01\",\r\n \"2020-05-01\",\r\n \"2020-03-01-preview\",\r\n \"2020-03-01\",\r\n \"2019-08-01\",\r\n \"2019-04-01\",\r\n \"2018-12-01\",\r\n \"2017-09-01\",\r\n \"2017-05-01\",\r\n \"2017-01-01\",\r\n \"2015-12-01\",\r\n \"2015-09-01\",\r\n \"2015-07-01\",\r\n \"2014-05-01-privatepreview\"\r\n ],\r\n \"capabilities\": \"CrossResourceGroupResourceMove, CrossSubscriptionResourceMove, SystemAssignedResourceIdentity\"\r\n },\r\n {\r\n \"resourceType\": \"batchAccounts/pools\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\",\r\n \"East US\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\",\r\n \"2021-01-01\",\r\n \"2020-09-01\",\r\n \"2020-05-01\",\r\n \"2020-03-01-preview\",\r\n \"2020-03-01\",\r\n \"2019-08-01\",\r\n \"2019-04-01\",\r\n \"2018-12-01\",\r\n \"2017-09-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"batchAccounts/detectors\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\",\r\n \"East US\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"batchAccounts/certificates\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\",\r\n \"East US\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\",\r\n \"2021-01-01\",\r\n \"2020-09-01\",\r\n \"2020-05-01\",\r\n \"2020-03-01-preview\",\r\n \"2020-03-01\",\r\n \"2019-08-01\",\r\n \"2019-04-01\",\r\n \"2018-12-01\",\r\n \"2017-09-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"batchAccounts/operationResults\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\",\r\n \"East US\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\",\r\n \"2021-01-01\",\r\n \"2020-09-01\",\r\n \"2020-05-01\",\r\n \"2020-03-01-preview\",\r\n \"2020-03-01\",\r\n \"2019-08-01\",\r\n \"2019-04-01\",\r\n \"2018-12-01\",\r\n \"2017-09-01\",\r\n \"2017-05-01\",\r\n \"2017-01-01\",\r\n \"2015-12-01\",\r\n \"2015-09-01\",\r\n \"2015-07-01\",\r\n \"2014-05-01-privatepreview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"batchAccounts/poolOperationResults\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\",\r\n \"East US\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\",\r\n \"2021-01-01\",\r\n \"2020-09-01\",\r\n \"2020-05-01\",\r\n \"2020-03-01-preview\",\r\n \"2020-03-01\",\r\n \"2019-08-01\",\r\n \"2019-04-01\",\r\n \"2018-12-01\",\r\n \"2017-09-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"batchAccounts/certificateOperationResults\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\",\r\n \"East US\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\",\r\n \"2021-01-01\",\r\n \"2020-09-01\",\r\n \"2020-05-01\",\r\n \"2020-03-01-preview\",\r\n \"2020-03-01\",\r\n \"2019-08-01\",\r\n \"2019-04-01\",\r\n \"2018-12-01\",\r\n \"2017-09-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"batchAccounts/privateEndpointConnectionProxyResults\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\",\r\n \"East US\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\",\r\n \"2021-01-01\",\r\n \"2020-09-01\",\r\n \"2020-05-01\",\r\n \"2020-03-01-preview\",\r\n \"2020-03-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"batchAccounts/privateEndpointConnectionResults\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\",\r\n \"East US\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\",\r\n \"2021-01-01\",\r\n \"2020-09-01\",\r\n \"2020-05-01\",\r\n \"2020-03-01-preview\",\r\n \"2020-03-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"batchAccounts/networkSecurityPerimeterConfigurationOperationResults\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\",\r\n \"East US\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"operations\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\",\r\n \"East US\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\",\r\n \"2021-01-01\",\r\n \"2020-09-01\",\r\n \"2020-05-01\",\r\n \"2020-03-01-preview\",\r\n \"2020-03-01\",\r\n \"2019-08-01\",\r\n \"2019-04-01\",\r\n \"2018-12-01\",\r\n \"2017-09-01\",\r\n \"2017-05-01\",\r\n \"2017-01-01\",\r\n \"2015-12-01\",\r\n \"2015-09-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations\",\r\n \"locations\": [],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\",\r\n \"2021-01-01\",\r\n \"2020-09-01\",\r\n \"2020-05-01\",\r\n \"2020-03-01-preview\",\r\n \"2020-03-01\",\r\n \"2019-08-01\",\r\n \"2019-04-01\",\r\n \"2018-12-01\",\r\n \"2017-09-01\",\r\n \"2017-05-01\",\r\n \"2017-01-01\",\r\n \"2015-12-01\",\r\n \"2015-09-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/quotas\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\",\r\n \"East US\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\",\r\n \"2021-01-01\",\r\n \"2020-09-01\",\r\n \"2020-05-01\",\r\n \"2020-03-01-preview\",\r\n \"2020-03-01\",\r\n \"2019-08-01\",\r\n \"2019-04-01\",\r\n \"2018-12-01\",\r\n \"2017-09-01\",\r\n \"2017-05-01\",\r\n \"2017-01-01\",\r\n \"2015-12-01\",\r\n \"2015-09-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/checkNameAvailability\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\",\r\n \"East US\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\",\r\n \"2021-01-01\",\r\n \"2020-09-01\",\r\n \"2020-05-01\",\r\n \"2020-03-01-preview\",\r\n \"2020-03-01\",\r\n \"2019-08-01\",\r\n \"2019-04-01\",\r\n \"2018-12-01\",\r\n \"2017-09-01\",\r\n \"2017-05-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/accountOperationResults\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\",\r\n \"East US\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\",\r\n \"2021-01-01\",\r\n \"2020-09-01\",\r\n \"2020-05-01\",\r\n \"2020-03-01-preview\",\r\n \"2020-03-01\",\r\n \"2019-08-01\",\r\n \"2019-04-01\",\r\n \"2018-12-01\",\r\n \"2017-09-01\",\r\n \"2017-05-01\",\r\n \"2017-01-01\",\r\n \"2015-12-01\",\r\n \"2015-09-01\",\r\n \"2015-07-01\",\r\n \"2014-05-01-privatepreview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/virtualMachineSkus\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\",\r\n \"East US\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/cloudServiceSkus\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\",\r\n \"East US\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/notifyNetworkSecurityPerimeterUpdatesAvailable\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"East US 2 EUAP\",\r\n \"Central US EUAP\",\r\n \"East US\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\"\r\n ]\r\n }\r\n ],\r\n \"registrationState\": \"Registered\"\r\n}", + "ResponseBody": "{\r\n \"id\": \"/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/providers/Microsoft.Batch\",\r\n \"namespace\": \"Microsoft.Batch\",\r\n \"authorization\": {\r\n \"applicationId\": \"ddbf3205-c6bd-46ae-8127-60eb93363864\",\r\n \"roleDefinitionId\": \"b7f84953-1d03-4eab-9ea4-45f065258ff8\"\r\n },\r\n \"resourceTypes\": [\r\n {\r\n \"resourceType\": \"batchAccounts\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\",\r\n \"2021-01-01\",\r\n \"2020-09-01\",\r\n \"2020-05-01\",\r\n \"2020-03-01-preview\",\r\n \"2020-03-01\",\r\n \"2019-08-01\",\r\n \"2019-04-01\",\r\n \"2018-12-01\",\r\n \"2017-09-01\",\r\n \"2017-05-01\",\r\n \"2017-01-01\",\r\n \"2015-12-01\",\r\n \"2015-09-01\",\r\n \"2015-07-01\",\r\n \"2014-05-01-privatepreview\"\r\n ],\r\n \"capabilities\": \"CrossResourceGroupResourceMove, CrossSubscriptionResourceMove, SystemAssignedResourceIdentity\"\r\n },\r\n {\r\n \"resourceType\": \"batchAccounts/pools\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\",\r\n \"2021-01-01\",\r\n \"2020-09-01\",\r\n \"2020-05-01\",\r\n \"2020-03-01-preview\",\r\n \"2020-03-01\",\r\n \"2019-08-01\",\r\n \"2019-04-01\",\r\n \"2018-12-01\",\r\n \"2017-09-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"batchAccounts/detectors\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"batchAccounts/certificates\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\",\r\n \"2021-01-01\",\r\n \"2020-09-01\",\r\n \"2020-05-01\",\r\n \"2020-03-01-preview\",\r\n \"2020-03-01\",\r\n \"2019-08-01\",\r\n \"2019-04-01\",\r\n \"2018-12-01\",\r\n \"2017-09-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"batchAccounts/operationResults\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\",\r\n \"2021-01-01\",\r\n \"2020-09-01\",\r\n \"2020-05-01\",\r\n \"2020-03-01-preview\",\r\n \"2020-03-01\",\r\n \"2019-08-01\",\r\n \"2019-04-01\",\r\n \"2018-12-01\",\r\n \"2017-09-01\",\r\n \"2017-05-01\",\r\n \"2017-01-01\",\r\n \"2015-12-01\",\r\n \"2015-09-01\",\r\n \"2015-07-01\",\r\n \"2014-05-01-privatepreview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"batchAccounts/poolOperationResults\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\",\r\n \"2021-01-01\",\r\n \"2020-09-01\",\r\n \"2020-05-01\",\r\n \"2020-03-01-preview\",\r\n \"2020-03-01\",\r\n \"2019-08-01\",\r\n \"2019-04-01\",\r\n \"2018-12-01\",\r\n \"2017-09-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"batchAccounts/certificateOperationResults\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\",\r\n \"2021-01-01\",\r\n \"2020-09-01\",\r\n \"2020-05-01\",\r\n \"2020-03-01-preview\",\r\n \"2020-03-01\",\r\n \"2019-08-01\",\r\n \"2019-04-01\",\r\n \"2018-12-01\",\r\n \"2017-09-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"batchAccounts/privateEndpointConnectionProxyResults\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\",\r\n \"2021-01-01\",\r\n \"2020-09-01\",\r\n \"2020-05-01\",\r\n \"2020-03-01-preview\",\r\n \"2020-03-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"batchAccounts/privateEndpointConnectionResults\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\",\r\n \"2021-01-01\",\r\n \"2020-09-01\",\r\n \"2020-05-01\",\r\n \"2020-03-01-preview\",\r\n \"2020-03-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"batchAccounts/networkSecurityPerimeterConfigurationOperationResults\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"operations\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\",\r\n \"2021-01-01\",\r\n \"2020-09-01\",\r\n \"2020-05-01\",\r\n \"2020-03-01-preview\",\r\n \"2020-03-01\",\r\n \"2019-08-01\",\r\n \"2019-04-01\",\r\n \"2018-12-01\",\r\n \"2017-09-01\",\r\n \"2017-05-01\",\r\n \"2017-01-01\",\r\n \"2015-12-01\",\r\n \"2015-09-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations\",\r\n \"locations\": [],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\",\r\n \"2021-01-01\",\r\n \"2020-09-01\",\r\n \"2020-05-01\",\r\n \"2020-03-01-preview\",\r\n \"2020-03-01\",\r\n \"2019-08-01\",\r\n \"2019-04-01\",\r\n \"2018-12-01\",\r\n \"2017-09-01\",\r\n \"2017-05-01\",\r\n \"2017-01-01\",\r\n \"2015-12-01\",\r\n \"2015-09-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/quotas\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\",\r\n \"2021-01-01\",\r\n \"2020-09-01\",\r\n \"2020-05-01\",\r\n \"2020-03-01-preview\",\r\n \"2020-03-01\",\r\n \"2019-08-01\",\r\n \"2019-04-01\",\r\n \"2018-12-01\",\r\n \"2017-09-01\",\r\n \"2017-05-01\",\r\n \"2017-01-01\",\r\n \"2015-12-01\",\r\n \"2015-09-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/checkNameAvailability\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\",\r\n \"2021-01-01\",\r\n \"2020-09-01\",\r\n \"2020-05-01\",\r\n \"2020-03-01-preview\",\r\n \"2020-03-01\",\r\n \"2019-08-01\",\r\n \"2019-04-01\",\r\n \"2018-12-01\",\r\n \"2017-09-01\",\r\n \"2017-05-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/accountOperationResults\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\",\r\n \"2021-01-01\",\r\n \"2020-09-01\",\r\n \"2020-05-01\",\r\n \"2020-03-01-preview\",\r\n \"2020-03-01\",\r\n \"2019-08-01\",\r\n \"2019-04-01\",\r\n \"2018-12-01\",\r\n \"2017-09-01\",\r\n \"2017-05-01\",\r\n \"2017-01-01\",\r\n \"2015-12-01\",\r\n \"2015-09-01\",\r\n \"2015-07-01\",\r\n \"2014-05-01-privatepreview\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/virtualMachineSkus\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/cloudServiceSkus\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\",\r\n \"2024-02-01\",\r\n \"2023-11-01\",\r\n \"2023-05-01\",\r\n \"2022-10-01\",\r\n \"2022-06-01\",\r\n \"2022-01-01\",\r\n \"2021-06-01\"\r\n ]\r\n },\r\n {\r\n \"resourceType\": \"locations/notifyNetworkSecurityPerimeterUpdatesAvailable\",\r\n \"locations\": [\r\n \"West Europe\",\r\n \"East US\",\r\n \"East US 2\",\r\n \"West US\",\r\n \"North Central US\",\r\n \"Brazil South\",\r\n \"North Europe\",\r\n \"Central US\",\r\n \"East Asia\",\r\n \"Japan East\",\r\n \"Australia Southeast\",\r\n \"Japan West\",\r\n \"Korea South\",\r\n \"Korea Central\",\r\n \"Southeast Asia\",\r\n \"South Central US\",\r\n \"Australia East\",\r\n \"Jio India West\",\r\n \"South India\",\r\n \"Central India\",\r\n \"West India\",\r\n \"Canada Central\",\r\n \"Canada East\",\r\n \"UK South\",\r\n \"UK West\",\r\n \"West Central US\",\r\n \"West US 2\",\r\n \"France Central\",\r\n \"South Africa North\",\r\n \"UAE North\",\r\n \"Australia Central\",\r\n \"Germany West Central\",\r\n \"Switzerland North\",\r\n \"Norway East\",\r\n \"Brazil Southeast\",\r\n \"West US 3\",\r\n \"Sweden Central\",\r\n \"Qatar Central\",\r\n \"Poland Central\",\r\n \"Italy North\",\r\n \"Israel Central\",\r\n \"Spain Central\",\r\n \"Mexico Central\",\r\n \"Jio India Central\",\r\n \"New Zealand North\",\r\n \"Indonesia Central\",\r\n \"Chile Central\",\r\n \"Malaysia West\",\r\n \"Austria East\"\r\n ],\r\n \"apiVersions\": [\r\n \"2024-07-01\",\r\n \"2024-03-01-privatepreview\"\r\n ]\r\n }\r\n ],\r\n \"registrationState\": \"Registered\"\r\n}", "StatusCode": 200 }, { - "RequestUri": "/subscriptions/21abd678-18c5-4660-9fdd-8c5ba6b6fe1f/providers/Microsoft.Batch/locations/westus2/quotas?api-version=2022-10-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvMjFhYmQ2NzgtMThjNS00NjYwLTlmZGQtOGM1YmE2YjZmZTFmL3Byb3ZpZGVycy9NaWNyb3NvZnQuQmF0Y2gvbG9jYXRpb25zL3dlc3R1czIvcXVvdGFzP2FwaS12ZXJzaW9uPTIwMjItMTAtMDE=", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/providers/Microsoft.Batch/locations/westus2/quotas?api-version=2023-05-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Byb3ZpZGVycy9NaWNyb3NvZnQuQmF0Y2gvbG9jYXRpb25zL3dlc3R1czIvcXVvdGFzP2FwaS12ZXJzaW9uPTIwMjMtMDUtMDE=", "RequestMethod": "GET", "RequestHeaders": { - "x-ms-client-request-id": [ - "f8c35f68-1d57-4215-9a31-e32d41687e2e" - ], "Accept-Language": [ "en-US" ], + "x-ms-client-request-id": [ + "083662fd-1e34-4d7e-b8e2-70f6c95b165d" + ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Management.Batch.BatchManagementClient/3.6.4" + "OSVersion/Microsoft.Windows.10.0.26100", + "Microsoft.Azure.Management.Batch.BatchManagementClient/3.7.0" ] }, "RequestBody": "", @@ -96,7 +96,7 @@ "no-cache" ], "x-ms-request-id": [ - "2d578d90-1f1f-4a08-aeb2-97833fac8212" + "2d2e0772-2dc1-44d5-89e8-ae991e17c5f7" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -104,6 +104,9 @@ "X-Content-Type-Options": [ "nosniff" ], + "x-ms-operation-identifier": [ + "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=ac839cc2-33ee-4879-a5b5-2895202ccb29/westus2/b94915c9-5334-4d33-a330-bf91b513cef0" + ], "x-ms-ratelimit-remaining-subscription-reads": [ "1099" ], @@ -111,22 +114,22 @@ "16499" ], "x-ms-correlation-request-id": [ - "9ac686cb-af25-4fe8-9c7d-6dbcb34883bc" + "e737400d-c046-4acd-82ff-ba7883c5233f" ], "x-ms-routing-request-id": [ - "EASTUS:20241113T212837Z:9ac686cb-af25-4fe8-9c7d-6dbcb34883bc" + "WESTUS2:20250911T224025Z:e737400d-c046-4acd-82ff-ba7883c5233f" ], "X-Cache": [ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: 6D7055C86B65475C8361EFE5591905B6 Ref B: MNZ221060609047 Ref C: 2024-11-13T21:28:37Z" + "Ref A: 334D501419AB4CF48237410FE270A4F7 Ref B: CO6AA3150220031 Ref C: 2025-09-11T22:40:25Z" ], "Date": [ - "Wed, 13 Nov 2024 21:28:37 GMT" + "Thu, 11 Sep 2025 22:40:25 GMT" ], "Content-Length": [ - "20" + "18" ], "Content-Type": [ "application/json; charset=utf-8" @@ -135,15 +138,15 @@ "-1" ] }, - "ResponseBody": "{\r\n \"accountQuota\": 100\r\n}", + "ResponseBody": "{\r\n \"accountQuota\": 3\r\n}", "StatusCode": 200 } ], "Names": {}, "Variables": { - "SubscriptionId": "21abd678-18c5-4660-9fdd-8c5ba6b6fe1f", - "AZURE_BATCH_ACCOUNT": "dawatrouhobo", - "AZURE_BATCH_ENDPOINT": "https://dawatrouhobo.eastus2.batch.azure.com", - "AZURE_BATCH_RESOURCE_GROUP": "dawatrou-rg" + "SubscriptionId": "94bd7ded-68b4-4ffa-82a5-37ac72caa2ec", + "AZURE_BATCH_ACCOUNT": "dotnotsdkbatchaccount2", + "AZURE_BATCH_ENDPOINT": "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com", + "AZURE_BATCH_RESOURCE_GROUP": "automation" } } \ No newline at end of file diff --git a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.PoolTests/TestAutoScaleActions.json b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.PoolTests/TestAutoScaleActions.json index 87839723fbaa..1b1d32d31586 100644 --- a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.PoolTests/TestAutoScaleActions.json +++ b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.PoolTests/TestAutoScaleActions.json @@ -5,19 +5,19 @@ "EncodedRequestUri": "L3Bvb2xzP2FwaS12ZXJzaW9uPTIwMjQtMDItMDEuMTkuMA==", "RequestMethod": "POST", "RequestHeaders": { - "client-request-id": [ - "3bd0c10a-7087-4365-be8c-1adcc119043e" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "5563a43d-06fd-49a5-8095-a6549555cc69" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:24:46 GMT" + "Thu, 11 Sep 2025 22:43:23 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ], @@ -34,16 +34,16 @@ "chunked" ], "ETag": [ - "0x8DD042998F0B40A" + "0x8DDF1849DA37A5E" ], "Location": [ - "https://dawatrouhobo.eastus2.batch.azure.com/pools/autoscalePool" + "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/autoscalePool" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "b19be129-6aaf-4563-9111-b377d1a37974" + "1cb056c0-419d-4671-add7-c3be6c9d21fd" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -55,13 +55,13 @@ "3.0" ], "DataServiceId": [ - "https://dawatrouhobo.eastus2.batch.azure.com/pools/autoscalePool" + "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/autoscalePool" ], "Date": [ - "Wed, 13 Nov 2024 21:24:45 GMT" + "Thu, 11 Sep 2025 22:43:23 GMT" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:24:46 GMT" + "Thu, 11 Sep 2025 22:43:23 GMT" ] }, "ResponseBody": "", @@ -72,22 +72,22 @@ "EncodedRequestUri": "L3Bvb2xzL2F1dG9zY2FsZVBvb2w/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4w", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "d3472262-34f3-4a6f-a4d2-234143461680" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "73e7f13a-cb3b-4625-9c7e-1b4dffd70e5c" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:24:46 GMT" + "Thu, 11 Sep 2025 22:43:25 GMT" ], "x-ms-client-request-id": [ - "e7737b2e-4bb5-4cb0-b05d-4a9b03d77989" + "f1c963f5-3858-4cee-bab6-a323e7fe0f12" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -98,13 +98,13 @@ "chunked" ], "ETag": [ - "0x8DD042998F0B40A" + "0x8DDF1849DA37A5E" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "0b5babb7-e96d-45d1-bbde-87506a640fa7" + "acd1cf42-6305-4993-ac44-04a2ad664f15" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -116,16 +116,16 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:24:46 GMT" + "Thu, 11 Sep 2025 22:43:25 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:24:46 GMT" + "Thu, 11 Sep 2025 22:43:23 GMT" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"autoscalePool\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/pools/autoscalePool\",\r\n \"eTag\": \"0x8DD042998F0B40A\",\r\n \"lastModified\": \"2024-11-13T21:24:46.2560266Z\",\r\n \"creationTime\": \"2024-11-13T21:24:46.2560257Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2024-11-13T21:24:46.2560257Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2024-11-13T21:24:46.2560267Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 0,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"autoscalePool\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/autoscalePool\",\r\n \"eTag\": \"0x8DDF1849DA37A5E\",\r\n \"lastModified\": \"2025-09-11T22:43:23.9192158Z\",\r\n \"creationTime\": \"2025-09-11T22:43:23.9192132Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T22:43:23.9192132Z\",\r\n \"allocationState\": \"steady\",\r\n \"allocationStateTransitionTime\": \"2025-09-11T22:43:25.7325735Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 0,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", "StatusCode": 200 }, { @@ -133,22 +133,22 @@ "EncodedRequestUri": "L3Bvb2xzL2F1dG9zY2FsZVBvb2w/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4w", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "7a1977b3-a23d-461f-8e66-615611e811b5" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "590e437c-fab8-4645-9184-b9d94e8243cb" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:24:48 GMT" + "Thu, 11 Sep 2025 22:43:26 GMT" ], "x-ms-client-request-id": [ - "bae0bd9a-c310-4457-9054-49612dff18a2" + "f3df4a2a-3862-4594-8c3c-d9b20a18a3df" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -159,13 +159,13 @@ "chunked" ], "ETag": [ - "0x8DD04299A01F856" + "0x8DDF1849F253457" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "5a041eea-3c46-4e84-ad1a-8c1a0303b532" + "d0fb733c-2a37-4dff-9486-530208712677" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -177,16 +177,16 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:24:47 GMT" + "Thu, 11 Sep 2025 22:43:25 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:24:48 GMT" + "Thu, 11 Sep 2025 22:43:26 GMT" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"autoscalePool\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/pools/autoscalePool\",\r\n \"eTag\": \"0x8DD04299A01F856\",\r\n \"lastModified\": \"2024-11-13T21:24:48.0469078Z\",\r\n \"creationTime\": \"2024-11-13T21:24:46.2560257Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2024-11-13T21:24:46.2560257Z\",\r\n \"allocationState\": \"steady\",\r\n \"allocationStateTransitionTime\": \"2024-11-13T21:24:48.0874158Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 0,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"autoscalePool\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/autoscalePool\",\r\n \"eTag\": \"0x8DDF1849F253457\",\r\n \"lastModified\": \"2025-09-11T22:43:26.4471127Z\",\r\n \"creationTime\": \"2025-09-11T22:43:23.9192132Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T22:43:23.9192132Z\",\r\n \"allocationState\": \"steady\",\r\n \"allocationStateTransitionTime\": \"2025-09-11T22:43:26.4946213Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 0,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", "StatusCode": 200 }, { @@ -194,22 +194,22 @@ "EncodedRequestUri": "L3Bvb2xzL2F1dG9zY2FsZVBvb2wvZW5hYmxlYXV0b3NjYWxlP2FwaS12ZXJzaW9uPTIwMjQtMDItMDEuMTkuMA==", "RequestMethod": "POST", "RequestHeaders": { - "client-request-id": [ - "8b9bc40c-1992-4805-b6b5-e6736122d4d8" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "31308d19-f3f2-43cb-aed5-f0e62cf5b641" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:24:47 GMT" + "Thu, 11 Sep 2025 22:43:25 GMT" ], "x-ms-client-request-id": [ - "8d5a77b9-55dc-4b80-8e4b-6b6deffb3ebd" + "90200137-28f5-4140-9063-babee2ad15c2" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ], @@ -226,13 +226,13 @@ "chunked" ], "ETag": [ - "0x8DD042998F0B40A" + "0x8DDF1849EDB79E7" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "3e0b4a35-19e3-4a0d-a47d-3c01e6688539" + "7a38800e-839d-4a18-8caa-2b8a454ad4b5" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -244,13 +244,13 @@ "3.0" ], "DataServiceId": [ - "https://dawatrouhobo.eastus2.batch.azure.com/pools/autoscalePool/enableautoscale" + "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/autoscalePool/enableautoscale" ], "Date": [ - "Wed, 13 Nov 2024 21:24:47 GMT" + "Thu, 11 Sep 2025 22:43:25 GMT" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:24:46 GMT" + "Thu, 11 Sep 2025 22:43:25 GMT" ] }, "ResponseBody": "", @@ -261,22 +261,22 @@ "EncodedRequestUri": "L3Bvb2xzP2FwaS12ZXJzaW9uPTIwMjQtMDItMDEuMTkuMCYkZmlsdGVyPWlkJTIwZXElMjAlMjdhdXRvc2NhbGVQb29sJTI3", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "c5d6d822-b4c8-4b80-a268-342721e41fb1" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "133c293e-a54b-4411-bd98-859a4d7df96a" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:24:47 GMT" + "Thu, 11 Sep 2025 22:43:25 GMT" ], "x-ms-client-request-id": [ - "4b08f9f8-2d0c-4e12-b65c-d1a0bc0e18c3" + "7f1f8240-f9e2-4b37-a975-208375478215" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -290,7 +290,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "bfde8d02-d637-475a-9614-a13e3f4cb818" + "309358b1-fe8d-4bbe-bb1a-3429074d383e" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -302,13 +302,13 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:24:47 GMT" + "Thu, 11 Sep 2025 22:43:25 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#pools\",\r\n \"value\": [\r\n {\r\n \"id\": \"autoscalePool\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/pools/autoscalePool\",\r\n \"eTag\": \"0x8DD042998F0B40A\",\r\n \"lastModified\": \"2024-11-13T21:24:46.2560266Z\",\r\n \"creationTime\": \"2024-11-13T21:24:46.2560257Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2024-11-13T21:24:46.2560257Z\",\r\n \"allocationState\": \"steady\",\r\n \"allocationStateTransitionTime\": \"2024-11-13T21:24:47.8222274Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 0,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": true,\r\n \"autoScaleFormula\": \"$TargetDedicatedNodes=0\",\r\n \"autoScaleEvaluationInterval\": \"PT8M\",\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n }\r\n ]\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#pools\",\r\n \"value\": [\r\n {\r\n \"id\": \"autoscalePool\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/autoscalePool\",\r\n \"eTag\": \"0x8DDF1849EDB79E7\",\r\n \"lastModified\": \"2025-09-11T22:43:25.9639271Z\",\r\n \"creationTime\": \"2025-09-11T22:43:23.9192132Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T22:43:23.9192132Z\",\r\n \"allocationState\": \"steady\",\r\n \"allocationStateTransitionTime\": \"2025-09-11T22:43:26.0019202Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 0,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": true,\r\n \"autoScaleFormula\": \"$TargetDedicatedNodes=0\",\r\n \"autoScaleEvaluationInterval\": \"PT8M\",\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n }\r\n ]\r\n}", "StatusCode": 200 }, { @@ -316,22 +316,22 @@ "EncodedRequestUri": "L3Bvb2xzL2F1dG9zY2FsZVBvb2wvZXZhbHVhdGVhdXRvc2NhbGU/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4w", "RequestMethod": "POST", "RequestHeaders": { - "client-request-id": [ - "052ac40e-9c8f-45f0-bcbc-daf4bbc55c7a" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "e002f385-af61-44aa-8f54-a2feab7f9502" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:24:47 GMT" + "Thu, 11 Sep 2025 22:43:26 GMT" ], "x-ms-client-request-id": [ - "be10dfaf-e9fd-4ac6-afb6-d67f834dd308" + "5e551620-ae20-4057-8929-cb9b2e693e55" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ], @@ -351,7 +351,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "e27ac964-eece-454e-a66b-e195aae3a311" + "6b7aa4d0-0105-44d2-8070-46b04d7c4e48" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -363,16 +363,16 @@ "3.0" ], "DataServiceId": [ - "https://dawatrouhobo.eastus2.batch.azure.com/pools/autoscalePool/evaluateautoscale" + "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/autoscalePool/evaluateautoscale" ], "Date": [ - "Wed, 13 Nov 2024 21:24:47 GMT" + "Thu, 11 Sep 2025 22:43:25 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#Microsoft.Azure.Batch.Protocol.Entities.AutoScaleRun\",\r\n \"timestamp\": \"2024-11-13T21:24:47.9773199Z\",\r\n \"results\": \"$TargetDedicatedNodes=1;$TargetLowPriorityNodes=0;$NodeDeallocationOption=requeue\"\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#Microsoft.Azure.Batch.Protocol.Entities.AutoScaleRun\",\r\n \"timestamp\": \"2025-09-11T22:43:26.2447391Z\",\r\n \"results\": \"$TargetDedicatedNodes=1;$TargetLowPriorityNodes=0;$NodeDeallocationOption=requeue\"\r\n}", "StatusCode": 200 }, { @@ -380,22 +380,22 @@ "EncodedRequestUri": "L3Bvb2xzL2F1dG9zY2FsZVBvb2wvZGlzYWJsZWF1dG9zY2FsZT9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjA=", "RequestMethod": "POST", "RequestHeaders": { - "client-request-id": [ - "2ad2d015-2592-43b9-8590-516561ee4675" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "e6f5e16c-0a73-4ede-b8d4-da0299f2659a" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:24:47 GMT" + "Thu, 11 Sep 2025 22:43:26 GMT" ], "x-ms-client-request-id": [ - "4938fa41-65be-48b4-95d0-96d6546731b4" + "3ea76a75-d320-45c0-8dbe-42aacd1f4147" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ], @@ -409,13 +409,13 @@ "chunked" ], "ETag": [ - "0x8DD04299A01F856" + "0x8DDF1849F253457" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "a06c36c4-0c58-41bc-80c3-f3fe7d7ba654" + "99287a16-3361-46c3-8682-66f2f7ec877f" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -427,13 +427,13 @@ "3.0" ], "DataServiceId": [ - "https://dawatrouhobo.eastus2.batch.azure.com/pools/autoscalePool/disableautoscale" + "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/autoscalePool/disableautoscale" ], "Date": [ - "Wed, 13 Nov 2024 21:24:47 GMT" + "Thu, 11 Sep 2025 22:43:25 GMT" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:24:48 GMT" + "Thu, 11 Sep 2025 22:43:26 GMT" ] }, "ResponseBody": "", @@ -444,19 +444,19 @@ "EncodedRequestUri": "L3Bvb2xzL2F1dG9zY2FsZVBvb2w/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4w", "RequestMethod": "DELETE", "RequestHeaders": { - "client-request-id": [ - "da0a602f-5f96-4154-8fe8-c6e4ed6624ff" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "3193c1c3-af6a-4657-a825-8b0944f3618e" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:24:48 GMT" + "Thu, 11 Sep 2025 22:43:26 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ], @@ -473,7 +473,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "1d33054b-0238-45f3-997b-bd758cb19865" + "f22ddb10-498a-46e8-b3b6-59b191f77401" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -485,7 +485,7 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:24:47 GMT" + "Thu, 11 Sep 2025 22:43:26 GMT" ] }, "ResponseBody": "", @@ -494,9 +494,9 @@ ], "Names": {}, "Variables": { - "SubscriptionId": "21abd678-18c5-4660-9fdd-8c5ba6b6fe1f", - "AZURE_BATCH_ACCOUNT": "dawatrouhobo", - "AZURE_BATCH_ENDPOINT": "https://dawatrouhobo.eastus2.batch.azure.com", - "AZURE_BATCH_RESOURCE_GROUP": "dawatrou-rg" + "SubscriptionId": "94bd7ded-68b4-4ffa-82a5-37ac72caa2ec", + "AZURE_BATCH_ACCOUNT": "dotnotsdkbatchaccount2", + "AZURE_BATCH_ENDPOINT": "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com", + "AZURE_BATCH_RESOURCE_GROUP": "automation" } } \ No newline at end of file diff --git a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.PoolTests/TestPoolCRUD.json b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.PoolTests/TestPoolCRUD.json index b9a912bde7a4..1e38014f3063 100644 --- a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.PoolTests/TestPoolCRUD.json +++ b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.PoolTests/TestPoolCRUD.json @@ -5,22 +5,22 @@ "EncodedRequestUri": "L3Bvb2xzP2FwaS12ZXJzaW9uPTIwMjQtMDItMDEuMTkuMA==", "RequestMethod": "POST", "RequestHeaders": { - "client-request-id": [ - "978a4649-f8ab-42fc-ac45-12127019db1a" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "0c698a2b-7694-492c-84d6-742f6423c3a8" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:24:43 GMT" + "Thu, 11 Sep 2025 22:43:20 GMT" ], "x-ms-client-request-id": [ - "3c871bb9-e8bd-4d3b-b16a-aa89d6236132" + "b3d273eb-c289-4486-9f94-b8ce7a6a2ded" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ], @@ -37,16 +37,16 @@ "chunked" ], "ETag": [ - "0x8DD0429973DF2AC" + "0x8DDF1849B9B2103" ], "Location": [ - "https://dawatrouhobo.eastus2.batch.azure.com/pools/pool1" + "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/pool1" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "d11011a9-0b5d-4dc8-afb2-5ed3f6791bde" + "2a924598-200b-4a35-9db3-a5b992498644" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -58,13 +58,13 @@ "3.0" ], "DataServiceId": [ - "https://dawatrouhobo.eastus2.batch.azure.com/pools/pool1" + "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/pool1" ], "Date": [ - "Wed, 13 Nov 2024 21:24:42 GMT" + "Thu, 11 Sep 2025 22:43:19 GMT" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:24:43 GMT" + "Thu, 11 Sep 2025 22:43:20 GMT" ] }, "ResponseBody": "", @@ -75,22 +75,22 @@ "EncodedRequestUri": "L3Bvb2xzP2FwaS12ZXJzaW9uPTIwMjQtMDItMDEuMTkuMA==", "RequestMethod": "POST", "RequestHeaders": { - "client-request-id": [ - "07ea7da8-2bba-4665-a1e4-7acebd84aed3" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "c5f628ee-b5a1-4522-ace9-792a59c52de4" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:24:43 GMT" + "Thu, 11 Sep 2025 22:43:20 GMT" ], "x-ms-client-request-id": [ - "eda2ecf4-7e50-407f-bca5-d630ef97faf6" + "d031f329-7ee5-4695-9930-4c984c2f82be" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ], @@ -107,16 +107,16 @@ "chunked" ], "ETag": [ - "0x8DD04299761B65E" + "0x8DDF1849BD019BB" ], "Location": [ - "https://dawatrouhobo.eastus2.batch.azure.com/pools/pool2" + "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/pool2" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "af1b5caf-c5a7-4b45-b758-faaadd5e43ec" + "c3957728-e9a9-42c3-b24e-9cac10f7b552" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -128,13 +128,13 @@ "3.0" ], "DataServiceId": [ - "https://dawatrouhobo.eastus2.batch.azure.com/pools/pool2" + "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/pool2" ], "Date": [ - "Wed, 13 Nov 2024 21:24:43 GMT" + "Thu, 11 Sep 2025 22:43:20 GMT" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:24:43 GMT" + "Thu, 11 Sep 2025 22:43:20 GMT" ] }, "ResponseBody": "", @@ -145,22 +145,22 @@ "EncodedRequestUri": "L3Bvb2xzP2FwaS12ZXJzaW9uPTIwMjQtMDItMDEuMTkuMCYkZmlsdGVyPWlkJTIwZXElMjAlMjdwb29sMSUyNyUyMG9yJTIwaWQlMjBlcSUyMCUyN3Bvb2wyJTI3", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "65455736-9b34-4454-a135-0c08977636f7" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "30d7a392-e259-4b9f-b459-ddf598cd7191" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:24:43 GMT" + "Thu, 11 Sep 2025 22:43:21 GMT" ], "x-ms-client-request-id": [ - "4b0a56b0-453c-4cb3-97fa-c6714dbcbc95" + "285f85f2-46cb-4eba-a547-f82df0f08c8c" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -174,7 +174,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "064d5197-4233-467a-8695-e1ca9fb33736" + "3a680d76-d9b7-4316-80ea-afe6df84dc47" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -186,13 +186,13 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:24:43 GMT" + "Thu, 11 Sep 2025 22:43:20 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#pools\",\r\n \"value\": [\r\n {\r\n \"id\": \"pool1\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/pools/pool1\",\r\n \"eTag\": \"0x8DD0429973DF2AC\",\r\n \"lastModified\": \"2024-11-13T21:24:43.406814Z\",\r\n \"creationTime\": \"2024-11-13T21:24:43.4068127Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2024-11-13T21:24:43.4068127Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2024-11-13T21:24:43.406814Z\",\r\n \"vmSize\": \"standard_d1_v2\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 0,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": false,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoft-azure-batch\",\r\n \"offer\": \"ubuntu-server-container\",\r\n \"sku\": \"20-04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"containerConfiguration\": {\r\n \"type\": \"dockerCompatible\",\r\n \"containerImageNames\": [\r\n \"test1\"\r\n ]\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n },\r\n {\r\n \"id\": \"pool2\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/pools/pool2\",\r\n \"eTag\": \"0x8DD04299761B65E\",\r\n \"lastModified\": \"2024-11-13T21:24:43.6411998Z\",\r\n \"creationTime\": \"2024-11-13T21:24:43.6411988Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2024-11-13T21:24:43.6411988Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2024-11-13T21:24:43.6411999Z\",\r\n \"vmSize\": \"standard_d1_v2\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 0,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": false,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoft-azure-batch\",\r\n \"offer\": \"ubuntu-server-container\",\r\n \"sku\": \"20-04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"containerConfiguration\": {\r\n \"type\": \"dockerCompatible\",\r\n \"containerImageNames\": [\r\n \"test2\"\r\n ]\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n }\r\n ]\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#pools\",\r\n \"value\": [\r\n {\r\n \"id\": \"pool1\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/pool1\",\r\n \"eTag\": \"0x8DDF1849B9B2103\",\r\n \"lastModified\": \"2025-09-11T22:43:20.5090563Z\",\r\n \"creationTime\": \"2025-09-11T22:43:20.5090553Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T22:43:20.5090553Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2025-09-11T22:43:20.5090563Z\",\r\n \"vmSize\": \"standard_d1_v2\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 0,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": false,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoft-azure-batch\",\r\n \"offer\": \"ubuntu-server-container\",\r\n \"sku\": \"20-04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"containerConfiguration\": {\r\n \"type\": \"dockerCompatible\",\r\n \"containerImageNames\": [\r\n \"test1\"\r\n ]\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n },\r\n {\r\n \"id\": \"pool2\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/pool2\",\r\n \"eTag\": \"0x8DDF1849BD019BB\",\r\n \"lastModified\": \"2025-09-11T22:43:20.8562107Z\",\r\n \"creationTime\": \"2025-09-11T22:43:20.8562096Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T22:43:20.8562096Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2025-09-11T22:43:20.8562108Z\",\r\n \"vmSize\": \"standard_d1_v2\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 0,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": false,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoft-azure-batch\",\r\n \"offer\": \"ubuntu-server-container\",\r\n \"sku\": \"20-04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"containerConfiguration\": {\r\n \"type\": \"dockerCompatible\",\r\n \"containerImageNames\": [\r\n \"test2\"\r\n ]\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n }\r\n ]\r\n}", "StatusCode": 200 }, { @@ -200,22 +200,22 @@ "EncodedRequestUri": "L3Bvb2xzL3Bvb2wyL3VwZGF0ZXByb3BlcnRpZXM/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4w", "RequestMethod": "POST", "RequestHeaders": { - "client-request-id": [ - "3dc9f90c-d44b-45bb-809d-ce7c36b95702" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "6d53d3ce-2e92-4b5b-8c1b-f755c68ed39c" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:24:43 GMT" + "Thu, 11 Sep 2025 22:43:21 GMT" ], "x-ms-client-request-id": [ - "958d0277-142e-4562-96bd-5cdf751e7680" + "6b34a77f-5dec-4efb-bd91-2b0d0d063ce7" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ], @@ -229,13 +229,13 @@ "RequestBody": "{\r\n \"startTask\": {\r\n \"commandLine\": \"/bin/bash -c 'echo start task'\"\r\n },\r\n \"certificateReferences\": [],\r\n \"applicationPackageReferences\": [],\r\n \"metadata\": [],\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", "ResponseHeaders": { "ETag": [ - "0x8DD04299865784A" + "0x8DDF1849CBEF2D6" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "0820357f-e31a-45d2-8a31-9df58916e00a" + "9e442138-8266-4f84-b60e-c4d680587075" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -247,16 +247,16 @@ "3.0" ], "DataServiceId": [ - "https://dawatrouhobo.eastus2.batch.azure.com/pools/pool2/updateproperties" + "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/pool2/updateproperties" ], "Date": [ - "Wed, 13 Nov 2024 21:24:44 GMT" + "Thu, 11 Sep 2025 22:43:21 GMT" ], "Content-Length": [ "0" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:24:45 GMT" + "Thu, 11 Sep 2025 22:43:22 GMT" ] }, "ResponseBody": "", @@ -267,22 +267,22 @@ "EncodedRequestUri": "L3Bvb2xzL3Bvb2wyP2FwaS12ZXJzaW9uPTIwMjQtMDItMDEuMTkuMA==", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "1f7fc2e1-7c76-4113-a0c7-73615c12ddc8" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "6123af61-f8e6-4881-a44c-df45027faebc" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:24:45 GMT" + "Thu, 11 Sep 2025 22:43:22 GMT" ], "x-ms-client-request-id": [ - "dd41fcef-4eb5-40f9-8cc0-8ca9f9c788cf" + "188d3668-dd25-4047-8691-d6b093e182cf" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -293,13 +293,13 @@ "chunked" ], "ETag": [ - "0x8DD04299865784A" + "0x8DDF1849CBEF2D6" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "01ca13a8-78c3-44ce-a765-5ff966f78ca4" + "eec19c02-bc63-4a15-9850-0509d8ce920a" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -311,16 +311,16 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:24:44 GMT" + "Thu, 11 Sep 2025 22:43:21 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:24:45 GMT" + "Thu, 11 Sep 2025 22:43:22 GMT" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"pool2\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/pools/pool2\",\r\n \"eTag\": \"0x8DD04299865784A\",\r\n \"lastModified\": \"2024-11-13T21:24:45.3435466Z\",\r\n \"creationTime\": \"2024-11-13T21:24:43.6411988Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2024-11-13T21:24:43.6411988Z\",\r\n \"allocationState\": \"steady\",\r\n \"allocationStateTransitionTime\": \"2024-11-13T21:24:45.3278865Z\",\r\n \"vmSize\": \"standard_d1_v2\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 0,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": false,\r\n \"startTask\": {\r\n \"commandLine\": \"/bin/bash -c 'echo start task'\",\r\n \"userIdentity\": {\r\n \"autoUser\": {\r\n \"scope\": \"pool\",\r\n \"elevationLevel\": \"nonadmin\"\r\n }\r\n },\r\n \"maxTaskRetryCount\": 0,\r\n \"waitForSuccess\": true\r\n },\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoft-azure-batch\",\r\n \"offer\": \"ubuntu-server-container\",\r\n \"sku\": \"20-04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"containerConfiguration\": {\r\n \"type\": \"dockerCompatible\",\r\n \"containerImageNames\": [\r\n \"test2\"\r\n ]\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"pool2\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/pool2\",\r\n \"eTag\": \"0x8DDF1849CBEF2D6\",\r\n \"lastModified\": \"2025-09-11T22:43:22.4215254Z\",\r\n \"creationTime\": \"2025-09-11T22:43:20.8562096Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T22:43:20.8562096Z\",\r\n \"allocationState\": \"steady\",\r\n \"allocationStateTransitionTime\": \"2025-09-11T22:43:22.3984622Z\",\r\n \"vmSize\": \"standard_d1_v2\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 0,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": false,\r\n \"startTask\": {\r\n \"commandLine\": \"/bin/bash -c 'echo start task'\",\r\n \"userIdentity\": {\r\n \"autoUser\": {\r\n \"scope\": \"pool\",\r\n \"elevationLevel\": \"nonadmin\"\r\n }\r\n },\r\n \"maxTaskRetryCount\": 0,\r\n \"waitForSuccess\": true\r\n },\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoft-azure-batch\",\r\n \"offer\": \"ubuntu-server-container\",\r\n \"sku\": \"20-04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"containerConfiguration\": {\r\n \"type\": \"dockerCompatible\",\r\n \"containerImageNames\": [\r\n \"test2\"\r\n ]\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", "StatusCode": 200 }, { @@ -328,22 +328,22 @@ "EncodedRequestUri": "L3Bvb2xzL3Bvb2wxP2FwaS12ZXJzaW9uPTIwMjQtMDItMDEuMTkuMA==", "RequestMethod": "DELETE", "RequestHeaders": { - "client-request-id": [ - "8acbb048-fc75-43f2-91d4-fec4f71a0f62" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "b27aacb9-045f-4066-b3da-960b9236b858" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:24:45 GMT" + "Thu, 11 Sep 2025 22:43:22 GMT" ], "x-ms-client-request-id": [ - "a430382a-37b3-47e5-a2b2-1a6ffc01b170" + "0ecdd2e4-87b1-43ac-b0cc-55fe2bc3d627" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ], @@ -360,7 +360,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "2d7e0a52-856c-4ab8-9fb7-6d25cf07834f" + "2a0ffa1a-8100-4cb3-8693-e8801a57e037" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -372,7 +372,7 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:24:45 GMT" + "Thu, 11 Sep 2025 22:43:22 GMT" ] }, "ResponseBody": "", @@ -383,22 +383,22 @@ "EncodedRequestUri": "L3Bvb2xzL3Bvb2wyP2FwaS12ZXJzaW9uPTIwMjQtMDItMDEuMTkuMA==", "RequestMethod": "DELETE", "RequestHeaders": { - "client-request-id": [ - "cb1239bb-ced3-4fdf-ad1d-7d35b891809a" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "12a36cdf-0666-4133-8bbe-ec22d3a88e46" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:24:45 GMT" + "Thu, 11 Sep 2025 22:43:22 GMT" ], "x-ms-client-request-id": [ - "40a442df-4405-409d-92e1-46a9805993e0" + "5bf27167-77d6-40ce-8721-dd6894f86795" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ], @@ -415,7 +415,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "7c0b5b6e-cea9-4042-b192-30abeeb081b3" + "28163947-3caf-49b5-9efa-bc8128da0767" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -427,7 +427,7 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:24:45 GMT" + "Thu, 11 Sep 2025 22:43:22 GMT" ] }, "ResponseBody": "", @@ -438,22 +438,22 @@ "EncodedRequestUri": "L3Bvb2xzP2FwaS12ZXJzaW9uPTIwMjQtMDItMDEuMTkuMA==", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "ded100c8-dbbc-4b9b-a2e4-a1d22c997167" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "0ad320c4-115c-4796-81c0-98beefaa13f5" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:24:45 GMT" + "Thu, 11 Sep 2025 22:43:23 GMT" ], "x-ms-client-request-id": [ - "7742ca21-d944-4fb0-8ebe-318145d7d4b7" + "f3801146-23cb-44e8-859e-6fd37a5da7f2" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -467,7 +467,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "fddb532a-dd76-48d7-816d-325c005d1584" + "a485ccac-abb4-4036-92b3-6dd4b23b8fc0" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -479,21 +479,21 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:24:45 GMT" + "Thu, 11 Sep 2025 22:43:22 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#pools\",\r\n \"value\": [\r\n {\r\n \"id\": \"pool1\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/pools/pool1\",\r\n \"eTag\": \"0x8DD042998C16B81\",\r\n \"lastModified\": \"2024-11-13T21:24:45.9461505Z\",\r\n \"creationTime\": \"2024-11-13T21:24:43.4068127Z\",\r\n \"state\": \"deleting\",\r\n \"stateTransitionTime\": \"2024-11-13T21:24:45.9461505Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2024-11-13T21:24:45.9580563Z\",\r\n \"vmSize\": \"standard_d1_v2\",\r\n \"resizeTimeout\": \"PT7M9.497S\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 0,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": false,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoft-azure-batch\",\r\n \"offer\": \"ubuntu-server-container\",\r\n \"sku\": \"20-04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"containerConfiguration\": {\r\n \"type\": \"dockerCompatible\",\r\n \"containerImageNames\": [\r\n \"test1\"\r\n ]\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n },\r\n {\r\n \"id\": \"pool2\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/pools/pool2\",\r\n \"eTag\": \"0x8DD042998C78FEA\",\r\n \"lastModified\": \"2024-11-13T21:24:45.9864042Z\",\r\n \"creationTime\": \"2024-11-13T21:24:43.6411988Z\",\r\n \"state\": \"deleting\",\r\n \"stateTransitionTime\": \"2024-11-13T21:24:45.9864042Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2024-11-13T21:24:46.0016054Z\",\r\n \"vmSize\": \"standard_d1_v2\",\r\n \"resizeTimeout\": \"PT7M9.497S\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 0,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": false,\r\n \"startTask\": {\r\n \"commandLine\": \"/bin/bash -c 'echo start task'\",\r\n \"userIdentity\": {\r\n \"autoUser\": {\r\n \"scope\": \"pool\",\r\n \"elevationLevel\": \"nonadmin\"\r\n }\r\n },\r\n \"maxTaskRetryCount\": 0,\r\n \"waitForSuccess\": true\r\n },\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoft-azure-batch\",\r\n \"offer\": \"ubuntu-server-container\",\r\n \"sku\": \"20-04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"containerConfiguration\": {\r\n \"type\": \"dockerCompatible\",\r\n \"containerImageNames\": [\r\n \"test2\"\r\n ]\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n },\r\n {\r\n \"id\": \"resizePool\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/pools/resizePool\",\r\n \"eTag\": \"0x8DD042995B6BAE1\",\r\n \"lastModified\": \"2024-11-13T21:24:40.8429281Z\",\r\n \"creationTime\": \"2024-11-13T21:24:40.8429269Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2024-11-13T21:24:40.8429269Z\",\r\n \"allocationState\": \"steady\",\r\n \"allocationStateTransitionTime\": \"2024-11-13T21:24:42.7845704Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 0,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n },\r\n {\r\n \"id\": \"testPool\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/pools/testPool\",\r\n \"eTag\": \"0x8DD0429526AF612\",\r\n \"lastModified\": \"2024-11-13T21:22:47.9390226Z\",\r\n \"creationTime\": \"2024-11-13T21:22:47.9390215Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2024-11-13T21:22:47.9390215Z\",\r\n \"allocationState\": \"steady\",\r\n \"allocationStateTransitionTime\": \"2024-11-13T21:23:15.9066414Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 2,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\",\r\n \"currentNodeCommunicationMode\": \"classic\"\r\n }\r\n ]\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#pools\",\r\n \"value\": [\r\n {\r\n \"id\": \"disableandenablenodepool\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/disableandenablenodepool\",\r\n \"eTag\": \"0x8DDF177F8D08DED\",\r\n \"lastModified\": \"2025-09-11T21:12:53.4298093Z\",\r\n \"creationTime\": \"2025-09-11T21:12:53.4298071Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T21:12:53.4298071Z\",\r\n \"allocationState\": \"steady\",\r\n \"allocationStateTransitionTime\": \"2025-09-11T21:13:32.0008535Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 2,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\",\r\n \"currentNodeCommunicationMode\": \"simplified\"\r\n },\r\n {\r\n \"id\": \"noderemoteloginpool\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/noderemoteloginpool\",\r\n \"eTag\": \"0x8DDF1788ED4B75D\",\r\n \"lastModified\": \"2025-09-11T21:17:05.1153245Z\",\r\n \"creationTime\": \"2025-09-11T21:17:05.1153234Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T21:17:05.1153234Z\",\r\n \"allocationState\": \"steady\",\r\n \"allocationStateTransitionTime\": \"2025-09-11T21:17:37.2475866Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 2,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\",\r\n \"currentNodeCommunicationMode\": \"simplified\"\r\n },\r\n {\r\n \"id\": \"rebootandreimagenodepool\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/rebootandreimagenodepool\",\r\n \"eTag\": \"0x8DDF178A6EBD6D2\",\r\n \"lastModified\": \"2025-09-11T21:17:45.532181Z\",\r\n \"creationTime\": \"2025-09-11T21:17:45.5321801Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T21:17:45.5321801Z\",\r\n \"allocationState\": \"steady\",\r\n \"allocationStateTransitionTime\": \"2025-09-11T21:19:48.2764345Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 2,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\",\r\n \"currentNodeCommunicationMode\": \"simplified\"\r\n },\r\n {\r\n \"id\": \"resizePool\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/resizePool\",\r\n \"eTag\": \"0x8DDF1849A214040\",\r\n \"lastModified\": \"2025-09-11T22:43:18.0325952Z\",\r\n \"creationTime\": \"2025-09-11T22:43:09.9669525Z\",\r\n \"state\": \"deleting\",\r\n \"stateTransitionTime\": \"2025-09-11T22:43:18.0325952Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2025-09-11T22:43:18.0471154Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT7M9.497S\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 0,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n },\r\n {\r\n \"id\": \"testPool\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/testPool\",\r\n \"eTag\": \"0x8DDF1843C878AFD\",\r\n \"lastModified\": \"2025-09-11T22:40:40.9971453Z\",\r\n \"creationTime\": \"2025-09-11T22:40:40.9971441Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T22:40:40.9971441Z\",\r\n \"allocationState\": \"steady\",\r\n \"allocationStateTransitionTime\": \"2025-09-11T22:41:23.1389929Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 2,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\",\r\n \"currentNodeCommunicationMode\": \"simplified\"\r\n },\r\n {\r\n \"id\": \"testPool2\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/testPool2\",\r\n \"eTag\": \"0x8DDF184751DD858\",\r\n \"lastModified\": \"2025-09-11T22:42:15.9345752Z\",\r\n \"creationTime\": \"2025-09-11T22:42:15.9345741Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T22:42:15.9345741Z\",\r\n \"allocationState\": \"steady\",\r\n \"allocationStateTransitionTime\": \"2025-09-11T22:42:58.1182678Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 2,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\",\r\n \"currentNodeCommunicationMode\": \"simplified\"\r\n }\r\n ]\r\n}", "StatusCode": 200 } ], "Names": {}, "Variables": { - "SubscriptionId": "21abd678-18c5-4660-9fdd-8c5ba6b6fe1f", - "AZURE_BATCH_ACCOUNT": "dawatrouhobo", - "AZURE_BATCH_ENDPOINT": "https://dawatrouhobo.eastus2.batch.azure.com", - "AZURE_BATCH_RESOURCE_GROUP": "dawatrou-rg" + "SubscriptionId": "94bd7ded-68b4-4ffa-82a5-37ac72caa2ec", + "AZURE_BATCH_ACCOUNT": "dotnotsdkbatchaccount2", + "AZURE_BATCH_ENDPOINT": "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com", + "AZURE_BATCH_RESOURCE_GROUP": "automation" } } \ No newline at end of file diff --git a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.PoolTests/TestResizeAndStopResizePool.json b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.PoolTests/TestResizeAndStopResizePool.json index 9c2fa9a7cf87..93196ea8decd 100644 --- a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.PoolTests/TestResizeAndStopResizePool.json +++ b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.PoolTests/TestResizeAndStopResizePool.json @@ -5,19 +5,19 @@ "EncodedRequestUri": "L3Bvb2xzP2FwaS12ZXJzaW9uPTIwMjQtMDItMDEuMTkuMA==", "RequestMethod": "POST", "RequestHeaders": { - "client-request-id": [ - "bb82b64b-c267-4d74-85e7-db3333938c6c" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "ae156362-154a-4cac-a607-8f948ef132de" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:32:44 GMT" + "Thu, 11 Sep 2025 22:43:09 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ], @@ -30,11 +30,20 @@ }, "RequestBody": "{\r\n \"id\": \"resizePool\",\r\n \"vmSize\": \"STANDARD_D2S_V3\",\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"zonal\"\r\n }\r\n },\r\n \"targetDedicatedNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableInterNodeCommunication\": true,\r\n \"taskSlotsPerNode\": 1,\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", "ResponseHeaders": { + "Transfer-Encoding": [ + "chunked" + ], + "ETag": [ + "0x8DDF18495528831" + ], + "Location": [ + "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/resizePool" + ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "db827ca3-992c-4d16-8339-4a8a585c7662" + "735fdfbc-b281-4e83-a5a8-8913798fb4af" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -45,40 +54,40 @@ "DataServiceVersion": [ "3.0" ], - "Date": [ - "Wed, 13 Nov 2024 21:32:44 GMT" + "DataServiceId": [ + "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/resizePool" ], - "Content-Length": [ - "332" + "Date": [ + "Thu, 11 Sep 2025 22:43:09 GMT" ], - "Content-Type": [ - "application/json; odata=minimalmetadata" + "Last-Modified": [ + "Thu, 11 Sep 2025 22:43:09 GMT" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#Microsoft.Azure.Batch.Protocol.Entities.Container.errors/@Element\",\r\n \"code\": \"PoolExists\",\r\n \"message\": {\r\n \"lang\": \"en-US\",\r\n \"value\": \"The specified pool already exists.\\nRequestId:db827ca3-992c-4d16-8339-4a8a585c7662\\nTime:2024-11-13T21:32:44.6132183Z\"\r\n }\r\n}", - "StatusCode": 409 + "ResponseBody": "", + "StatusCode": 201 }, { "RequestUri": "/pools/resizePool?api-version=2024-02-01.19.0", "EncodedRequestUri": "L3Bvb2xzL3Jlc2l6ZVBvb2w/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4w", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "e712069f-043e-4593-bd77-0c378803e144" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "e7290006-9528-4682-abe6-809b11005948" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:32:46 GMT" + "Thu, 11 Sep 2025 22:43:11 GMT" ], "x-ms-client-request-id": [ - "3fe89565-2cd2-4eb4-953e-c848db17fe92" + "63672b21-352d-46b8-a81d-c58514fd8da2" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -89,13 +98,13 @@ "chunked" ], "ETag": [ - "0x8DD042995B6BAE1" + "0x8DDF18495528831" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "bd06a672-3bd1-4227-9045-69ab3ce044e9" + "175bb2a0-36fc-4eb3-9dc1-88cb9d1ef889" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -107,16 +116,16 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:32:46 GMT" + "Thu, 11 Sep 2025 22:43:11 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:24:40 GMT" + "Thu, 11 Sep 2025 22:43:09 GMT" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"resizePool\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/pools/resizePool\",\r\n \"eTag\": \"0x8DD042995B6BAE1\",\r\n \"lastModified\": \"2024-11-13T21:24:40.8429281Z\",\r\n \"creationTime\": \"2024-11-13T21:24:40.8429269Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2024-11-13T21:24:40.8429269Z\",\r\n \"allocationState\": \"steady\",\r\n \"allocationStateTransitionTime\": \"2024-11-13T21:24:42.7845704Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 0,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"resizePool\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/resizePool\",\r\n \"eTag\": \"0x8DDF18495528831\",\r\n \"lastModified\": \"2025-09-11T22:43:09.9669553Z\",\r\n \"creationTime\": \"2025-09-11T22:43:09.9669525Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T22:43:09.9669525Z\",\r\n \"allocationState\": \"steady\",\r\n \"allocationStateTransitionTime\": \"2025-09-11T22:43:11.6453112Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 0,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", "StatusCode": 200 }, { @@ -124,22 +133,22 @@ "EncodedRequestUri": "L3Bvb2xzL3Jlc2l6ZVBvb2w/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4w", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "b33ee1f2-a279-4f5b-b7c3-cb972e395de4" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "fa2369bc-470c-4615-b0b5-6de0bf807083" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:32:47 GMT" + "Thu, 11 Sep 2025 22:43:11 GMT" ], "x-ms-client-request-id": [ - "fe17e763-d86b-488c-ae2f-634d20885464" + "c357d5b5-cfad-4f6d-8a73-e80a6d974e20" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -150,13 +159,13 @@ "chunked" ], "ETag": [ - "0x8DD042AB7954511" + "0x8DDF18496816375" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "b3404539-75dc-420a-9e8d-c4de57f1abf8" + "bb64005b-e30c-48bd-a89b-57f98379a600" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -168,16 +177,16 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:32:46 GMT" + "Thu, 11 Sep 2025 22:43:11 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:32:47 GMT" + "Thu, 11 Sep 2025 22:43:11 GMT" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"resizePool\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/pools/resizePool\",\r\n \"eTag\": \"0x8DD042AB7954511\",\r\n \"lastModified\": \"2024-11-13T21:32:47.1629073Z\",\r\n \"creationTime\": \"2024-11-13T21:24:40.8429269Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2024-11-13T21:24:40.8429269Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2024-11-13T21:32:47.1629073Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 1,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"resizePool\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/resizePool\",\r\n \"eTag\": \"0x8DDF18496816375\",\r\n \"lastModified\": \"2025-09-11T22:43:11.9517557Z\",\r\n \"creationTime\": \"2025-09-11T22:43:09.9669525Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T22:43:09.9669525Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2025-09-11T22:43:11.9517558Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 1,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", "StatusCode": 200 }, { @@ -185,22 +194,22 @@ "EncodedRequestUri": "L3Bvb2xzL3Jlc2l6ZVBvb2w/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4w", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "35678a6b-87e8-4e5c-b15f-9c129e96b5f7" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "8a8bb1fa-8d33-4146-abcb-28b8927d50a6" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:32:47 GMT" + "Thu, 11 Sep 2025 22:43:12 GMT" ], "x-ms-client-request-id": [ - "3d461675-4627-4c55-ba22-744ef9631b79" + "7648efd7-c557-4005-8fff-6bee6756699e" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -211,13 +220,13 @@ "chunked" ], "ETag": [ - "0x8DD042AB7954511" + "0x8DDF18496816375" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "dea41e9d-01a9-4347-be50-1efcd8f64ba3" + "208a156f-0ec2-44ef-a0c1-112f928a3813" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -229,16 +238,16 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:32:46 GMT" + "Thu, 11 Sep 2025 22:43:12 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:32:47 GMT" + "Thu, 11 Sep 2025 22:43:11 GMT" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"resizePool\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/pools/resizePool\",\r\n \"eTag\": \"0x8DD042AB7954511\",\r\n \"lastModified\": \"2024-11-13T21:32:47.1629073Z\",\r\n \"creationTime\": \"2024-11-13T21:24:40.8429269Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2024-11-13T21:24:40.8429269Z\",\r\n \"allocationState\": \"stopping\",\r\n \"allocationStateTransitionTime\": \"2024-11-13T21:32:47.283082Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 1,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"resizePool\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/resizePool\",\r\n \"eTag\": \"0x8DDF18496816375\",\r\n \"lastModified\": \"2025-09-11T22:43:11.9517557Z\",\r\n \"creationTime\": \"2025-09-11T22:43:09.9669525Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T22:43:09.9669525Z\",\r\n \"allocationState\": \"stopping\",\r\n \"allocationStateTransitionTime\": \"2025-09-11T22:43:12.2265201Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 1,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", "StatusCode": 200 }, { @@ -246,19 +255,19 @@ "EncodedRequestUri": "L3Bvb2xzL3Jlc2l6ZVBvb2w/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4w", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "74073714-0664-4673-a6b7-3f52b60c6ef5" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "15c85545-c8e7-4674-b1fd-51927cfd33e4" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:32:47 GMT" + "Thu, 11 Sep 2025 22:43:12 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -269,13 +278,13 @@ "chunked" ], "ETag": [ - "0x8DD042AB7954511" + "0x8DDF18496816375" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "b5341868-5920-4994-815c-8c7d31ab88bf" + "e2342666-bfb8-4653-9b4e-0ad2e965df67" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -287,16 +296,16 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:32:47 GMT" + "Thu, 11 Sep 2025 22:43:11 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:32:47 GMT" + "Thu, 11 Sep 2025 22:43:11 GMT" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"resizePool\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/pools/resizePool\",\r\n \"eTag\": \"0x8DD042AB7954511\",\r\n \"lastModified\": \"2024-11-13T21:32:47.1629073Z\",\r\n \"creationTime\": \"2024-11-13T21:24:40.8429269Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2024-11-13T21:24:40.8429269Z\",\r\n \"allocationState\": \"stopping\",\r\n \"allocationStateTransitionTime\": \"2024-11-13T21:32:47.283082Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 1,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"resizePool\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/resizePool\",\r\n \"eTag\": \"0x8DDF18496816375\",\r\n \"lastModified\": \"2025-09-11T22:43:11.9517557Z\",\r\n \"creationTime\": \"2025-09-11T22:43:09.9669525Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T22:43:09.9669525Z\",\r\n \"allocationState\": \"stopping\",\r\n \"allocationStateTransitionTime\": \"2025-09-11T22:43:12.2265201Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 1,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", "StatusCode": 200 }, { @@ -304,19 +313,19 @@ "EncodedRequestUri": "L3Bvb2xzL3Jlc2l6ZVBvb2w/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4w", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "0db89708-db59-4edf-a61f-f813aba4d423" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "841c65f0-8f2f-497f-9c48-45ff36971a2d" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:32:52 GMT" + "Thu, 11 Sep 2025 22:43:17 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -327,13 +336,13 @@ "chunked" ], "ETag": [ - "0x8DD042AB7954511" + "0x8DDF18496816375" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "93e9bf09-5b00-4689-af60-fcc18f3c456a" + "7c0a342f-c805-4b81-a180-05be020f5bb9" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -345,16 +354,16 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:32:52 GMT" + "Thu, 11 Sep 2025 22:43:16 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:32:47 GMT" + "Thu, 11 Sep 2025 22:43:11 GMT" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"resizePool\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/pools/resizePool\",\r\n \"eTag\": \"0x8DD042AB7954511\",\r\n \"lastModified\": \"2024-11-13T21:32:47.1629073Z\",\r\n \"creationTime\": \"2024-11-13T21:24:40.8429269Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2024-11-13T21:24:40.8429269Z\",\r\n \"allocationState\": \"steady\",\r\n \"allocationStateTransitionTime\": \"2024-11-13T21:32:52.3053802Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 1,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"resizeErrors\": [\r\n {\r\n \"code\": \"ResizeStopped\",\r\n \"message\": \"Desired number of dedicated nodes could not be allocated due to a stop resize operation\"\r\n }\r\n ],\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"resizePool\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/resizePool\",\r\n \"eTag\": \"0x8DDF18496816375\",\r\n \"lastModified\": \"2025-09-11T22:43:11.9517557Z\",\r\n \"creationTime\": \"2025-09-11T22:43:09.9669525Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T22:43:09.9669525Z\",\r\n \"allocationState\": \"steady\",\r\n \"allocationStateTransitionTime\": \"2025-09-11T22:43:17.114796Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 1,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"resizeErrors\": [\r\n {\r\n \"code\": \"ResizeStopped\",\r\n \"message\": \"Desired number of dedicated nodes could not be allocated due to a stop resize operation\"\r\n }\r\n ],\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", "StatusCode": 200 }, { @@ -362,22 +371,22 @@ "EncodedRequestUri": "L3Bvb2xzL3Jlc2l6ZVBvb2wvcmVzaXplP2FwaS12ZXJzaW9uPTIwMjQtMDItMDEuMTkuMA==", "RequestMethod": "POST", "RequestHeaders": { - "client-request-id": [ - "35746a17-6bd8-4387-98ec-6fe6c6c31388" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "28f653ff-2fa7-4939-a799-4ed7751cc0bd" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:32:47 GMT" + "Thu, 11 Sep 2025 22:43:11 GMT" ], "x-ms-client-request-id": [ - "c4d88f93-9eed-42b2-9145-30cd119aa7d0" + "620147cb-679a-4ea2-ba6a-d74429fb6f31" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ], @@ -394,13 +403,13 @@ "chunked" ], "ETag": [ - "0x8DD042AB7954511" + "0x8DDF18496816375" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "8c3e4327-ab3c-4a13-b5e6-5dacddf6b835" + "d35b68d1-1161-46df-96fc-e3a8ce421bca" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -412,13 +421,13 @@ "3.0" ], "DataServiceId": [ - "https://dawatrouhobo.eastus2.batch.azure.com/pools/resizePool/resize" + "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/resizePool/resize" ], "Date": [ - "Wed, 13 Nov 2024 21:32:46 GMT" + "Thu, 11 Sep 2025 22:43:11 GMT" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:32:47 GMT" + "Thu, 11 Sep 2025 22:43:11 GMT" ] }, "ResponseBody": "", @@ -429,22 +438,22 @@ "EncodedRequestUri": "L3Bvb2xzL3Jlc2l6ZVBvb2wvc3RvcHJlc2l6ZT9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjA=", "RequestMethod": "POST", "RequestHeaders": { - "client-request-id": [ - "3d7a9134-5a89-4987-a729-69917bb8e366" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "c2426a02-a0bf-41ed-8fef-a020b5318105" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:32:47 GMT" + "Thu, 11 Sep 2025 22:43:12 GMT" ], "x-ms-client-request-id": [ - "e087fe81-211d-4804-9fdf-01878a68989b" + "ef806d60-402c-4b96-a0ec-32ad44b73e1a" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ], @@ -458,13 +467,13 @@ "chunked" ], "ETag": [ - "0x8DD042AB7954511" + "0x8DDF18496816375" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "f019160e-5efd-4b63-ad25-6a6038880379" + "532b2bdf-8074-4978-8b88-37f1acbaa148" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -476,13 +485,13 @@ "3.0" ], "DataServiceId": [ - "https://dawatrouhobo.eastus2.batch.azure.com/pools/resizePool/stopresize" + "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/resizePool/stopresize" ], "Date": [ - "Wed, 13 Nov 2024 21:32:46 GMT" + "Thu, 11 Sep 2025 22:43:11 GMT" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:32:47 GMT" + "Thu, 11 Sep 2025 22:43:11 GMT" ] }, "ResponseBody": "", @@ -493,19 +502,19 @@ "EncodedRequestUri": "L3Bvb2xzL3Jlc2l6ZVBvb2w/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4w", "RequestMethod": "DELETE", "RequestHeaders": { - "client-request-id": [ - "5156c509-4162-4a75-aede-c5c4918019ba" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "4024f572-f5ad-48e9-945f-327f13f8e643" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:32:52 GMT" + "Thu, 11 Sep 2025 22:43:17 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ], @@ -522,7 +531,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "313b8478-88c6-4c8b-b50a-d87144f17e0a" + "b957c72a-2145-439e-92ea-9ff6b672f5fa" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -534,7 +543,7 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:32:52 GMT" + "Thu, 11 Sep 2025 22:43:17 GMT" ] }, "ResponseBody": "", @@ -543,9 +552,9 @@ ], "Names": {}, "Variables": { - "SubscriptionId": "21abd678-18c5-4660-9fdd-8c5ba6b6fe1f", - "AZURE_BATCH_ACCOUNT": "dawatrouhobo", - "AZURE_BATCH_ENDPOINT": "https://dawatrouhobo.eastus2.batch.azure.com", - "AZURE_BATCH_RESOURCE_GROUP": "dawatrou-rg" + "SubscriptionId": "94bd7ded-68b4-4ffa-82a5-37ac72caa2ec", + "AZURE_BATCH_ACCOUNT": "dotnotsdkbatchaccount2", + "AZURE_BATCH_ENDPOINT": "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com", + "AZURE_BATCH_RESOURCE_GROUP": "automation" } } \ No newline at end of file diff --git a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.TaskTests/TestCreateTaskCollection.json b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.TaskTests/TestCreateTaskCollection.json index 905dc9932dcb..121b721e4e95 100644 --- a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.TaskTests/TestCreateTaskCollection.json +++ b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.TaskTests/TestCreateTaskCollection.json @@ -5,19 +5,19 @@ "EncodedRequestUri": "L2pvYnM/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4w", "RequestMethod": "POST", "RequestHeaders": { - "client-request-id": [ - "31b4e47b-8fdb-47f1-ab77-15bf93f0c4c2" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "e7133e29-a48a-4f29-9288-b165a8b89ce1" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:27:02 GMT" + "Thu, 11 Sep 2025 22:43:27 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ], @@ -34,16 +34,16 @@ "chunked" ], "ETag": [ - "0x8DD0429EA59D7AE" + "0x8DDF1849FB1EE1D" ], "Location": [ - "https://dawatrouhobo.eastus2.batch.azure.com/jobs/job-1" + "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/jobs/job-1" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "25192cd2-83bd-4a7e-8731-8019ca78089f" + "9ff09027-c535-468e-bff7-a7b5e079d5cb" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -55,13 +55,13 @@ "3.0" ], "DataServiceId": [ - "https://dawatrouhobo.eastus2.batch.azure.com/jobs/job-1" + "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/jobs/job-1" ], "Date": [ - "Wed, 13 Nov 2024 21:27:02 GMT" + "Thu, 11 Sep 2025 22:43:26 GMT" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:27:02 GMT" + "Thu, 11 Sep 2025 22:43:27 GMT" ] }, "ResponseBody": "", @@ -72,22 +72,22 @@ "EncodedRequestUri": "L2pvYnMvY3JlYXRlVGFza0NvbGxlY3Rpb25Kb2I/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4w", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "f0c15c7e-4f63-4cc7-ac3e-8d6c60a8f9f3" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "59cb979c-4ded-48fd-80da-a63814b127c4" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:27:03 GMT" + "Thu, 11 Sep 2025 22:43:29 GMT" ], "x-ms-client-request-id": [ - "0034a57b-98bc-4cf2-a9ee-ffb184c0c1af" + "de39c292-e9ca-4200-a0fb-1c7e138b67a4" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -98,13 +98,13 @@ "chunked" ], "ETag": [ - "0x8DD0429EA59D7AE" + "0x8DDF1849FB1EE1D" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "8008a9fd-b733-4ee3-9c72-c3f25bc444f9" + "b875efd5-4075-4658-a187-8deb1f15ef4f" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -116,16 +116,16 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:27:02 GMT" + "Thu, 11 Sep 2025 22:43:28 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:27:02 GMT" + "Thu, 11 Sep 2025 22:43:27 GMT" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#jobs/@Element\",\r\n \"id\": \"createTaskCollectionJob\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/jobs/createTaskCollectionJob\",\r\n \"eTag\": \"0x8DD0429EA59D7AE\",\r\n \"lastModified\": \"2024-11-13T21:27:02.8405166Z\",\r\n \"creationTime\": \"2024-11-13T21:27:02.8185192Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2024-11-13T21:27:02.8405166Z\",\r\n \"priority\": 0,\r\n \"maxParallelTasks\": -1,\r\n \"usesTaskDependencies\": false,\r\n \"allowTaskPreemption\": false,\r\n \"constraints\": {\r\n \"maxWallClockTime\": \"P10675199DT2H48M5.4775807S\",\r\n \"maxTaskRetryCount\": 0\r\n },\r\n \"poolInfo\": {\r\n \"poolId\": \"testPool\"\r\n },\r\n \"executionInfo\": {\r\n \"startTime\": \"2024-11-13T21:27:02.8405166Z\",\r\n \"poolId\": \"testPool\"\r\n },\r\n \"onAllTasksComplete\": \"noaction\",\r\n \"onTaskFailure\": \"noaction\"\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#jobs/@Element\",\r\n \"id\": \"createTaskCollectionJob\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/jobs/createTaskCollectionJob\",\r\n \"eTag\": \"0x8DDF1849FB1EE1D\",\r\n \"lastModified\": \"2025-09-11T22:43:27.3693725Z\",\r\n \"creationTime\": \"2025-09-11T22:43:27.3553753Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T22:43:27.3693725Z\",\r\n \"priority\": 0,\r\n \"maxParallelTasks\": -1,\r\n \"usesTaskDependencies\": false,\r\n \"allowTaskPreemption\": false,\r\n \"constraints\": {\r\n \"maxWallClockTime\": \"P10675199DT2H48M5.4775807S\",\r\n \"maxTaskRetryCount\": 0\r\n },\r\n \"poolInfo\": {\r\n \"poolId\": \"testPool\"\r\n },\r\n \"executionInfo\": {\r\n \"startTime\": \"2025-09-11T22:43:27.3693725Z\",\r\n \"poolId\": \"testPool\"\r\n },\r\n \"onAllTasksComplete\": \"noaction\",\r\n \"onTaskFailure\": \"noaction\"\r\n}", "StatusCode": 200 }, { @@ -133,22 +133,22 @@ "EncodedRequestUri": "L2pvYnMvY3JlYXRlVGFza0NvbGxlY3Rpb25Kb2IvYWRkdGFza2NvbGxlY3Rpb24/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4w", "RequestMethod": "POST", "RequestHeaders": { - "client-request-id": [ - "999b2d4c-64e1-4b6f-bbca-77fdfb308f2c" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "c24c8c1b-8b0a-48c8-8465-a2e6d5a101b2" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:27:03 GMT" + "Thu, 11 Sep 2025 22:43:29 GMT" ], "x-ms-client-request-id": [ - "0034a57b-98bc-4cf2-a9ee-ffb184c0c1af" + "de39c292-e9ca-4200-a0fb-1c7e138b67a4" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ], @@ -168,7 +168,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "d2f8c0bc-6321-4588-802a-d80f09ea648b" + "2b074aad-d18e-4f09-af95-cb508a44ac67" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -180,13 +180,13 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:27:03 GMT" + "Thu, 11 Sep 2025 22:43:28 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#taskaddresult\",\r\n \"value\": [\r\n {\r\n \"status\": \"Success\",\r\n \"taskId\": \"simple2\",\r\n \"eTag\": \"0x8DD0429EABF2594\",\r\n \"lastModified\": \"2024-11-13T21:27:03.5044244Z\",\r\n \"location\": \"https://dawatrouhobo.eastus2.batch.azure.com/jobs/createTaskCollectionJob/tasks/simple2\"\r\n },\r\n {\r\n \"status\": \"Success\",\r\n \"taskId\": \"simple1\",\r\n \"eTag\": \"0x8DD0429EABF4CA7\",\r\n \"lastModified\": \"2024-11-13T21:27:03.5054247Z\",\r\n \"location\": \"https://dawatrouhobo.eastus2.batch.azure.com/jobs/createTaskCollectionJob/tasks/simple1\"\r\n }\r\n ]\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#taskaddresult\",\r\n \"value\": [\r\n {\r\n \"status\": \"Success\",\r\n \"taskId\": \"simple1\",\r\n \"eTag\": \"0x8DDF184A10B3E85\",\r\n \"lastModified\": \"2025-09-11T22:43:29.6324229Z\",\r\n \"location\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/jobs/createTaskCollectionJob/tasks/simple1\"\r\n },\r\n {\r\n \"status\": \"Success\",\r\n \"taskId\": \"simple2\",\r\n \"eTag\": \"0x8DDF184A10B65A6\",\r\n \"lastModified\": \"2025-09-11T22:43:29.6334246Z\",\r\n \"location\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/jobs/createTaskCollectionJob/tasks/simple2\"\r\n }\r\n ]\r\n}", "StatusCode": 200 }, { @@ -194,22 +194,22 @@ "EncodedRequestUri": "L2pvYnMvY3JlYXRlVGFza0NvbGxlY3Rpb25Kb2IvYWRkdGFza2NvbGxlY3Rpb24/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4w", "RequestMethod": "POST", "RequestHeaders": { - "client-request-id": [ - "3d1b126f-ba1f-46fb-ba42-385d6640db1f" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "bf178dcf-f848-48f2-8611-b39411b7c175" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:27:03 GMT" + "Thu, 11 Sep 2025 22:43:30 GMT" ], "x-ms-client-request-id": [ - "a5f7c7e4-4d66-439b-8597-a4afd63df0c9" + "7bdfe421-e61c-4088-bf9c-e6d43cc2080d" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ], @@ -229,7 +229,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "86eb0691-47b1-4aa3-abd0-62c96a27c3bd" + "882889b7-c35b-498d-88d7-781af2e82019" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -241,13 +241,13 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:27:03 GMT" + "Thu, 11 Sep 2025 22:43:29 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#taskaddresult\",\r\n \"value\": [\r\n {\r\n \"status\": \"Success\",\r\n \"taskId\": \"simple3\",\r\n \"eTag\": \"0x8DD0429EADDD17A\",\r\n \"lastModified\": \"2024-11-13T21:27:03.705433Z\",\r\n \"location\": \"https://dawatrouhobo.eastus2.batch.azure.com/jobs/createTaskCollectionJob/tasks/simple3\"\r\n },\r\n {\r\n \"status\": \"Success\",\r\n \"taskId\": \"complex1\",\r\n \"eTag\": \"0x8DD0429EADD8326\",\r\n \"lastModified\": \"2024-11-13T21:27:03.7034278Z\",\r\n \"location\": \"https://dawatrouhobo.eastus2.batch.azure.com/jobs/createTaskCollectionJob/tasks/complex1\"\r\n }\r\n ]\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#taskaddresult\",\r\n \"value\": [\r\n {\r\n \"status\": \"Success\",\r\n \"taskId\": \"complex1\",\r\n \"eTag\": \"0x8DDF184A1654607\",\r\n \"lastModified\": \"2025-09-11T22:43:30.2224391Z\",\r\n \"location\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/jobs/createTaskCollectionJob/tasks/complex1\"\r\n },\r\n {\r\n \"status\": \"Success\",\r\n \"taskId\": \"simple3\",\r\n \"eTag\": \"0x8DDF184A1656CE5\",\r\n \"lastModified\": \"2025-09-11T22:43:30.2234341Z\",\r\n \"location\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/jobs/createTaskCollectionJob/tasks/simple3\"\r\n }\r\n ]\r\n}", "StatusCode": 200 }, { @@ -255,22 +255,22 @@ "EncodedRequestUri": "L2pvYnMvY3JlYXRlVGFza0NvbGxlY3Rpb25Kb2IvdGFza3Mvc2ltcGxlMT9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjA=", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "0820fd27-297b-4ae4-87a9-5c0b6b634e74" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "d2eb4ace-922c-4fca-9167-a3eed08b9d17" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:27:03 GMT" + "Thu, 11 Sep 2025 22:43:29 GMT" ], "x-ms-client-request-id": [ - "81473297-d6c9-4209-8035-37e238928833" + "94926847-f23d-437e-b1a6-555eb823fa15" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -281,13 +281,13 @@ "chunked" ], "ETag": [ - "0x8DD0429EABF4CA7" + "0x8DDF184A10B3E85" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "2d427579-d827-4b82-95f6-5c04b2cdcb9f" + "465f72f1-6a71-43e6-8df2-3f2b0a18fa63" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -299,16 +299,16 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:27:03 GMT" + "Thu, 11 Sep 2025 22:43:29 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:27:03 GMT" + "Thu, 11 Sep 2025 22:43:29 GMT" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#tasks/@Element\",\r\n \"id\": \"simple1\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/jobs/createTaskCollectionJob/tasks/simple1\",\r\n \"eTag\": \"0x8DD0429EABF4CA7\",\r\n \"creationTime\": \"2024-11-13T21:27:03.5054247Z\",\r\n \"lastModified\": \"2024-11-13T21:27:03.5054247Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2024-11-13T21:27:03.5054247Z\",\r\n \"commandLine\": \"cmd /c dir /s\",\r\n \"userIdentity\": {\r\n \"autoUser\": {\r\n \"scope\": \"pool\",\r\n \"elevationLevel\": \"nonadmin\"\r\n }\r\n },\r\n \"constraints\": {\r\n \"maxWallClockTime\": \"P10675199DT2H48M5.4775807S\",\r\n \"retentionTime\": \"P7D\",\r\n \"maxTaskRetryCount\": 0\r\n },\r\n \"requiredSlots\": 1,\r\n \"executionInfo\": {\r\n \"retryCount\": 0,\r\n \"requeueCount\": 0\r\n }\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#tasks/@Element\",\r\n \"id\": \"simple1\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/jobs/createTaskCollectionJob/tasks/simple1\",\r\n \"eTag\": \"0x8DDF184A10B3E85\",\r\n \"creationTime\": \"2025-09-11T22:43:29.6324229Z\",\r\n \"lastModified\": \"2025-09-11T22:43:29.6324229Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T22:43:29.6324229Z\",\r\n \"commandLine\": \"cmd /c dir /s\",\r\n \"userIdentity\": {\r\n \"autoUser\": {\r\n \"scope\": \"pool\",\r\n \"elevationLevel\": \"nonadmin\"\r\n }\r\n },\r\n \"constraints\": {\r\n \"maxWallClockTime\": \"P10675199DT2H48M5.4775807S\",\r\n \"retentionTime\": \"P7D\",\r\n \"maxTaskRetryCount\": 0\r\n },\r\n \"requiredSlots\": 1,\r\n \"executionInfo\": {\r\n \"retryCount\": 0,\r\n \"requeueCount\": 0\r\n }\r\n}", "StatusCode": 200 }, { @@ -316,22 +316,22 @@ "EncodedRequestUri": "L2pvYnMvY3JlYXRlVGFza0NvbGxlY3Rpb25Kb2IvdGFza3Mvc2ltcGxlMj9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjA=", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "750821c1-e6b1-4b9f-9971-3585187c21a1" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "e6e19e79-a585-4d37-8020-47e89d3c33a9" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:27:03 GMT" + "Thu, 11 Sep 2025 22:43:29 GMT" ], "x-ms-client-request-id": [ - "35271d5a-f977-4a24-8da0-908bd510b47e" + "cbca80dd-3ea4-4c13-ba96-110382f652f0" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -342,13 +342,13 @@ "chunked" ], "ETag": [ - "0x8DD0429EABF2594" + "0x8DDF184A10B65A6" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "f8da4ea7-4f38-4144-a92c-52f5d5e0718b" + "1969a719-16f1-469e-99a9-f759b5be8a3a" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -360,16 +360,16 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:27:03 GMT" + "Thu, 11 Sep 2025 22:43:29 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:27:03 GMT" + "Thu, 11 Sep 2025 22:43:29 GMT" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#tasks/@Element\",\r\n \"id\": \"simple2\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/jobs/createTaskCollectionJob/tasks/simple2\",\r\n \"eTag\": \"0x8DD0429EABF2594\",\r\n \"creationTime\": \"2024-11-13T21:27:03.5044244Z\",\r\n \"lastModified\": \"2024-11-13T21:27:03.5044244Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2024-11-13T21:27:03.5044244Z\",\r\n \"commandLine\": \"cmd /c dir /s\",\r\n \"userIdentity\": {\r\n \"autoUser\": {\r\n \"scope\": \"pool\",\r\n \"elevationLevel\": \"nonadmin\"\r\n }\r\n },\r\n \"constraints\": {\r\n \"maxWallClockTime\": \"P10675199DT2H48M5.4775807S\",\r\n \"retentionTime\": \"P7D\",\r\n \"maxTaskRetryCount\": 0\r\n },\r\n \"requiredSlots\": 1,\r\n \"executionInfo\": {\r\n \"retryCount\": 0,\r\n \"requeueCount\": 0\r\n }\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#tasks/@Element\",\r\n \"id\": \"simple2\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/jobs/createTaskCollectionJob/tasks/simple2\",\r\n \"eTag\": \"0x8DDF184A10B65A6\",\r\n \"creationTime\": \"2025-09-11T22:43:29.6334246Z\",\r\n \"lastModified\": \"2025-09-11T22:43:29.6334246Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T22:43:29.6334246Z\",\r\n \"commandLine\": \"cmd /c dir /s\",\r\n \"userIdentity\": {\r\n \"autoUser\": {\r\n \"scope\": \"pool\",\r\n \"elevationLevel\": \"nonadmin\"\r\n }\r\n },\r\n \"constraints\": {\r\n \"maxWallClockTime\": \"P10675199DT2H48M5.4775807S\",\r\n \"retentionTime\": \"P7D\",\r\n \"maxTaskRetryCount\": 0\r\n },\r\n \"requiredSlots\": 1,\r\n \"executionInfo\": {\r\n \"retryCount\": 0,\r\n \"requeueCount\": 0\r\n }\r\n}", "StatusCode": 200 }, { @@ -377,22 +377,22 @@ "EncodedRequestUri": "L2pvYnMvY3JlYXRlVGFza0NvbGxlY3Rpb25Kb2IvdGFza3MvY29tcGxleDE/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4w", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "97e55f41-be94-4e66-a148-106bc0fc37ab" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "74021c03-babd-47f3-acdc-171c09456546" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:27:03 GMT" + "Thu, 11 Sep 2025 22:43:30 GMT" ], "x-ms-client-request-id": [ - "9eec1936-a2ff-4cdc-a9e9-3e7fb61b0e64" + "3e8f5977-8e07-44f8-a437-f99e7d5a35f4" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -403,13 +403,13 @@ "chunked" ], "ETag": [ - "0x8DD0429EADD8326" + "0x8DDF184A1654607" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "5458b8ff-9eff-4b4a-8dbe-3d9043ccefc1" + "bd80080f-6b67-44e3-af98-94e121ae86f0" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -421,16 +421,16 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:27:03 GMT" + "Thu, 11 Sep 2025 22:43:29 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:27:03 GMT" + "Thu, 11 Sep 2025 22:43:30 GMT" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#tasks/@Element\",\r\n \"id\": \"complex1\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/jobs/createTaskCollectionJob/tasks/complex1\",\r\n \"eTag\": \"0x8DD0429EADD8326\",\r\n \"creationTime\": \"2024-11-13T21:27:03.7034278Z\",\r\n \"lastModified\": \"2024-11-13T21:27:03.7034278Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2024-11-13T21:27:03.7034278Z\",\r\n \"commandLine\": \"cmd /c dir /s\",\r\n \"resourceFiles\": [\r\n {\r\n \"httpUrl\": \"https://testacct.blob.core.windows.net/\",\r\n \"filePath\": \"file1\"\r\n }\r\n ],\r\n \"environmentSettings\": [\r\n {\r\n \"name\": \"env2\",\r\n \"value\": \"value2\"\r\n },\r\n {\r\n \"name\": \"env1\",\r\n \"value\": \"value1\"\r\n }\r\n ],\r\n \"affinityInfo\": {\r\n \"affinityId\": \"affinityId\"\r\n },\r\n \"userIdentity\": {\r\n \"autoUser\": {\r\n \"scope\": \"pool\",\r\n \"elevationLevel\": \"nonadmin\"\r\n }\r\n },\r\n \"multiInstanceSettings\": {\r\n \"numberOfInstances\": 3,\r\n \"coordinationCommandLine\": \"cmd /c echo coordinating\",\r\n \"commonResourceFiles\": [\r\n {\r\n \"httpUrl\": \"https://common.blob.core.windows.net/\",\r\n \"filePath\": \"common.exe\"\r\n }\r\n ]\r\n },\r\n \"constraints\": {\r\n \"maxWallClockTime\": \"P1D\",\r\n \"retentionTime\": \"P2D\",\r\n \"maxTaskRetryCount\": 5\r\n },\r\n \"requiredSlots\": 1,\r\n \"executionInfo\": {\r\n \"retryCount\": 0,\r\n \"requeueCount\": 0\r\n }\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#tasks/@Element\",\r\n \"id\": \"complex1\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/jobs/createTaskCollectionJob/tasks/complex1\",\r\n \"eTag\": \"0x8DDF184A1654607\",\r\n \"creationTime\": \"2025-09-11T22:43:30.2224391Z\",\r\n \"lastModified\": \"2025-09-11T22:43:30.2224391Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T22:43:30.2224391Z\",\r\n \"commandLine\": \"cmd /c dir /s\",\r\n \"resourceFiles\": [\r\n {\r\n \"httpUrl\": \"https://testacct.blob.core.windows.net/\",\r\n \"filePath\": \"file1\"\r\n }\r\n ],\r\n \"environmentSettings\": [\r\n {\r\n \"name\": \"env2\",\r\n \"value\": \"value2\"\r\n },\r\n {\r\n \"name\": \"env1\",\r\n \"value\": \"value1\"\r\n }\r\n ],\r\n \"affinityInfo\": {\r\n \"affinityId\": \"affinityId\"\r\n },\r\n \"userIdentity\": {\r\n \"autoUser\": {\r\n \"scope\": \"pool\",\r\n \"elevationLevel\": \"nonadmin\"\r\n }\r\n },\r\n \"multiInstanceSettings\": {\r\n \"numberOfInstances\": 3,\r\n \"coordinationCommandLine\": \"cmd /c echo coordinating\",\r\n \"commonResourceFiles\": [\r\n {\r\n \"httpUrl\": \"https://common.blob.core.windows.net/\",\r\n \"filePath\": \"common.exe\"\r\n }\r\n ]\r\n },\r\n \"constraints\": {\r\n \"maxWallClockTime\": \"P1D\",\r\n \"retentionTime\": \"P2D\",\r\n \"maxTaskRetryCount\": 5\r\n },\r\n \"requiredSlots\": 1,\r\n \"executionInfo\": {\r\n \"retryCount\": 0,\r\n \"requeueCount\": 0\r\n }\r\n}", "StatusCode": 200 }, { @@ -438,22 +438,22 @@ "EncodedRequestUri": "L2pvYnMvY3JlYXRlVGFza0NvbGxlY3Rpb25Kb2IvdGFza3Mvc2ltcGxlMz9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjA=", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "0a0994d0-c6c5-4436-a1be-ffa92194192d" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "40bdc2b7-ac0f-4096-b6c7-19c693a55f3f" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:27:03 GMT" + "Thu, 11 Sep 2025 22:43:30 GMT" ], "x-ms-client-request-id": [ - "bf005ca7-fdeb-42db-9551-6cf51155164b" + "e7f87a8d-2f90-42d6-a068-8ef5f6696457" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -464,13 +464,13 @@ "chunked" ], "ETag": [ - "0x8DD0429EADDD17A" + "0x8DDF184A1656CE5" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "aba10b65-6c0d-4acf-845f-453276bb5a18" + "0d97cd7f-f03a-40c7-9ffc-d714d8f5b249" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -482,16 +482,16 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:27:03 GMT" + "Thu, 11 Sep 2025 22:43:29 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:27:03 GMT" + "Thu, 11 Sep 2025 22:43:30 GMT" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#tasks/@Element\",\r\n \"id\": \"simple3\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/jobs/createTaskCollectionJob/tasks/simple3\",\r\n \"eTag\": \"0x8DD0429EADDD17A\",\r\n \"creationTime\": \"2024-11-13T21:27:03.705433Z\",\r\n \"lastModified\": \"2024-11-13T21:27:03.705433Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2024-11-13T21:27:03.705433Z\",\r\n \"commandLine\": \"cmd /c dir /s\",\r\n \"userIdentity\": {\r\n \"autoUser\": {\r\n \"scope\": \"pool\",\r\n \"elevationLevel\": \"nonadmin\"\r\n }\r\n },\r\n \"constraints\": {\r\n \"maxWallClockTime\": \"P10675199DT2H48M5.4775807S\",\r\n \"retentionTime\": \"P7D\",\r\n \"maxTaskRetryCount\": 0\r\n },\r\n \"requiredSlots\": 1,\r\n \"executionInfo\": {\r\n \"retryCount\": 0,\r\n \"requeueCount\": 0\r\n }\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#tasks/@Element\",\r\n \"id\": \"simple3\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/jobs/createTaskCollectionJob/tasks/simple3\",\r\n \"eTag\": \"0x8DDF184A1656CE5\",\r\n \"creationTime\": \"2025-09-11T22:43:30.2234341Z\",\r\n \"lastModified\": \"2025-09-11T22:43:30.2234341Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T22:43:30.2234341Z\",\r\n \"commandLine\": \"cmd /c dir /s\",\r\n \"userIdentity\": {\r\n \"autoUser\": {\r\n \"scope\": \"pool\",\r\n \"elevationLevel\": \"nonadmin\"\r\n }\r\n },\r\n \"constraints\": {\r\n \"maxWallClockTime\": \"P10675199DT2H48M5.4775807S\",\r\n \"retentionTime\": \"P7D\",\r\n \"maxTaskRetryCount\": 0\r\n },\r\n \"requiredSlots\": 1,\r\n \"executionInfo\": {\r\n \"retryCount\": 0,\r\n \"requeueCount\": 0\r\n }\r\n}", "StatusCode": 200 }, { @@ -499,19 +499,19 @@ "EncodedRequestUri": "L2pvYnMvY3JlYXRlVGFza0NvbGxlY3Rpb25Kb2I/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4w", "RequestMethod": "DELETE", "RequestHeaders": { - "client-request-id": [ - "d2c022cb-e317-4420-8cc9-f4001a7f3891" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "dbe895db-b189-403b-beca-7ea825ed755d" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:27:03 GMT" + "Thu, 11 Sep 2025 22:43:30 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ], @@ -528,7 +528,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "4e7c68c1-5d11-4e8a-ac91-8bc14d700127" + "5796a24b-c7f2-48f9-a94a-36674c4a0a2c" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -540,7 +540,7 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:27:03 GMT" + "Thu, 11 Sep 2025 22:43:29 GMT" ] }, "ResponseBody": "", @@ -549,9 +549,9 @@ ], "Names": {}, "Variables": { - "SubscriptionId": "21abd678-18c5-4660-9fdd-8c5ba6b6fe1f", - "AZURE_BATCH_ACCOUNT": "dawatrouhobo", - "AZURE_BATCH_ENDPOINT": "https://dawatrouhobo.eastus2.batch.azure.com", - "AZURE_BATCH_RESOURCE_GROUP": "dawatrou-rg" + "SubscriptionId": "94bd7ded-68b4-4ffa-82a5-37ac72caa2ec", + "AZURE_BATCH_ACCOUNT": "dotnotsdkbatchaccount2", + "AZURE_BATCH_ENDPOINT": "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com", + "AZURE_BATCH_RESOURCE_GROUP": "automation" } } \ No newline at end of file diff --git a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.TaskTests/TestListAllSubtasks.json b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.TaskTests/TestListAllSubtasks.json index a27235ac1ea1..fc8427a24451 100644 --- a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.TaskTests/TestListAllSubtasks.json +++ b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.TaskTests/TestListAllSubtasks.json @@ -5,19 +5,19 @@ "EncodedRequestUri": "L3Bvb2xzL21waVBvb2w/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4w", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "2296abaa-2232-4a1e-81c4-39184a905dd0" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "b5b5d553-a00c-4b91-a779-4b0bfb82be43" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:27:03 GMT" + "Thu, 11 Sep 2025 22:43:31 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -28,7 +28,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "bc0db366-3383-46b7-8101-249ef24fe254" + "b6a11b89-7136-4042-ad72-6c8ed2b3d3c0" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -40,16 +40,16 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:27:03 GMT" + "Thu, 11 Sep 2025 22:43:31 GMT" ], "Content-Length": [ - "334" + "344" ], "Content-Type": [ "application/json; odata=minimalmetadata" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#Microsoft.Azure.Batch.Protocol.Entities.Container.errors/@Element\",\r\n \"code\": \"PoolNotFound\",\r\n \"message\": {\r\n \"lang\": \"en-US\",\r\n \"value\": \"The specified pool does not exist.\\nRequestId:bc0db366-3383-46b7-8101-249ef24fe254\\nTime:2024-11-13T21:27:03.9654679Z\"\r\n }\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#Microsoft.Azure.Batch.Protocol.Entities.Container.errors/@Element\",\r\n \"code\": \"PoolNotFound\",\r\n \"message\": {\r\n \"lang\": \"en-US\",\r\n \"value\": \"The specified pool does not exist.\\nRequestId:b6a11b89-7136-4042-ad72-6c8ed2b3d3c0\\nTime:2025-09-11T22:43:31.3770013Z\"\r\n }\r\n}", "StatusCode": 404 }, { @@ -57,19 +57,19 @@ "EncodedRequestUri": "L3Bvb2xzP2FwaS12ZXJzaW9uPTIwMjQtMDItMDEuMTkuMA==", "RequestMethod": "POST", "RequestHeaders": { - "client-request-id": [ - "acf32b30-779b-45a9-803a-c4b898a80f01" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "46492e0f-d8d6-4b37-9c6a-a46217ca3663" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:27:03 GMT" + "Thu, 11 Sep 2025 22:43:31 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ], @@ -86,16 +86,16 @@ "chunked" ], "ETag": [ - "0x8DD0429EB106F6E" + "0x8DDF184A22F7097" ], "Location": [ - "https://dawatrouhobo.eastus2.batch.azure.com/pools/mpiPool" + "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/mpiPool" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "21e9f048-d9ec-41d2-92c8-102f2e14d340" + "14e21af5-e26a-4037-bde9-a84f192bf034" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -107,13 +107,13 @@ "3.0" ], "DataServiceId": [ - "https://dawatrouhobo.eastus2.batch.azure.com/pools/mpiPool" + "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/mpiPool" ], "Date": [ - "Wed, 13 Nov 2024 21:27:03 GMT" + "Thu, 11 Sep 2025 22:43:31 GMT" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:27:04 GMT" + "Thu, 11 Sep 2025 22:43:31 GMT" ] }, "ResponseBody": "", @@ -124,19 +124,19 @@ "EncodedRequestUri": "L2pvYnM/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4w", "RequestMethod": "POST", "RequestHeaders": { - "client-request-id": [ - "ae8755a3-dc15-48a1-bd51-f1c830531e42" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "c31c1a9f-a22c-442f-9ee5-555b6802ec7b" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:27:04 GMT" + "Thu, 11 Sep 2025 22:43:31 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ], @@ -153,16 +153,16 @@ "chunked" ], "ETag": [ - "0x8DD0429EB3C68F0" + "0x8DDF184A278E397" ], "Location": [ - "https://dawatrouhobo.eastus2.batch.azure.com/jobs/job-1" + "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/jobs/job-1" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "63e2e4e7-3b5e-4bd4-b762-1a2afd7db75d" + "aedf22d6-9da3-4523-a561-91a54a5df591" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -174,13 +174,13 @@ "3.0" ], "DataServiceId": [ - "https://dawatrouhobo.eastus2.batch.azure.com/jobs/job-1" + "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/jobs/job-1" ], "Date": [ - "Wed, 13 Nov 2024 21:27:03 GMT" + "Thu, 11 Sep 2025 22:43:31 GMT" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:27:04 GMT" + "Thu, 11 Sep 2025 22:43:32 GMT" ] }, "ResponseBody": "", @@ -191,19 +191,19 @@ "EncodedRequestUri": "L2pvYnMvbGlzdFN1YnRhc2tKb2IvdGFza3M/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4w", "RequestMethod": "POST", "RequestHeaders": { - "client-request-id": [ - "b1f94052-a22c-4f62-ab28-bcfcd48d9fe6" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "8453c729-7f49-42d3-a2c9-fab4f83ddc25" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:27:04 GMT" + "Thu, 11 Sep 2025 22:43:32 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ], @@ -220,16 +220,16 @@ "chunked" ], "ETag": [ - "0x8DD0429EB44D21D" + "0x8DDF184A2886C3A" ], "Location": [ - "https://dawatrouhobo.eastus2.batch.azure.com/jobs/listSubtaskJob/tasks/testTask" + "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/jobs/listSubtaskJob/tasks/testTask" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "c5d3a76c-c0d8-48d7-b3a3-426bc1b7bd01" + "61b94fd9-90b2-4000-97a5-a32c29782d47" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -241,13 +241,13 @@ "3.0" ], "DataServiceId": [ - "https://dawatrouhobo.eastus2.batch.azure.com/jobs/listSubtaskJob/tasks/testTask" + "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/jobs/listSubtaskJob/tasks/testTask" ], "Date": [ - "Wed, 13 Nov 2024 21:27:03 GMT" + "Thu, 11 Sep 2025 22:43:31 GMT" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:27:04 GMT" + "Thu, 11 Sep 2025 22:43:32 GMT" ] }, "ResponseBody": "", @@ -258,19 +258,19 @@ "EncodedRequestUri": "L2pvYnMvbGlzdFN1YnRhc2tKb2IvdGFza3MvdGVzdFRhc2s/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4w", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "eb93be05-7d1b-466e-869e-9688e9ead191" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "34588ad0-32aa-4603-82ed-01d826a5c6aa" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:27:04 GMT" + "Thu, 11 Sep 2025 22:43:32 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -281,13 +281,13 @@ "chunked" ], "ETag": [ - "0x8DD0429EB44D21D" + "0x8DDF184A2886C3A" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "f79a0857-c446-4559-b0bb-fcecdb9301d6" + "99721b90-d733-4a66-a898-ee83128f7864" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -299,16 +299,16 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:27:03 GMT" + "Thu, 11 Sep 2025 22:43:31 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:27:04 GMT" + "Thu, 11 Sep 2025 22:43:32 GMT" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#tasks/@Element\",\r\n \"id\": \"testTask\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/jobs/listSubtaskJob/tasks/testTask\",\r\n \"eTag\": \"0x8DD0429EB44D21D\",\r\n \"creationTime\": \"2024-11-13T21:27:04.3804701Z\",\r\n \"lastModified\": \"2024-11-13T21:27:04.3804701Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2024-11-13T21:27:04.3804701Z\",\r\n \"commandLine\": \"/bin/bash -c 'echo task'\",\r\n \"userIdentity\": {\r\n \"autoUser\": {\r\n \"scope\": \"task\",\r\n \"elevationLevel\": \"nonadmin\"\r\n }\r\n },\r\n \"multiInstanceSettings\": {\r\n \"numberOfInstances\": 3,\r\n \"coordinationCommandLine\": \"/bin/bash -c 'echo coordinating'\"\r\n },\r\n \"constraints\": {\r\n \"maxWallClockTime\": \"P10675199DT2H48M5.4775807S\",\r\n \"retentionTime\": \"P7D\",\r\n \"maxTaskRetryCount\": 0\r\n },\r\n \"requiredSlots\": 1,\r\n \"executionInfo\": {\r\n \"retryCount\": 0,\r\n \"requeueCount\": 0\r\n }\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#tasks/@Element\",\r\n \"id\": \"testTask\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/jobs/listSubtaskJob/tasks/testTask\",\r\n \"eTag\": \"0x8DDF184A2886C3A\",\r\n \"creationTime\": \"2025-09-11T22:43:32.1305146Z\",\r\n \"lastModified\": \"2025-09-11T22:43:32.1305146Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T22:43:32.1305146Z\",\r\n \"commandLine\": \"/bin/bash -c 'echo task'\",\r\n \"userIdentity\": {\r\n \"autoUser\": {\r\n \"scope\": \"task\",\r\n \"elevationLevel\": \"nonadmin\"\r\n }\r\n },\r\n \"multiInstanceSettings\": {\r\n \"numberOfInstances\": 3,\r\n \"coordinationCommandLine\": \"/bin/bash -c 'echo coordinating'\"\r\n },\r\n \"constraints\": {\r\n \"maxWallClockTime\": \"P10675199DT2H48M5.4775807S\",\r\n \"retentionTime\": \"P7D\",\r\n \"maxTaskRetryCount\": 0\r\n },\r\n \"requiredSlots\": 1,\r\n \"executionInfo\": {\r\n \"retryCount\": 0,\r\n \"requeueCount\": 0\r\n }\r\n}", "StatusCode": 200 }, { @@ -316,22 +316,22 @@ "EncodedRequestUri": "L2pvYnMvbGlzdFN1YnRhc2tKb2IvdGFza3MvdGVzdFRhc2s/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4w", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "b09c5b80-1e30-4622-b8a4-443980288663" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "a059f37b-53a3-482e-9c25-b52979a84255" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:28:33 GMT" + "Thu, 11 Sep 2025 22:44:51 GMT" ], "x-ms-client-request-id": [ - "50b394ce-423d-4492-b61e-94d0f4363e4e" + "6c2e910b-5cb4-49f9-9310-dfb394f848e3" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -342,13 +342,13 @@ "chunked" ], "ETag": [ - "0x8DD0429EB44D21D" + "0x8DDF184A2886C3A" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "b9595ef5-79db-4e7d-9801-b51c31e3b391" + "d87c270b-1289-4204-b994-3024e5bdfa42" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -360,16 +360,16 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:28:33 GMT" + "Thu, 11 Sep 2025 22:44:50 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:27:04 GMT" + "Thu, 11 Sep 2025 22:43:32 GMT" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#tasks/@Element\",\r\n \"id\": \"testTask\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/jobs/listSubtaskJob/tasks/testTask\",\r\n \"eTag\": \"0x8DD0429EB44D21D\",\r\n \"creationTime\": \"2024-11-13T21:27:04.3804701Z\",\r\n \"lastModified\": \"2024-11-13T21:27:04.3804701Z\",\r\n \"state\": \"completed\",\r\n \"stateTransitionTime\": \"2024-11-13T21:28:30.571865Z\",\r\n \"previousState\": \"running\",\r\n \"previousStateTransitionTime\": \"2024-11-13T21:28:28.386475Z\",\r\n \"commandLine\": \"/bin/bash -c 'echo task'\",\r\n \"userIdentity\": {\r\n \"autoUser\": {\r\n \"scope\": \"task\",\r\n \"elevationLevel\": \"nonadmin\"\r\n }\r\n },\r\n \"multiInstanceSettings\": {\r\n \"numberOfInstances\": 3,\r\n \"coordinationCommandLine\": \"/bin/bash -c 'echo coordinating'\"\r\n },\r\n \"constraints\": {\r\n \"maxWallClockTime\": \"P10675199DT2H48M5.4775807S\",\r\n \"retentionTime\": \"P7D\",\r\n \"maxTaskRetryCount\": 0\r\n },\r\n \"requiredSlots\": 1,\r\n \"executionInfo\": {\r\n \"startTime\": \"2024-11-13T21:28:28.558282Z\",\r\n \"endTime\": \"2024-11-13T21:28:30.571865Z\",\r\n \"exitCode\": 0,\r\n \"result\": \"success\",\r\n \"retryCount\": 0,\r\n \"requeueCount\": 0\r\n },\r\n \"nodeInfo\": {\r\n \"affinityId\": \"TVM:tvmps_59f54c11e29d5675b0dbbf771139c4b361edf8b4933b14d2e7046f0d1db2e1a4_d\",\r\n \"nodeUrl\": \"https://dawatrouhobo.eastus2.batch.azure.com/pools/mpiPool/nodes/tvmps_59f54c11e29d5675b0dbbf771139c4b361edf8b4933b14d2e7046f0d1db2e1a4_d\",\r\n \"poolId\": \"mpiPool\",\r\n \"nodeId\": \"tvmps_59f54c11e29d5675b0dbbf771139c4b361edf8b4933b14d2e7046f0d1db2e1a4_d\",\r\n \"taskRootDirectory\": \"workitems/listSubtaskJob/job-1/testTask\",\r\n \"taskRootDirectoryUrl\": \"https://dawatrouhobo.eastus2.batch.azure.com/pools/mpiPool/nodes/tvmps_59f54c11e29d5675b0dbbf771139c4b361edf8b4933b14d2e7046f0d1db2e1a4_d/files/workitems/listSubtaskJob/job-1/testTask\"\r\n }\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#tasks/@Element\",\r\n \"id\": \"testTask\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/jobs/listSubtaskJob/tasks/testTask\",\r\n \"eTag\": \"0x8DDF184A2886C3A\",\r\n \"creationTime\": \"2025-09-11T22:43:32.1305146Z\",\r\n \"lastModified\": \"2025-09-11T22:43:32.1305146Z\",\r\n \"state\": \"completed\",\r\n \"stateTransitionTime\": \"2025-09-11T22:44:48.585306Z\",\r\n \"previousState\": \"running\",\r\n \"previousStateTransitionTime\": \"2025-09-11T22:44:46.383098Z\",\r\n \"commandLine\": \"/bin/bash -c 'echo task'\",\r\n \"userIdentity\": {\r\n \"autoUser\": {\r\n \"scope\": \"task\",\r\n \"elevationLevel\": \"nonadmin\"\r\n }\r\n },\r\n \"multiInstanceSettings\": {\r\n \"numberOfInstances\": 3,\r\n \"coordinationCommandLine\": \"/bin/bash -c 'echo coordinating'\"\r\n },\r\n \"constraints\": {\r\n \"maxWallClockTime\": \"P10675199DT2H48M5.4775807S\",\r\n \"retentionTime\": \"P7D\",\r\n \"maxTaskRetryCount\": 0\r\n },\r\n \"requiredSlots\": 1,\r\n \"executionInfo\": {\r\n \"startTime\": \"2025-09-11T22:44:46.566688Z\",\r\n \"endTime\": \"2025-09-11T22:44:48.585306Z\",\r\n \"exitCode\": 0,\r\n \"result\": \"success\",\r\n \"retryCount\": 0,\r\n \"requeueCount\": 0\r\n },\r\n \"nodeInfo\": {\r\n \"affinityId\": \"TVM:tvmps_d4f2721be02716048830e4142aa7901cb9f27bc100c45deb6be2004791ba1d4f_d\",\r\n \"nodeUrl\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/mpiPool/nodes/tvmps_d4f2721be02716048830e4142aa7901cb9f27bc100c45deb6be2004791ba1d4f_d\",\r\n \"poolId\": \"mpiPool\",\r\n \"nodeId\": \"tvmps_d4f2721be02716048830e4142aa7901cb9f27bc100c45deb6be2004791ba1d4f_d\",\r\n \"taskRootDirectory\": \"workitems/listSubtaskJob/job-1/testTask\",\r\n \"taskRootDirectoryUrl\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/mpiPool/nodes/tvmps_d4f2721be02716048830e4142aa7901cb9f27bc100c45deb6be2004791ba1d4f_d/files/workitems/listSubtaskJob/job-1/testTask\"\r\n }\r\n}", "StatusCode": 200 }, { @@ -377,71 +377,19 @@ "EncodedRequestUri": "L2pvYnMvbGlzdFN1YnRhc2tKb2IvdGFza3M/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4wJiRmaWx0ZXI9aWQlMjBlcSUyMCUyN3Rlc3RUYXNrJTI3JiRzZWxlY3Q9aWQlMkNzdGF0ZQ==", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "1556ee07-694a-4c73-87b2-8c90a70b2da0" - ], "Accept-Language": [ "en-US" ], - "ocp-date": [ - "Wed, 13 Nov 2024 21:27:04 GMT" - ], - "User-Agent": [ - "FxVersion/6.0.3524.45918", - "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", - "AzurePowershell/Az1.0.0" - ] - }, - "RequestBody": "", - "ResponseHeaders": { - "Transfer-Encoding": [ - "chunked" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "e8576fc8-6553-49a4-bac3-d7d42941a8bc" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ], - "Date": [ - "Wed, 13 Nov 2024 21:27:03 GMT" - ], - "Content-Type": [ - "application/json; odata=minimalmetadata" - ] - }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#tasks\",\r\n \"value\": [\r\n {\r\n \"id\": \"testTask\",\r\n \"state\": \"active\"\r\n }\r\n ]\r\n}", - "StatusCode": 200 - }, - { - "RequestUri": "/jobs/listSubtaskJob/tasks?api-version=2024-02-01.19.0&$filter=id%20eq%20%27testTask%27&$select=id%2Cstate", - "EncodedRequestUri": "L2pvYnMvbGlzdFN1YnRhc2tKb2IvdGFza3M/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4wJiRmaWx0ZXI9aWQlMjBlcSUyMCUyN3Rlc3RUYXNrJTI3JiRzZWxlY3Q9aWQlMkNzdGF0ZQ==", - "RequestMethod": "GET", - "RequestHeaders": { "client-request-id": [ - "0e1a4c38-5978-4bbf-870e-19ac202148fc" - ], - "Accept-Language": [ - "en-US" + "7513b9aa-19c1-4d0e-bee4-6d556ef8ae12" ], "ocp-date": [ - "Wed, 13 Nov 2024 21:27:06 GMT" + "Thu, 11 Sep 2025 22:43:32 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -455,7 +403,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "aa9036b0-7f3a-4c74-936d-7bec2629a9b6" + "ef236fd6-2edf-438d-86b5-50108ec6ba5a" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -467,13 +415,13 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:27:05 GMT" + "Thu, 11 Sep 2025 22:43:32 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#tasks\",\r\n \"value\": [\r\n {\r\n \"id\": \"testTask\",\r\n \"state\": \"active\"\r\n }\r\n ]\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#tasks\",\r\n \"value\": [\r\n {\r\n \"id\": \"testTask\",\r\n \"state\": \"active\"\r\n }\r\n ]\r\n}", "StatusCode": 200 }, { @@ -481,71 +429,19 @@ "EncodedRequestUri": "L2pvYnMvbGlzdFN1YnRhc2tKb2IvdGFza3M/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4wJiRmaWx0ZXI9aWQlMjBlcSUyMCUyN3Rlc3RUYXNrJTI3JiRzZWxlY3Q9aWQlMkNzdGF0ZQ==", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "4512b7c8-92b6-4b81-88da-0e0d8b17128a" - ], "Accept-Language": [ "en-US" ], - "ocp-date": [ - "Wed, 13 Nov 2024 21:27:08 GMT" - ], - "User-Agent": [ - "FxVersion/6.0.3524.45918", - "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", - "AzurePowershell/Az1.0.0" - ] - }, - "RequestBody": "", - "ResponseHeaders": { - "Transfer-Encoding": [ - "chunked" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "3d0793f3-a2aa-4c94-b77f-e7709f2624ca" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ], - "Date": [ - "Wed, 13 Nov 2024 21:27:07 GMT" - ], - "Content-Type": [ - "application/json; odata=minimalmetadata" - ] - }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#tasks\",\r\n \"value\": [\r\n {\r\n \"id\": \"testTask\",\r\n \"state\": \"active\"\r\n }\r\n ]\r\n}", - "StatusCode": 200 - }, - { - "RequestUri": "/jobs/listSubtaskJob/tasks?api-version=2024-02-01.19.0&$filter=id%20eq%20%27testTask%27&$select=id%2Cstate", - "EncodedRequestUri": "L2pvYnMvbGlzdFN1YnRhc2tKb2IvdGFza3M/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4wJiRmaWx0ZXI9aWQlMjBlcSUyMCUyN3Rlc3RUYXNrJTI3JiRzZWxlY3Q9aWQlMkNzdGF0ZQ==", - "RequestMethod": "GET", - "RequestHeaders": { "client-request-id": [ - "4d42843a-72ac-40c5-8e67-4e4dddc0220f" - ], - "Accept-Language": [ - "en-US" + "a1a17b86-111e-46ac-822e-ef23edd5c687" ], "ocp-date": [ - "Wed, 13 Nov 2024 21:27:10 GMT" + "Thu, 11 Sep 2025 22:43:34 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -559,7 +455,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "b4759bc1-ac5e-4d0c-8b97-b8ece46b6e95" + "aff723be-c6ef-49ee-bfbe-6686bd5dbdf3" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -571,13 +467,13 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:27:09 GMT" + "Thu, 11 Sep 2025 22:43:34 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#tasks\",\r\n \"value\": [\r\n {\r\n \"id\": \"testTask\",\r\n \"state\": \"active\"\r\n }\r\n ]\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#tasks\",\r\n \"value\": [\r\n {\r\n \"id\": \"testTask\",\r\n \"state\": \"active\"\r\n }\r\n ]\r\n}", "StatusCode": 200 }, { @@ -585,71 +481,19 @@ "EncodedRequestUri": "L2pvYnMvbGlzdFN1YnRhc2tKb2IvdGFza3M/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4wJiRmaWx0ZXI9aWQlMjBlcSUyMCUyN3Rlc3RUYXNrJTI3JiRzZWxlY3Q9aWQlMkNzdGF0ZQ==", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "3adf0753-8898-420a-99a2-1d94d4f32196" - ], "Accept-Language": [ "en-US" ], - "ocp-date": [ - "Wed, 13 Nov 2024 21:27:12 GMT" - ], - "User-Agent": [ - "FxVersion/6.0.3524.45918", - "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", - "AzurePowershell/Az1.0.0" - ] - }, - "RequestBody": "", - "ResponseHeaders": { - "Transfer-Encoding": [ - "chunked" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "c6d9702c-0715-484e-a300-86d67caaa606" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ], - "Date": [ - "Wed, 13 Nov 2024 21:27:11 GMT" - ], - "Content-Type": [ - "application/json; odata=minimalmetadata" - ] - }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#tasks\",\r\n \"value\": [\r\n {\r\n \"id\": \"testTask\",\r\n \"state\": \"active\"\r\n }\r\n ]\r\n}", - "StatusCode": 200 - }, - { - "RequestUri": "/jobs/listSubtaskJob/tasks?api-version=2024-02-01.19.0&$filter=id%20eq%20%27testTask%27&$select=id%2Cstate", - "EncodedRequestUri": "L2pvYnMvbGlzdFN1YnRhc2tKb2IvdGFza3M/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4wJiRmaWx0ZXI9aWQlMjBlcSUyMCUyN3Rlc3RUYXNrJTI3JiRzZWxlY3Q9aWQlMkNzdGF0ZQ==", - "RequestMethod": "GET", - "RequestHeaders": { "client-request-id": [ - "35085a4a-795d-4f20-8ea7-3b14ac89cda0" - ], - "Accept-Language": [ - "en-US" + "abd08e8a-a656-4288-b397-c94bf5532faa" ], "ocp-date": [ - "Wed, 13 Nov 2024 21:27:14 GMT" + "Thu, 11 Sep 2025 22:43:36 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -663,7 +507,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "91c864db-b610-445d-815f-979852cb11b1" + "f45c8d29-3182-4e77-ad8c-a750eb67103e" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -675,13 +519,13 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:27:13 GMT" + "Thu, 11 Sep 2025 22:43:36 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#tasks\",\r\n \"value\": [\r\n {\r\n \"id\": \"testTask\",\r\n \"state\": \"active\"\r\n }\r\n ]\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#tasks\",\r\n \"value\": [\r\n {\r\n \"id\": \"testTask\",\r\n \"state\": \"active\"\r\n }\r\n ]\r\n}", "StatusCode": 200 }, { @@ -689,71 +533,19 @@ "EncodedRequestUri": "L2pvYnMvbGlzdFN1YnRhc2tKb2IvdGFza3M/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4wJiRmaWx0ZXI9aWQlMjBlcSUyMCUyN3Rlc3RUYXNrJTI3JiRzZWxlY3Q9aWQlMkNzdGF0ZQ==", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "66871ca4-1877-4704-a442-3752c5c0a244" - ], "Accept-Language": [ "en-US" ], - "ocp-date": [ - "Wed, 13 Nov 2024 21:27:16 GMT" - ], - "User-Agent": [ - "FxVersion/6.0.3524.45918", - "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", - "AzurePowershell/Az1.0.0" - ] - }, - "RequestBody": "", - "ResponseHeaders": { - "Transfer-Encoding": [ - "chunked" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "abbd0e45-ecd7-45dc-a9e3-f1ef67d7da68" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ], - "Date": [ - "Wed, 13 Nov 2024 21:27:15 GMT" - ], - "Content-Type": [ - "application/json; odata=minimalmetadata" - ] - }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#tasks\",\r\n \"value\": [\r\n {\r\n \"id\": \"testTask\",\r\n \"state\": \"active\"\r\n }\r\n ]\r\n}", - "StatusCode": 200 - }, - { - "RequestUri": "/jobs/listSubtaskJob/tasks?api-version=2024-02-01.19.0&$filter=id%20eq%20%27testTask%27&$select=id%2Cstate", - "EncodedRequestUri": "L2pvYnMvbGlzdFN1YnRhc2tKb2IvdGFza3M/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4wJiRmaWx0ZXI9aWQlMjBlcSUyMCUyN3Rlc3RUYXNrJTI3JiRzZWxlY3Q9aWQlMkNzdGF0ZQ==", - "RequestMethod": "GET", - "RequestHeaders": { "client-request-id": [ - "43dff443-8e4a-40d9-a6c5-147f8fae20d3" - ], - "Accept-Language": [ - "en-US" + "16274215-2527-4ef3-be5a-9f71e45f0daa" ], "ocp-date": [ - "Wed, 13 Nov 2024 21:27:18 GMT" + "Thu, 11 Sep 2025 22:43:38 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -767,7 +559,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "de75d224-edff-484c-8444-c273f59388d4" + "02dd9204-ed6c-4648-92a8-f1f494894de6" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -779,13 +571,13 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:27:18 GMT" + "Thu, 11 Sep 2025 22:43:38 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#tasks\",\r\n \"value\": [\r\n {\r\n \"id\": \"testTask\",\r\n \"state\": \"active\"\r\n }\r\n ]\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#tasks\",\r\n \"value\": [\r\n {\r\n \"id\": \"testTask\",\r\n \"state\": \"active\"\r\n }\r\n ]\r\n}", "StatusCode": 200 }, { @@ -793,71 +585,19 @@ "EncodedRequestUri": "L2pvYnMvbGlzdFN1YnRhc2tKb2IvdGFza3M/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4wJiRmaWx0ZXI9aWQlMjBlcSUyMCUyN3Rlc3RUYXNrJTI3JiRzZWxlY3Q9aWQlMkNzdGF0ZQ==", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "58e6d8c2-59f4-44fe-8b07-bb64a42bf4a8" - ], "Accept-Language": [ "en-US" ], - "ocp-date": [ - "Wed, 13 Nov 2024 21:27:20 GMT" - ], - "User-Agent": [ - "FxVersion/6.0.3524.45918", - "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", - "AzurePowershell/Az1.0.0" - ] - }, - "RequestBody": "", - "ResponseHeaders": { - "Transfer-Encoding": [ - "chunked" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "3d95f549-9175-4433-82d7-3ea23159967c" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ], - "Date": [ - "Wed, 13 Nov 2024 21:27:20 GMT" - ], - "Content-Type": [ - "application/json; odata=minimalmetadata" - ] - }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#tasks\",\r\n \"value\": [\r\n {\r\n \"id\": \"testTask\",\r\n \"state\": \"active\"\r\n }\r\n ]\r\n}", - "StatusCode": 200 - }, - { - "RequestUri": "/jobs/listSubtaskJob/tasks?api-version=2024-02-01.19.0&$filter=id%20eq%20%27testTask%27&$select=id%2Cstate", - "EncodedRequestUri": "L2pvYnMvbGlzdFN1YnRhc2tKb2IvdGFza3M/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4wJiRmaWx0ZXI9aWQlMjBlcSUyMCUyN3Rlc3RUYXNrJTI3JiRzZWxlY3Q9aWQlMkNzdGF0ZQ==", - "RequestMethod": "GET", - "RequestHeaders": { "client-request-id": [ - "79486550-a177-4f7a-9e97-aa9f457b6a57" - ], - "Accept-Language": [ - "en-US" + "36d6f0aa-ca12-44c8-bcee-607beb4cf397" ], "ocp-date": [ - "Wed, 13 Nov 2024 21:27:22 GMT" + "Thu, 11 Sep 2025 22:43:40 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -871,7 +611,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "b73f3ad7-3365-407c-a0b9-d34993bed11f" + "32fd6621-927c-4aaa-96e7-60def825e898" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -883,13 +623,13 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:27:22 GMT" + "Thu, 11 Sep 2025 22:43:40 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#tasks\",\r\n \"value\": [\r\n {\r\n \"id\": \"testTask\",\r\n \"state\": \"active\"\r\n }\r\n ]\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#tasks\",\r\n \"value\": [\r\n {\r\n \"id\": \"testTask\",\r\n \"state\": \"active\"\r\n }\r\n ]\r\n}", "StatusCode": 200 }, { @@ -897,71 +637,19 @@ "EncodedRequestUri": "L2pvYnMvbGlzdFN1YnRhc2tKb2IvdGFza3M/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4wJiRmaWx0ZXI9aWQlMjBlcSUyMCUyN3Rlc3RUYXNrJTI3JiRzZWxlY3Q9aWQlMkNzdGF0ZQ==", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "b81a8b8a-57ac-4bfb-a44f-09c7e9904cd2" - ], "Accept-Language": [ "en-US" ], - "ocp-date": [ - "Wed, 13 Nov 2024 21:27:24 GMT" - ], - "User-Agent": [ - "FxVersion/6.0.3524.45918", - "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", - "AzurePowershell/Az1.0.0" - ] - }, - "RequestBody": "", - "ResponseHeaders": { - "Transfer-Encoding": [ - "chunked" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "43896dbb-d781-44b4-b31a-3b725086d26e" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ], - "Date": [ - "Wed, 13 Nov 2024 21:27:24 GMT" - ], - "Content-Type": [ - "application/json; odata=minimalmetadata" - ] - }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#tasks\",\r\n \"value\": [\r\n {\r\n \"id\": \"testTask\",\r\n \"state\": \"active\"\r\n }\r\n ]\r\n}", - "StatusCode": 200 - }, - { - "RequestUri": "/jobs/listSubtaskJob/tasks?api-version=2024-02-01.19.0&$filter=id%20eq%20%27testTask%27&$select=id%2Cstate", - "EncodedRequestUri": "L2pvYnMvbGlzdFN1YnRhc2tKb2IvdGFza3M/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4wJiRmaWx0ZXI9aWQlMjBlcSUyMCUyN3Rlc3RUYXNrJTI3JiRzZWxlY3Q9aWQlMkNzdGF0ZQ==", - "RequestMethod": "GET", - "RequestHeaders": { "client-request-id": [ - "2f075a47-3149-4208-9b27-c60494065123" - ], - "Accept-Language": [ - "en-US" + "8197390e-38e4-46b5-b237-b04fcb650f09" ], "ocp-date": [ - "Wed, 13 Nov 2024 21:27:26 GMT" + "Thu, 11 Sep 2025 22:43:43 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -975,7 +663,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "b4bfaa8e-d7b3-40e5-836c-6ced9bed8e4c" + "632f4177-6e1d-4baa-b78d-89aa112971b9" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -987,13 +675,13 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:27:26 GMT" + "Thu, 11 Sep 2025 22:43:42 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#tasks\",\r\n \"value\": [\r\n {\r\n \"id\": \"testTask\",\r\n \"state\": \"active\"\r\n }\r\n ]\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#tasks\",\r\n \"value\": [\r\n {\r\n \"id\": \"testTask\",\r\n \"state\": \"active\"\r\n }\r\n ]\r\n}", "StatusCode": 200 }, { @@ -1001,71 +689,19 @@ "EncodedRequestUri": "L2pvYnMvbGlzdFN1YnRhc2tKb2IvdGFza3M/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4wJiRmaWx0ZXI9aWQlMjBlcSUyMCUyN3Rlc3RUYXNrJTI3JiRzZWxlY3Q9aWQlMkNzdGF0ZQ==", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "3c3b8d9d-d1dd-428f-847e-83bc90fa4bed" - ], "Accept-Language": [ "en-US" ], - "ocp-date": [ - "Wed, 13 Nov 2024 21:27:28 GMT" - ], - "User-Agent": [ - "FxVersion/6.0.3524.45918", - "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", - "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", - "AzurePowershell/Az1.0.0" - ] - }, - "RequestBody": "", - "ResponseHeaders": { - "Transfer-Encoding": [ - "chunked" - ], - "Server": [ - "Microsoft-HTTPAPI/2.0" - ], - "request-id": [ - "b4e31d12-895a-485a-9777-0f2d986b2bf9" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "DataServiceVersion": [ - "3.0" - ], - "Date": [ - "Wed, 13 Nov 2024 21:27:28 GMT" - ], - "Content-Type": [ - "application/json; odata=minimalmetadata" - ] - }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#tasks\",\r\n \"value\": [\r\n {\r\n \"id\": \"testTask\",\r\n \"state\": \"active\"\r\n }\r\n ]\r\n}", - "StatusCode": 200 - }, - { - "RequestUri": "/jobs/listSubtaskJob/tasks?api-version=2024-02-01.19.0&$filter=id%20eq%20%27testTask%27&$select=id%2Cstate", - "EncodedRequestUri": "L2pvYnMvbGlzdFN1YnRhc2tKb2IvdGFza3M/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4wJiRmaWx0ZXI9aWQlMjBlcSUyMCUyN3Rlc3RUYXNrJTI3JiRzZWxlY3Q9aWQlMkNzdGF0ZQ==", - "RequestMethod": "GET", - "RequestHeaders": { "client-request-id": [ - "38735bde-db38-460f-a67d-f21eac439b69" - ], - "Accept-Language": [ - "en-US" + "5494876c-e4bb-421b-9162-73b81c03ab9a" ], "ocp-date": [ - "Wed, 13 Nov 2024 21:27:31 GMT" + "Thu, 11 Sep 2025 22:43:45 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -1079,7 +715,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "0685791b-cffe-4bc6-aa1a-6ff988d9f089" + "bafa1e3a-ef65-4991-b383-cde4f4de4a2e" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -1091,13 +727,13 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:27:30 GMT" + "Thu, 11 Sep 2025 22:43:44 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#tasks\",\r\n \"value\": [\r\n {\r\n \"id\": \"testTask\",\r\n \"state\": \"active\"\r\n }\r\n ]\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#tasks\",\r\n \"value\": [\r\n {\r\n \"id\": \"testTask\",\r\n \"state\": \"active\"\r\n }\r\n ]\r\n}", "StatusCode": 200 }, { @@ -1105,19 +741,19 @@ "EncodedRequestUri": "L2pvYnMvbGlzdFN1YnRhc2tKb2IvdGFza3M/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4wJiRmaWx0ZXI9aWQlMjBlcSUyMCUyN3Rlc3RUYXNrJTI3JiRzZWxlY3Q9aWQlMkNzdGF0ZQ==", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "5074b8aa-8f32-4cb0-9c13-13a25e0a6d81" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "77cb5250-43d1-4dc6-abbc-b5c431c82227" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:27:33 GMT" + "Thu, 11 Sep 2025 22:43:47 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -1131,7 +767,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "52b8ac0d-4d5f-4f63-a0a5-284a155ad5a6" + "27b0420b-a377-49da-a988-83a0da1a4b29" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -1143,13 +779,13 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:27:32 GMT" + "Thu, 11 Sep 2025 22:43:47 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#tasks\",\r\n \"value\": [\r\n {\r\n \"id\": \"testTask\",\r\n \"state\": \"active\"\r\n }\r\n ]\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#tasks\",\r\n \"value\": [\r\n {\r\n \"id\": \"testTask\",\r\n \"state\": \"active\"\r\n }\r\n ]\r\n}", "StatusCode": 200 }, { @@ -1157,19 +793,19 @@ "EncodedRequestUri": "L2pvYnMvbGlzdFN1YnRhc2tKb2IvdGFza3M/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4wJiRmaWx0ZXI9aWQlMjBlcSUyMCUyN3Rlc3RUYXNrJTI3JiRzZWxlY3Q9aWQlMkNzdGF0ZQ==", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "e6148e4a-4f1c-4739-bf37-3ff71b1e59de" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "f0e77657-50a4-4e2c-b5ca-2808eb96ecfb" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:27:35 GMT" + "Thu, 11 Sep 2025 22:43:49 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -1183,7 +819,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "1221b046-8116-4f92-9129-a0dfa4451368" + "f9077d61-bc4d-4209-aac0-5a696a8512aa" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -1195,13 +831,13 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:27:34 GMT" + "Thu, 11 Sep 2025 22:43:49 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#tasks\",\r\n \"value\": [\r\n {\r\n \"id\": \"testTask\",\r\n \"state\": \"active\"\r\n }\r\n ]\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#tasks\",\r\n \"value\": [\r\n {\r\n \"id\": \"testTask\",\r\n \"state\": \"active\"\r\n }\r\n ]\r\n}", "StatusCode": 200 }, { @@ -1209,19 +845,19 @@ "EncodedRequestUri": "L2pvYnMvbGlzdFN1YnRhc2tKb2IvdGFza3M/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4wJiRmaWx0ZXI9aWQlMjBlcSUyMCUyN3Rlc3RUYXNrJTI3JiRzZWxlY3Q9aWQlMkNzdGF0ZQ==", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "155a64fa-cc64-4504-bb0a-5f93d4d7919e" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "ae9929ac-a3b1-45b3-91de-b944845ed275" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:27:37 GMT" + "Thu, 11 Sep 2025 22:43:51 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -1235,7 +871,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "b95597b3-18e5-4fe3-8679-6055e278d812" + "54118a2c-af05-4524-85bb-f1bb9fad5d83" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -1247,13 +883,13 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:27:37 GMT" + "Thu, 11 Sep 2025 22:43:51 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#tasks\",\r\n \"value\": [\r\n {\r\n \"id\": \"testTask\",\r\n \"state\": \"active\"\r\n }\r\n ]\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#tasks\",\r\n \"value\": [\r\n {\r\n \"id\": \"testTask\",\r\n \"state\": \"active\"\r\n }\r\n ]\r\n}", "StatusCode": 200 }, { @@ -1261,19 +897,19 @@ "EncodedRequestUri": "L2pvYnMvbGlzdFN1YnRhc2tKb2IvdGFza3M/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4wJiRmaWx0ZXI9aWQlMjBlcSUyMCUyN3Rlc3RUYXNrJTI3JiRzZWxlY3Q9aWQlMkNzdGF0ZQ==", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "76f4a161-41f1-42a6-aa04-de3e39295ba8" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "34423906-8868-4566-bdb4-84949677a33e" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:27:39 GMT" + "Thu, 11 Sep 2025 22:43:53 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -1287,7 +923,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "09952db1-957f-4e1b-9df6-b19543190ed9" + "98f136c7-9935-496e-9b5c-a89c3eb9ab05" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -1299,13 +935,13 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:27:39 GMT" + "Thu, 11 Sep 2025 22:43:53 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#tasks\",\r\n \"value\": [\r\n {\r\n \"id\": \"testTask\",\r\n \"state\": \"active\"\r\n }\r\n ]\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#tasks\",\r\n \"value\": [\r\n {\r\n \"id\": \"testTask\",\r\n \"state\": \"active\"\r\n }\r\n ]\r\n}", "StatusCode": 200 }, { @@ -1313,19 +949,19 @@ "EncodedRequestUri": "L2pvYnMvbGlzdFN1YnRhc2tKb2IvdGFza3M/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4wJiRmaWx0ZXI9aWQlMjBlcSUyMCUyN3Rlc3RUYXNrJTI3JiRzZWxlY3Q9aWQlMkNzdGF0ZQ==", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "96a2f310-09a1-4249-a4a0-5e9c32e26ce2" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "87eedf53-ddeb-47d3-b750-9eddfb1d5c08" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:27:41 GMT" + "Thu, 11 Sep 2025 22:43:56 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -1339,7 +975,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "05cdd9fd-f096-444a-999b-bcb0be5dd586" + "b08471bd-4d36-4d65-b4df-b443374c0505" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -1351,13 +987,13 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:27:41 GMT" + "Thu, 11 Sep 2025 22:43:56 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#tasks\",\r\n \"value\": [\r\n {\r\n \"id\": \"testTask\",\r\n \"state\": \"active\"\r\n }\r\n ]\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#tasks\",\r\n \"value\": [\r\n {\r\n \"id\": \"testTask\",\r\n \"state\": \"active\"\r\n }\r\n ]\r\n}", "StatusCode": 200 }, { @@ -1365,19 +1001,19 @@ "EncodedRequestUri": "L2pvYnMvbGlzdFN1YnRhc2tKb2IvdGFza3M/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4wJiRmaWx0ZXI9aWQlMjBlcSUyMCUyN3Rlc3RUYXNrJTI3JiRzZWxlY3Q9aWQlMkNzdGF0ZQ==", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "50170891-0e6a-4d64-bc21-65a59d01063b" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "ddbdfa2e-d5bc-45ba-b8bf-9d2d5b0aadaa" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:27:43 GMT" + "Thu, 11 Sep 2025 22:43:58 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -1391,7 +1027,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "c7216f61-68c8-4590-a4f3-c2b88535fddd" + "24a944bc-edb3-4551-8dcb-05690f20f44a" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -1403,13 +1039,13 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:27:43 GMT" + "Thu, 11 Sep 2025 22:43:58 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#tasks\",\r\n \"value\": [\r\n {\r\n \"id\": \"testTask\",\r\n \"state\": \"active\"\r\n }\r\n ]\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#tasks\",\r\n \"value\": [\r\n {\r\n \"id\": \"testTask\",\r\n \"state\": \"active\"\r\n }\r\n ]\r\n}", "StatusCode": 200 }, { @@ -1417,19 +1053,19 @@ "EncodedRequestUri": "L2pvYnMvbGlzdFN1YnRhc2tKb2IvdGFza3M/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4wJiRmaWx0ZXI9aWQlMjBlcSUyMCUyN3Rlc3RUYXNrJTI3JiRzZWxlY3Q9aWQlMkNzdGF0ZQ==", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "1bf346d7-0e6d-4161-8505-598c48693ade" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "933d6c29-0f93-4c3f-9807-5c65431d91ea" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:27:45 GMT" + "Thu, 11 Sep 2025 22:44:00 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -1443,7 +1079,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "b40d2d23-3c12-4ab4-822f-18c09a8d4bf8" + "2c000425-e764-43a9-b003-1c781acd6510" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -1455,13 +1091,13 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:27:45 GMT" + "Thu, 11 Sep 2025 22:44:00 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#tasks\",\r\n \"value\": [\r\n {\r\n \"id\": \"testTask\",\r\n \"state\": \"active\"\r\n }\r\n ]\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#tasks\",\r\n \"value\": [\r\n {\r\n \"id\": \"testTask\",\r\n \"state\": \"active\"\r\n }\r\n ]\r\n}", "StatusCode": 200 }, { @@ -1469,19 +1105,19 @@ "EncodedRequestUri": "L2pvYnMvbGlzdFN1YnRhc2tKb2IvdGFza3M/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4wJiRmaWx0ZXI9aWQlMjBlcSUyMCUyN3Rlc3RUYXNrJTI3JiRzZWxlY3Q9aWQlMkNzdGF0ZQ==", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "7000ec16-9c71-41ec-86c6-600569a89da6" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "4677521a-6c61-49b2-a511-21274c54bba2" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:27:47 GMT" + "Thu, 11 Sep 2025 22:44:02 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -1495,7 +1131,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "11b2cff0-f371-48c8-acd1-d8fd9c1d531c" + "42a44ed9-07ba-4744-be1e-bd2375a508b1" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -1507,13 +1143,13 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:27:47 GMT" + "Thu, 11 Sep 2025 22:44:01 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#tasks\",\r\n \"value\": [\r\n {\r\n \"id\": \"testTask\",\r\n \"state\": \"active\"\r\n }\r\n ]\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#tasks\",\r\n \"value\": [\r\n {\r\n \"id\": \"testTask\",\r\n \"state\": \"active\"\r\n }\r\n ]\r\n}", "StatusCode": 200 }, { @@ -1521,19 +1157,19 @@ "EncodedRequestUri": "L2pvYnMvbGlzdFN1YnRhc2tKb2IvdGFza3M/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4wJiRmaWx0ZXI9aWQlMjBlcSUyMCUyN3Rlc3RUYXNrJTI3JiRzZWxlY3Q9aWQlMkNzdGF0ZQ==", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "b4fcd90f-97da-441d-b138-8196925d8dd0" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "07570603-b55c-4a52-993d-77b420a0b13c" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:27:49 GMT" + "Thu, 11 Sep 2025 22:44:04 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -1547,7 +1183,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "e22b8494-8ddf-4a11-a614-fa6239b91b1f" + "4f28720a-4e24-45e6-acab-403d707c6713" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -1559,13 +1195,13 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:27:49 GMT" + "Thu, 11 Sep 2025 22:44:03 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#tasks\",\r\n \"value\": [\r\n {\r\n \"id\": \"testTask\",\r\n \"state\": \"active\"\r\n }\r\n ]\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#tasks\",\r\n \"value\": [\r\n {\r\n \"id\": \"testTask\",\r\n \"state\": \"active\"\r\n }\r\n ]\r\n}", "StatusCode": 200 }, { @@ -1573,19 +1209,19 @@ "EncodedRequestUri": "L2pvYnMvbGlzdFN1YnRhc2tKb2IvdGFza3M/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4wJiRmaWx0ZXI9aWQlMjBlcSUyMCUyN3Rlc3RUYXNrJTI3JiRzZWxlY3Q9aWQlMkNzdGF0ZQ==", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "7676266c-df95-4443-9dd2-d44d24f7eded" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "c01cb986-13de-4c53-a522-eee39f67e8f8" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:27:51 GMT" + "Thu, 11 Sep 2025 22:44:06 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -1599,7 +1235,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "5ba2e70b-ce46-4a4f-8b38-740a005b870d" + "cc378394-c5eb-4725-9bf2-7c8251c0c459" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -1611,13 +1247,13 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:27:51 GMT" + "Thu, 11 Sep 2025 22:44:06 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#tasks\",\r\n \"value\": [\r\n {\r\n \"id\": \"testTask\",\r\n \"state\": \"active\"\r\n }\r\n ]\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#tasks\",\r\n \"value\": [\r\n {\r\n \"id\": \"testTask\",\r\n \"state\": \"active\"\r\n }\r\n ]\r\n}", "StatusCode": 200 }, { @@ -1625,19 +1261,19 @@ "EncodedRequestUri": "L2pvYnMvbGlzdFN1YnRhc2tKb2IvdGFza3M/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4wJiRmaWx0ZXI9aWQlMjBlcSUyMCUyN3Rlc3RUYXNrJTI3JiRzZWxlY3Q9aWQlMkNzdGF0ZQ==", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "a0865ab4-1a56-463d-882a-e7c4cb0e7eb1" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "abf596af-8d89-439d-832b-c999f89c10ae" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:27:53 GMT" + "Thu, 11 Sep 2025 22:44:08 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -1651,7 +1287,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "287ef96e-987f-452b-8efd-abcca0d3594d" + "686e06e8-b1a5-4f05-9207-8f0d7264914f" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -1663,13 +1299,13 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:27:53 GMT" + "Thu, 11 Sep 2025 22:44:08 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#tasks\",\r\n \"value\": [\r\n {\r\n \"id\": \"testTask\",\r\n \"state\": \"active\"\r\n }\r\n ]\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#tasks\",\r\n \"value\": [\r\n {\r\n \"id\": \"testTask\",\r\n \"state\": \"active\"\r\n }\r\n ]\r\n}", "StatusCode": 200 }, { @@ -1677,19 +1313,19 @@ "EncodedRequestUri": "L2pvYnMvbGlzdFN1YnRhc2tKb2IvdGFza3M/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4wJiRmaWx0ZXI9aWQlMjBlcSUyMCUyN3Rlc3RUYXNrJTI3JiRzZWxlY3Q9aWQlMkNzdGF0ZQ==", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "515a17ea-f8a9-4a15-a765-bb7e6c5252e8" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "17c2317d-1c7f-400f-bb12-58b193dedf0e" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:27:55 GMT" + "Thu, 11 Sep 2025 22:44:11 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -1703,7 +1339,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "04452df8-b60d-49f8-a5d1-438f2cf0a857" + "0f8e9372-17a2-4126-b844-5dce969224d4" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -1715,13 +1351,13 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:27:55 GMT" + "Thu, 11 Sep 2025 22:44:10 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#tasks\",\r\n \"value\": [\r\n {\r\n \"id\": \"testTask\",\r\n \"state\": \"active\"\r\n }\r\n ]\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#tasks\",\r\n \"value\": [\r\n {\r\n \"id\": \"testTask\",\r\n \"state\": \"active\"\r\n }\r\n ]\r\n}", "StatusCode": 200 }, { @@ -1729,19 +1365,19 @@ "EncodedRequestUri": "L2pvYnMvbGlzdFN1YnRhc2tKb2IvdGFza3M/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4wJiRmaWx0ZXI9aWQlMjBlcSUyMCUyN3Rlc3RUYXNrJTI3JiRzZWxlY3Q9aWQlMkNzdGF0ZQ==", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "b31c2995-1855-4392-91e3-1ffcfd555dae" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "4189dc3d-2900-4100-99f8-727a58f9cdd3" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:27:57 GMT" + "Thu, 11 Sep 2025 22:44:13 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -1755,7 +1391,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "80b343d6-66c6-4ff0-93e3-28cfbb691260" + "b20b95fb-a67c-4b68-afb8-792e34e2553e" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -1767,13 +1403,13 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:27:57 GMT" + "Thu, 11 Sep 2025 22:44:13 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#tasks\",\r\n \"value\": [\r\n {\r\n \"id\": \"testTask\",\r\n \"state\": \"active\"\r\n }\r\n ]\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#tasks\",\r\n \"value\": [\r\n {\r\n \"id\": \"testTask\",\r\n \"state\": \"active\"\r\n }\r\n ]\r\n}", "StatusCode": 200 }, { @@ -1781,19 +1417,19 @@ "EncodedRequestUri": "L2pvYnMvbGlzdFN1YnRhc2tKb2IvdGFza3M/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4wJiRmaWx0ZXI9aWQlMjBlcSUyMCUyN3Rlc3RUYXNrJTI3JiRzZWxlY3Q9aWQlMkNzdGF0ZQ==", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "995c73fb-698a-4bf4-a447-ed4a972da0bb" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "38a4064f-99d9-436b-a284-56bae52bea90" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:27:59 GMT" + "Thu, 11 Sep 2025 22:44:15 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -1807,7 +1443,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "c0e54370-5058-4910-8386-c48b97af4376" + "18e50244-518c-4ff9-88b5-cb09ae72c1ce" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -1819,13 +1455,13 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:27:59 GMT" + "Thu, 11 Sep 2025 22:44:15 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#tasks\",\r\n \"value\": [\r\n {\r\n \"id\": \"testTask\",\r\n \"state\": \"active\"\r\n }\r\n ]\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#tasks\",\r\n \"value\": [\r\n {\r\n \"id\": \"testTask\",\r\n \"state\": \"active\"\r\n }\r\n ]\r\n}", "StatusCode": 200 }, { @@ -1833,19 +1469,19 @@ "EncodedRequestUri": "L2pvYnMvbGlzdFN1YnRhc2tKb2IvdGFza3M/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4wJiRmaWx0ZXI9aWQlMjBlcSUyMCUyN3Rlc3RUYXNrJTI3JiRzZWxlY3Q9aWQlMkNzdGF0ZQ==", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "a593cc47-a104-48a3-8352-1d214e0c1fdf" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "a76c782c-3b18-4cb2-a32e-41a4ce5d7571" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:28:01 GMT" + "Thu, 11 Sep 2025 22:44:17 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -1859,7 +1495,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "bdab972b-894c-48e7-bb14-0caf048e25c8" + "1aa5b8cf-834b-4267-872a-d823360f6d8f" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -1871,13 +1507,13 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:28:01 GMT" + "Thu, 11 Sep 2025 22:44:17 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#tasks\",\r\n \"value\": [\r\n {\r\n \"id\": \"testTask\",\r\n \"state\": \"active\"\r\n }\r\n ]\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#tasks\",\r\n \"value\": [\r\n {\r\n \"id\": \"testTask\",\r\n \"state\": \"active\"\r\n }\r\n ]\r\n}", "StatusCode": 200 }, { @@ -1885,19 +1521,19 @@ "EncodedRequestUri": "L2pvYnMvbGlzdFN1YnRhc2tKb2IvdGFza3M/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4wJiRmaWx0ZXI9aWQlMjBlcSUyMCUyN3Rlc3RUYXNrJTI3JiRzZWxlY3Q9aWQlMkNzdGF0ZQ==", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "8c139fc9-3f8e-4529-9f62-5e19bb73d5cd" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "48c48b54-4b8c-4397-82f0-7ec543ad4394" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:28:03 GMT" + "Thu, 11 Sep 2025 22:44:19 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -1911,7 +1547,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "b8bccecf-f8b4-4760-a4b9-e7c1b4cc726c" + "85fd2500-9be1-4671-ae30-018c3297abaa" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -1923,13 +1559,13 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:28:03 GMT" + "Thu, 11 Sep 2025 22:44:19 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#tasks\",\r\n \"value\": [\r\n {\r\n \"id\": \"testTask\",\r\n \"state\": \"active\"\r\n }\r\n ]\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#tasks\",\r\n \"value\": [\r\n {\r\n \"id\": \"testTask\",\r\n \"state\": \"active\"\r\n }\r\n ]\r\n}", "StatusCode": 200 }, { @@ -1937,19 +1573,19 @@ "EncodedRequestUri": "L2pvYnMvbGlzdFN1YnRhc2tKb2IvdGFza3M/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4wJiRmaWx0ZXI9aWQlMjBlcSUyMCUyN3Rlc3RUYXNrJTI3JiRzZWxlY3Q9aWQlMkNzdGF0ZQ==", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "74c54319-1725-4cce-800c-5ae50ac0fd4b" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "e5f43a63-d7df-4c08-8f23-f426905fb25a" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:28:05 GMT" + "Thu, 11 Sep 2025 22:44:21 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -1963,7 +1599,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "e7e80afc-1ff3-472d-aaa9-da4153297a55" + "7c91b3a1-7d1f-4885-ad0d-5c8b42b358ad" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -1975,13 +1611,13 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:28:05 GMT" + "Thu, 11 Sep 2025 22:44:21 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#tasks\",\r\n \"value\": [\r\n {\r\n \"id\": \"testTask\",\r\n \"state\": \"active\"\r\n }\r\n ]\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#tasks\",\r\n \"value\": [\r\n {\r\n \"id\": \"testTask\",\r\n \"state\": \"active\"\r\n }\r\n ]\r\n}", "StatusCode": 200 }, { @@ -1989,19 +1625,19 @@ "EncodedRequestUri": "L2pvYnMvbGlzdFN1YnRhc2tKb2IvdGFza3M/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4wJiRmaWx0ZXI9aWQlMjBlcSUyMCUyN3Rlc3RUYXNrJTI3JiRzZWxlY3Q9aWQlMkNzdGF0ZQ==", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "11608363-e04e-468c-9c8e-c9348b71688e" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "b66fc878-05b5-4aa8-9049-999901b4660c" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:28:07 GMT" + "Thu, 11 Sep 2025 22:44:24 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -2015,7 +1651,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "357be852-1ee1-4737-a1ce-9037ab4cab28" + "beaf7e90-b26a-47bb-b464-c222e57d4a92" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -2027,13 +1663,13 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:28:07 GMT" + "Thu, 11 Sep 2025 22:44:23 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#tasks\",\r\n \"value\": [\r\n {\r\n \"id\": \"testTask\",\r\n \"state\": \"active\"\r\n }\r\n ]\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#tasks\",\r\n \"value\": [\r\n {\r\n \"id\": \"testTask\",\r\n \"state\": \"active\"\r\n }\r\n ]\r\n}", "StatusCode": 200 }, { @@ -2041,19 +1677,19 @@ "EncodedRequestUri": "L2pvYnMvbGlzdFN1YnRhc2tKb2IvdGFza3M/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4wJiRmaWx0ZXI9aWQlMjBlcSUyMCUyN3Rlc3RUYXNrJTI3JiRzZWxlY3Q9aWQlMkNzdGF0ZQ==", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "dd67b97c-a0ac-43c6-82dd-4d130151b099" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "b8894567-ba64-420f-814d-9255cd10e46e" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:28:09 GMT" + "Thu, 11 Sep 2025 22:44:26 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -2067,7 +1703,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "b649b71e-ba5b-4357-9341-24ce3c241767" + "676a5938-70c6-4659-ad80-bae55bd01f61" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -2079,13 +1715,13 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:28:09 GMT" + "Thu, 11 Sep 2025 22:44:25 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#tasks\",\r\n \"value\": [\r\n {\r\n \"id\": \"testTask\",\r\n \"state\": \"active\"\r\n }\r\n ]\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#tasks\",\r\n \"value\": [\r\n {\r\n \"id\": \"testTask\",\r\n \"state\": \"active\"\r\n }\r\n ]\r\n}", "StatusCode": 200 }, { @@ -2093,19 +1729,19 @@ "EncodedRequestUri": "L2pvYnMvbGlzdFN1YnRhc2tKb2IvdGFza3M/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4wJiRmaWx0ZXI9aWQlMjBlcSUyMCUyN3Rlc3RUYXNrJTI3JiRzZWxlY3Q9aWQlMkNzdGF0ZQ==", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "d825352a-4e0f-4ce2-b80b-cd614fe5dc40" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "68f8bff0-fd4f-43c2-9d0e-a6cd36a87387" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:28:11 GMT" + "Thu, 11 Sep 2025 22:44:28 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -2119,7 +1755,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "4a1614a6-fe9f-4311-bbfc-85480451efd6" + "5ed2dd52-0532-46e0-b1db-ed8d568c5e56" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -2131,13 +1767,13 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:28:11 GMT" + "Thu, 11 Sep 2025 22:44:27 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#tasks\",\r\n \"value\": [\r\n {\r\n \"id\": \"testTask\",\r\n \"state\": \"active\"\r\n }\r\n ]\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#tasks\",\r\n \"value\": [\r\n {\r\n \"id\": \"testTask\",\r\n \"state\": \"active\"\r\n }\r\n ]\r\n}", "StatusCode": 200 }, { @@ -2145,19 +1781,19 @@ "EncodedRequestUri": "L2pvYnMvbGlzdFN1YnRhc2tKb2IvdGFza3M/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4wJiRmaWx0ZXI9aWQlMjBlcSUyMCUyN3Rlc3RUYXNrJTI3JiRzZWxlY3Q9aWQlMkNzdGF0ZQ==", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "9c226336-cbe1-410e-8f88-d986c56639f9" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "9ee68a0e-ba5a-4c69-a1b0-6b91b8b8d84c" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:28:13 GMT" + "Thu, 11 Sep 2025 22:44:30 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -2171,7 +1807,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "088d2c1b-9871-465c-8221-3d6efc197ac9" + "6e4b08e8-c4a9-4637-8dd8-adb6f0c5eb34" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -2183,13 +1819,13 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:28:13 GMT" + "Thu, 11 Sep 2025 22:44:29 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#tasks\",\r\n \"value\": [\r\n {\r\n \"id\": \"testTask\",\r\n \"state\": \"active\"\r\n }\r\n ]\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#tasks\",\r\n \"value\": [\r\n {\r\n \"id\": \"testTask\",\r\n \"state\": \"active\"\r\n }\r\n ]\r\n}", "StatusCode": 200 }, { @@ -2197,19 +1833,19 @@ "EncodedRequestUri": "L2pvYnMvbGlzdFN1YnRhc2tKb2IvdGFza3M/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4wJiRmaWx0ZXI9aWQlMjBlcSUyMCUyN3Rlc3RUYXNrJTI3JiRzZWxlY3Q9aWQlMkNzdGF0ZQ==", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "ae55d6d4-2ba3-4a7c-a06d-2ccb170aff68" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "ad9ca79e-d603-48ad-8e81-4c76447f0feb" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:28:15 GMT" + "Thu, 11 Sep 2025 22:44:32 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -2223,7 +1859,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "9095941c-b517-4513-8547-97172edb5266" + "fb30b96f-ae1d-4447-8b10-4ab6422d9812" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -2235,13 +1871,13 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:28:15 GMT" + "Thu, 11 Sep 2025 22:44:31 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#tasks\",\r\n \"value\": [\r\n {\r\n \"id\": \"testTask\",\r\n \"state\": \"active\"\r\n }\r\n ]\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#tasks\",\r\n \"value\": [\r\n {\r\n \"id\": \"testTask\",\r\n \"state\": \"active\"\r\n }\r\n ]\r\n}", "StatusCode": 200 }, { @@ -2249,19 +1885,19 @@ "EncodedRequestUri": "L2pvYnMvbGlzdFN1YnRhc2tKb2IvdGFza3M/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4wJiRmaWx0ZXI9aWQlMjBlcSUyMCUyN3Rlc3RUYXNrJTI3JiRzZWxlY3Q9aWQlMkNzdGF0ZQ==", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "86bb20e9-1a05-40c6-a2ae-0770374a6972" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "1db22d1c-7f4f-48fb-a348-af4ddfeb24cd" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:28:18 GMT" + "Thu, 11 Sep 2025 22:44:34 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -2275,7 +1911,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "fa8e628a-0f85-4a9c-be0e-72f42951d376" + "72d8d0f3-ccf7-42b7-af2a-2053a00bc14b" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -2287,13 +1923,13 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:28:17 GMT" + "Thu, 11 Sep 2025 22:44:34 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#tasks\",\r\n \"value\": [\r\n {\r\n \"id\": \"testTask\",\r\n \"state\": \"active\"\r\n }\r\n ]\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#tasks\",\r\n \"value\": [\r\n {\r\n \"id\": \"testTask\",\r\n \"state\": \"active\"\r\n }\r\n ]\r\n}", "StatusCode": 200 }, { @@ -2301,19 +1937,19 @@ "EncodedRequestUri": "L2pvYnMvbGlzdFN1YnRhc2tKb2IvdGFza3M/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4wJiRmaWx0ZXI9aWQlMjBlcSUyMCUyN3Rlc3RUYXNrJTI3JiRzZWxlY3Q9aWQlMkNzdGF0ZQ==", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "34d4af69-a981-4a65-abd3-11baf2eccd73" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "bd897b94-2485-4267-83dc-53fb48a2e5f1" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:28:20 GMT" + "Thu, 11 Sep 2025 22:44:36 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -2327,7 +1963,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "590a0e3d-ceae-4a28-856c-46fbc9efd2ac" + "b9c501fc-5f83-496b-9cde-feb329747ddc" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -2339,13 +1975,13 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:28:19 GMT" + "Thu, 11 Sep 2025 22:44:36 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#tasks\",\r\n \"value\": [\r\n {\r\n \"id\": \"testTask\",\r\n \"state\": \"active\"\r\n }\r\n ]\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#tasks\",\r\n \"value\": [\r\n {\r\n \"id\": \"testTask\",\r\n \"state\": \"active\"\r\n }\r\n ]\r\n}", "StatusCode": 200 }, { @@ -2353,19 +1989,19 @@ "EncodedRequestUri": "L2pvYnMvbGlzdFN1YnRhc2tKb2IvdGFza3M/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4wJiRmaWx0ZXI9aWQlMjBlcSUyMCUyN3Rlc3RUYXNrJTI3JiRzZWxlY3Q9aWQlMkNzdGF0ZQ==", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "e40304b4-3174-479f-bc3a-5a31f8c49d8f" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "5c0ae919-aa67-4424-9ee3-017cd1b44a5e" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:28:22 GMT" + "Thu, 11 Sep 2025 22:44:39 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -2379,7 +2015,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "725cd45d-a268-48b1-8ede-cf909d0be701" + "aabdb560-cb8d-40da-b355-5b8eb2657185" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -2391,13 +2027,13 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:28:21 GMT" + "Thu, 11 Sep 2025 22:44:39 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#tasks\",\r\n \"value\": [\r\n {\r\n \"id\": \"testTask\",\r\n \"state\": \"active\"\r\n }\r\n ]\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#tasks\",\r\n \"value\": [\r\n {\r\n \"id\": \"testTask\",\r\n \"state\": \"active\"\r\n }\r\n ]\r\n}", "StatusCode": 200 }, { @@ -2405,19 +2041,19 @@ "EncodedRequestUri": "L2pvYnMvbGlzdFN1YnRhc2tKb2IvdGFza3M/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4wJiRmaWx0ZXI9aWQlMjBlcSUyMCUyN3Rlc3RUYXNrJTI3JiRzZWxlY3Q9aWQlMkNzdGF0ZQ==", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "94109485-e0f9-4fe4-ae87-261400e5ed99" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "5634a9ec-784c-498a-aad0-222faf1b8d5a" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:28:24 GMT" + "Thu, 11 Sep 2025 22:44:41 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -2431,7 +2067,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "6dbcd4e8-2996-4ed0-beaa-5702e49724d7" + "2d59da2c-101f-453c-acc9-e8a0e87bc2b1" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -2443,13 +2079,13 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:28:23 GMT" + "Thu, 11 Sep 2025 22:44:41 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#tasks\",\r\n \"value\": [\r\n {\r\n \"id\": \"testTask\",\r\n \"state\": \"active\"\r\n }\r\n ]\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#tasks\",\r\n \"value\": [\r\n {\r\n \"id\": \"testTask\",\r\n \"state\": \"active\"\r\n }\r\n ]\r\n}", "StatusCode": 200 }, { @@ -2457,19 +2093,19 @@ "EncodedRequestUri": "L2pvYnMvbGlzdFN1YnRhc2tKb2IvdGFza3M/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4wJiRmaWx0ZXI9aWQlMjBlcSUyMCUyN3Rlc3RUYXNrJTI3JiRzZWxlY3Q9aWQlMkNzdGF0ZQ==", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "7cc97e50-8821-4ec1-a66f-c4b88c142d11" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "6175946e-78ad-4c9f-8b04-1fe5619e19bf" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:28:26 GMT" + "Thu, 11 Sep 2025 22:44:43 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -2483,7 +2119,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "3dc8807d-3d0d-42e8-a453-a97f4abd6950" + "35bf7713-3e60-4db3-9496-d6f35d346d47" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -2495,13 +2131,13 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:28:25 GMT" + "Thu, 11 Sep 2025 22:44:43 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#tasks\",\r\n \"value\": [\r\n {\r\n \"id\": \"testTask\",\r\n \"state\": \"active\"\r\n }\r\n ]\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#tasks\",\r\n \"value\": [\r\n {\r\n \"id\": \"testTask\",\r\n \"state\": \"active\"\r\n }\r\n ]\r\n}", "StatusCode": 200 }, { @@ -2509,19 +2145,19 @@ "EncodedRequestUri": "L2pvYnMvbGlzdFN1YnRhc2tKb2IvdGFza3M/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4wJiRmaWx0ZXI9aWQlMjBlcSUyMCUyN3Rlc3RUYXNrJTI3JiRzZWxlY3Q9aWQlMkNzdGF0ZQ==", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "31b10fa6-92fa-460e-8494-62d00d67bf6f" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "342e8eb6-c2c4-4394-9460-35c73bcd9276" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:28:28 GMT" + "Thu, 11 Sep 2025 22:44:45 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -2535,7 +2171,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "aa938de3-3d97-46bc-927f-e595d4e17bc0" + "8bb0364e-d0e5-4843-927d-a1a9345c5b5f" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -2547,13 +2183,13 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:28:27 GMT" + "Thu, 11 Sep 2025 22:44:45 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#tasks\",\r\n \"value\": [\r\n {\r\n \"id\": \"testTask\",\r\n \"state\": \"active\"\r\n }\r\n ]\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#tasks\",\r\n \"value\": [\r\n {\r\n \"id\": \"testTask\",\r\n \"state\": \"active\"\r\n }\r\n ]\r\n}", "StatusCode": 200 }, { @@ -2561,19 +2197,19 @@ "EncodedRequestUri": "L2pvYnMvbGlzdFN1YnRhc2tKb2IvdGFza3M/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4wJiRmaWx0ZXI9aWQlMjBlcSUyMCUyN3Rlc3RUYXNrJTI3JiRzZWxlY3Q9aWQlMkNzdGF0ZQ==", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "3ba6c4a1-34ac-4009-b0a9-44186230438d" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "f2a5040e-f118-420a-b682-482e5fb35980" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:28:30 GMT" + "Thu, 11 Sep 2025 22:44:47 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -2587,7 +2223,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "5680a140-494a-438c-872a-0b1a690ecbd1" + "4f4c97d8-ef29-488d-ab82-e206a94b9ae5" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -2599,13 +2235,13 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:28:29 GMT" + "Thu, 11 Sep 2025 22:44:47 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#tasks\",\r\n \"value\": [\r\n {\r\n \"id\": \"testTask\",\r\n \"state\": \"running\"\r\n }\r\n ]\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#tasks\",\r\n \"value\": [\r\n {\r\n \"id\": \"testTask\",\r\n \"state\": \"running\"\r\n }\r\n ]\r\n}", "StatusCode": 200 }, { @@ -2613,19 +2249,19 @@ "EncodedRequestUri": "L2pvYnMvbGlzdFN1YnRhc2tKb2IvdGFza3M/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4wJiRmaWx0ZXI9aWQlMjBlcSUyMCUyN3Rlc3RUYXNrJTI3JiRzZWxlY3Q9aWQlMkNzdGF0ZQ==", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "3a2c9392-a43c-49ae-bc5a-6fac3ad97698" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "02ae0812-d664-4917-a140-e936f0f7e09e" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:28:32 GMT" + "Thu, 11 Sep 2025 22:44:49 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -2639,7 +2275,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "dc648e30-fee8-42bd-861b-e78a7b3a896b" + "0b48e270-946a-4904-b971-19076537eaa6" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -2651,13 +2287,13 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:28:31 GMT" + "Thu, 11 Sep 2025 22:44:49 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#tasks\",\r\n \"value\": [\r\n {\r\n \"id\": \"testTask\",\r\n \"state\": \"completed\"\r\n }\r\n ]\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#tasks\",\r\n \"value\": [\r\n {\r\n \"id\": \"testTask\",\r\n \"state\": \"completed\"\r\n }\r\n ]\r\n}", "StatusCode": 200 }, { @@ -2665,22 +2301,22 @@ "EncodedRequestUri": "L2pvYnMvbGlzdFN1YnRhc2tKb2IvdGFza3MvdGVzdFRhc2svc3VidGFza3NpbmZvP2FwaS12ZXJzaW9uPTIwMjQtMDItMDEuMTkuMA==", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "bfc7b5c0-040b-45f4-a834-10b2b087f4d9" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "bfcf2832-10b6-4836-a593-a667a65f5e02" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:28:32 GMT" + "Thu, 11 Sep 2025 22:44:51 GMT" ], "x-ms-client-request-id": [ - "0086effe-0dab-42fb-90ad-2eec50bfaad4" + "727232f5-8aab-4be2-8175-3de9c82a2b5d" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -2694,7 +2330,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "ca67bd78-c613-4f69-a388-9929dc54eec2" + "c5aa8a0f-2955-4035-a0a3-a4136e2627a0" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -2706,13 +2342,13 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:28:33 GMT" + "Thu, 11 Sep 2025 22:44:50 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#subtaskinfo\",\r\n \"value\": [\r\n {\r\n \"id\": 1,\r\n \"startTime\": \"2024-11-13T21:28:28.959913Z\",\r\n \"endTime\": \"2024-11-13T21:28:30.571769Z\",\r\n \"state\": \"completed\",\r\n \"stateTransitionTime\": \"2024-11-13T21:28:30.571769Z\",\r\n \"previousState\": \"running\",\r\n \"previousStateTransitionTime\": \"2024-11-13T21:28:28.355894Z\",\r\n \"result\": \"success\",\r\n \"exitCode\": 0,\r\n \"nodeInfo\": {\r\n \"affinityId\": \"TVM:tvmps_ac1b1b44355a9c5a1dc848f8044068c9c3dfd8564fdd1281c476a12c58773f99_d\",\r\n \"nodeUrl\": \"https://dawatrouhobo.eastus2.batch.azure.com/pools/mpiPool/nodes/tvmps_ac1b1b44355a9c5a1dc848f8044068c9c3dfd8564fdd1281c476a12c58773f99_d\",\r\n \"poolId\": \"mpiPool\",\r\n \"nodeId\": \"tvmps_ac1b1b44355a9c5a1dc848f8044068c9c3dfd8564fdd1281c476a12c58773f99_d\",\r\n \"taskRootDirectory\": \"workitems/listSubtaskJob/job-1/testTask\",\r\n \"taskRootDirectoryUrl\": \"https://dawatrouhobo.eastus2.batch.azure.com/pools/mpiPool/nodes/tvmps_ac1b1b44355a9c5a1dc848f8044068c9c3dfd8564fdd1281c476a12c58773f99_d/files/workitems/listSubtaskJob/job-1/testTask\"\r\n }\r\n },\r\n {\r\n \"id\": 2,\r\n \"startTime\": \"2024-11-13T21:28:28.502318Z\",\r\n \"endTime\": \"2024-11-13T21:28:30.694816Z\",\r\n \"state\": \"completed\",\r\n \"stateTransitionTime\": \"2024-11-13T21:28:30.694816Z\",\r\n \"previousState\": \"running\",\r\n \"previousStateTransitionTime\": \"2024-11-13T21:28:28.358583Z\",\r\n \"result\": \"success\",\r\n \"exitCode\": 0,\r\n \"nodeInfo\": {\r\n \"affinityId\": \"TVM:tvmps_44cf82a9b584b57d7dae60febbba3d89b97848c439f57561e11512f706496dff_d\",\r\n \"nodeUrl\": \"https://dawatrouhobo.eastus2.batch.azure.com/pools/mpiPool/nodes/tvmps_44cf82a9b584b57d7dae60febbba3d89b97848c439f57561e11512f706496dff_d\",\r\n \"poolId\": \"mpiPool\",\r\n \"nodeId\": \"tvmps_44cf82a9b584b57d7dae60febbba3d89b97848c439f57561e11512f706496dff_d\",\r\n \"taskRootDirectory\": \"workitems/listSubtaskJob/job-1/testTask\",\r\n \"taskRootDirectoryUrl\": \"https://dawatrouhobo.eastus2.batch.azure.com/pools/mpiPool/nodes/tvmps_44cf82a9b584b57d7dae60febbba3d89b97848c439f57561e11512f706496dff_d/files/workitems/listSubtaskJob/job-1/testTask\"\r\n }\r\n }\r\n ]\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#subtaskinfo\",\r\n \"value\": [\r\n {\r\n \"id\": 1,\r\n \"startTime\": \"2025-09-11T22:44:46.48799Z\",\r\n \"endTime\": \"2025-09-11T22:44:48.562408Z\",\r\n \"state\": \"completed\",\r\n \"stateTransitionTime\": \"2025-09-11T22:44:48.562408Z\",\r\n \"previousState\": \"running\",\r\n \"previousStateTransitionTime\": \"2025-09-11T22:44:46.354484Z\",\r\n \"result\": \"success\",\r\n \"exitCode\": 0,\r\n \"nodeInfo\": {\r\n \"affinityId\": \"TVM:tvmps_77015d7ff81a4cca8cdfc5d0900844284b68a4bb33688737c081b3807ba7094b_d\",\r\n \"nodeUrl\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/mpiPool/nodes/tvmps_77015d7ff81a4cca8cdfc5d0900844284b68a4bb33688737c081b3807ba7094b_d\",\r\n \"poolId\": \"mpiPool\",\r\n \"nodeId\": \"tvmps_77015d7ff81a4cca8cdfc5d0900844284b68a4bb33688737c081b3807ba7094b_d\",\r\n \"taskRootDirectory\": \"workitems/listSubtaskJob/job-1/testTask\",\r\n \"taskRootDirectoryUrl\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/mpiPool/nodes/tvmps_77015d7ff81a4cca8cdfc5d0900844284b68a4bb33688737c081b3807ba7094b_d/files/workitems/listSubtaskJob/job-1/testTask\"\r\n }\r\n },\r\n {\r\n \"id\": 2,\r\n \"startTime\": \"2025-09-11T22:44:46.641104Z\",\r\n \"endTime\": \"2025-09-11T22:44:48.565941Z\",\r\n \"state\": \"completed\",\r\n \"stateTransitionTime\": \"2025-09-11T22:44:48.565941Z\",\r\n \"previousState\": \"running\",\r\n \"previousStateTransitionTime\": \"2025-09-11T22:44:46.35985Z\",\r\n \"result\": \"success\",\r\n \"exitCode\": 0,\r\n \"nodeInfo\": {\r\n \"affinityId\": \"TVM:tvmps_359f6cc561b9bc6011025adf9107df38bb417c27ac6fa22ded624fc0cfeae303_d\",\r\n \"nodeUrl\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/mpiPool/nodes/tvmps_359f6cc561b9bc6011025adf9107df38bb417c27ac6fa22ded624fc0cfeae303_d\",\r\n \"poolId\": \"mpiPool\",\r\n \"nodeId\": \"tvmps_359f6cc561b9bc6011025adf9107df38bb417c27ac6fa22ded624fc0cfeae303_d\",\r\n \"taskRootDirectory\": \"workitems/listSubtaskJob/job-1/testTask\",\r\n \"taskRootDirectoryUrl\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/mpiPool/nodes/tvmps_359f6cc561b9bc6011025adf9107df38bb417c27ac6fa22ded624fc0cfeae303_d/files/workitems/listSubtaskJob/job-1/testTask\"\r\n }\r\n }\r\n ]\r\n}", "StatusCode": 200 }, { @@ -2720,22 +2356,22 @@ "EncodedRequestUri": "L2pvYnMvbGlzdFN1YnRhc2tKb2IvdGFza3MvdGVzdFRhc2svc3VidGFza3NpbmZvP2FwaS12ZXJzaW9uPTIwMjQtMDItMDEuMTkuMA==", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "3a8d3e4a-c57a-4e2a-87c6-7e3171372f32" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "77c0ab2d-b0c5-4815-a93b-87e491d6063e" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:28:33 GMT" + "Thu, 11 Sep 2025 22:44:51 GMT" ], "x-ms-client-request-id": [ - "50b394ce-423d-4492-b61e-94d0f4363e4e" + "6c2e910b-5cb4-49f9-9310-dfb394f848e3" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -2749,7 +2385,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "90ceee03-e206-49e3-a9f8-5369305aa92f" + "799bbc45-7697-481f-bb7b-11c78093b850" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -2761,13 +2397,13 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:28:33 GMT" + "Thu, 11 Sep 2025 22:44:51 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#subtaskinfo\",\r\n \"value\": [\r\n {\r\n \"id\": 1,\r\n \"startTime\": \"2024-11-13T21:28:28.959913Z\",\r\n \"endTime\": \"2024-11-13T21:28:30.571769Z\",\r\n \"state\": \"completed\",\r\n \"stateTransitionTime\": \"2024-11-13T21:28:30.571769Z\",\r\n \"previousState\": \"running\",\r\n \"previousStateTransitionTime\": \"2024-11-13T21:28:28.355894Z\",\r\n \"result\": \"success\",\r\n \"exitCode\": 0,\r\n \"nodeInfo\": {\r\n \"affinityId\": \"TVM:tvmps_ac1b1b44355a9c5a1dc848f8044068c9c3dfd8564fdd1281c476a12c58773f99_d\",\r\n \"nodeUrl\": \"https://dawatrouhobo.eastus2.batch.azure.com/pools/mpiPool/nodes/tvmps_ac1b1b44355a9c5a1dc848f8044068c9c3dfd8564fdd1281c476a12c58773f99_d\",\r\n \"poolId\": \"mpiPool\",\r\n \"nodeId\": \"tvmps_ac1b1b44355a9c5a1dc848f8044068c9c3dfd8564fdd1281c476a12c58773f99_d\",\r\n \"taskRootDirectory\": \"workitems/listSubtaskJob/job-1/testTask\",\r\n \"taskRootDirectoryUrl\": \"https://dawatrouhobo.eastus2.batch.azure.com/pools/mpiPool/nodes/tvmps_ac1b1b44355a9c5a1dc848f8044068c9c3dfd8564fdd1281c476a12c58773f99_d/files/workitems/listSubtaskJob/job-1/testTask\"\r\n }\r\n },\r\n {\r\n \"id\": 2,\r\n \"startTime\": \"2024-11-13T21:28:28.502318Z\",\r\n \"endTime\": \"2024-11-13T21:28:30.694816Z\",\r\n \"state\": \"completed\",\r\n \"stateTransitionTime\": \"2024-11-13T21:28:30.694816Z\",\r\n \"previousState\": \"running\",\r\n \"previousStateTransitionTime\": \"2024-11-13T21:28:28.358583Z\",\r\n \"result\": \"success\",\r\n \"exitCode\": 0,\r\n \"nodeInfo\": {\r\n \"affinityId\": \"TVM:tvmps_44cf82a9b584b57d7dae60febbba3d89b97848c439f57561e11512f706496dff_d\",\r\n \"nodeUrl\": \"https://dawatrouhobo.eastus2.batch.azure.com/pools/mpiPool/nodes/tvmps_44cf82a9b584b57d7dae60febbba3d89b97848c439f57561e11512f706496dff_d\",\r\n \"poolId\": \"mpiPool\",\r\n \"nodeId\": \"tvmps_44cf82a9b584b57d7dae60febbba3d89b97848c439f57561e11512f706496dff_d\",\r\n \"taskRootDirectory\": \"workitems/listSubtaskJob/job-1/testTask\",\r\n \"taskRootDirectoryUrl\": \"https://dawatrouhobo.eastus2.batch.azure.com/pools/mpiPool/nodes/tvmps_44cf82a9b584b57d7dae60febbba3d89b97848c439f57561e11512f706496dff_d/files/workitems/listSubtaskJob/job-1/testTask\"\r\n }\r\n }\r\n ]\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#subtaskinfo\",\r\n \"value\": [\r\n {\r\n \"id\": 1,\r\n \"startTime\": \"2025-09-11T22:44:46.48799Z\",\r\n \"endTime\": \"2025-09-11T22:44:48.562408Z\",\r\n \"state\": \"completed\",\r\n \"stateTransitionTime\": \"2025-09-11T22:44:48.562408Z\",\r\n \"previousState\": \"running\",\r\n \"previousStateTransitionTime\": \"2025-09-11T22:44:46.354484Z\",\r\n \"result\": \"success\",\r\n \"exitCode\": 0,\r\n \"nodeInfo\": {\r\n \"affinityId\": \"TVM:tvmps_77015d7ff81a4cca8cdfc5d0900844284b68a4bb33688737c081b3807ba7094b_d\",\r\n \"nodeUrl\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/mpiPool/nodes/tvmps_77015d7ff81a4cca8cdfc5d0900844284b68a4bb33688737c081b3807ba7094b_d\",\r\n \"poolId\": \"mpiPool\",\r\n \"nodeId\": \"tvmps_77015d7ff81a4cca8cdfc5d0900844284b68a4bb33688737c081b3807ba7094b_d\",\r\n \"taskRootDirectory\": \"workitems/listSubtaskJob/job-1/testTask\",\r\n \"taskRootDirectoryUrl\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/mpiPool/nodes/tvmps_77015d7ff81a4cca8cdfc5d0900844284b68a4bb33688737c081b3807ba7094b_d/files/workitems/listSubtaskJob/job-1/testTask\"\r\n }\r\n },\r\n {\r\n \"id\": 2,\r\n \"startTime\": \"2025-09-11T22:44:46.641104Z\",\r\n \"endTime\": \"2025-09-11T22:44:48.565941Z\",\r\n \"state\": \"completed\",\r\n \"stateTransitionTime\": \"2025-09-11T22:44:48.565941Z\",\r\n \"previousState\": \"running\",\r\n \"previousStateTransitionTime\": \"2025-09-11T22:44:46.35985Z\",\r\n \"result\": \"success\",\r\n \"exitCode\": 0,\r\n \"nodeInfo\": {\r\n \"affinityId\": \"TVM:tvmps_359f6cc561b9bc6011025adf9107df38bb417c27ac6fa22ded624fc0cfeae303_d\",\r\n \"nodeUrl\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/mpiPool/nodes/tvmps_359f6cc561b9bc6011025adf9107df38bb417c27ac6fa22ded624fc0cfeae303_d\",\r\n \"poolId\": \"mpiPool\",\r\n \"nodeId\": \"tvmps_359f6cc561b9bc6011025adf9107df38bb417c27ac6fa22ded624fc0cfeae303_d\",\r\n \"taskRootDirectory\": \"workitems/listSubtaskJob/job-1/testTask\",\r\n \"taskRootDirectoryUrl\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/mpiPool/nodes/tvmps_359f6cc561b9bc6011025adf9107df38bb417c27ac6fa22ded624fc0cfeae303_d/files/workitems/listSubtaskJob/job-1/testTask\"\r\n }\r\n }\r\n ]\r\n}", "StatusCode": 200 }, { @@ -2775,19 +2411,19 @@ "EncodedRequestUri": "L2pvYnMvbGlzdFN1YnRhc2tKb2I/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4w", "RequestMethod": "DELETE", "RequestHeaders": { - "client-request-id": [ - "1221af28-6aaf-42f2-9319-2d95515a9045" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "cfbaa3c8-5191-4ca7-9caa-340e8741adfc" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:28:33 GMT" + "Thu, 11 Sep 2025 22:44:52 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ], @@ -2804,7 +2440,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "c520e855-fc11-47df-a1a2-523c3c482f73" + "f1473455-ce9e-44bf-a875-c8dc54455066" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -2816,7 +2452,7 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:28:32 GMT" + "Thu, 11 Sep 2025 22:44:51 GMT" ] }, "ResponseBody": "", @@ -2825,9 +2461,9 @@ ], "Names": {}, "Variables": { - "SubscriptionId": "21abd678-18c5-4660-9fdd-8c5ba6b6fe1f", - "AZURE_BATCH_ACCOUNT": "dawatrouhobo", - "AZURE_BATCH_ENDPOINT": "https://dawatrouhobo.eastus2.batch.azure.com", - "AZURE_BATCH_RESOURCE_GROUP": "dawatrou-rg" + "SubscriptionId": "94bd7ded-68b4-4ffa-82a5-37ac72caa2ec", + "AZURE_BATCH_ACCOUNT": "dotnotsdkbatchaccount2", + "AZURE_BATCH_ENDPOINT": "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com", + "AZURE_BATCH_RESOURCE_GROUP": "automation" } } \ No newline at end of file diff --git a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.TaskTests/TestTaskCRUD.json b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.TaskTests/TestTaskCRUD.json index 080ca75a961b..71dea79c051a 100644 --- a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.TaskTests/TestTaskCRUD.json +++ b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.TaskTests/TestTaskCRUD.json @@ -5,19 +5,19 @@ "EncodedRequestUri": "L2pvYnM/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4w", "RequestMethod": "POST", "RequestHeaders": { - "client-request-id": [ - "78ee65bd-2f91-4e41-ab9d-028f4b8a5a5a" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "49ddb8b7-3025-4940-9721-b0a8b95ca426" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:28:33 GMT" + "Thu, 11 Sep 2025 22:44:52 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ], @@ -34,16 +34,16 @@ "chunked" ], "ETag": [ - "0x8DD042A2095D9C0" + "0x8DDF184D29B20AC" ], "Location": [ - "https://dawatrouhobo.eastus2.batch.azure.com/jobs/job-1" + "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/jobs/job-1" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "71e336dc-aa77-4318-8286-c5c39fe4f4ab" + "60058ab9-9cd5-408e-bc49-7ebba0fd16af" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -55,13 +55,13 @@ "3.0" ], "DataServiceId": [ - "https://dawatrouhobo.eastus2.batch.azure.com/jobs/job-1" + "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/jobs/job-1" ], "Date": [ - "Wed, 13 Nov 2024 21:28:33 GMT" + "Thu, 11 Sep 2025 22:44:52 GMT" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:28:33 GMT" + "Thu, 11 Sep 2025 22:44:52 GMT" ] }, "ResponseBody": "", @@ -72,22 +72,22 @@ "EncodedRequestUri": "L2pvYnMvdGFza0NydWRKb2IvdGFza3M/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4w", "RequestMethod": "POST", "RequestHeaders": { - "client-request-id": [ - "62b00ae9-1c6a-435f-87ac-6ab81e239483" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "3d391e22-c1f1-4cee-8f88-983c0437fa23" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:28:34 GMT" + "Thu, 11 Sep 2025 22:44:54 GMT" ], "x-ms-client-request-id": [ - "dbd06710-b399-444b-bf6a-bf9b2811ade3" + "dee6c66e-96b1-4afc-93fb-c9303b5a2d40" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ], @@ -104,16 +104,16 @@ "chunked" ], "ETag": [ - "0x8DD042A2103398C" + "0x8DDF184D3B464D6" ], "Location": [ - "https://dawatrouhobo.eastus2.batch.azure.com/jobs/taskCrudJob/tasks/task1" + "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/jobs/taskCrudJob/tasks/task1" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "409dc1a1-630a-4ef3-a2c1-3fdef3cf8db7" + "d4f9ebf3-ff23-402e-84ce-df497d417446" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -125,13 +125,13 @@ "3.0" ], "DataServiceId": [ - "https://dawatrouhobo.eastus2.batch.azure.com/jobs/taskCrudJob/tasks/task1" + "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/jobs/taskCrudJob/tasks/task1" ], "Date": [ - "Wed, 13 Nov 2024 21:28:34 GMT" + "Thu, 11 Sep 2025 22:44:54 GMT" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:28:34 GMT" + "Thu, 11 Sep 2025 22:44:54 GMT" ] }, "ResponseBody": "", @@ -142,22 +142,22 @@ "EncodedRequestUri": "L2pvYnMvdGFza0NydWRKb2IvdGFza3M/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4w", "RequestMethod": "POST", "RequestHeaders": { - "client-request-id": [ - "257d4445-1104-4e8b-b201-de435137cb0e" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "ba9767d2-4dde-41b8-bf5c-87333f6fc779" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:28:34 GMT" + "Thu, 11 Sep 2025 22:44:54 GMT" ], "x-ms-client-request-id": [ - "7b398cdd-f94c-448a-9e30-7129a32a737b" + "97edc6a6-921d-4616-84b6-fa07ffee8016" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ], @@ -174,16 +174,16 @@ "chunked" ], "ETag": [ - "0x8DD042A210AB3A3" + "0x8DDF184D3C729A4" ], "Location": [ - "https://dawatrouhobo.eastus2.batch.azure.com/jobs/taskCrudJob/tasks/task2" + "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/jobs/taskCrudJob/tasks/task2" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "f4e3bd90-b3e3-4de4-b091-5db7867d4163" + "41a3a4a3-d433-4250-90bf-08b8321cc7a1" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -195,13 +195,13 @@ "3.0" ], "DataServiceId": [ - "https://dawatrouhobo.eastus2.batch.azure.com/jobs/taskCrudJob/tasks/task2" + "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/jobs/taskCrudJob/tasks/task2" ], "Date": [ - "Wed, 13 Nov 2024 21:28:34 GMT" + "Thu, 11 Sep 2025 22:44:54 GMT" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:28:34 GMT" + "Thu, 11 Sep 2025 22:44:54 GMT" ] }, "ResponseBody": "", @@ -212,22 +212,22 @@ "EncodedRequestUri": "L2pvYnMvdGFza0NydWRKb2IvdGFza3M/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4wJiRmaWx0ZXI9aWQlMjBlcSUyMCUyN3Rhc2sxJTI3JTIwb3IlMjBpZCUyMGVxJTIwJTI3dGFzazIlMjc=", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "bc575fda-a0d9-442b-8e45-d188eb556443" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "b59bc286-4feb-477e-948e-229a8772dc7d" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:28:34 GMT" + "Thu, 11 Sep 2025 22:44:54 GMT" ], "x-ms-client-request-id": [ - "075f4fe1-83f3-425c-8881-7db70d027069" + "86074d9b-f4eb-4aad-8207-cca050a68c7c" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -241,7 +241,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "b51536d5-b6c2-46d9-b638-d85edd84b65c" + "f15dd957-3b05-4044-aa53-072019bca518" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -253,13 +253,13 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:28:34 GMT" + "Thu, 11 Sep 2025 22:44:54 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#tasks\",\r\n \"value\": [\r\n {\r\n \"id\": \"task1\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/jobs/taskCrudJob/tasks/task1\",\r\n \"eTag\": \"0x8DD042A2103398C\",\r\n \"creationTime\": \"2024-11-13T21:28:34.5475468Z\",\r\n \"lastModified\": \"2024-11-13T21:28:34.5475468Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2024-11-13T21:28:34.5475468Z\",\r\n \"commandLine\": \"cmd /c echo task1\",\r\n \"userIdentity\": {\r\n \"autoUser\": {\r\n \"scope\": \"pool\",\r\n \"elevationLevel\": \"nonadmin\"\r\n }\r\n },\r\n \"constraints\": {\r\n \"maxWallClockTime\": \"P10675199DT2H48M5.4775807S\",\r\n \"retentionTime\": \"P7D\",\r\n \"maxTaskRetryCount\": 0\r\n },\r\n \"requiredSlots\": 1,\r\n \"executionInfo\": {\r\n \"retryCount\": 0,\r\n \"requeueCount\": 0\r\n }\r\n },\r\n {\r\n \"id\": \"task2\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/jobs/taskCrudJob/tasks/task2\",\r\n \"eTag\": \"0x8DD042A210AB3A3\",\r\n \"creationTime\": \"2024-11-13T21:28:34.5965475Z\",\r\n \"lastModified\": \"2024-11-13T21:28:34.5965475Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2024-11-13T21:28:34.5965475Z\",\r\n \"commandLine\": \"cmd /c echo task2\",\r\n \"userIdentity\": {\r\n \"autoUser\": {\r\n \"scope\": \"pool\",\r\n \"elevationLevel\": \"nonadmin\"\r\n }\r\n },\r\n \"constraints\": {\r\n \"maxWallClockTime\": \"P10675199DT2H48M5.4775807S\",\r\n \"retentionTime\": \"P7D\",\r\n \"maxTaskRetryCount\": 0\r\n },\r\n \"requiredSlots\": 1,\r\n \"executionInfo\": {\r\n \"retryCount\": 0,\r\n \"requeueCount\": 0\r\n }\r\n }\r\n ]\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#tasks\",\r\n \"value\": [\r\n {\r\n \"id\": \"task1\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/jobs/taskCrudJob/tasks/task1\",\r\n \"eTag\": \"0x8DDF184D3B464D6\",\r\n \"creationTime\": \"2025-09-11T22:44:54.6270422Z\",\r\n \"lastModified\": \"2025-09-11T22:44:54.6270422Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T22:44:54.6270422Z\",\r\n \"commandLine\": \"cmd /c echo task1\",\r\n \"userIdentity\": {\r\n \"autoUser\": {\r\n \"scope\": \"pool\",\r\n \"elevationLevel\": \"nonadmin\"\r\n }\r\n },\r\n \"constraints\": {\r\n \"maxWallClockTime\": \"P10675199DT2H48M5.4775807S\",\r\n \"retentionTime\": \"P7D\",\r\n \"maxTaskRetryCount\": 0\r\n },\r\n \"requiredSlots\": 1,\r\n \"executionInfo\": {\r\n \"retryCount\": 0,\r\n \"requeueCount\": 0\r\n }\r\n },\r\n {\r\n \"id\": \"task2\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/jobs/taskCrudJob/tasks/task2\",\r\n \"eTag\": \"0x8DDF184D3C729A4\",\r\n \"creationTime\": \"2025-09-11T22:44:54.7500452Z\",\r\n \"lastModified\": \"2025-09-11T22:44:54.7500452Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T22:44:54.7500452Z\",\r\n \"commandLine\": \"cmd /c echo task2\",\r\n \"userIdentity\": {\r\n \"autoUser\": {\r\n \"scope\": \"pool\",\r\n \"elevationLevel\": \"nonadmin\"\r\n }\r\n },\r\n \"constraints\": {\r\n \"maxWallClockTime\": \"P10675199DT2H48M5.4775807S\",\r\n \"retentionTime\": \"P7D\",\r\n \"maxTaskRetryCount\": 0\r\n },\r\n \"requiredSlots\": 1,\r\n \"executionInfo\": {\r\n \"retryCount\": 0,\r\n \"requeueCount\": 0\r\n }\r\n }\r\n ]\r\n}", "StatusCode": 200 }, { @@ -267,22 +267,22 @@ "EncodedRequestUri": "L2pvYnMvdGFza0NydWRKb2IvdGFza3MvdGFzazI/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4w", "RequestMethod": "PUT", "RequestHeaders": { - "client-request-id": [ - "7b3001f5-9014-4e5f-848e-bc77fff4bac5" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "5a52d3e8-f388-4730-8089-c53375f00776" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:28:34 GMT" + "Thu, 11 Sep 2025 22:44:54 GMT" ], "x-ms-client-request-id": [ - "c9570029-edc5-4677-a337-9dad76468c25" + "d6d26c91-e5f3-4541-997c-7d07fc7ab15a" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ], @@ -299,13 +299,13 @@ "chunked" ], "ETag": [ - "0x8DD042A212281A5" + "0x8DDF184D3FF9F1E" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "3eb6d406-09c3-4714-9934-346f1c79d9ed" + "ad6e9ccc-a5d4-4ec5-95fc-3cf308d6904b" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -317,13 +317,13 @@ "3.0" ], "DataServiceId": [ - "https://dawatrouhobo.eastus2.batch.azure.com/jobs/taskCrudJob/tasks/task2" + "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/jobs/taskCrudJob/tasks/task2" ], "Date": [ - "Wed, 13 Nov 2024 21:28:34 GMT" + "Thu, 11 Sep 2025 22:44:54 GMT" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:28:34 GMT" + "Thu, 11 Sep 2025 22:44:55 GMT" ] }, "ResponseBody": "", @@ -334,22 +334,22 @@ "EncodedRequestUri": "L2pvYnMvdGFza0NydWRKb2IvdGFza3MvdGFzazI/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4w", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "93e7de81-63da-4da1-9921-ce0d1efc7cdf" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "fbce844e-e99d-4633-87b6-a53df9ae780d" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:28:34 GMT" + "Thu, 11 Sep 2025 22:44:55 GMT" ], "x-ms-client-request-id": [ - "d1054604-ecb8-4117-9627-c77c3b682bca" + "10c79bbc-1abd-49bf-ba6a-d9aea1ff7220" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -360,13 +360,13 @@ "chunked" ], "ETag": [ - "0x8DD042A212281A5" + "0x8DDF184D3FF9F1E" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "688113cd-baff-4e1f-9698-d025a25939fa" + "39711c54-890d-41ad-b936-73f252c7749f" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -378,16 +378,16 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:28:34 GMT" + "Thu, 11 Sep 2025 22:44:54 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:28:34 GMT" + "Thu, 11 Sep 2025 22:44:55 GMT" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#tasks/@Element\",\r\n \"id\": \"task2\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/jobs/taskCrudJob/tasks/task2\",\r\n \"eTag\": \"0x8DD042A212281A5\",\r\n \"creationTime\": \"2024-11-13T21:28:34.5965475Z\",\r\n \"lastModified\": \"2024-11-13T21:28:34.7525541Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2024-11-13T21:28:34.5965475Z\",\r\n \"commandLine\": \"cmd /c echo task2\",\r\n \"userIdentity\": {\r\n \"autoUser\": {\r\n \"scope\": \"pool\",\r\n \"elevationLevel\": \"nonadmin\"\r\n }\r\n },\r\n \"constraints\": {\r\n \"maxWallClockTime\": \"P10675199DT2H48M5.4775807S\",\r\n \"retentionTime\": \"P7D\",\r\n \"maxTaskRetryCount\": 3\r\n },\r\n \"requiredSlots\": 1,\r\n \"executionInfo\": {\r\n \"retryCount\": 0,\r\n \"requeueCount\": 0\r\n }\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#tasks/@Element\",\r\n \"id\": \"task2\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/jobs/taskCrudJob/tasks/task2\",\r\n \"eTag\": \"0x8DDF184D3FF9F1E\",\r\n \"creationTime\": \"2025-09-11T22:44:54.7500452Z\",\r\n \"lastModified\": \"2025-09-11T22:44:55.1200542Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T22:44:54.7500452Z\",\r\n \"commandLine\": \"cmd /c echo task2\",\r\n \"userIdentity\": {\r\n \"autoUser\": {\r\n \"scope\": \"pool\",\r\n \"elevationLevel\": \"nonadmin\"\r\n }\r\n },\r\n \"constraints\": {\r\n \"maxWallClockTime\": \"P10675199DT2H48M5.4775807S\",\r\n \"retentionTime\": \"P7D\",\r\n \"maxTaskRetryCount\": 3\r\n },\r\n \"requiredSlots\": 1,\r\n \"executionInfo\": {\r\n \"retryCount\": 0,\r\n \"requeueCount\": 0\r\n }\r\n}", "StatusCode": 200 }, { @@ -395,22 +395,22 @@ "EncodedRequestUri": "L2pvYnMvdGFza0NydWRKb2IvdGFza3M/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4w", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "435c6724-9684-4766-97a5-8d885754b7cd" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "b6790b37-5387-4929-82d2-38a04493879d" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:28:34 GMT" + "Thu, 11 Sep 2025 22:44:55 GMT" ], "x-ms-client-request-id": [ - "b761a0f8-c4ed-4303-9144-ab2775fd1f5d" + "3bc38225-eb68-4584-ab92-4b66296ab25e" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -424,7 +424,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "36c62dd8-15a9-4be3-a2f5-9a3a0c3046f4" + "c7470539-3f49-42b7-8812-e4b86aaa1f98" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -436,13 +436,13 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:28:34 GMT" + "Thu, 11 Sep 2025 22:44:55 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#tasks\",\r\n \"value\": [\r\n {\r\n \"id\": \"task1\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/jobs/taskCrudJob/tasks/task1\",\r\n \"eTag\": \"0x8DD042A2103398C\",\r\n \"creationTime\": \"2024-11-13T21:28:34.5475468Z\",\r\n \"lastModified\": \"2024-11-13T21:28:34.5475468Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2024-11-13T21:28:34.5475468Z\",\r\n \"commandLine\": \"cmd /c echo task1\",\r\n \"userIdentity\": {\r\n \"autoUser\": {\r\n \"scope\": \"pool\",\r\n \"elevationLevel\": \"nonadmin\"\r\n }\r\n },\r\n \"constraints\": {\r\n \"maxWallClockTime\": \"P10675199DT2H48M5.4775807S\",\r\n \"retentionTime\": \"P7D\",\r\n \"maxTaskRetryCount\": 0\r\n },\r\n \"requiredSlots\": 1,\r\n \"executionInfo\": {\r\n \"retryCount\": 0,\r\n \"requeueCount\": 0\r\n }\r\n },\r\n {\r\n \"id\": \"task2\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/jobs/taskCrudJob/tasks/task2\",\r\n \"eTag\": \"0x8DD042A212281A5\",\r\n \"creationTime\": \"2024-11-13T21:28:34.5965475Z\",\r\n \"lastModified\": \"2024-11-13T21:28:34.7525541Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2024-11-13T21:28:34.5965475Z\",\r\n \"commandLine\": \"cmd /c echo task2\",\r\n \"userIdentity\": {\r\n \"autoUser\": {\r\n \"scope\": \"pool\",\r\n \"elevationLevel\": \"nonadmin\"\r\n }\r\n },\r\n \"constraints\": {\r\n \"maxWallClockTime\": \"P10675199DT2H48M5.4775807S\",\r\n \"retentionTime\": \"P7D\",\r\n \"maxTaskRetryCount\": 3\r\n },\r\n \"requiredSlots\": 1,\r\n \"executionInfo\": {\r\n \"retryCount\": 0,\r\n \"requeueCount\": 0\r\n }\r\n }\r\n ]\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#tasks\",\r\n \"value\": [\r\n {\r\n \"id\": \"task1\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/jobs/taskCrudJob/tasks/task1\",\r\n \"eTag\": \"0x8DDF184D3B464D6\",\r\n \"creationTime\": \"2025-09-11T22:44:54.6270422Z\",\r\n \"lastModified\": \"2025-09-11T22:44:54.6270422Z\",\r\n \"state\": \"running\",\r\n \"stateTransitionTime\": \"2025-09-11T22:44:55.366169Z\",\r\n \"previousState\": \"active\",\r\n \"previousStateTransitionTime\": \"2025-09-11T22:44:55.361741Z\",\r\n \"commandLine\": \"cmd /c echo task1\",\r\n \"userIdentity\": {\r\n \"autoUser\": {\r\n \"scope\": \"pool\",\r\n \"elevationLevel\": \"nonadmin\"\r\n }\r\n },\r\n \"constraints\": {\r\n \"maxWallClockTime\": \"P10675199DT2H48M5.4775807S\",\r\n \"retentionTime\": \"P7D\",\r\n \"maxTaskRetryCount\": 0\r\n },\r\n \"requiredSlots\": 1,\r\n \"executionInfo\": {\r\n \"startTime\": \"2025-09-11T22:44:55.416505Z\",\r\n \"retryCount\": 0,\r\n \"requeueCount\": 0\r\n },\r\n \"nodeInfo\": {\r\n \"affinityId\": \"TVM:tvmps_ef974a4cefe8a237a9dc7cf2cbf765f76346c8065fafa6271263c28d8b238917_d\",\r\n \"nodeUrl\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/testPool/nodes/tvmps_ef974a4cefe8a237a9dc7cf2cbf765f76346c8065fafa6271263c28d8b238917_d\",\r\n \"poolId\": \"testPool\",\r\n \"nodeId\": \"tvmps_ef974a4cefe8a237a9dc7cf2cbf765f76346c8065fafa6271263c28d8b238917_d\",\r\n \"taskRootDirectory\": \"workitems/taskCrudJob/job-1/task1\",\r\n \"taskRootDirectoryUrl\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/testPool/nodes/tvmps_ef974a4cefe8a237a9dc7cf2cbf765f76346c8065fafa6271263c28d8b238917_d/files/workitems/taskCrudJob/job-1/task1\"\r\n }\r\n },\r\n {\r\n \"id\": \"task2\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/jobs/taskCrudJob/tasks/task2\",\r\n \"eTag\": \"0x8DDF184D3FF9F1E\",\r\n \"creationTime\": \"2025-09-11T22:44:54.7500452Z\",\r\n \"lastModified\": \"2025-09-11T22:44:55.1200542Z\",\r\n \"state\": \"completed\",\r\n \"stateTransitionTime\": \"2025-09-11T22:44:55.42102Z\",\r\n \"previousState\": \"running\",\r\n \"previousStateTransitionTime\": \"2025-09-11T22:44:55.356427Z\",\r\n \"commandLine\": \"cmd /c echo task2\",\r\n \"userIdentity\": {\r\n \"autoUser\": {\r\n \"scope\": \"pool\",\r\n \"elevationLevel\": \"nonadmin\"\r\n }\r\n },\r\n \"constraints\": {\r\n \"maxWallClockTime\": \"P10675199DT2H48M5.4775807S\",\r\n \"retentionTime\": \"P7D\",\r\n \"maxTaskRetryCount\": 3\r\n },\r\n \"requiredSlots\": 1,\r\n \"executionInfo\": {\r\n \"startTime\": \"2025-09-11T22:44:55.392016Z\",\r\n \"endTime\": \"2025-09-11T22:44:55.42102Z\",\r\n \"failureInfo\": {\r\n \"category\": \"UserError\",\r\n \"code\": \"CommandProgramNotFound\",\r\n \"message\": \"The specified command program is not found\",\r\n \"details\": [\r\n {\r\n \"name\": \"Message\",\r\n \"value\": \"The system cannot find the file specified\"\r\n }\r\n ]\r\n },\r\n \"result\": \"failure\",\r\n \"retryCount\": 0,\r\n \"requeueCount\": 0\r\n },\r\n \"nodeInfo\": {\r\n \"affinityId\": \"TVM:tvmps_ec02487f4e9df2914a26f230a475308f989a9e2102790e02e3dca3cc12969bec_d\",\r\n \"nodeUrl\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/testPool/nodes/tvmps_ec02487f4e9df2914a26f230a475308f989a9e2102790e02e3dca3cc12969bec_d\",\r\n \"poolId\": \"testPool\",\r\n \"nodeId\": \"tvmps_ec02487f4e9df2914a26f230a475308f989a9e2102790e02e3dca3cc12969bec_d\",\r\n \"taskRootDirectory\": \"workitems/taskCrudJob/job-1/task2\",\r\n \"taskRootDirectoryUrl\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/testPool/nodes/tvmps_ec02487f4e9df2914a26f230a475308f989a9e2102790e02e3dca3cc12969bec_d/files/workitems/taskCrudJob/job-1/task2\"\r\n }\r\n }\r\n ]\r\n}", "StatusCode": 200 }, { @@ -450,22 +450,22 @@ "EncodedRequestUri": "L2pvYnMvdGFza0NydWRKb2IvdGFza3M/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4w", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "33ff663a-3fe3-4153-8fd9-939aba3abf5e" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "6a8b8689-b68c-448a-bdfd-d0f572f0520b" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:28:35 GMT" + "Thu, 11 Sep 2025 22:44:55 GMT" ], "x-ms-client-request-id": [ - "ed8ad0d8-8830-43ec-8acb-4d8caaf44628" + "ae84f462-08d1-439a-9b94-bfecb7850783" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -479,7 +479,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "b7e808c9-c56a-49d9-b1ba-98c9a0cbf3c1" + "2e633a8f-c504-4499-8d8e-0a68e9eda3ca" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -491,13 +491,13 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:28:35 GMT" + "Thu, 11 Sep 2025 22:44:55 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#tasks\",\r\n \"value\": []\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#tasks\",\r\n \"value\": []\r\n}", "StatusCode": 200 }, { @@ -505,22 +505,22 @@ "EncodedRequestUri": "L2pvYnMvdGFza0NydWRKb2IvdGFza3MvdGFzazE/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4w", "RequestMethod": "DELETE", "RequestHeaders": { - "client-request-id": [ - "1e0b4417-76df-400c-9314-5fdc91742045" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "3e77147a-81e5-4e37-ad32-4f9e3a930f6b" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:28:34 GMT" + "Thu, 11 Sep 2025 22:44:55 GMT" ], "x-ms-client-request-id": [ - "b761a0f8-c4ed-4303-9144-ab2775fd1f5d" + "3bc38225-eb68-4584-ab92-4b66296ab25e" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ], @@ -537,7 +537,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "e00cac1a-9182-4894-98cf-9db9c4f741b0" + "87dae0fb-78eb-4d60-9e26-a58d5f94f61e" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -549,7 +549,7 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:28:34 GMT" + "Thu, 11 Sep 2025 22:44:55 GMT" ] }, "ResponseBody": "", @@ -560,22 +560,22 @@ "EncodedRequestUri": "L2pvYnMvdGFza0NydWRKb2IvdGFza3MvdGFzazI/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4w", "RequestMethod": "DELETE", "RequestHeaders": { - "client-request-id": [ - "fd0af0ef-8e41-486e-8dba-67db506d9159" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "a44ff70e-68d9-4d7f-a273-6226cb0f3cb8" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:28:35 GMT" + "Thu, 11 Sep 2025 22:44:55 GMT" ], "x-ms-client-request-id": [ - "b761a0f8-c4ed-4303-9144-ab2775fd1f5d" + "3bc38225-eb68-4584-ab92-4b66296ab25e" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ], @@ -592,7 +592,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "a5c12fa1-b681-4946-97f7-39f202ad775b" + "7f48388d-d22c-4366-a468-2877ca1aca2a" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -604,7 +604,7 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:28:35 GMT" + "Thu, 11 Sep 2025 22:44:55 GMT" ] }, "ResponseBody": "", @@ -615,19 +615,19 @@ "EncodedRequestUri": "L2pvYnMvdGFza0NydWRKb2I/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4w", "RequestMethod": "DELETE", "RequestHeaders": { - "client-request-id": [ - "9600e1a6-3678-4481-9b7e-ca63e8a5b32a" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "d3324e5a-f2e4-40da-b200-eacb49f09588" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:28:35 GMT" + "Thu, 11 Sep 2025 22:44:56 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ], @@ -644,7 +644,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "ce4d40d6-3ce4-4a43-a6c2-4b206ec9ea90" + "5be6cf99-c028-4b22-bd9f-ea2ede335280" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -656,7 +656,7 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:28:35 GMT" + "Thu, 11 Sep 2025 22:44:55 GMT" ] }, "ResponseBody": "", @@ -665,9 +665,9 @@ ], "Names": {}, "Variables": { - "SubscriptionId": "21abd678-18c5-4660-9fdd-8c5ba6b6fe1f", - "AZURE_BATCH_ACCOUNT": "dawatrouhobo", - "AZURE_BATCH_ENDPOINT": "https://dawatrouhobo.eastus2.batch.azure.com", - "AZURE_BATCH_RESOURCE_GROUP": "dawatrou-rg" + "SubscriptionId": "94bd7ded-68b4-4ffa-82a5-37ac72caa2ec", + "AZURE_BATCH_ACCOUNT": "dotnotsdkbatchaccount2", + "AZURE_BATCH_ENDPOINT": "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com", + "AZURE_BATCH_RESOURCE_GROUP": "automation" } } \ No newline at end of file diff --git a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.TaskTests/TestTerminateTask.json b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.TaskTests/TestTerminateTask.json index 750ab67eb7a7..e0b18375e702 100644 --- a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.TaskTests/TestTerminateTask.json +++ b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.TaskTests/TestTerminateTask.json @@ -5,19 +5,19 @@ "EncodedRequestUri": "L2pvYnM/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4w", "RequestMethod": "POST", "RequestHeaders": { - "client-request-id": [ - "129ca13c-c944-4a4c-93a9-b54df0fc6805" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "ad1966b8-94fd-4a81-9e80-5735a81310ea" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:28:35 GMT" + "Thu, 11 Sep 2025 23:26:20 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ], @@ -34,16 +34,16 @@ "chunked" ], "ETag": [ - "0x8DD042A2183C41C" + "0x8DDF18A9DC31AC5" ], "Location": [ - "https://dawatrouhobo.eastus2.batch.azure.com/jobs/job-1" + "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/jobs/job-1" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "5d22a8df-0253-40d0-a715-0a85d56b1ab2" + "e189538d-5b83-4327-80e8-105664360f33" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -55,13 +55,13 @@ "3.0" ], "DataServiceId": [ - "https://dawatrouhobo.eastus2.batch.azure.com/jobs/job-1" + "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/jobs/job-1" ], "Date": [ - "Wed, 13 Nov 2024 21:28:34 GMT" + "Thu, 11 Sep 2025 23:26:21 GMT" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:28:35 GMT" + "Thu, 11 Sep 2025 23:26:21 GMT" ] }, "ResponseBody": "", @@ -72,19 +72,19 @@ "EncodedRequestUri": "L2pvYnMvdGVzdFRlcm1pbmF0ZVRhc2tKb2IvdGFza3M/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4w", "RequestMethod": "POST", "RequestHeaders": { - "client-request-id": [ - "635417b2-5594-417b-bbcc-c6e91d227dc2" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "f51c05e4-931a-4752-a802-8a0722955977" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:28:35 GMT" + "Thu, 11 Sep 2025 23:27:17 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ], @@ -101,16 +101,16 @@ "chunked" ], "ETag": [ - "0x8DD042A218AAD3C" + "0x8DDF18ABFB978ED" ], "Location": [ - "https://dawatrouhobo.eastus2.batch.azure.com/jobs/testTerminateTaskJob/tasks/testTask1" + "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/jobs/testTerminateTaskJob/tasks/testTask1" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "ef6d1ca6-9ecc-4197-83cd-82f9852c2621" + "92d8e47b-af9f-458c-85c9-f847ad3a1569" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -122,13 +122,13 @@ "3.0" ], "DataServiceId": [ - "https://dawatrouhobo.eastus2.batch.azure.com/jobs/testTerminateTaskJob/tasks/testTask1" + "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/jobs/testTerminateTaskJob/tasks/testTask1" ], "Date": [ - "Wed, 13 Nov 2024 21:28:34 GMT" + "Thu, 11 Sep 2025 23:27:17 GMT" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:28:35 GMT" + "Thu, 11 Sep 2025 23:27:18 GMT" ] }, "ResponseBody": "", @@ -139,19 +139,19 @@ "EncodedRequestUri": "L2pvYnMvdGVzdFRlcm1pbmF0ZVRhc2tKb2IvdGFza3M/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4w", "RequestMethod": "POST", "RequestHeaders": { - "client-request-id": [ - "648fcaea-6c85-44d8-bb14-0fe35f02a813" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "4ab1cd24-400e-41ec-8c2c-dcbd370206d2" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:28:35 GMT" + "Thu, 11 Sep 2025 23:27:18 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ], @@ -168,16 +168,16 @@ "chunked" ], "ETag": [ - "0x8DD042A2191B233" + "0x8DDF18ABFD11FE9" ], "Location": [ - "https://dawatrouhobo.eastus2.batch.azure.com/jobs/testTerminateTaskJob/tasks/testTask2" + "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/jobs/testTerminateTaskJob/tasks/testTask2" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "473fed09-4ad8-4899-a9b7-238c3d52531a" + "910f7938-9956-4b45-9b1c-c6aa7a3bed0b" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -189,13 +189,13 @@ "3.0" ], "DataServiceId": [ - "https://dawatrouhobo.eastus2.batch.azure.com/jobs/testTerminateTaskJob/tasks/testTask2" + "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/jobs/testTerminateTaskJob/tasks/testTask2" ], "Date": [ - "Wed, 13 Nov 2024 21:28:34 GMT" + "Thu, 11 Sep 2025 23:27:18 GMT" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:28:35 GMT" + "Thu, 11 Sep 2025 23:27:18 GMT" ] }, "ResponseBody": "", @@ -206,22 +206,22 @@ "EncodedRequestUri": "L2pvYnMvdGVzdFRlcm1pbmF0ZVRhc2tKb2IvdGFza3MvdGVzdFRhc2sxL3Rlcm1pbmF0ZT9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjA=", "RequestMethod": "POST", "RequestHeaders": { - "client-request-id": [ - "df32d530-cf57-4bca-b076-5e44cf5cc4be" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "8f7f20a7-dfd8-48fa-bb41-7dda8b8844a6" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:28:35 GMT" + "Thu, 11 Sep 2025 23:28:04 GMT" ], "x-ms-client-request-id": [ - "9c0ab4f0-d345-4780-9f76-434ed649c2b1" + "62bb03bc-e90f-4d42-9b9d-29826727497c" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ], @@ -232,13 +232,13 @@ "RequestBody": "", "ResponseHeaders": { "ETag": [ - "0x8DD042A21F4002D" + "0x8DDF18ADB726886" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "2ce46a0a-cbe3-4aec-88a6-06cdd867199f" + "6063a69a-28d3-44a8-a492-e919535a13c3" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -250,16 +250,16 @@ "3.0" ], "DataServiceId": [ - "https://dawatrouhobo.eastus2.batch.azure.com/jobs/testTerminateTaskJob/tasks/testTask1/terminate" + "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/jobs/testTerminateTaskJob/tasks/testTask1/terminate" ], "Date": [ - "Wed, 13 Nov 2024 21:28:35 GMT" + "Thu, 11 Sep 2025 23:28:03 GMT" ], "Content-Length": [ "0" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:28:36 GMT" + "Thu, 11 Sep 2025 23:28:04 GMT" ] }, "ResponseBody": "", @@ -270,22 +270,22 @@ "EncodedRequestUri": "L2pvYnMvdGVzdFRlcm1pbmF0ZVRhc2tKb2IvdGFza3MvdGVzdFRhc2syP2FwaS12ZXJzaW9uPTIwMjQtMDItMDEuMTkuMA==", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "3352554b-a901-4408-b721-4084074a7618" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "c4d63533-7d85-441f-83a6-c8ab62a2db89" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:28:36 GMT" + "Thu, 11 Sep 2025 23:28:04 GMT" ], "x-ms-client-request-id": [ - "79675963-148c-4c75-b9b3-6f1ad0eb84f6" + "93dee005-bbfc-4f11-9a9c-8c747ea01fa3" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -296,13 +296,13 @@ "chunked" ], "ETag": [ - "0x8DD042A2191B233" + "0x8DDF18ABFD11FE9" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "0064d85c-f3d3-4ddc-b21d-4a2978448cc5" + "fad67635-c1d2-4255-98fc-16a34dee947e" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -314,16 +314,16 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:28:35 GMT" + "Thu, 11 Sep 2025 23:28:04 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:28:35 GMT" + "Thu, 11 Sep 2025 23:27:18 GMT" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#tasks/@Element\",\r\n \"id\": \"testTask2\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/jobs/testTerminateTaskJob/tasks/testTask2\",\r\n \"eTag\": \"0x8DD042A2191B233\",\r\n \"creationTime\": \"2024-11-13T21:28:35.4812467Z\",\r\n \"lastModified\": \"2024-11-13T21:28:35.4812467Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2024-11-13T21:28:35.4812467Z\",\r\n \"commandLine\": \"ping -t localhost -w 60\",\r\n \"userIdentity\": {\r\n \"autoUser\": {\r\n \"scope\": \"task\",\r\n \"elevationLevel\": \"admin\"\r\n }\r\n },\r\n \"constraints\": {\r\n \"maxWallClockTime\": \"P10675199DT2H48M5.4775807S\",\r\n \"retentionTime\": \"P7D\",\r\n \"maxTaskRetryCount\": 0\r\n },\r\n \"requiredSlots\": 1,\r\n \"executionInfo\": {\r\n \"retryCount\": 0,\r\n \"requeueCount\": 0\r\n }\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#tasks/@Element\",\r\n \"id\": \"testTask2\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/jobs/testTerminateTaskJob/tasks/testTask2\",\r\n \"eTag\": \"0x8DDF18ABFD11FE9\",\r\n \"creationTime\": \"2025-09-11T23:27:18.2412777Z\",\r\n \"lastModified\": \"2025-09-11T23:27:18.2412777Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T23:27:18.2412777Z\",\r\n \"commandLine\": \"ping -t localhost -w 60\",\r\n \"userIdentity\": {\r\n \"autoUser\": {\r\n \"scope\": \"task\",\r\n \"elevationLevel\": \"admin\"\r\n }\r\n },\r\n \"constraints\": {\r\n \"maxWallClockTime\": \"P10675199DT2H48M5.4775807S\",\r\n \"retentionTime\": \"P7D\",\r\n \"maxTaskRetryCount\": 0\r\n },\r\n \"requiredSlots\": 1,\r\n \"executionInfo\": {\r\n \"retryCount\": 0,\r\n \"requeueCount\": 0\r\n }\r\n}", "StatusCode": 200 }, { @@ -331,22 +331,22 @@ "EncodedRequestUri": "L2pvYnMvdGVzdFRlcm1pbmF0ZVRhc2tKb2IvdGFza3MvdGVzdFRhc2syL3Rlcm1pbmF0ZT9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjA=", "RequestMethod": "POST", "RequestHeaders": { - "client-request-id": [ - "35298d58-680a-4c8c-a21e-55c59d8e4666" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "8a1fee17-a9a7-48bf-9fba-99ca94af3dac" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:28:36 GMT" + "Thu, 11 Sep 2025 23:28:05 GMT" ], "x-ms-client-request-id": [ - "79675963-148c-4c75-b9b3-6f1ad0eb84f6" + "93dee005-bbfc-4f11-9a9c-8c747ea01fa3" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ], @@ -357,13 +357,13 @@ "RequestBody": "", "ResponseHeaders": { "ETag": [ - "0x8DD042A220601A0" + "0x8DDF18ADBE61AE1" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "4e6eca64-7a78-4167-8be5-863ba23cceb8" + "d8071f16-a2da-4a88-ae21-4f4e7cc55c69" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -375,16 +375,16 @@ "3.0" ], "DataServiceId": [ - "https://dawatrouhobo.eastus2.batch.azure.com/jobs/testTerminateTaskJob/tasks/testTask2/terminate" + "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/jobs/testTerminateTaskJob/tasks/testTask2/terminate" ], "Date": [ - "Wed, 13 Nov 2024 21:28:35 GMT" + "Thu, 11 Sep 2025 23:28:04 GMT" ], "Content-Length": [ "0" ], "Last-Modified": [ - "Wed, 13 Nov 2024 21:28:36 GMT" + "Thu, 11 Sep 2025 23:28:05 GMT" ] }, "ResponseBody": "", @@ -395,22 +395,22 @@ "EncodedRequestUri": "L2pvYnMvdGVzdFRlcm1pbmF0ZVRhc2tKb2IvdGFza3M/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4w", "RequestMethod": "GET", "RequestHeaders": { - "client-request-id": [ - "02c3be96-bb09-4bba-b357-699bdb3524ba" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "0bb9be16-41fd-41cc-a3f8-f9e2dcfec2e5" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:28:36 GMT" + "Thu, 11 Sep 2025 23:28:05 GMT" ], "x-ms-client-request-id": [ - "2bbfee78-e7d8-4887-aed4-c0054e1c6a1e" + "0440d7fb-9fae-4c03-8295-954f399c7b37" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ] @@ -424,7 +424,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "ea01dec1-0579-42e3-aa4a-160e3f1f914c" + "e2cb7186-56c6-4323-94f4-c1f1be1c7c6d" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -436,13 +436,13 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:28:35 GMT" + "Thu, 11 Sep 2025 23:28:05 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dawatrouhobo.eastus2.batch.azure.com/$metadata#tasks\",\r\n \"value\": [\r\n {\r\n \"id\": \"testTask1\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/jobs/testTerminateTaskJob/tasks/testTask1\",\r\n \"eTag\": \"0x8DD042A21F4002D\",\r\n \"creationTime\": \"2024-11-13T21:28:35.4352444Z\",\r\n \"lastModified\": \"2024-11-13T21:28:36.1254957Z\",\r\n \"state\": \"completed\",\r\n \"stateTransitionTime\": \"2024-11-13T21:28:36.1254957Z\",\r\n \"previousState\": \"active\",\r\n \"previousStateTransitionTime\": \"2024-11-13T21:28:35.4352444Z\",\r\n \"commandLine\": \"ping -t localhost -w 60\",\r\n \"userIdentity\": {\r\n \"autoUser\": {\r\n \"scope\": \"task\",\r\n \"elevationLevel\": \"admin\"\r\n }\r\n },\r\n \"constraints\": {\r\n \"maxWallClockTime\": \"P10675199DT2H48M5.4775807S\",\r\n \"retentionTime\": \"P7D\",\r\n \"maxTaskRetryCount\": 0\r\n },\r\n \"requiredSlots\": 1,\r\n \"executionInfo\": {\r\n \"endTime\": \"2024-11-13T21:28:36.1254957Z\",\r\n \"failureInfo\": {\r\n \"category\": \"UserError\",\r\n \"code\": \"TaskEnded\",\r\n \"message\": \"Task Was Ended by User Request\"\r\n },\r\n \"result\": \"failure\",\r\n \"retryCount\": 0,\r\n \"requeueCount\": 0\r\n },\r\n \"nodeInfo\": {}\r\n },\r\n {\r\n \"id\": \"testTask2\",\r\n \"url\": \"https://dawatrouhobo.eastus2.batch.azure.com/jobs/testTerminateTaskJob/tasks/testTask2\",\r\n \"eTag\": \"0x8DD042A220601A0\",\r\n \"creationTime\": \"2024-11-13T21:28:35.4812467Z\",\r\n \"lastModified\": \"2024-11-13T21:28:36.2434976Z\",\r\n \"state\": \"completed\",\r\n \"stateTransitionTime\": \"2024-11-13T21:28:36.2434976Z\",\r\n \"previousState\": \"active\",\r\n \"previousStateTransitionTime\": \"2024-11-13T21:28:35.4812467Z\",\r\n \"commandLine\": \"ping -t localhost -w 60\",\r\n \"userIdentity\": {\r\n \"autoUser\": {\r\n \"scope\": \"task\",\r\n \"elevationLevel\": \"admin\"\r\n }\r\n },\r\n \"constraints\": {\r\n \"maxWallClockTime\": \"P10675199DT2H48M5.4775807S\",\r\n \"retentionTime\": \"P7D\",\r\n \"maxTaskRetryCount\": 0\r\n },\r\n \"requiredSlots\": 1,\r\n \"executionInfo\": {\r\n \"endTime\": \"2024-11-13T21:28:36.2434976Z\",\r\n \"failureInfo\": {\r\n \"category\": \"UserError\",\r\n \"code\": \"TaskEnded\",\r\n \"message\": \"Task Was Ended by User Request\"\r\n },\r\n \"result\": \"failure\",\r\n \"retryCount\": 0,\r\n \"requeueCount\": 0\r\n },\r\n \"nodeInfo\": {}\r\n }\r\n ]\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#tasks\",\r\n \"value\": [\r\n {\r\n \"id\": \"testTask1\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/jobs/testTerminateTaskJob/tasks/testTask1\",\r\n \"eTag\": \"0x8DDF18ADB726886\",\r\n \"creationTime\": \"2025-09-11T23:27:18.0862701Z\",\r\n \"lastModified\": \"2025-09-11T23:28:04.5967494Z\",\r\n \"state\": \"completed\",\r\n \"stateTransitionTime\": \"2025-09-11T23:28:04.5967494Z\",\r\n \"previousState\": \"active\",\r\n \"previousStateTransitionTime\": \"2025-09-11T23:27:18.0862701Z\",\r\n \"commandLine\": \"ping -t localhost -w 60\",\r\n \"userIdentity\": {\r\n \"autoUser\": {\r\n \"scope\": \"task\",\r\n \"elevationLevel\": \"admin\"\r\n }\r\n },\r\n \"constraints\": {\r\n \"maxWallClockTime\": \"P10675199DT2H48M5.4775807S\",\r\n \"retentionTime\": \"P7D\",\r\n \"maxTaskRetryCount\": 0\r\n },\r\n \"requiredSlots\": 1,\r\n \"executionInfo\": {\r\n \"endTime\": \"2025-09-11T23:28:04.5967494Z\",\r\n \"failureInfo\": {\r\n \"category\": \"UserError\",\r\n \"code\": \"TaskEnded\",\r\n \"message\": \"Task Was Ended by User Request\"\r\n },\r\n \"result\": \"failure\",\r\n \"retryCount\": 0,\r\n \"requeueCount\": 0\r\n },\r\n \"nodeInfo\": {}\r\n },\r\n {\r\n \"id\": \"testTask2\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/jobs/testTerminateTaskJob/tasks/testTask2\",\r\n \"eTag\": \"0x8DDF18ADBE61AE1\",\r\n \"creationTime\": \"2025-09-11T23:27:18.2412777Z\",\r\n \"lastModified\": \"2025-09-11T23:28:05.3549793Z\",\r\n \"state\": \"completed\",\r\n \"stateTransitionTime\": \"2025-09-11T23:28:05.3549793Z\",\r\n \"previousState\": \"active\",\r\n \"previousStateTransitionTime\": \"2025-09-11T23:27:18.2412777Z\",\r\n \"commandLine\": \"ping -t localhost -w 60\",\r\n \"userIdentity\": {\r\n \"autoUser\": {\r\n \"scope\": \"task\",\r\n \"elevationLevel\": \"admin\"\r\n }\r\n },\r\n \"constraints\": {\r\n \"maxWallClockTime\": \"P10675199DT2H48M5.4775807S\",\r\n \"retentionTime\": \"P7D\",\r\n \"maxTaskRetryCount\": 0\r\n },\r\n \"requiredSlots\": 1,\r\n \"executionInfo\": {\r\n \"endTime\": \"2025-09-11T23:28:05.3549793Z\",\r\n \"failureInfo\": {\r\n \"category\": \"UserError\",\r\n \"code\": \"TaskEnded\",\r\n \"message\": \"Task Was Ended by User Request\"\r\n },\r\n \"result\": \"failure\",\r\n \"retryCount\": 0,\r\n \"requeueCount\": 0\r\n },\r\n \"nodeInfo\": {}\r\n }\r\n ]\r\n}", "StatusCode": 200 }, { @@ -450,19 +450,19 @@ "EncodedRequestUri": "L2pvYnMvdGVzdFRlcm1pbmF0ZVRhc2tKb2I/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4w", "RequestMethod": "DELETE", "RequestHeaders": { - "client-request-id": [ - "82c64fc3-dbbd-4abd-b0ea-fe61ea4a6402" - ], "Accept-Language": [ "en-US" ], + "client-request-id": [ + "849f932c-935c-4122-9c54-f1c8db693d1f" + ], "ocp-date": [ - "Wed, 13 Nov 2024 21:28:36 GMT" + "Thu, 11 Sep 2025 23:28:05 GMT" ], "User-Agent": [ - "FxVersion/6.0.3524.45918", + "FxVersion/8.0.2025.41914", "OSName/Windows", - "OSVersion/Microsoft.Windows.10.0.26120", + "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", "AzurePowershell/Az1.0.0" ], @@ -479,7 +479,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "804dcb4a-7cd4-4a78-b7fd-763a1f9b3264" + "7d52d4ff-d3f0-44e1-b725-b741c3c45a09" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -491,7 +491,7 @@ "3.0" ], "Date": [ - "Wed, 13 Nov 2024 21:28:35 GMT" + "Thu, 11 Sep 2025 23:28:05 GMT" ] }, "ResponseBody": "", @@ -500,9 +500,9 @@ ], "Names": {}, "Variables": { - "SubscriptionId": "21abd678-18c5-4660-9fdd-8c5ba6b6fe1f", - "AZURE_BATCH_ACCOUNT": "dawatrouhobo", - "AZURE_BATCH_ENDPOINT": "https://dawatrouhobo.eastus2.batch.azure.com", - "AZURE_BATCH_RESOURCE_GROUP": "dawatrou-rg" + "SubscriptionId": "94bd7ded-68b4-4ffa-82a5-37ac72caa2ec", + "AZURE_BATCH_ACCOUNT": "dotnotsdkbatchaccount2", + "AZURE_BATCH_ENDPOINT": "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com", + "AZURE_BATCH_RESOURCE_GROUP": "automation" } } \ No newline at end of file From 36774f8b03581bef9fb78b22e87546919c0eba70 Mon Sep 17 00:00:00 2001 From: "REDMOND\\wiboris" Date: Fri, 12 Sep 2025 13:33:27 -0700 Subject: [PATCH 04/13] batch managmeent 2023-11-01 generation --- .../Generated/BatchManagementClient.cs | 2 +- .../Generated/Models/AuthenticationMode.cs | 2 +- .../Models/BatchAccountCreateParameters.cs | 11 ++- .../Models/BatchAccountCreateProperties.cs | 11 ++- .../Generated/Models/DataDisk.cs | 4 +- .../Models/DiskEncryptionConfiguration.cs | 2 +- .../Generated/Models/ImageReference.cs | 10 +-- .../Generated/Models/ManagedDisk.cs | 46 +++++++++++ .../Generated/Models/OSDisk.cs | 44 ++++++++++- .../Generated/Models/Pool.cs | 21 ++++- .../Generated/Models/PoolProperties.cs | 21 ++++- .../Generated/Models/SecurityProfile.cs | 79 +++++++++++++++++++ .../Generated/Models/SecurityTypes.cs | 48 +++++++++++ .../Models/ServiceArtifactReference.cs | 66 ++++++++++++++++ .../Generated/Models/StartTask.cs | 4 +- .../Generated/Models/StorageAccountType.cs | 15 +++- .../Generated/Models/UefiSettings.cs | 61 ++++++++++++++ .../Models/VirtualMachineConfiguration.cs | 31 +++++++- src/Batch/Batch.Management.Sdk/README.md | 4 +- .../TestBatchAccountEndToEnd.json | 34 ++++---- ...stCreateNewBatchAccountWithNoPublicIp.json | 6 +- ...eateNewBatchAccountWithSystemIdentity.json | 6 +- .../TestCreatePoolWithApplicationPackage.json | 10 +-- .../TestUpdateApplicationPackage.json | 16 ++-- .../TestUpdatePoolWithApplicationPackage.json | 10 +-- .../TestUploadApplicationPackage.json | 10 +-- .../TestAddApplication.json | 6 +- .../TestGetLocationQuotas.json | 2 +- 28 files changed, 499 insertions(+), 83 deletions(-) create mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/ManagedDisk.cs create mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/SecurityProfile.cs create mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/SecurityTypes.cs create mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/ServiceArtifactReference.cs create mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/UefiSettings.cs diff --git a/src/Batch/Batch.Management.Sdk/Generated/BatchManagementClient.cs b/src/Batch/Batch.Management.Sdk/Generated/BatchManagementClient.cs index 3d57bf515bd5..be58b6296d8c 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/BatchManagementClient.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/BatchManagementClient.cs @@ -345,7 +345,7 @@ private void Initialize() this.PrivateEndpointConnection = new PrivateEndpointConnectionOperations(this); this.Pool = new PoolOperations(this); this.BaseUri = new System.Uri("https://management.azure.com"); - this.ApiVersion = "2023-05-01"; + this.ApiVersion = "2023-11-01"; this.AcceptLanguage = "en-US"; this.LongRunningOperationRetryTimeout = 30; this.GenerateClientRequestId = true; diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/AuthenticationMode.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/AuthenticationMode.cs index 558bda075764..c58b2c4916f7 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/AuthenticationMode.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/AuthenticationMode.cs @@ -20,7 +20,7 @@ public enum AuthenticationMode [System.Runtime.Serialization.EnumMember(Value = "SharedKey")] SharedKey, /// - /// The authentication mode using Azure Active Directory. + /// The authentication mode using Microsoft Entra ID. /// [System.Runtime.Serialization.EnumMember(Value = "AAD")] AAD, diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/BatchAccountCreateParameters.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/BatchAccountCreateParameters.cs index 783f56b8fd8d..96694e1519fb 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/BatchAccountCreateParameters.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/BatchAccountCreateParameters.cs @@ -42,9 +42,8 @@ public BatchAccountCreateParameters() /// The pool allocation mode also affects how clients may authenticate to the /// Batch Service API. If the mode is BatchService, clients may authenticate - /// using access keys or Azure Active Directory. If the mode is - /// UserSubscription, clients must use Azure Active Directory. The default is - /// BatchService. + /// using access keys or Microsoft Entra ID. If the mode is UserSubscription, + /// clients must use Microsoft Entra ID. The default is BatchService. /// Possible values include: 'BatchService', 'UserSubscription' /// A reference to the Azure key vault associated with the Batch account. @@ -118,9 +117,9 @@ public BatchAccountCreateParameters() /// /// Gets or sets the pool allocation mode also affects how clients may /// authenticate to the Batch Service API. If the mode is BatchService, clients - /// may authenticate using access keys or Azure Active Directory. If the mode - /// is UserSubscription, clients must use Azure Active Directory. The default - /// is BatchService. Possible values include: 'BatchService', 'UserSubscription' + /// may authenticate using access keys or Microsoft Entra ID. If the mode is + /// UserSubscription, clients must use Microsoft Entra ID. The default is + /// BatchService. Possible values include: 'BatchService', 'UserSubscription' /// [Newtonsoft.Json.JsonProperty(PropertyName = "properties.poolAllocationMode")] public PoolAllocationMode? PoolAllocationMode {get; set; } diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/BatchAccountCreateProperties.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/BatchAccountCreateProperties.cs index df5d35605c39..c15d7a2bec1d 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/BatchAccountCreateProperties.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/BatchAccountCreateProperties.cs @@ -29,9 +29,8 @@ public BatchAccountCreateProperties() /// The pool allocation mode also affects how clients may authenticate to the /// Batch Service API. If the mode is BatchService, clients may authenticate - /// using access keys or Azure Active Directory. If the mode is - /// UserSubscription, clients must use Azure Active Directory. The default is - /// BatchService. + /// using access keys or Microsoft Entra ID. If the mode is UserSubscription, + /// clients must use Microsoft Entra ID. The default is BatchService. /// Possible values include: 'BatchService', 'UserSubscription' /// A reference to the Azure key vault associated with the Batch account. @@ -80,9 +79,9 @@ public BatchAccountCreateProperties() /// /// Gets or sets the pool allocation mode also affects how clients may /// authenticate to the Batch Service API. If the mode is BatchService, clients - /// may authenticate using access keys or Azure Active Directory. If the mode - /// is UserSubscription, clients must use Azure Active Directory. The default - /// is BatchService. Possible values include: 'BatchService', 'UserSubscription' + /// may authenticate using access keys or Microsoft Entra ID. If the mode is + /// UserSubscription, clients must use Microsoft Entra ID. The default is + /// BatchService. Possible values include: 'BatchService', 'UserSubscription' /// [Newtonsoft.Json.JsonProperty(PropertyName = "poolAllocationMode")] public PoolAllocationMode? PoolAllocationMode {get; set; } diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/DataDisk.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/DataDisk.cs index 231a8a36ddee..2840798cd47c 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/DataDisk.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/DataDisk.cs @@ -46,7 +46,7 @@ public DataDisk() /// If omitted, the default is "Standard_LRS". Values are: /// Standard_LRS - The data disk should use standard locally redundant storage. /// Premium_LRS - The data disk should use premium locally redundant storage. - /// Possible values include: 'Standard_LRS', 'Premium_LRS' + /// Possible values include: 'Standard_LRS', 'Premium_LRS', 'StandardSSD_LRS' public DataDisk(int lun, int diskSizeGb, CachingType? caching = default(CachingType?), StorageAccountType? storageAccountType = default(StorageAccountType?)) { @@ -92,7 +92,7 @@ public DataDisk() /// /// Gets or sets if omitted, the default is "Standard_LRS". Values are: /// Standard_LRS - The data disk should use standard locally redundant storage. - /// Premium_LRS - The data disk should use premium locally redundant storage. Possible values include: 'Standard_LRS', 'Premium_LRS' + /// Premium_LRS - The data disk should use premium locally redundant storage. Possible values include: 'Standard_LRS', 'Premium_LRS', 'StandardSSD_LRS' /// [Newtonsoft.Json.JsonProperty(PropertyName = "storageAccountType")] public StorageAccountType? StorageAccountType {get; set; } diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/DiskEncryptionConfiguration.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/DiskEncryptionConfiguration.cs index 3b48b428f459..921c0887ea41 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/DiskEncryptionConfiguration.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/DiskEncryptionConfiguration.cs @@ -10,7 +10,7 @@ namespace Microsoft.Azure.Management.Batch.Models /// /// The disk encryption configuration applied on compute nodes in the pool. /// Disk encryption configuration is not supported on Linux pool created with - /// Virtual Machine Image or Shared Image Gallery Image. + /// Virtual Machine Image or Azure Compute Gallery Image. /// public partial class DiskEncryptionConfiguration { diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/ImageReference.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/ImageReference.cs index e4a5704db903..ee83eb043290 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/ImageReference.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/ImageReference.cs @@ -46,10 +46,10 @@ public ImageReference() /// image. If omitted, the default is 'latest'. /// - /// This property is mutually exclusive with other properties. The Shared Image - /// Gallery image must have replicas in the same region as the Azure Batch - /// account. For information about the firewall settings for the Batch node - /// agent to communicate with the Batch service see + /// This property is mutually exclusive with other properties. The Azure + /// Compute Gallery Image must have replicas in the same region as the Azure + /// Batch account. For information about the firewall settings for the Batch + /// node agent to communicate with the Batch service see /// https://docs.microsoft.com/en-us/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration. /// public ImageReference(string publisher = default(string), string offer = default(string), string sku = default(string), string version = default(string), string id = default(string)) @@ -96,7 +96,7 @@ public ImageReference() /// /// Gets or sets this property is mutually exclusive with other properties. The - /// Shared Image Gallery image must have replicas in the same region as the + /// Azure Compute Gallery Image must have replicas in the same region as the /// Azure Batch account. For information about the firewall settings for the /// Batch node agent to communicate with the Batch service see /// https://docs.microsoft.com/en-us/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration. diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/ManagedDisk.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/ManagedDisk.cs new file mode 100644 index 000000000000..7aa9458fc75b --- /dev/null +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/ManagedDisk.cs @@ -0,0 +1,46 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.Management.Batch.Models +{ + using System.Linq; + + public partial class ManagedDisk + { + /// + /// Initializes a new instance of the ManagedDisk class. + /// + public ManagedDisk() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the ManagedDisk class. + /// + + /// The storage account type for use in creating data disks or OS disk. + /// Possible values include: 'Standard_LRS', 'Premium_LRS', 'StandardSSD_LRS' + public ManagedDisk(StorageAccountType? storageAccountType = default(StorageAccountType?)) + + { + this.StorageAccountType = storageAccountType; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + + /// + /// Gets or sets the storage account type for use in creating data disks or OS + /// disk. Possible values include: 'Standard_LRS', 'Premium_LRS', 'StandardSSD_LRS' + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "storageAccountType")] + public StorageAccountType? StorageAccountType {get; set; } + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/OSDisk.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/OSDisk.cs index f55a582a9387..db610851e614 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/OSDisk.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/OSDisk.cs @@ -30,10 +30,27 @@ public OSDisk() /// Specifies the ephemeral Disk Settings for the operating system disk used by /// the virtual machine. /// - public OSDisk(DiffDiskSettings ephemeralOSDiskSettings = default(DiffDiskSettings)) + + /// The type of caching to enable for the disk. + /// Possible values include: 'None', 'ReadOnly', 'ReadWrite' + + /// + /// + + /// The initial disk size in GB when creating new OS disk. + /// + + /// Specifies whether writeAccelerator should be enabled or disabled on the + /// disk. + /// + public OSDisk(DiffDiskSettings ephemeralOSDiskSettings = default(DiffDiskSettings), CachingType? caching = default(CachingType?), ManagedDisk managedDisk = default(ManagedDisk), int? diskSizeGb = default(int?), bool? writeAcceleratorEnabled = default(bool?)) { this.EphemeralOSDiskSettings = ephemeralOSDiskSettings; + this.Caching = caching; + this.ManagedDisk = managedDisk; + this.DiskSizeGb = diskSizeGb; + this.WriteAcceleratorEnabled = writeAcceleratorEnabled; CustomInit(); } @@ -49,5 +66,30 @@ public OSDisk() /// [Newtonsoft.Json.JsonProperty(PropertyName = "ephemeralOSDiskSettings")] public DiffDiskSettings EphemeralOSDiskSettings {get; set; } + + /// + /// Gets or sets the type of caching to enable for the disk. Possible values include: 'None', 'ReadOnly', 'ReadWrite' + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "caching")] + public CachingType? Caching {get; set; } + + /// + /// Gets or sets + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "managedDisk")] + public ManagedDisk ManagedDisk {get; set; } + + /// + /// Gets or sets the initial disk size in GB when creating new OS disk. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "diskSizeGB")] + public int? DiskSizeGb {get; set; } + + /// + /// Gets or sets specifies whether writeAccelerator should be enabled or + /// disabled on the disk. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "writeAcceleratorEnabled")] + public bool? WriteAcceleratorEnabled {get; set; } } } \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/Pool.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/Pool.cs index c2b8172b2761..919d0571e301 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/Pool.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/Pool.cs @@ -166,7 +166,14 @@ public Pool() /// Determines how a pool communicates with the Batch service. /// Possible values include: 'Default', 'Classic', 'Simplified' - public Pool(string id = default(string), string name = default(string), string type = default(string), string etag = default(string), BatchPoolIdentity identity = default(BatchPoolIdentity), AllocationState? allocationState = default(AllocationState?), DeploymentConfiguration deploymentConfiguration = default(DeploymentConfiguration), ScaleSettings scaleSettings = default(ScaleSettings), NetworkConfiguration networkConfiguration = default(NetworkConfiguration), StartTask startTask = default(StartTask), string displayName = default(string), System.DateTime? lastModified = default(System.DateTime?), System.DateTime? creationTime = default(System.DateTime?), PoolProvisioningState? provisioningState = default(PoolProvisioningState?), System.DateTime? provisioningStateTransitionTime = default(System.DateTime?), System.DateTime? allocationStateTransitionTime = default(System.DateTime?), string vmSize = default(string), int? currentDedicatedNodes = default(int?), int? currentLowPriorityNodes = default(int?), AutoScaleRun autoScaleRun = default(AutoScaleRun), InterNodeCommunicationState? interNodeCommunication = default(InterNodeCommunicationState?), int? taskSlotsPerNode = default(int?), TaskSchedulingPolicy taskSchedulingPolicy = default(TaskSchedulingPolicy), System.Collections.Generic.IList userAccounts = default(System.Collections.Generic.IList), System.Collections.Generic.IList metadata = default(System.Collections.Generic.IList), System.Collections.Generic.IList certificates = default(System.Collections.Generic.IList), System.Collections.Generic.IList applicationPackages = default(System.Collections.Generic.IList), System.Collections.Generic.IList applicationLicenses = default(System.Collections.Generic.IList), ResizeOperationStatus resizeOperationStatus = default(ResizeOperationStatus), System.Collections.Generic.IList mountConfiguration = default(System.Collections.Generic.IList), NodeCommunicationMode? targetNodeCommunicationMode = default(NodeCommunicationMode?), NodeCommunicationMode? currentNodeCommunicationMode = default(NodeCommunicationMode?)) + + /// 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'. + /// + public Pool(string id = default(string), string name = default(string), string type = default(string), string etag = default(string), BatchPoolIdentity identity = default(BatchPoolIdentity), AllocationState? allocationState = default(AllocationState?), DeploymentConfiguration deploymentConfiguration = default(DeploymentConfiguration), ScaleSettings scaleSettings = default(ScaleSettings), NetworkConfiguration networkConfiguration = default(NetworkConfiguration), StartTask startTask = default(StartTask), string displayName = default(string), System.DateTime? lastModified = default(System.DateTime?), System.DateTime? creationTime = default(System.DateTime?), PoolProvisioningState? provisioningState = default(PoolProvisioningState?), System.DateTime? provisioningStateTransitionTime = default(System.DateTime?), System.DateTime? allocationStateTransitionTime = default(System.DateTime?), string vmSize = default(string), int? currentDedicatedNodes = default(int?), int? currentLowPriorityNodes = default(int?), AutoScaleRun autoScaleRun = default(AutoScaleRun), InterNodeCommunicationState? interNodeCommunication = default(InterNodeCommunicationState?), int? taskSlotsPerNode = default(int?), TaskSchedulingPolicy taskSchedulingPolicy = default(TaskSchedulingPolicy), System.Collections.Generic.IList userAccounts = default(System.Collections.Generic.IList), System.Collections.Generic.IList metadata = default(System.Collections.Generic.IList), System.Collections.Generic.IList certificates = default(System.Collections.Generic.IList), System.Collections.Generic.IList applicationPackages = default(System.Collections.Generic.IList), System.Collections.Generic.IList applicationLicenses = default(System.Collections.Generic.IList), ResizeOperationStatus resizeOperationStatus = default(ResizeOperationStatus), System.Collections.Generic.IList mountConfiguration = default(System.Collections.Generic.IList), NodeCommunicationMode? targetNodeCommunicationMode = default(NodeCommunicationMode?), NodeCommunicationMode? currentNodeCommunicationMode = default(NodeCommunicationMode?), System.Collections.Generic.IDictionary resourceTags = default(System.Collections.Generic.IDictionary)) : base(id, name, type, etag) { @@ -198,6 +205,7 @@ public Pool() this.MountConfiguration = mountConfiguration; this.TargetNodeCommunicationMode = targetNodeCommunicationMode; this.CurrentNodeCommunicationMode = currentNodeCommunicationMode; + this.ResourceTags = resourceTags; CustomInit(); } @@ -421,6 +429,16 @@ public Pool() /// [Newtonsoft.Json.JsonProperty(PropertyName = "properties.currentNodeCommunicationMode")] public NodeCommunicationMode? CurrentNodeCommunicationMode {get; private set; } + + /// + /// Gets or sets 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'. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "properties.resourceTags")] + public System.Collections.Generic.IDictionary ResourceTags {get; set; } /// /// Validate the object. /// @@ -516,6 +534,7 @@ public virtual void Validate() } + } } } \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/PoolProperties.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/PoolProperties.cs index ca5e18f1baa5..d62f2d7c60da 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/PoolProperties.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/PoolProperties.cs @@ -150,7 +150,14 @@ public PoolProperties() /// Determines how a pool communicates with the Batch service. /// Possible values include: 'Default', 'Classic', 'Simplified' - public PoolProperties(string displayName = default(string), System.DateTime? lastModified = default(System.DateTime?), System.DateTime? creationTime = default(System.DateTime?), PoolProvisioningState? provisioningState = default(PoolProvisioningState?), System.DateTime? provisioningStateTransitionTime = default(System.DateTime?), AllocationState? allocationState = default(AllocationState?), System.DateTime? allocationStateTransitionTime = default(System.DateTime?), string vmSize = default(string), DeploymentConfiguration deploymentConfiguration = default(DeploymentConfiguration), int? currentDedicatedNodes = default(int?), int? currentLowPriorityNodes = default(int?), ScaleSettings scaleSettings = default(ScaleSettings), AutoScaleRun autoScaleRun = default(AutoScaleRun), InterNodeCommunicationState? interNodeCommunication = default(InterNodeCommunicationState?), NetworkConfiguration networkConfiguration = default(NetworkConfiguration), int? taskSlotsPerNode = default(int?), TaskSchedulingPolicy taskSchedulingPolicy = default(TaskSchedulingPolicy), System.Collections.Generic.IList userAccounts = default(System.Collections.Generic.IList), System.Collections.Generic.IList metadata = default(System.Collections.Generic.IList), StartTask startTask = default(StartTask), System.Collections.Generic.IList certificates = default(System.Collections.Generic.IList), System.Collections.Generic.IList applicationPackages = default(System.Collections.Generic.IList), System.Collections.Generic.IList applicationLicenses = default(System.Collections.Generic.IList), ResizeOperationStatus resizeOperationStatus = default(ResizeOperationStatus), System.Collections.Generic.IList mountConfiguration = default(System.Collections.Generic.IList), NodeCommunicationMode? targetNodeCommunicationMode = default(NodeCommunicationMode?), NodeCommunicationMode? currentNodeCommunicationMode = default(NodeCommunicationMode?)) + + /// 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'. + /// + public PoolProperties(string displayName = default(string), System.DateTime? lastModified = default(System.DateTime?), System.DateTime? creationTime = default(System.DateTime?), PoolProvisioningState? provisioningState = default(PoolProvisioningState?), System.DateTime? provisioningStateTransitionTime = default(System.DateTime?), AllocationState? allocationState = default(AllocationState?), System.DateTime? allocationStateTransitionTime = default(System.DateTime?), string vmSize = default(string), DeploymentConfiguration deploymentConfiguration = default(DeploymentConfiguration), int? currentDedicatedNodes = default(int?), int? currentLowPriorityNodes = default(int?), ScaleSettings scaleSettings = default(ScaleSettings), AutoScaleRun autoScaleRun = default(AutoScaleRun), InterNodeCommunicationState? interNodeCommunication = default(InterNodeCommunicationState?), NetworkConfiguration networkConfiguration = default(NetworkConfiguration), int? taskSlotsPerNode = default(int?), TaskSchedulingPolicy taskSchedulingPolicy = default(TaskSchedulingPolicy), System.Collections.Generic.IList userAccounts = default(System.Collections.Generic.IList), System.Collections.Generic.IList metadata = default(System.Collections.Generic.IList), StartTask startTask = default(StartTask), System.Collections.Generic.IList certificates = default(System.Collections.Generic.IList), System.Collections.Generic.IList applicationPackages = default(System.Collections.Generic.IList), System.Collections.Generic.IList applicationLicenses = default(System.Collections.Generic.IList), ResizeOperationStatus resizeOperationStatus = default(ResizeOperationStatus), System.Collections.Generic.IList mountConfiguration = default(System.Collections.Generic.IList), NodeCommunicationMode? targetNodeCommunicationMode = default(NodeCommunicationMode?), NodeCommunicationMode? currentNodeCommunicationMode = default(NodeCommunicationMode?), System.Collections.Generic.IDictionary resourceTags = default(System.Collections.Generic.IDictionary)) { this.DisplayName = displayName; @@ -180,6 +187,7 @@ public PoolProperties() this.MountConfiguration = mountConfiguration; this.TargetNodeCommunicationMode = targetNodeCommunicationMode; this.CurrentNodeCommunicationMode = currentNodeCommunicationMode; + this.ResourceTags = resourceTags; CustomInit(); } @@ -397,6 +405,16 @@ public PoolProperties() /// [Newtonsoft.Json.JsonProperty(PropertyName = "currentNodeCommunicationMode")] public NodeCommunicationMode? CurrentNodeCommunicationMode {get; private set; } + + /// + /// Gets or sets 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'. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "resourceTags")] + public System.Collections.Generic.IDictionary ResourceTags {get; set; } /// /// Validate the object. /// @@ -488,6 +506,7 @@ public virtual void Validate() } + } } } \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/SecurityProfile.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/SecurityProfile.cs new file mode 100644 index 000000000000..236a63ac3d83 --- /dev/null +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/SecurityProfile.cs @@ -0,0 +1,79 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.Management.Batch.Models +{ + using System.Linq; + + /// + /// Specifies the security profile settings for the virtual machine or virtual + /// machine scale set. + /// + public partial class SecurityProfile + { + /// + /// Initializes a new instance of the SecurityProfile class. + /// + public SecurityProfile() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the SecurityProfile class. + /// + + /// Specifies the SecurityType of the virtual machine. It has to be set to any + /// specified value to enable UefiSettings. + /// Possible values include: 'trustedLaunch' + + /// 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. + /// + + /// Specifies the security settings like secure boot and vTPM used while + /// creating the virtual machine. + /// + public SecurityProfile(SecurityTypes? securityType = default(SecurityTypes?), bool? encryptionAtHost = default(bool?), UefiSettings uefiSettings = default(UefiSettings)) + + { + this.SecurityType = securityType; + this.EncryptionAtHost = encryptionAtHost; + this.UefiSettings = uefiSettings; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + + /// + /// Gets or sets specifies the SecurityType of the virtual machine. It has to + /// be set to any specified value to enable UefiSettings. Possible values include: 'trustedLaunch' + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "securityType")] + public SecurityTypes? SecurityType {get; set; } + + /// + /// Gets or sets 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. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "encryptionAtHost")] + public bool? EncryptionAtHost {get; set; } + + /// + /// Gets or sets specifies the security settings like secure boot and vTPM used + /// while creating the virtual machine. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "uefiSettings")] + public UefiSettings UefiSettings {get; set; } + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/SecurityTypes.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/SecurityTypes.cs new file mode 100644 index 000000000000..4e56a6a42dc9 --- /dev/null +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/SecurityTypes.cs @@ -0,0 +1,48 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.Management.Batch.Models +{ + + /// + /// Defines values for SecurityTypes. + /// + + + [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.StringEnumConverter))] + public enum SecurityTypes + { + /// + /// Trusted launch protects against advanced and persistent attack techniques. + /// + [System.Runtime.Serialization.EnumMember(Value = "trustedLaunch")] + TrustedLaunch + } + internal static class SecurityTypesEnumExtension + { + internal static string ToSerializedValue(this SecurityTypes? value) + { + return value == null ? null : ((SecurityTypes)value).ToSerializedValue(); + } + internal static string ToSerializedValue(this SecurityTypes value) + { + switch( value ) + { + case SecurityTypes.TrustedLaunch: + return "trustedLaunch"; + } + return null; + } + internal static SecurityTypes? ParseSecurityTypes(this string value) + { + switch( value ) + { + case "trustedLaunch": + return SecurityTypes.TrustedLaunch; + } + return null; + } + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/ServiceArtifactReference.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/ServiceArtifactReference.cs new file mode 100644 index 000000000000..f6e8be8b61d1 --- /dev/null +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/ServiceArtifactReference.cs @@ -0,0 +1,66 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.Management.Batch.Models +{ + using System.Linq; + + /// + /// Specifies the service artifact reference id used to set same image version + /// for all virtual machines in the scale set when using 'latest' image + /// version. + /// + public partial class ServiceArtifactReference + { + /// + /// Initializes a new instance of the ServiceArtifactReference class. + /// + public ServiceArtifactReference() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the ServiceArtifactReference class. + /// + + /// The service artifact reference id in the form of + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/galleries/{galleryName}/serviceArtifacts/{serviceArtifactName}/vmArtifactsProfiles/{vmArtifactsProfilesName} + /// + public ServiceArtifactReference(string id) + + { + this.Id = id; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + + /// + /// Gets or sets the service artifact reference id in the form of + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/galleries/{galleryName}/serviceArtifacts/{serviceArtifactName}/vmArtifactsProfiles/{vmArtifactsProfilesName} + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "id")] + public string Id {get; set; } + /// + /// Validate the object. + /// + /// + /// Thrown if validation fails + /// + public virtual void Validate() + { + if (this.Id == null) + { + throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.CannotBeNull, "Id"); + } + + } + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/StartTask.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/StartTask.cs index 5190ea77f6c3..b86056506f62 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/StartTask.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/StartTask.cs @@ -61,7 +61,7 @@ public StartTask() /// if the maximum retry count is 3, Batch tries the task up to 4 times (one /// initial try and 3 retries). If the maximum retry count is 0, the Batch /// service does not retry the task. If the maximum retry count is -1, the - /// Batch service retries the task without limit. Default is 0. + /// Batch service retries the task without limit. Default is 0 /// /// If true and the start task fails on a compute node, the Batch service @@ -138,7 +138,7 @@ public StartTask() /// example, if the maximum retry count is 3, Batch tries the task up to 4 /// times (one initial try and 3 retries). If the maximum retry count is 0, the /// Batch service does not retry the task. If the maximum retry count is -1, - /// the Batch service retries the task without limit. Default is 0. + /// the Batch service retries the task without limit. Default is 0 /// [Newtonsoft.Json.JsonProperty(PropertyName = "maxTaskRetryCount")] public int? MaxTaskRetryCount {get; set; } diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/StorageAccountType.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/StorageAccountType.cs index 599307db3e5e..eca13e513063 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/StorageAccountType.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/StorageAccountType.cs @@ -15,15 +15,20 @@ namespace Microsoft.Azure.Management.Batch.Models public enum StorageAccountType { /// - /// The data disk should use standard locally redundant storage. + /// The data disk / OS disk should use standard locally redundant storage. /// [System.Runtime.Serialization.EnumMember(Value = "Standard_LRS")] StandardLRS, /// - /// The data disk should use premium locally redundant storage. + /// The data disk / OS disk should use premium locally redundant storage. /// [System.Runtime.Serialization.EnumMember(Value = "Premium_LRS")] - PremiumLRS + PremiumLRS, + /// + /// The data disk / OS disk should use standard SSD locally redundant storage. + /// + [System.Runtime.Serialization.EnumMember(Value = "StandardSSD_LRS")] + StandardSSDLRS } internal static class StorageAccountTypeEnumExtension { @@ -39,6 +44,8 @@ internal static string ToSerializedValue(this StorageAccountType value) return "Standard_LRS"; case StorageAccountType.PremiumLRS: return "Premium_LRS"; + case StorageAccountType.StandardSSDLRS: + return "StandardSSD_LRS"; } return null; } @@ -50,6 +57,8 @@ internal static string ToSerializedValue(this StorageAccountType value) return StorageAccountType.StandardLRS; case "Premium_LRS": return StorageAccountType.PremiumLRS; + case "StandardSSD_LRS": + return StorageAccountType.StandardSSDLRS; } return null; } diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/UefiSettings.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/UefiSettings.cs new file mode 100644 index 000000000000..cca25ecf040a --- /dev/null +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/UefiSettings.cs @@ -0,0 +1,61 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.Management.Batch.Models +{ + using System.Linq; + + /// + /// Specifies the security settings like secure boot and vTPM used while + /// creating the virtual machine. + /// + public partial class UefiSettings + { + /// + /// Initializes a new instance of the UefiSettings class. + /// + public UefiSettings() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the UefiSettings class. + /// + + /// Specifies whether secure boot should be enabled on the virtual machine. + /// + + /// Specifies whether vTPM should be enabled on the virtual machine. + /// + public UefiSettings(bool? secureBootEnabled = default(bool?), bool? vTpmEnabled = default(bool?)) + + { + this.SecureBootEnabled = secureBootEnabled; + this.VTpmEnabled = vTpmEnabled; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + + /// + /// Gets or sets specifies whether secure boot should be enabled on the virtual + /// machine. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "secureBootEnabled")] + public bool? SecureBootEnabled {get; set; } + + /// + /// Gets or sets specifies whether vTPM should be enabled on the virtual + /// machine. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "vTpmEnabled")] + public bool? VTpmEnabled {get; set; } + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/VirtualMachineConfiguration.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/VirtualMachineConfiguration.cs index 4edf1bfde857..ef646c88d2fc 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/VirtualMachineConfiguration.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/VirtualMachineConfiguration.cs @@ -80,7 +80,15 @@ public VirtualMachineConfiguration() /// Contains configuration for ephemeral OSDisk settings. /// - public VirtualMachineConfiguration(ImageReference imageReference, string nodeAgentSkuId, WindowsConfiguration windowsConfiguration = default(WindowsConfiguration), System.Collections.Generic.IList dataDisks = default(System.Collections.Generic.IList), string licenseType = default(string), ContainerConfiguration containerConfiguration = default(ContainerConfiguration), DiskEncryptionConfiguration diskEncryptionConfiguration = default(DiskEncryptionConfiguration), NodePlacementConfiguration nodePlacementConfiguration = default(NodePlacementConfiguration), System.Collections.Generic.IList extensions = default(System.Collections.Generic.IList), OSDisk osDisk = default(OSDisk)) + + /// Specifies the security profile settings for the virtual machine or virtual + /// machine scale set. + /// + + /// The service artifact reference id in the form of + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/galleries/{galleryName}/serviceArtifacts/{serviceArtifactName}/vmArtifactsProfiles/{vmArtifactsProfilesName} + /// + public VirtualMachineConfiguration(ImageReference imageReference, string nodeAgentSkuId, WindowsConfiguration windowsConfiguration = default(WindowsConfiguration), System.Collections.Generic.IList dataDisks = default(System.Collections.Generic.IList), string licenseType = default(string), ContainerConfiguration containerConfiguration = default(ContainerConfiguration), DiskEncryptionConfiguration diskEncryptionConfiguration = default(DiskEncryptionConfiguration), NodePlacementConfiguration nodePlacementConfiguration = default(NodePlacementConfiguration), System.Collections.Generic.IList extensions = default(System.Collections.Generic.IList), OSDisk osDisk = default(OSDisk), SecurityProfile securityProfile = default(SecurityProfile), ServiceArtifactReference serviceArtifactReference = default(ServiceArtifactReference)) { this.ImageReference = imageReference; @@ -93,6 +101,8 @@ public VirtualMachineConfiguration() this.NodePlacementConfiguration = nodePlacementConfiguration; this.Extensions = extensions; this.OSDisk = osDisk; + this.SecurityProfile = securityProfile; + this.ServiceArtifactReference = serviceArtifactReference; CustomInit(); } @@ -183,6 +193,20 @@ public VirtualMachineConfiguration() /// [Newtonsoft.Json.JsonProperty(PropertyName = "osDisk")] public OSDisk OSDisk {get; set; } + + /// + /// Gets or sets specifies the security profile settings for the virtual + /// machine or virtual machine scale set. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "securityProfile")] + public SecurityProfile SecurityProfile {get; set; } + + /// + /// Gets or sets the service artifact reference id in the form of + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/galleries/{galleryName}/serviceArtifacts/{serviceArtifactName}/vmArtifactsProfiles/{vmArtifactsProfilesName} + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "serviceArtifactReference")] + public ServiceArtifactReference ServiceArtifactReference {get; set; } /// /// Validate the object. /// @@ -230,6 +254,11 @@ public virtual void Validate() } } + + if (this.ServiceArtifactReference != null) + { + this.ServiceArtifactReference.Validate(); + } } } } \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/README.md b/src/Batch/Batch.Management.Sdk/README.md index 3717c53ac3fc..9016268a8e74 100644 --- a/src/Batch/Batch.Management.Sdk/README.md +++ b/src/Batch/Batch.Management.Sdk/README.md @@ -21,9 +21,9 @@ license-header: MICROSOFT_MIT_NO_VERSION payload-flattening-threshold: 1 # title: BatchManagementClient -commit: d6fcc46341f274b8af42a4cdcfa14e1f8d472619 +commit: 408db257fe67fc66d8c66c10881be8d414d5e5f3 input-file: - - https://github.com/Azure/azure-rest-api-specs/blob/$(commit)/specification/batch/resource-manager/Microsoft.Batch/stable/2023-05-01/BatchManagement.json + - https://github.com/Azure/azure-rest-api-specs/blob/$(commit)/specification/batch/resource-manager/Microsoft.Batch/stable/2023-11-01/BatchManagement.json output-folder: Generated diff --git a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchAccountTests/TestBatchAccountEndToEnd.json b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchAccountTests/TestBatchAccountEndToEnd.json index 0143ba53df5e..e9eb8d29bd3b 100644 --- a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchAccountTests/TestBatchAccountEndToEnd.json +++ b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchAccountTests/TestBatchAccountEndToEnd.json @@ -145,7 +145,7 @@ "StatusCode": 201 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437?api-version=2023-05-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437?api-version=2023-11-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL3BzMzY5OC9wcm92aWRlcnMvTWljcm9zb2Z0LkJhdGNoL2JhdGNoQWNjb3VudHMvcHM4NDM3P2FwaS12ZXJzaW9uPTIwMjMtMDUtMDE=", "RequestMethod": "PUT", "RequestHeaders": { @@ -177,7 +177,7 @@ "no-cache" ], "Location": [ - "https://management.azure.com/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437/operationResults/f591e7a1-746e-4f19-9fd5-aa0142592be4?api-version=2023-05-01&t=638932183004851134&c=MIIIpTCCBo2gAwIBAgITFgGsmnj73LBE7PaBtQABAayaeDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDMwHhcNMjUwNzE4MTIwNDI4WhcNMjYwMTE0MTIwNDI4WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKYwXiklImL5-WfPWj2FX3_Y-JxCd3XXEOuNXx5ggHubZZamujLTqEBSFsFYiH_9NCaqKTiATXu6fBpzW3ghgYhwr0PL071fQT15KnnNUFjd5hFXB7SYti9IwWu1lxSAz-De7HivujKdlsgcmfoV6upRQ0eva9e74EwLV9pCn4WQAhs-6T8p0CytQsi81qHMWybAbNvfom0ox78IEWdS_6g_d4Jl_I4ccYLMyRTOV2NioM96cRECWCZhbpLl1zwoYGSbU5H0MZaiCBjPlhXN40BqagpamZfP98sPYSBfreh6-iMGU5tNTRkh8RiJqzjhzIUpEv3PqLtWTyPUB8JS7aUCAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9BTTNQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAzKDEpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MB0GA1UdDgQWBBTxzPCXgPzIUiTz94us0y0CCMf8BzAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBRIo61gdWpv7GDzaVXRALEyV_xs5DAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggIBAAqNK9Ejzdnb9L4TyakCpJByRYVTN_6nCGbtUd2E2sELjuJGRGiRmujp_jqNyIofO_ghSaP_tqH-3WRTRUbnt5xM8aBYoYJSOgKgTsNrB6clspdhCCmzhJy6EQuOqfUDm3C7hDru1_bN3DwXt3VpDqfuYtM3MAabKg0oCYVWgFwnAKYmZLZMWMQh7k_hZxy1gOCQmE9U08tf_pU21aI0El6n5A5uG2FT0placwchheFmXAtoPjT7nU53HVmRissxUR_vRCDj_ZCFo3K3nZNXCQOKPAMc9-LC0prb9Slg6siKtSHB3iGjNQlT9-nbSnDgifI8zC1cvT8CdaNLOmUywRIB4wvRn1z123NuyfJaIz95igW9P189vBTJEZREF-MgJEboWKdlGNn6bbBtu0waqAmUU7WVLeZKdtUI6EEKF7wRGYuY_BhZx1ipyXnBHZpsufuH4AwgOO289QKmqg8QAy7HFD9c8H8fNCtR7sTZ4YNP2AhEaES0rkMSQUCNVEz42YEBi2GgrSpnI94SPdb3J3PkCMZ4OgFRjztLO7nrgbPtflhSOo_VOE0_7Y74km43WAMQPKL3-44vQrEQ61Hd_24IcFh_ChNXvUDqp39GzYlO3D0zlau4ozll8BeLUZrJwHTQWZS8XR-EifCl4MW5Y3Y1SxOLrIxnukCzQxL7aGmc&s=SPR_g8AydHAx2fRbsISNByRsbJGhJLU6-JUt3D1bzIt6yWDz76_77_MQpuUYZDqcBHaHYnieVy7BTQbdojj0-BnLt4w3o-3Ul0i16Rq0zaHreZkfbQchwflOTzx-g3kWK3WYg2yyZJrhd66aWzfffKVB1SPfxNWeb8cEvc3WaWw1sUy9OhEt3Sn75jwsn6xtz0FuT_DdyAHimQ-2mU7-shV8A0-y8V4rYc4dGgA6jlym1CrcafhQTwSnlwu0vR9q_P7wTn_zJB4FVh-Eocokah_ZbHWdLyKwhfNaHbokXvup8A5Q0XcbdlJ63LvspRj244TD4xo9hQ0aORw8InShVQ&h=NhZWEsIi8Cy5R1wXWXcLTn-B44Mq4vZHPaf5F7W8dQw" + "https://management.azure.com/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437/operationResults/f591e7a1-746e-4f19-9fd5-aa0142592be4?api-version=2023-11-01&t=638932183004851134&c=MIIIpTCCBo2gAwIBAgITFgGsmnj73LBE7PaBtQABAayaeDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDMwHhcNMjUwNzE4MTIwNDI4WhcNMjYwMTE0MTIwNDI4WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKYwXiklImL5-WfPWj2FX3_Y-JxCd3XXEOuNXx5ggHubZZamujLTqEBSFsFYiH_9NCaqKTiATXu6fBpzW3ghgYhwr0PL071fQT15KnnNUFjd5hFXB7SYti9IwWu1lxSAz-De7HivujKdlsgcmfoV6upRQ0eva9e74EwLV9pCn4WQAhs-6T8p0CytQsi81qHMWybAbNvfom0ox78IEWdS_6g_d4Jl_I4ccYLMyRTOV2NioM96cRECWCZhbpLl1zwoYGSbU5H0MZaiCBjPlhXN40BqagpamZfP98sPYSBfreh6-iMGU5tNTRkh8RiJqzjhzIUpEv3PqLtWTyPUB8JS7aUCAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9BTTNQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAzKDEpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MB0GA1UdDgQWBBTxzPCXgPzIUiTz94us0y0CCMf8BzAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBRIo61gdWpv7GDzaVXRALEyV_xs5DAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggIBAAqNK9Ejzdnb9L4TyakCpJByRYVTN_6nCGbtUd2E2sELjuJGRGiRmujp_jqNyIofO_ghSaP_tqH-3WRTRUbnt5xM8aBYoYJSOgKgTsNrB6clspdhCCmzhJy6EQuOqfUDm3C7hDru1_bN3DwXt3VpDqfuYtM3MAabKg0oCYVWgFwnAKYmZLZMWMQh7k_hZxy1gOCQmE9U08tf_pU21aI0El6n5A5uG2FT0placwchheFmXAtoPjT7nU53HVmRissxUR_vRCDj_ZCFo3K3nZNXCQOKPAMc9-LC0prb9Slg6siKtSHB3iGjNQlT9-nbSnDgifI8zC1cvT8CdaNLOmUywRIB4wvRn1z123NuyfJaIz95igW9P189vBTJEZREF-MgJEboWKdlGNn6bbBtu0waqAmUU7WVLeZKdtUI6EEKF7wRGYuY_BhZx1ipyXnBHZpsufuH4AwgOO289QKmqg8QAy7HFD9c8H8fNCtR7sTZ4YNP2AhEaES0rkMSQUCNVEz42YEBi2GgrSpnI94SPdb3J3PkCMZ4OgFRjztLO7nrgbPtflhSOo_VOE0_7Y74km43WAMQPKL3-44vQrEQ61Hd_24IcFh_ChNXvUDqp39GzYlO3D0zlau4ozll8BeLUZrJwHTQWZS8XR-EifCl4MW5Y3Y1SxOLrIxnukCzQxL7aGmc&s=SPR_g8AydHAx2fRbsISNByRsbJGhJLU6-JUt3D1bzIt6yWDz76_77_MQpuUYZDqcBHaHYnieVy7BTQbdojj0-BnLt4w3o-3Ul0i16Rq0zaHreZkfbQchwflOTzx-g3kWK3WYg2yyZJrhd66aWzfffKVB1SPfxNWeb8cEvc3WaWw1sUy9OhEt3Sn75jwsn6xtz0FuT_DdyAHimQ-2mU7-shV8A0-y8V4rYc4dGgA6jlym1CrcafhQTwSnlwu0vR9q_P7wTn_zJB4FVh-Eocokah_ZbHWdLyKwhfNaHbokXvup8A5Q0XcbdlJ63LvspRj244TD4xo9hQ0aORw8InShVQ&h=NhZWEsIi8Cy5R1wXWXcLTn-B44Mq4vZHPaf5F7W8dQw" ], "Retry-After": [ "15" @@ -226,7 +226,7 @@ "StatusCode": 202 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437?api-version=2023-05-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437?api-version=2023-11-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL3BzMzY5OC9wcm92aWRlcnMvTWljcm9zb2Z0LkJhdGNoL2JhdGNoQWNjb3VudHMvcHM4NDM3P2FwaS12ZXJzaW9uPTIwMjMtMDUtMDE=", "RequestMethod": "PUT", "RequestHeaders": { @@ -310,7 +310,7 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437/operationResults/f591e7a1-746e-4f19-9fd5-aa0142592be4?api-version=2023-05-01&t=638932183004851134&c=MIIIpTCCBo2gAwIBAgITFgGsmnj73LBE7PaBtQABAayaeDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDMwHhcNMjUwNzE4MTIwNDI4WhcNMjYwMTE0MTIwNDI4WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKYwXiklImL5-WfPWj2FX3_Y-JxCd3XXEOuNXx5ggHubZZamujLTqEBSFsFYiH_9NCaqKTiATXu6fBpzW3ghgYhwr0PL071fQT15KnnNUFjd5hFXB7SYti9IwWu1lxSAz-De7HivujKdlsgcmfoV6upRQ0eva9e74EwLV9pCn4WQAhs-6T8p0CytQsi81qHMWybAbNvfom0ox78IEWdS_6g_d4Jl_I4ccYLMyRTOV2NioM96cRECWCZhbpLl1zwoYGSbU5H0MZaiCBjPlhXN40BqagpamZfP98sPYSBfreh6-iMGU5tNTRkh8RiJqzjhzIUpEv3PqLtWTyPUB8JS7aUCAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9BTTNQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAzKDEpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MB0GA1UdDgQWBBTxzPCXgPzIUiTz94us0y0CCMf8BzAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBRIo61gdWpv7GDzaVXRALEyV_xs5DAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggIBAAqNK9Ejzdnb9L4TyakCpJByRYVTN_6nCGbtUd2E2sELjuJGRGiRmujp_jqNyIofO_ghSaP_tqH-3WRTRUbnt5xM8aBYoYJSOgKgTsNrB6clspdhCCmzhJy6EQuOqfUDm3C7hDru1_bN3DwXt3VpDqfuYtM3MAabKg0oCYVWgFwnAKYmZLZMWMQh7k_hZxy1gOCQmE9U08tf_pU21aI0El6n5A5uG2FT0placwchheFmXAtoPjT7nU53HVmRissxUR_vRCDj_ZCFo3K3nZNXCQOKPAMc9-LC0prb9Slg6siKtSHB3iGjNQlT9-nbSnDgifI8zC1cvT8CdaNLOmUywRIB4wvRn1z123NuyfJaIz95igW9P189vBTJEZREF-MgJEboWKdlGNn6bbBtu0waqAmUU7WVLeZKdtUI6EEKF7wRGYuY_BhZx1ipyXnBHZpsufuH4AwgOO289QKmqg8QAy7HFD9c8H8fNCtR7sTZ4YNP2AhEaES0rkMSQUCNVEz42YEBi2GgrSpnI94SPdb3J3PkCMZ4OgFRjztLO7nrgbPtflhSOo_VOE0_7Y74km43WAMQPKL3-44vQrEQ61Hd_24IcFh_ChNXvUDqp39GzYlO3D0zlau4ozll8BeLUZrJwHTQWZS8XR-EifCl4MW5Y3Y1SxOLrIxnukCzQxL7aGmc&s=SPR_g8AydHAx2fRbsISNByRsbJGhJLU6-JUt3D1bzIt6yWDz76_77_MQpuUYZDqcBHaHYnieVy7BTQbdojj0-BnLt4w3o-3Ul0i16Rq0zaHreZkfbQchwflOTzx-g3kWK3WYg2yyZJrhd66aWzfffKVB1SPfxNWeb8cEvc3WaWw1sUy9OhEt3Sn75jwsn6xtz0FuT_DdyAHimQ-2mU7-shV8A0-y8V4rYc4dGgA6jlym1CrcafhQTwSnlwu0vR9q_P7wTn_zJB4FVh-Eocokah_ZbHWdLyKwhfNaHbokXvup8A5Q0XcbdlJ63LvspRj244TD4xo9hQ0aORw8InShVQ&h=NhZWEsIi8Cy5R1wXWXcLTn-B44Mq4vZHPaf5F7W8dQw", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437/operationResults/f591e7a1-746e-4f19-9fd5-aa0142592be4?api-version=2023-11-01&t=638932183004851134&c=MIIIpTCCBo2gAwIBAgITFgGsmnj73LBE7PaBtQABAayaeDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDMwHhcNMjUwNzE4MTIwNDI4WhcNMjYwMTE0MTIwNDI4WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKYwXiklImL5-WfPWj2FX3_Y-JxCd3XXEOuNXx5ggHubZZamujLTqEBSFsFYiH_9NCaqKTiATXu6fBpzW3ghgYhwr0PL071fQT15KnnNUFjd5hFXB7SYti9IwWu1lxSAz-De7HivujKdlsgcmfoV6upRQ0eva9e74EwLV9pCn4WQAhs-6T8p0CytQsi81qHMWybAbNvfom0ox78IEWdS_6g_d4Jl_I4ccYLMyRTOV2NioM96cRECWCZhbpLl1zwoYGSbU5H0MZaiCBjPlhXN40BqagpamZfP98sPYSBfreh6-iMGU5tNTRkh8RiJqzjhzIUpEv3PqLtWTyPUB8JS7aUCAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9BTTNQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAzKDEpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MB0GA1UdDgQWBBTxzPCXgPzIUiTz94us0y0CCMf8BzAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBRIo61gdWpv7GDzaVXRALEyV_xs5DAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggIBAAqNK9Ejzdnb9L4TyakCpJByRYVTN_6nCGbtUd2E2sELjuJGRGiRmujp_jqNyIofO_ghSaP_tqH-3WRTRUbnt5xM8aBYoYJSOgKgTsNrB6clspdhCCmzhJy6EQuOqfUDm3C7hDru1_bN3DwXt3VpDqfuYtM3MAabKg0oCYVWgFwnAKYmZLZMWMQh7k_hZxy1gOCQmE9U08tf_pU21aI0El6n5A5uG2FT0placwchheFmXAtoPjT7nU53HVmRissxUR_vRCDj_ZCFo3K3nZNXCQOKPAMc9-LC0prb9Slg6siKtSHB3iGjNQlT9-nbSnDgifI8zC1cvT8CdaNLOmUywRIB4wvRn1z123NuyfJaIz95igW9P189vBTJEZREF-MgJEboWKdlGNn6bbBtu0waqAmUU7WVLeZKdtUI6EEKF7wRGYuY_BhZx1ipyXnBHZpsufuH4AwgOO289QKmqg8QAy7HFD9c8H8fNCtR7sTZ4YNP2AhEaES0rkMSQUCNVEz42YEBi2GgrSpnI94SPdb3J3PkCMZ4OgFRjztLO7nrgbPtflhSOo_VOE0_7Y74km43WAMQPKL3-44vQrEQ61Hd_24IcFh_ChNXvUDqp39GzYlO3D0zlau4ozll8BeLUZrJwHTQWZS8XR-EifCl4MW5Y3Y1SxOLrIxnukCzQxL7aGmc&s=SPR_g8AydHAx2fRbsISNByRsbJGhJLU6-JUt3D1bzIt6yWDz76_77_MQpuUYZDqcBHaHYnieVy7BTQbdojj0-BnLt4w3o-3Ul0i16Rq0zaHreZkfbQchwflOTzx-g3kWK3WYg2yyZJrhd66aWzfffKVB1SPfxNWeb8cEvc3WaWw1sUy9OhEt3Sn75jwsn6xtz0FuT_DdyAHimQ-2mU7-shV8A0-y8V4rYc4dGgA6jlym1CrcafhQTwSnlwu0vR9q_P7wTn_zJB4FVh-Eocokah_ZbHWdLyKwhfNaHbokXvup8A5Q0XcbdlJ63LvspRj244TD4xo9hQ0aORw8InShVQ&h=NhZWEsIi8Cy5R1wXWXcLTn-B44Mq4vZHPaf5F7W8dQw", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL3BzMzY5OC9wcm92aWRlcnMvTWljcm9zb2Z0LkJhdGNoL2JhdGNoQWNjb3VudHMvcHM4NDM3L29wZXJhdGlvblJlc3VsdHMvZjU5MWU3YTEtNzQ2ZS00ZjE5LTlmZDUtYWEwMTQyNTkyYmU0P2FwaS12ZXJzaW9uPTIwMjMtMDUtMDEmdD02Mzg5MzIxODMwMDQ4NTExMzQmYz1NSUlJcFRDQ0JvMmdBd0lCQWdJVEZnR3Ntbmo3M0xCRTdQYUJ0UUFCQWF5YWVEQU5CZ2txaGtpRzl3MEJBUXNGQURCRU1STXdFUVlLQ1pJbWlaUHlMR1FCR1JZRFIwSk1NUk13RVFZS0NaSW1pWlB5TEdRQkdSWURRVTFGTVJnd0ZnWURWUVFERXc5QlRVVWdTVzVtY21FZ1EwRWdNRE13SGhjTk1qVXdOekU0TVRJd05ESTRXaGNOTWpZd01URTBNVEl3TkRJNFdqQkFNVDR3UEFZRFZRUURFelZoYzNsdVkyOXdaWEpoZEdsdmJuTnBaMjVwYm1kalpYSjBhV1pwWTJGMFpTNXRZVzVoWjJWdFpXNTBMbUY2ZFhKbExtTnZiVENDQVNJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dFUEFEQ0NBUW9DZ2dFQkFLWXdYaWtsSW1MNS1XZlBXajJGWDNfWS1KeENkM1hYRU91Tlh4NWdnSHViWlphbXVqTFRxRUJTRnNGWWlIXzlOQ2FxS1RpQVRYdTZmQnB6VzNnaGdZaHdyMFBMMDcxZlFUMTVLbm5OVUZqZDVoRlhCN1NZdGk5SXdXdTFseFNBei1EZTdIaXZ1aktkbHNnY21mb1Y2dXBSUTBldmE5ZTc0RXdMVjlwQ240V1FBaHMtNlQ4cDBDeXRRc2k4MXFITVd5YkFiTnZmb20wb3g3OElFV2RTXzZnX2Q0SmxfSTRjY1lMTXlSVE9WMk5pb005NmNSRUNXQ1poYnBMbDF6d29ZR1NiVTVIME1aYWlDQmpQbGhYTjQwQnFhZ3BhbVpmUDk4c1BZU0JmcmVoNi1pTUdVNXROVFJraDhSaUpxempoeklVcEV2M1BxTHRXVHlQVUI4SlM3YVVDQXdFQUFhT0NCSkl3Z2dTT01DY0dDU3NHQVFRQmdqY1ZDZ1FhTUJnd0NnWUlLd1lCQlFVSEF3RXdDZ1lJS3dZQkJRVUhBd0l3UFFZSkt3WUJCQUdDTnhVSEJEQXdMZ1ltS3dZQkJBR0NOeFVJaHBEakRZVFZ0SGlFOFlzLWhadmRGczZkRW9GZ2hmbVJTNFdzbVRRQ0FXUUNBUWN3Z2dIYUJnZ3JCZ0VGQlFjQkFRU0NBY3d3Z2dISU1HWUdDQ3NHQVFVRkJ6QUNobHBvZEhSd09pOHZZM0pzTG0xcFkzSnZjMjltZEM1amIyMHZjR3RwYVc1bWNtRXZRMlZ5ZEhNdlFVMHpVRXRKU1U1VVEwRXdNUzVCVFVVdVIwSk1YMEZOUlNVeU1FbHVabkpoSlRJd1EwRWxNakF3TXlneEtTNWpjblF3VmdZSUt3WUJCUVVITUFLR1NtaDBkSEE2THk5amNtd3hMbUZ0WlM1blltd3ZZV2xoTDBGTk0xQkxTVWxPVkVOQk1ERXVRVTFGTGtkQ1RGOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRE1vTVNrdVkzSjBNRllHQ0NzR0FRVUZCekFDaGtwb2RIUndPaTh2WTNKc01pNWhiV1V1WjJKc0wyRnBZUzlCVFROUVMwbEpUbFJEUVRBeExrRk5SUzVIUWt4ZlFVMUZKVEl3U1c1bWNtRWxNakJEUVNVeU1EQXpLREVwTG1OeWREQldCZ2dyQmdFRkJRY3dBb1pLYUhSMGNEb3ZMMk55YkRNdVlXMWxMbWRpYkM5aGFXRXZRVTB6VUV0SlNVNVVRMEV3TVM1QlRVVXVSMEpNWDBGTlJTVXlNRWx1Wm5KaEpUSXdRMEVsTWpBd015Z3hLUzVqY25Rd1ZnWUlLd1lCQlFVSE1BS0dTbWgwZEhBNkx5OWpjbXcwTG1GdFpTNW5ZbXd2WVdsaEwwRk5NMUJMU1VsT1ZFTkJNREV1UVUxRkxrZENURjlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURNb01Ta3VZM0owTUIwR0ExVWREZ1FXQkJUeHpQQ1hnUHpJVWlUejk0dXMweTBDQ01mOEJ6QU9CZ05WSFE4QkFmOEVCQU1DQmFBd2dnRTFCZ05WSFI4RWdnRXNNSUlCS0RDQ0FTU2dnZ0Vnb0lJQkhJWkNhSFIwY0RvdkwyTnliQzV0YVdOeWIzTnZablF1WTI5dEwzQnJhV2x1Wm5KaEwwTlNUQzlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURNb01Ta3VZM0pzaGpSb2RIUndPaTh2WTNKc01TNWhiV1V1WjJKc0wyTnliQzlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURNb01Ta3VZM0pzaGpSb2RIUndPaTh2WTNKc01pNWhiV1V1WjJKc0wyTnliQzlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURNb01Ta3VZM0pzaGpSb2RIUndPaTh2WTNKc015NWhiV1V1WjJKc0wyTnliQzlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURNb01Ta3VZM0pzaGpSb2RIUndPaTh2WTNKc05DNWhiV1V1WjJKc0wyTnliQzlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURNb01Ta3VZM0pzTUlHZEJnTlZIU0FFZ1pVd2daSXdEQVlLS3dZQkJBR0NOM3NCQVRCbUJnb3JCZ0VFQVlJM2V3SUNNRmd3VmdZSUt3WUJCUVVIQWdJd1NoNUlBRE1BTXdCbEFEQUFNUUE1QURJQU1RQXRBRFFBWkFBMkFEUUFMUUEwQUdZQU9BQmpBQzBBWVFBd0FEVUFOUUF0QURVQVlnQmtBR0VBWmdCbUFHUUFOUUJsQURNQU13QmtNQXdHQ2lzR0FRUUJnamQ3QXdJd0RBWUtLd1lCQkFHQ04zc0VBakFmQmdOVkhTTUVHREFXZ0JSSW82MWdkV3B2N0dEemFWWFJBTEV5Vl94czVEQWRCZ05WSFNVRUZqQVVCZ2dyQmdFRkJRY0RBUVlJS3dZQkJRVUhBd0l3RFFZSktvWklodmNOQVFFTEJRQURnZ0lCQUFxTks5RWp6ZG5iOUw0VHlha0NwSkJ5UllWVE5fNm5DR2J0VWQyRTJzRUxqdUpHUkdpUm11anBfanFOeUlvZk9fZ2hTYVBfdHFILTNXUlRSVWJudDV4TThhQllvWUpTT2dLZ1RzTnJCNmNsc3BkaENDbXpoSnk2RVF1T3FmVURtM0M3aERydTFfYk4zRHdYdDNWcERxZnVZdE0zTUFhYktnMG9DWVZXZ0Z3bkFLWW1aTFpNV01RaDdrX2haeHkxZ09DUW1FOVUwOHRmX3BVMjFhSTBFbDZuNUE1dUcyRlQwcGxhY3djaGhlRm1YQXRvUGpUN25VNTNIVm1SaXNzeFVSX3ZSQ0RqX1pDRm8zSzNuWk5YQ1FPS1BBTWM5LUxDMHByYjlTbGc2c2lLdFNIQjNpR2pOUWxUOS1uYlNuRGdpZkk4ekMxY3ZUOENkYU5MT21VeXdSSUI0d3ZSbjF6MTIzTnV5ZkphSXo5NWlnVzlQMTg5dkJUSkVaUkVGLU1nSkVib1dLZGxHTm42YmJCdHUwd2FxQW1VVTdXVkxlWktkdFVJNkVFS0Y3d1JHWXVZX0JoWngxaXB5WG5CSFpwc3VmdUg0QXdnT08yODlRS21xZzhRQXk3SEZEOWM4SDhmTkN0UjdzVFo0WU5QMkFoRWFFUzBya01TUVVDTlZFejQyWUVCaTJHZ3JTcG5JOTRTUGRiM0ozUGtDTVo0T2dGUmp6dExPN25yZ2JQdGZsaFNPb19WT0UwXzdZNzRrbTQzV0FNUVBLTDMtNDR2UXJFUTYxSGRfMjRJY0ZoX0NoTlh2VURxcDM5R3pZbE8zRDB6bGF1NG96bGw4QmVMVVpySndIVFFXWlM4WFItRWlmQ2w0TVc1WTNZMVN4T0xySXhudWtDelF4TDdhR21jJnM9U1BSX2c4QXlkSEF4MmZSYnNJU05CeVJzYkpHaEpMVTYtSlV0M0QxYnpJdDZ5V0R6NzZfNzdfTVFwdVVZWkRxY0JIYUhZbmllVnk3QlRRYmRvamowLUJuTHQ0dzNvLTNVbDBpMTZScTB6YUhyZVprZmJRY2h3ZmxPVHp4LWcza1dLM1dZZzJ5eVpKcmhkNjZhV3pmZmZLVkIxU1BmeE5XZWI4Y0V2YzNXYVd3MXNVeTlPaEV0M1NuNzVqd3NuNnh0ejBGdVRfRGR5QUhpbVEtMm1VNy1zaFY4QTAteThWNHJZYzRkR2dBNmpseW0xQ3JjYWZoUVR3U25sd3UwdlI5cV9QN3dUbl96SkI0RlZoLUVvY29rYWhfWmJIV2RMeUt3aGZOYUhib2tYdnVwOEE1UTBYY2JkbEo2M0x2c3BSajI0NFRENHhvOWhRMGFPUnc4SW5TaFZRJmg9TmhaV0VzSWk4Q3k1UjF3WFdYY0xUbi1CNDRNcTR2WkhQYWY1RjdXOGRRdw==", "RequestMethod": "GET", "RequestHeaders": { @@ -385,7 +385,7 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437?api-version=2023-05-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437?api-version=2023-11-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL3BzMzY5OC9wcm92aWRlcnMvTWljcm9zb2Z0LkJhdGNoL2JhdGNoQWNjb3VudHMvcHM4NDM3P2FwaS12ZXJzaW9uPTIwMjMtMDUtMDE=", "RequestMethod": "GET", "RequestHeaders": { @@ -460,7 +460,7 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437?api-version=2023-05-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437?api-version=2023-11-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL3BzMzY5OC9wcm92aWRlcnMvTWljcm9zb2Z0LkJhdGNoL2JhdGNoQWNjb3VudHMvcHM4NDM3P2FwaS12ZXJzaW9uPTIwMjMtMDUtMDE=", "RequestMethod": "GET", "RequestHeaders": { @@ -535,7 +535,7 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437?api-version=2023-05-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437?api-version=2023-11-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL3BzMzY5OC9wcm92aWRlcnMvTWljcm9zb2Z0LkJhdGNoL2JhdGNoQWNjb3VudHMvcHM4NDM3P2FwaS12ZXJzaW9uPTIwMjMtMDUtMDE=", "RequestMethod": "GET", "RequestHeaders": { @@ -610,7 +610,7 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437?api-version=2023-05-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437?api-version=2023-11-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL3BzMzY5OC9wcm92aWRlcnMvTWljcm9zb2Z0LkJhdGNoL2JhdGNoQWNjb3VudHMvcHM4NDM3P2FwaS12ZXJzaW9uPTIwMjMtMDUtMDE=", "RequestMethod": "GET", "RequestHeaders": { @@ -685,7 +685,7 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437?api-version=2023-05-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437?api-version=2023-11-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL3BzMzY5OC9wcm92aWRlcnMvTWljcm9zb2Z0LkJhdGNoL2JhdGNoQWNjb3VudHMvcHM4NDM3P2FwaS12ZXJzaW9uPTIwMjMtMDUtMDE=", "RequestMethod": "GET", "RequestHeaders": { @@ -760,7 +760,7 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437?api-version=2023-05-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437?api-version=2023-11-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL3BzMzY5OC9wcm92aWRlcnMvTWljcm9zb2Z0LkJhdGNoL2JhdGNoQWNjb3VudHMvcHM4NDM3P2FwaS12ZXJzaW9uPTIwMjMtMDUtMDE=", "RequestMethod": "GET", "RequestHeaders": { @@ -898,7 +898,7 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437/listKeys?api-version=2023-05-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437/listKeys?api-version=2023-11-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL3BzMzY5OC9wcm92aWRlcnMvTWljcm9zb2Z0LkJhdGNoL2JhdGNoQWNjb3VudHMvcHM4NDM3L2xpc3RLZXlzP2FwaS12ZXJzaW9uPTIwMjMtMDUtMDE=", "RequestMethod": "POST", "RequestHeaders": { @@ -970,7 +970,7 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437/listKeys?api-version=2023-05-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437/listKeys?api-version=2023-11-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL3BzMzY5OC9wcm92aWRlcnMvTWljcm9zb2Z0LkJhdGNoL2JhdGNoQWNjb3VudHMvcHM4NDM3L2xpc3RLZXlzP2FwaS12ZXJzaW9uPTIwMjMtMDUtMDE=", "RequestMethod": "POST", "RequestHeaders": { @@ -1042,7 +1042,7 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437/regenerateKeys?api-version=2023-05-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437/regenerateKeys?api-version=2023-11-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL3BzMzY5OC9wcm92aWRlcnMvTWljcm9zb2Z0LkJhdGNoL2JhdGNoQWNjb3VudHMvcHM4NDM3L3JlZ2VuZXJhdGVLZXlzP2FwaS12ZXJzaW9uPTIwMjMtMDUtMDE=", "RequestMethod": "POST", "RequestHeaders": { @@ -1120,7 +1120,7 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437?api-version=2023-05-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437?api-version=2023-11-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL3BzMzY5OC9wcm92aWRlcnMvTWljcm9zb2Z0LkJhdGNoL2JhdGNoQWNjb3VudHMvcHM4NDM3P2FwaS12ZXJzaW9uPTIwMjMtMDUtMDE=", "RequestMethod": "DELETE", "RequestHeaders": { @@ -1146,7 +1146,7 @@ "no-cache" ], "Location": [ - "https://management.azure.com/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/providers/Microsoft.Batch/locations/westus2/accountOperationResults/ps8437-7f030330-c3d1-42d2-88dc-6fa78252b612?api-version=2023-05-01&t=638932183186360780&c=MIIIpTCCBo2gAwIBAgITFgGsmnj73LBE7PaBtQABAayaeDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDMwHhcNMjUwNzE4MTIwNDI4WhcNMjYwMTE0MTIwNDI4WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKYwXiklImL5-WfPWj2FX3_Y-JxCd3XXEOuNXx5ggHubZZamujLTqEBSFsFYiH_9NCaqKTiATXu6fBpzW3ghgYhwr0PL071fQT15KnnNUFjd5hFXB7SYti9IwWu1lxSAz-De7HivujKdlsgcmfoV6upRQ0eva9e74EwLV9pCn4WQAhs-6T8p0CytQsi81qHMWybAbNvfom0ox78IEWdS_6g_d4Jl_I4ccYLMyRTOV2NioM96cRECWCZhbpLl1zwoYGSbU5H0MZaiCBjPlhXN40BqagpamZfP98sPYSBfreh6-iMGU5tNTRkh8RiJqzjhzIUpEv3PqLtWTyPUB8JS7aUCAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9BTTNQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAzKDEpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MB0GA1UdDgQWBBTxzPCXgPzIUiTz94us0y0CCMf8BzAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBRIo61gdWpv7GDzaVXRALEyV_xs5DAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggIBAAqNK9Ejzdnb9L4TyakCpJByRYVTN_6nCGbtUd2E2sELjuJGRGiRmujp_jqNyIofO_ghSaP_tqH-3WRTRUbnt5xM8aBYoYJSOgKgTsNrB6clspdhCCmzhJy6EQuOqfUDm3C7hDru1_bN3DwXt3VpDqfuYtM3MAabKg0oCYVWgFwnAKYmZLZMWMQh7k_hZxy1gOCQmE9U08tf_pU21aI0El6n5A5uG2FT0placwchheFmXAtoPjT7nU53HVmRissxUR_vRCDj_ZCFo3K3nZNXCQOKPAMc9-LC0prb9Slg6siKtSHB3iGjNQlT9-nbSnDgifI8zC1cvT8CdaNLOmUywRIB4wvRn1z123NuyfJaIz95igW9P189vBTJEZREF-MgJEboWKdlGNn6bbBtu0waqAmUU7WVLeZKdtUI6EEKF7wRGYuY_BhZx1ipyXnBHZpsufuH4AwgOO289QKmqg8QAy7HFD9c8H8fNCtR7sTZ4YNP2AhEaES0rkMSQUCNVEz42YEBi2GgrSpnI94SPdb3J3PkCMZ4OgFRjztLO7nrgbPtflhSOo_VOE0_7Y74km43WAMQPKL3-44vQrEQ61Hd_24IcFh_ChNXvUDqp39GzYlO3D0zlau4ozll8BeLUZrJwHTQWZS8XR-EifCl4MW5Y3Y1SxOLrIxnukCzQxL7aGmc&s=ENIYYOeR9tQXkYkicd_BX2Eh2gJYj6XtnBl6V2kh79ev8fOaZH8Jy1N4WfSAzvg5LSOv5UCHRhCbE6nH0OrCsSKDuxErHmcfv7H_yfkt-acdEoQwwtGCwPd-87-Yht2Nq2RefPWjN82BzfXDBpDWI3L7Nq78xmRB1RAMNFt9PElzG4ioxCJdU55N0nN0Wsp1BKTUwP6Enql3wu9g2tPDn7xBgx1TKSL3y3Qcz6R0AznDqv9bZ8JpBf7mLPbZ41Jhp0xVb7Ca6x_bs5GRj3ecgkSxXcn3AiGTTJiwjddCrZaNPoHFG750GviR1_QT9iRMvwbj7dgy2tP85G-AZhu7sA&h=CKs8IW2-k2gwB8WnRaGg_rhleAL5pbPIjZRT05ae0g0" + "https://management.azure.com/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/providers/Microsoft.Batch/locations/westus2/accountOperationResults/ps8437-7f030330-c3d1-42d2-88dc-6fa78252b612?api-version=2023-11-01&t=638932183186360780&c=MIIIpTCCBo2gAwIBAgITFgGsmnj73LBE7PaBtQABAayaeDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDMwHhcNMjUwNzE4MTIwNDI4WhcNMjYwMTE0MTIwNDI4WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKYwXiklImL5-WfPWj2FX3_Y-JxCd3XXEOuNXx5ggHubZZamujLTqEBSFsFYiH_9NCaqKTiATXu6fBpzW3ghgYhwr0PL071fQT15KnnNUFjd5hFXB7SYti9IwWu1lxSAz-De7HivujKdlsgcmfoV6upRQ0eva9e74EwLV9pCn4WQAhs-6T8p0CytQsi81qHMWybAbNvfom0ox78IEWdS_6g_d4Jl_I4ccYLMyRTOV2NioM96cRECWCZhbpLl1zwoYGSbU5H0MZaiCBjPlhXN40BqagpamZfP98sPYSBfreh6-iMGU5tNTRkh8RiJqzjhzIUpEv3PqLtWTyPUB8JS7aUCAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9BTTNQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAzKDEpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MB0GA1UdDgQWBBTxzPCXgPzIUiTz94us0y0CCMf8BzAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBRIo61gdWpv7GDzaVXRALEyV_xs5DAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggIBAAqNK9Ejzdnb9L4TyakCpJByRYVTN_6nCGbtUd2E2sELjuJGRGiRmujp_jqNyIofO_ghSaP_tqH-3WRTRUbnt5xM8aBYoYJSOgKgTsNrB6clspdhCCmzhJy6EQuOqfUDm3C7hDru1_bN3DwXt3VpDqfuYtM3MAabKg0oCYVWgFwnAKYmZLZMWMQh7k_hZxy1gOCQmE9U08tf_pU21aI0El6n5A5uG2FT0placwchheFmXAtoPjT7nU53HVmRissxUR_vRCDj_ZCFo3K3nZNXCQOKPAMc9-LC0prb9Slg6siKtSHB3iGjNQlT9-nbSnDgifI8zC1cvT8CdaNLOmUywRIB4wvRn1z123NuyfJaIz95igW9P189vBTJEZREF-MgJEboWKdlGNn6bbBtu0waqAmUU7WVLeZKdtUI6EEKF7wRGYuY_BhZx1ipyXnBHZpsufuH4AwgOO289QKmqg8QAy7HFD9c8H8fNCtR7sTZ4YNP2AhEaES0rkMSQUCNVEz42YEBi2GgrSpnI94SPdb3J3PkCMZ4OgFRjztLO7nrgbPtflhSOo_VOE0_7Y74km43WAMQPKL3-44vQrEQ61Hd_24IcFh_ChNXvUDqp39GzYlO3D0zlau4ozll8BeLUZrJwHTQWZS8XR-EifCl4MW5Y3Y1SxOLrIxnukCzQxL7aGmc&s=ENIYYOeR9tQXkYkicd_BX2Eh2gJYj6XtnBl6V2kh79ev8fOaZH8Jy1N4WfSAzvg5LSOv5UCHRhCbE6nH0OrCsSKDuxErHmcfv7H_yfkt-acdEoQwwtGCwPd-87-Yht2Nq2RefPWjN82BzfXDBpDWI3L7Nq78xmRB1RAMNFt9PElzG4ioxCJdU55N0nN0Wsp1BKTUwP6Enql3wu9g2tPDn7xBgx1TKSL3y3Qcz6R0AznDqv9bZ8JpBf7mLPbZ41Jhp0xVb7Ca6x_bs5GRj3ecgkSxXcn3AiGTTJiwjddCrZaNPoHFG750GviR1_QT9iRMvwbj7dgy2tP85G-AZhu7sA&h=CKs8IW2-k2gwB8WnRaGg_rhleAL5pbPIjZRT05ae0g0" ], "Retry-After": [ "15" @@ -1195,7 +1195,7 @@ "StatusCode": 202 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/providers/Microsoft.Batch/locations/westus2/accountOperationResults/ps8437-7f030330-c3d1-42d2-88dc-6fa78252b612?api-version=2023-05-01&t=638932183186360780&c=MIIIpTCCBo2gAwIBAgITFgGsmnj73LBE7PaBtQABAayaeDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDMwHhcNMjUwNzE4MTIwNDI4WhcNMjYwMTE0MTIwNDI4WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKYwXiklImL5-WfPWj2FX3_Y-JxCd3XXEOuNXx5ggHubZZamujLTqEBSFsFYiH_9NCaqKTiATXu6fBpzW3ghgYhwr0PL071fQT15KnnNUFjd5hFXB7SYti9IwWu1lxSAz-De7HivujKdlsgcmfoV6upRQ0eva9e74EwLV9pCn4WQAhs-6T8p0CytQsi81qHMWybAbNvfom0ox78IEWdS_6g_d4Jl_I4ccYLMyRTOV2NioM96cRECWCZhbpLl1zwoYGSbU5H0MZaiCBjPlhXN40BqagpamZfP98sPYSBfreh6-iMGU5tNTRkh8RiJqzjhzIUpEv3PqLtWTyPUB8JS7aUCAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9BTTNQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAzKDEpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MB0GA1UdDgQWBBTxzPCXgPzIUiTz94us0y0CCMf8BzAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBRIo61gdWpv7GDzaVXRALEyV_xs5DAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggIBAAqNK9Ejzdnb9L4TyakCpJByRYVTN_6nCGbtUd2E2sELjuJGRGiRmujp_jqNyIofO_ghSaP_tqH-3WRTRUbnt5xM8aBYoYJSOgKgTsNrB6clspdhCCmzhJy6EQuOqfUDm3C7hDru1_bN3DwXt3VpDqfuYtM3MAabKg0oCYVWgFwnAKYmZLZMWMQh7k_hZxy1gOCQmE9U08tf_pU21aI0El6n5A5uG2FT0placwchheFmXAtoPjT7nU53HVmRissxUR_vRCDj_ZCFo3K3nZNXCQOKPAMc9-LC0prb9Slg6siKtSHB3iGjNQlT9-nbSnDgifI8zC1cvT8CdaNLOmUywRIB4wvRn1z123NuyfJaIz95igW9P189vBTJEZREF-MgJEboWKdlGNn6bbBtu0waqAmUU7WVLeZKdtUI6EEKF7wRGYuY_BhZx1ipyXnBHZpsufuH4AwgOO289QKmqg8QAy7HFD9c8H8fNCtR7sTZ4YNP2AhEaES0rkMSQUCNVEz42YEBi2GgrSpnI94SPdb3J3PkCMZ4OgFRjztLO7nrgbPtflhSOo_VOE0_7Y74km43WAMQPKL3-44vQrEQ61Hd_24IcFh_ChNXvUDqp39GzYlO3D0zlau4ozll8BeLUZrJwHTQWZS8XR-EifCl4MW5Y3Y1SxOLrIxnukCzQxL7aGmc&s=ENIYYOeR9tQXkYkicd_BX2Eh2gJYj6XtnBl6V2kh79ev8fOaZH8Jy1N4WfSAzvg5LSOv5UCHRhCbE6nH0OrCsSKDuxErHmcfv7H_yfkt-acdEoQwwtGCwPd-87-Yht2Nq2RefPWjN82BzfXDBpDWI3L7Nq78xmRB1RAMNFt9PElzG4ioxCJdU55N0nN0Wsp1BKTUwP6Enql3wu9g2tPDn7xBgx1TKSL3y3Qcz6R0AznDqv9bZ8JpBf7mLPbZ41Jhp0xVb7Ca6x_bs5GRj3ecgkSxXcn3AiGTTJiwjddCrZaNPoHFG750GviR1_QT9iRMvwbj7dgy2tP85G-AZhu7sA&h=CKs8IW2-k2gwB8WnRaGg_rhleAL5pbPIjZRT05ae0g0", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/providers/Microsoft.Batch/locations/westus2/accountOperationResults/ps8437-7f030330-c3d1-42d2-88dc-6fa78252b612?api-version=2023-11-01&t=638932183186360780&c=MIIIpTCCBo2gAwIBAgITFgGsmnj73LBE7PaBtQABAayaeDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDMwHhcNMjUwNzE4MTIwNDI4WhcNMjYwMTE0MTIwNDI4WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKYwXiklImL5-WfPWj2FX3_Y-JxCd3XXEOuNXx5ggHubZZamujLTqEBSFsFYiH_9NCaqKTiATXu6fBpzW3ghgYhwr0PL071fQT15KnnNUFjd5hFXB7SYti9IwWu1lxSAz-De7HivujKdlsgcmfoV6upRQ0eva9e74EwLV9pCn4WQAhs-6T8p0CytQsi81qHMWybAbNvfom0ox78IEWdS_6g_d4Jl_I4ccYLMyRTOV2NioM96cRECWCZhbpLl1zwoYGSbU5H0MZaiCBjPlhXN40BqagpamZfP98sPYSBfreh6-iMGU5tNTRkh8RiJqzjhzIUpEv3PqLtWTyPUB8JS7aUCAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9BTTNQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAzKDEpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MB0GA1UdDgQWBBTxzPCXgPzIUiTz94us0y0CCMf8BzAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBRIo61gdWpv7GDzaVXRALEyV_xs5DAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggIBAAqNK9Ejzdnb9L4TyakCpJByRYVTN_6nCGbtUd2E2sELjuJGRGiRmujp_jqNyIofO_ghSaP_tqH-3WRTRUbnt5xM8aBYoYJSOgKgTsNrB6clspdhCCmzhJy6EQuOqfUDm3C7hDru1_bN3DwXt3VpDqfuYtM3MAabKg0oCYVWgFwnAKYmZLZMWMQh7k_hZxy1gOCQmE9U08tf_pU21aI0El6n5A5uG2FT0placwchheFmXAtoPjT7nU53HVmRissxUR_vRCDj_ZCFo3K3nZNXCQOKPAMc9-LC0prb9Slg6siKtSHB3iGjNQlT9-nbSnDgifI8zC1cvT8CdaNLOmUywRIB4wvRn1z123NuyfJaIz95igW9P189vBTJEZREF-MgJEboWKdlGNn6bbBtu0waqAmUU7WVLeZKdtUI6EEKF7wRGYuY_BhZx1ipyXnBHZpsufuH4AwgOO289QKmqg8QAy7HFD9c8H8fNCtR7sTZ4YNP2AhEaES0rkMSQUCNVEz42YEBi2GgrSpnI94SPdb3J3PkCMZ4OgFRjztLO7nrgbPtflhSOo_VOE0_7Y74km43WAMQPKL3-44vQrEQ61Hd_24IcFh_ChNXvUDqp39GzYlO3D0zlau4ozll8BeLUZrJwHTQWZS8XR-EifCl4MW5Y3Y1SxOLrIxnukCzQxL7aGmc&s=ENIYYOeR9tQXkYkicd_BX2Eh2gJYj6XtnBl6V2kh79ev8fOaZH8Jy1N4WfSAzvg5LSOv5UCHRhCbE6nH0OrCsSKDuxErHmcfv7H_yfkt-acdEoQwwtGCwPd-87-Yht2Nq2RefPWjN82BzfXDBpDWI3L7Nq78xmRB1RAMNFt9PElzG4ioxCJdU55N0nN0Wsp1BKTUwP6Enql3wu9g2tPDn7xBgx1TKSL3y3Qcz6R0AznDqv9bZ8JpBf7mLPbZ41Jhp0xVb7Ca6x_bs5GRj3ecgkSxXcn3AiGTTJiwjddCrZaNPoHFG750GviR1_QT9iRMvwbj7dgy2tP85G-AZhu7sA&h=CKs8IW2-k2gwB8WnRaGg_rhleAL5pbPIjZRT05ae0g0", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Byb3ZpZGVycy9NaWNyb3NvZnQuQmF0Y2gvbG9jYXRpb25zL3dlc3R1czIvYWNjb3VudE9wZXJhdGlvblJlc3VsdHMvcHM4NDM3LTdmMDMwMzMwLWMzZDEtNDJkMi04OGRjLTZmYTc4MjUyYjYxMj9hcGktdmVyc2lvbj0yMDIzLTA1LTAxJnQ9NjM4OTMyMTgzMTg2MzYwNzgwJmM9TUlJSXBUQ0NCbzJnQXdJQkFnSVRGZ0dzbW5qNzNMQkU3UGFCdFFBQkFheWFlREFOQmdrcWhraUc5dzBCQVFzRkFEQkVNUk13RVFZS0NaSW1pWlB5TEdRQkdSWURSMEpNTVJNd0VRWUtDWkltaVpQeUxHUUJHUllEUVUxRk1SZ3dGZ1lEVlFRREV3OUJUVVVnU1c1bWNtRWdRMEVnTURNd0hoY05NalV3TnpFNE1USXdOREk0V2hjTk1qWXdNVEUwTVRJd05ESTRXakJBTVQ0d1BBWURWUVFERXpWaGMzbHVZMjl3WlhKaGRHbHZibk5wWjI1cGJtZGpaWEowYVdacFkyRjBaUzV0WVc1aFoyVnRaVzUwTG1GNmRYSmxMbU52YlRDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBS1l3WGlrbEltTDUtV2ZQV2oyRlgzX1ktSnhDZDNYWEVPdU5YeDVnZ0h1YlpaYW11akxUcUVCU0ZzRllpSF85TkNhcUtUaUFUWHU2ZkJwelczZ2hnWWh3cjBQTDA3MWZRVDE1S25uTlVGamQ1aEZYQjdTWXRpOUl3V3UxbHhTQXotRGU3SGl2dWpLZGxzZ2NtZm9WNnVwUlEwZXZhOWU3NEV3TFY5cENuNFdRQWhzLTZUOHAwQ3l0UXNpODFxSE1XeWJBYk52Zm9tMG94NzhJRVdkU182Z19kNEpsX0k0Y2NZTE15UlRPVjJOaW9NOTZjUkVDV0NaaGJwTGwxendvWUdTYlU1SDBNWmFpQ0JqUGxoWE40MEJxYWdwYW1aZlA5OHNQWVNCZnJlaDYtaU1HVTV0TlRSa2g4UmlKcXpqaHpJVXBFdjNQcUx0V1R5UFVCOEpTN2FVQ0F3RUFBYU9DQkpJd2dnU09NQ2NHQ1NzR0FRUUJnamNWQ2dRYU1CZ3dDZ1lJS3dZQkJRVUhBd0V3Q2dZSUt3WUJCUVVIQXdJd1BRWUpLd1lCQkFHQ054VUhCREF3TGdZbUt3WUJCQUdDTnhVSWhwRGpEWVRWdEhpRThZcy1oWnZkRnM2ZEVvRmdoZm1SUzRXc21UUUNBV1FDQVFjd2dnSGFCZ2dyQmdFRkJRY0JBUVNDQWN3d2dnSElNR1lHQ0NzR0FRVUZCekFDaGxwb2RIUndPaTh2WTNKc0xtMXBZM0p2YzI5bWRDNWpiMjB2Y0d0cGFXNW1jbUV2UTJWeWRITXZRVTB6VUV0SlNVNVVRMEV3TVM1QlRVVXVSMEpNWDBGTlJTVXlNRWx1Wm5KaEpUSXdRMEVsTWpBd015Z3hLUzVqY25Rd1ZnWUlLd1lCQlFVSE1BS0dTbWgwZEhBNkx5OWpjbXd4TG1GdFpTNW5ZbXd2WVdsaEwwRk5NMUJMU1VsT1ZFTkJNREV1UVUxRkxrZENURjlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURNb01Ta3VZM0owTUZZR0NDc0dBUVVGQnpBQ2hrcG9kSFJ3T2k4dlkzSnNNaTVoYldVdVoySnNMMkZwWVM5QlRUTlFTMGxKVGxSRFFUQXhMa0ZOUlM1SFFreGZRVTFGSlRJd1NXNW1jbUVsTWpCRFFTVXlNREF6S0RFcExtTnlkREJXQmdnckJnRUZCUWN3QW9aS2FIUjBjRG92TDJOeWJETXVZVzFsTG1kaWJDOWhhV0V2UVUwelVFdEpTVTVVUTBFd01TNUJUVVV1UjBKTVgwRk5SU1V5TUVsdVpuSmhKVEl3UTBFbE1qQXdNeWd4S1M1amNuUXdWZ1lJS3dZQkJRVUhNQUtHU21oMGRIQTZMeTlqY213MExtRnRaUzVuWW13dllXbGhMMEZOTTFCTFNVbE9WRU5CTURFdVFVMUZMa2RDVEY5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKME1CMEdBMVVkRGdRV0JCVHh6UENYZ1B6SVVpVHo5NHVzMHkwQ0NNZjhCekFPQmdOVkhROEJBZjhFQkFNQ0JhQXdnZ0UxQmdOVkhSOEVnZ0VzTUlJQktEQ0NBU1NnZ2dFZ29JSUJISVpDYUhSMGNEb3ZMMk55YkM1dGFXTnliM052Wm5RdVkyOXRMM0JyYVdsdVpuSmhMME5TVEM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc2hqUm9kSFJ3T2k4dlkzSnNNUzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc2hqUm9kSFJ3T2k4dlkzSnNNaTVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc2hqUm9kSFJ3T2k4dlkzSnNNeTVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc2hqUm9kSFJ3T2k4dlkzSnNOQzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc01JR2RCZ05WSFNBRWdaVXdnWkl3REFZS0t3WUJCQUdDTjNzQkFUQm1CZ29yQmdFRUFZSTNld0lDTUZnd1ZnWUlLd1lCQlFVSEFnSXdTaDVJQURNQU13QmxBREFBTVFBNUFESUFNUUF0QURRQVpBQTJBRFFBTFFBMEFHWUFPQUJqQUMwQVlRQXdBRFVBTlFBdEFEVUFZZ0JrQUdFQVpnQm1BR1FBTlFCbEFETUFNd0JrTUF3R0Npc0dBUVFCZ2pkN0F3SXdEQVlLS3dZQkJBR0NOM3NFQWpBZkJnTlZIU01FR0RBV2dCUklvNjFnZFdwdjdHRHphVlhSQUxFeVZfeHM1REFkQmdOVkhTVUVGakFVQmdnckJnRUZCUWNEQVFZSUt3WUJCUVVIQXdJd0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dJQkFBcU5LOUVqemRuYjlMNFR5YWtDcEpCeVJZVlROXzZuQ0didFVkMkUyc0VManVKR1JHaVJtdWpwX2pxTnlJb2ZPX2doU2FQX3RxSC0zV1JUUlVibnQ1eE04YUJZb1lKU09nS2dUc05yQjZjbHNwZGhDQ216aEp5NkVRdU9xZlVEbTNDN2hEcnUxX2JOM0R3WHQzVnBEcWZ1WXRNM01BYWJLZzBvQ1lWV2dGd25BS1ltWkxaTVdNUWg3a19oWnh5MWdPQ1FtRTlVMDh0Zl9wVTIxYUkwRWw2bjVBNXVHMkZUMHBsYWN3Y2hoZUZtWEF0b1BqVDduVTUzSFZtUmlzc3hVUl92UkNEal9aQ0ZvM0szblpOWENRT0tQQU1jOS1MQzBwcmI5U2xnNnNpS3RTSEIzaUdqTlFsVDktbmJTbkRnaWZJOHpDMWN2VDhDZGFOTE9tVXl3UklCNHd2Um4xejEyM051eWZKYUl6OTVpZ1c5UDE4OXZCVEpFWlJFRi1NZ0pFYm9XS2RsR05uNmJiQnR1MHdhcUFtVVU3V1ZMZVpLZHRVSTZFRUtGN3dSR1l1WV9CaFp4MWlweVhuQkhacHN1ZnVINEF3Z09PMjg5UUttcWc4UUF5N0hGRDljOEg4Zk5DdFI3c1RaNFlOUDJBaEVhRVMwcmtNU1FVQ05WRXo0MllFQmkyR2dyU3BuSTk0U1BkYjNKM1BrQ01aNE9nRlJqenRMTzducmdiUHRmbGhTT29fVk9FMF83WTc0a200M1dBTVFQS0wzLTQ0dlFyRVE2MUhkXzI0SWNGaF9DaE5YdlVEcXAzOUd6WWxPM0QwemxhdTRvemxsOEJlTFVackp3SFRRV1pTOFhSLUVpZkNsNE1XNVkzWTFTeE9Mckl4bnVrQ3pReEw3YUdtYyZzPUVOSVlZT2VSOXRRWGtZa2ljZF9CWDJFaDJnSllqNlh0bkJsNlYya2g3OWV2OGZPYVpIOEp5MU40V2ZTQXp2ZzVMU092NVVDSFJoQ2JFNm5IME9yQ3NTS0R1eEVySG1jZnY3SF95Zmt0LWFjZEVvUXd3dEdDd1BkLTg3LVlodDJOcTJSZWZQV2pOODJCemZYREJwRFdJM0w3TnE3OHhtUkIxUkFNTkZ0OVBFbHpHNGlveENKZFU1NU4wbk4wV3NwMUJLVFV3UDZFbnFsM3d1OWcydFBEbjd4Qmd4MVRLU0wzeTNRY3o2UjBBem5EcXY5Ylo4SnBCZjdtTFBiWjQxSmhwMHhWYjdDYTZ4X2JzNUdSajNlY2drU3hYY24zQWlHVFRKaXdqZGRDclphTlBvSEZHNzUwR3ZpUjFfUVQ5aVJNdndiajdkZ3kydFA4NUctQVpodTdzQSZoPUNLczhJVzItazJnd0I4V25SYUdnX3JobGVBTDVwYlBJalpSVDA1YWUwZzA=", "RequestMethod": "GET", "RequestHeaders": { @@ -1261,7 +1261,7 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/providers/Microsoft.Batch/locations/westus2/accountOperationResults/ps8437-7f030330-c3d1-42d2-88dc-6fa78252b612?api-version=2023-05-01&t=638932183186360780&c=MIIIpTCCBo2gAwIBAgITFgGsmnj73LBE7PaBtQABAayaeDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDMwHhcNMjUwNzE4MTIwNDI4WhcNMjYwMTE0MTIwNDI4WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKYwXiklImL5-WfPWj2FX3_Y-JxCd3XXEOuNXx5ggHubZZamujLTqEBSFsFYiH_9NCaqKTiATXu6fBpzW3ghgYhwr0PL071fQT15KnnNUFjd5hFXB7SYti9IwWu1lxSAz-De7HivujKdlsgcmfoV6upRQ0eva9e74EwLV9pCn4WQAhs-6T8p0CytQsi81qHMWybAbNvfom0ox78IEWdS_6g_d4Jl_I4ccYLMyRTOV2NioM96cRECWCZhbpLl1zwoYGSbU5H0MZaiCBjPlhXN40BqagpamZfP98sPYSBfreh6-iMGU5tNTRkh8RiJqzjhzIUpEv3PqLtWTyPUB8JS7aUCAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9BTTNQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAzKDEpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MB0GA1UdDgQWBBTxzPCXgPzIUiTz94us0y0CCMf8BzAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBRIo61gdWpv7GDzaVXRALEyV_xs5DAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggIBAAqNK9Ejzdnb9L4TyakCpJByRYVTN_6nCGbtUd2E2sELjuJGRGiRmujp_jqNyIofO_ghSaP_tqH-3WRTRUbnt5xM8aBYoYJSOgKgTsNrB6clspdhCCmzhJy6EQuOqfUDm3C7hDru1_bN3DwXt3VpDqfuYtM3MAabKg0oCYVWgFwnAKYmZLZMWMQh7k_hZxy1gOCQmE9U08tf_pU21aI0El6n5A5uG2FT0placwchheFmXAtoPjT7nU53HVmRissxUR_vRCDj_ZCFo3K3nZNXCQOKPAMc9-LC0prb9Slg6siKtSHB3iGjNQlT9-nbSnDgifI8zC1cvT8CdaNLOmUywRIB4wvRn1z123NuyfJaIz95igW9P189vBTJEZREF-MgJEboWKdlGNn6bbBtu0waqAmUU7WVLeZKdtUI6EEKF7wRGYuY_BhZx1ipyXnBHZpsufuH4AwgOO289QKmqg8QAy7HFD9c8H8fNCtR7sTZ4YNP2AhEaES0rkMSQUCNVEz42YEBi2GgrSpnI94SPdb3J3PkCMZ4OgFRjztLO7nrgbPtflhSOo_VOE0_7Y74km43WAMQPKL3-44vQrEQ61Hd_24IcFh_ChNXvUDqp39GzYlO3D0zlau4ozll8BeLUZrJwHTQWZS8XR-EifCl4MW5Y3Y1SxOLrIxnukCzQxL7aGmc&s=ENIYYOeR9tQXkYkicd_BX2Eh2gJYj6XtnBl6V2kh79ev8fOaZH8Jy1N4WfSAzvg5LSOv5UCHRhCbE6nH0OrCsSKDuxErHmcfv7H_yfkt-acdEoQwwtGCwPd-87-Yht2Nq2RefPWjN82BzfXDBpDWI3L7Nq78xmRB1RAMNFt9PElzG4ioxCJdU55N0nN0Wsp1BKTUwP6Enql3wu9g2tPDn7xBgx1TKSL3y3Qcz6R0AznDqv9bZ8JpBf7mLPbZ41Jhp0xVb7Ca6x_bs5GRj3ecgkSxXcn3AiGTTJiwjddCrZaNPoHFG750GviR1_QT9iRMvwbj7dgy2tP85G-AZhu7sA&h=CKs8IW2-k2gwB8WnRaGg_rhleAL5pbPIjZRT05ae0g0", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/providers/Microsoft.Batch/locations/westus2/accountOperationResults/ps8437-7f030330-c3d1-42d2-88dc-6fa78252b612?api-version=2023-11-01&t=638932183186360780&c=MIIIpTCCBo2gAwIBAgITFgGsmnj73LBE7PaBtQABAayaeDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDMwHhcNMjUwNzE4MTIwNDI4WhcNMjYwMTE0MTIwNDI4WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKYwXiklImL5-WfPWj2FX3_Y-JxCd3XXEOuNXx5ggHubZZamujLTqEBSFsFYiH_9NCaqKTiATXu6fBpzW3ghgYhwr0PL071fQT15KnnNUFjd5hFXB7SYti9IwWu1lxSAz-De7HivujKdlsgcmfoV6upRQ0eva9e74EwLV9pCn4WQAhs-6T8p0CytQsi81qHMWybAbNvfom0ox78IEWdS_6g_d4Jl_I4ccYLMyRTOV2NioM96cRECWCZhbpLl1zwoYGSbU5H0MZaiCBjPlhXN40BqagpamZfP98sPYSBfreh6-iMGU5tNTRkh8RiJqzjhzIUpEv3PqLtWTyPUB8JS7aUCAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9BTTNQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAzKDEpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MB0GA1UdDgQWBBTxzPCXgPzIUiTz94us0y0CCMf8BzAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBRIo61gdWpv7GDzaVXRALEyV_xs5DAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggIBAAqNK9Ejzdnb9L4TyakCpJByRYVTN_6nCGbtUd2E2sELjuJGRGiRmujp_jqNyIofO_ghSaP_tqH-3WRTRUbnt5xM8aBYoYJSOgKgTsNrB6clspdhCCmzhJy6EQuOqfUDm3C7hDru1_bN3DwXt3VpDqfuYtM3MAabKg0oCYVWgFwnAKYmZLZMWMQh7k_hZxy1gOCQmE9U08tf_pU21aI0El6n5A5uG2FT0placwchheFmXAtoPjT7nU53HVmRissxUR_vRCDj_ZCFo3K3nZNXCQOKPAMc9-LC0prb9Slg6siKtSHB3iGjNQlT9-nbSnDgifI8zC1cvT8CdaNLOmUywRIB4wvRn1z123NuyfJaIz95igW9P189vBTJEZREF-MgJEboWKdlGNn6bbBtu0waqAmUU7WVLeZKdtUI6EEKF7wRGYuY_BhZx1ipyXnBHZpsufuH4AwgOO289QKmqg8QAy7HFD9c8H8fNCtR7sTZ4YNP2AhEaES0rkMSQUCNVEz42YEBi2GgrSpnI94SPdb3J3PkCMZ4OgFRjztLO7nrgbPtflhSOo_VOE0_7Y74km43WAMQPKL3-44vQrEQ61Hd_24IcFh_ChNXvUDqp39GzYlO3D0zlau4ozll8BeLUZrJwHTQWZS8XR-EifCl4MW5Y3Y1SxOLrIxnukCzQxL7aGmc&s=ENIYYOeR9tQXkYkicd_BX2Eh2gJYj6XtnBl6V2kh79ev8fOaZH8Jy1N4WfSAzvg5LSOv5UCHRhCbE6nH0OrCsSKDuxErHmcfv7H_yfkt-acdEoQwwtGCwPd-87-Yht2Nq2RefPWjN82BzfXDBpDWI3L7Nq78xmRB1RAMNFt9PElzG4ioxCJdU55N0nN0Wsp1BKTUwP6Enql3wu9g2tPDn7xBgx1TKSL3y3Qcz6R0AznDqv9bZ8JpBf7mLPbZ41Jhp0xVb7Ca6x_bs5GRj3ecgkSxXcn3AiGTTJiwjddCrZaNPoHFG750GviR1_QT9iRMvwbj7dgy2tP85G-AZhu7sA&h=CKs8IW2-k2gwB8WnRaGg_rhleAL5pbPIjZRT05ae0g0", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Byb3ZpZGVycy9NaWNyb3NvZnQuQmF0Y2gvbG9jYXRpb25zL3dlc3R1czIvYWNjb3VudE9wZXJhdGlvblJlc3VsdHMvcHM4NDM3LTdmMDMwMzMwLWMzZDEtNDJkMi04OGRjLTZmYTc4MjUyYjYxMj9hcGktdmVyc2lvbj0yMDIzLTA1LTAxJnQ9NjM4OTMyMTgzMTg2MzYwNzgwJmM9TUlJSXBUQ0NCbzJnQXdJQkFnSVRGZ0dzbW5qNzNMQkU3UGFCdFFBQkFheWFlREFOQmdrcWhraUc5dzBCQVFzRkFEQkVNUk13RVFZS0NaSW1pWlB5TEdRQkdSWURSMEpNTVJNd0VRWUtDWkltaVpQeUxHUUJHUllEUVUxRk1SZ3dGZ1lEVlFRREV3OUJUVVVnU1c1bWNtRWdRMEVnTURNd0hoY05NalV3TnpFNE1USXdOREk0V2hjTk1qWXdNVEUwTVRJd05ESTRXakJBTVQ0d1BBWURWUVFERXpWaGMzbHVZMjl3WlhKaGRHbHZibk5wWjI1cGJtZGpaWEowYVdacFkyRjBaUzV0WVc1aFoyVnRaVzUwTG1GNmRYSmxMbU52YlRDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBS1l3WGlrbEltTDUtV2ZQV2oyRlgzX1ktSnhDZDNYWEVPdU5YeDVnZ0h1YlpaYW11akxUcUVCU0ZzRllpSF85TkNhcUtUaUFUWHU2ZkJwelczZ2hnWWh3cjBQTDA3MWZRVDE1S25uTlVGamQ1aEZYQjdTWXRpOUl3V3UxbHhTQXotRGU3SGl2dWpLZGxzZ2NtZm9WNnVwUlEwZXZhOWU3NEV3TFY5cENuNFdRQWhzLTZUOHAwQ3l0UXNpODFxSE1XeWJBYk52Zm9tMG94NzhJRVdkU182Z19kNEpsX0k0Y2NZTE15UlRPVjJOaW9NOTZjUkVDV0NaaGJwTGwxendvWUdTYlU1SDBNWmFpQ0JqUGxoWE40MEJxYWdwYW1aZlA5OHNQWVNCZnJlaDYtaU1HVTV0TlRSa2g4UmlKcXpqaHpJVXBFdjNQcUx0V1R5UFVCOEpTN2FVQ0F3RUFBYU9DQkpJd2dnU09NQ2NHQ1NzR0FRUUJnamNWQ2dRYU1CZ3dDZ1lJS3dZQkJRVUhBd0V3Q2dZSUt3WUJCUVVIQXdJd1BRWUpLd1lCQkFHQ054VUhCREF3TGdZbUt3WUJCQUdDTnhVSWhwRGpEWVRWdEhpRThZcy1oWnZkRnM2ZEVvRmdoZm1SUzRXc21UUUNBV1FDQVFjd2dnSGFCZ2dyQmdFRkJRY0JBUVNDQWN3d2dnSElNR1lHQ0NzR0FRVUZCekFDaGxwb2RIUndPaTh2WTNKc0xtMXBZM0p2YzI5bWRDNWpiMjB2Y0d0cGFXNW1jbUV2UTJWeWRITXZRVTB6VUV0SlNVNVVRMEV3TVM1QlRVVXVSMEpNWDBGTlJTVXlNRWx1Wm5KaEpUSXdRMEVsTWpBd015Z3hLUzVqY25Rd1ZnWUlLd1lCQlFVSE1BS0dTbWgwZEhBNkx5OWpjbXd4TG1GdFpTNW5ZbXd2WVdsaEwwRk5NMUJMU1VsT1ZFTkJNREV1UVUxRkxrZENURjlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURNb01Ta3VZM0owTUZZR0NDc0dBUVVGQnpBQ2hrcG9kSFJ3T2k4dlkzSnNNaTVoYldVdVoySnNMMkZwWVM5QlRUTlFTMGxKVGxSRFFUQXhMa0ZOUlM1SFFreGZRVTFGSlRJd1NXNW1jbUVsTWpCRFFTVXlNREF6S0RFcExtTnlkREJXQmdnckJnRUZCUWN3QW9aS2FIUjBjRG92TDJOeWJETXVZVzFsTG1kaWJDOWhhV0V2UVUwelVFdEpTVTVVUTBFd01TNUJUVVV1UjBKTVgwRk5SU1V5TUVsdVpuSmhKVEl3UTBFbE1qQXdNeWd4S1M1amNuUXdWZ1lJS3dZQkJRVUhNQUtHU21oMGRIQTZMeTlqY213MExtRnRaUzVuWW13dllXbGhMMEZOTTFCTFNVbE9WRU5CTURFdVFVMUZMa2RDVEY5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKME1CMEdBMVVkRGdRV0JCVHh6UENYZ1B6SVVpVHo5NHVzMHkwQ0NNZjhCekFPQmdOVkhROEJBZjhFQkFNQ0JhQXdnZ0UxQmdOVkhSOEVnZ0VzTUlJQktEQ0NBU1NnZ2dFZ29JSUJISVpDYUhSMGNEb3ZMMk55YkM1dGFXTnliM052Wm5RdVkyOXRMM0JyYVdsdVpuSmhMME5TVEM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc2hqUm9kSFJ3T2k4dlkzSnNNUzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc2hqUm9kSFJ3T2k4dlkzSnNNaTVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc2hqUm9kSFJ3T2k4dlkzSnNNeTVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc2hqUm9kSFJ3T2k4dlkzSnNOQzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc01JR2RCZ05WSFNBRWdaVXdnWkl3REFZS0t3WUJCQUdDTjNzQkFUQm1CZ29yQmdFRUFZSTNld0lDTUZnd1ZnWUlLd1lCQlFVSEFnSXdTaDVJQURNQU13QmxBREFBTVFBNUFESUFNUUF0QURRQVpBQTJBRFFBTFFBMEFHWUFPQUJqQUMwQVlRQXdBRFVBTlFBdEFEVUFZZ0JrQUdFQVpnQm1BR1FBTlFCbEFETUFNd0JrTUF3R0Npc0dBUVFCZ2pkN0F3SXdEQVlLS3dZQkJBR0NOM3NFQWpBZkJnTlZIU01FR0RBV2dCUklvNjFnZFdwdjdHRHphVlhSQUxFeVZfeHM1REFkQmdOVkhTVUVGakFVQmdnckJnRUZCUWNEQVFZSUt3WUJCUVVIQXdJd0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dJQkFBcU5LOUVqemRuYjlMNFR5YWtDcEpCeVJZVlROXzZuQ0didFVkMkUyc0VManVKR1JHaVJtdWpwX2pxTnlJb2ZPX2doU2FQX3RxSC0zV1JUUlVibnQ1eE04YUJZb1lKU09nS2dUc05yQjZjbHNwZGhDQ216aEp5NkVRdU9xZlVEbTNDN2hEcnUxX2JOM0R3WHQzVnBEcWZ1WXRNM01BYWJLZzBvQ1lWV2dGd25BS1ltWkxaTVdNUWg3a19oWnh5MWdPQ1FtRTlVMDh0Zl9wVTIxYUkwRWw2bjVBNXVHMkZUMHBsYWN3Y2hoZUZtWEF0b1BqVDduVTUzSFZtUmlzc3hVUl92UkNEal9aQ0ZvM0szblpOWENRT0tQQU1jOS1MQzBwcmI5U2xnNnNpS3RTSEIzaUdqTlFsVDktbmJTbkRnaWZJOHpDMWN2VDhDZGFOTE9tVXl3UklCNHd2Um4xejEyM051eWZKYUl6OTVpZ1c5UDE4OXZCVEpFWlJFRi1NZ0pFYm9XS2RsR05uNmJiQnR1MHdhcUFtVVU3V1ZMZVpLZHRVSTZFRUtGN3dSR1l1WV9CaFp4MWlweVhuQkhacHN1ZnVINEF3Z09PMjg5UUttcWc4UUF5N0hGRDljOEg4Zk5DdFI3c1RaNFlOUDJBaEVhRVMwcmtNU1FVQ05WRXo0MllFQmkyR2dyU3BuSTk0U1BkYjNKM1BrQ01aNE9nRlJqenRMTzducmdiUHRmbGhTT29fVk9FMF83WTc0a200M1dBTVFQS0wzLTQ0dlFyRVE2MUhkXzI0SWNGaF9DaE5YdlVEcXAzOUd6WWxPM0QwemxhdTRvemxsOEJlTFVackp3SFRRV1pTOFhSLUVpZkNsNE1XNVkzWTFTeE9Mckl4bnVrQ3pReEw3YUdtYyZzPUVOSVlZT2VSOXRRWGtZa2ljZF9CWDJFaDJnSllqNlh0bkJsNlYya2g3OWV2OGZPYVpIOEp5MU40V2ZTQXp2ZzVMU092NVVDSFJoQ2JFNm5IME9yQ3NTS0R1eEVySG1jZnY3SF95Zmt0LWFjZEVvUXd3dEdDd1BkLTg3LVlodDJOcTJSZWZQV2pOODJCemZYREJwRFdJM0w3TnE3OHhtUkIxUkFNTkZ0OVBFbHpHNGlveENKZFU1NU4wbk4wV3NwMUJLVFV3UDZFbnFsM3d1OWcydFBEbjd4Qmd4MVRLU0wzeTNRY3o2UjBBem5EcXY5Ylo4SnBCZjdtTFBiWjQxSmhwMHhWYjdDYTZ4X2JzNUdSajNlY2drU3hYY24zQWlHVFRKaXdqZGRDclphTlBvSEZHNzUwR3ZpUjFfUVQ5aVJNdndiajdkZ3kydFA4NUctQVpodTdzQSZoPUNLczhJVzItazJnd0I4V25SYUdnX3JobGVBTDVwYlBJalpSVDA1YWUwZzA=", "RequestMethod": "GET", "RequestHeaders": { diff --git a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchAccountTests/TestCreateNewBatchAccountWithNoPublicIp.json b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchAccountTests/TestCreateNewBatchAccountWithNoPublicIp.json index a83c847bbedb..11bb91f6f5f3 100644 --- a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchAccountTests/TestCreateNewBatchAccountWithNoPublicIp.json +++ b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchAccountTests/TestCreateNewBatchAccountWithNoPublicIp.json @@ -145,7 +145,7 @@ "StatusCode": 201 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps2289/providers/Microsoft.Batch/batchAccounts/ps5017?api-version=2023-05-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps2289/providers/Microsoft.Batch/batchAccounts/ps5017?api-version=2023-11-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL3BzMjI4OS9wcm92aWRlcnMvTWljcm9zb2Z0LkJhdGNoL2JhdGNoQWNjb3VudHMvcHM1MDE3P2FwaS12ZXJzaW9uPTIwMjMtMDUtMDE=", "RequestMethod": "PUT", "RequestHeaders": { @@ -177,7 +177,7 @@ "no-cache" ], "Location": [ - "https://management.azure.com/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps2289/providers/Microsoft.Batch/batchAccounts/ps5017/operationResults/50101d66-9d40-4d82-a504-6e28e0df756a?api-version=2023-05-01&t=638932200993295654&c=MIIIpTCCBo2gAwIBAgITFgGsmnj73LBE7PaBtQABAayaeDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDMwHhcNMjUwNzE4MTIwNDI4WhcNMjYwMTE0MTIwNDI4WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKYwXiklImL5-WfPWj2FX3_Y-JxCd3XXEOuNXx5ggHubZZamujLTqEBSFsFYiH_9NCaqKTiATXu6fBpzW3ghgYhwr0PL071fQT15KnnNUFjd5hFXB7SYti9IwWu1lxSAz-De7HivujKdlsgcmfoV6upRQ0eva9e74EwLV9pCn4WQAhs-6T8p0CytQsi81qHMWybAbNvfom0ox78IEWdS_6g_d4Jl_I4ccYLMyRTOV2NioM96cRECWCZhbpLl1zwoYGSbU5H0MZaiCBjPlhXN40BqagpamZfP98sPYSBfreh6-iMGU5tNTRkh8RiJqzjhzIUpEv3PqLtWTyPUB8JS7aUCAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9BTTNQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAzKDEpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MB0GA1UdDgQWBBTxzPCXgPzIUiTz94us0y0CCMf8BzAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBRIo61gdWpv7GDzaVXRALEyV_xs5DAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggIBAAqNK9Ejzdnb9L4TyakCpJByRYVTN_6nCGbtUd2E2sELjuJGRGiRmujp_jqNyIofO_ghSaP_tqH-3WRTRUbnt5xM8aBYoYJSOgKgTsNrB6clspdhCCmzhJy6EQuOqfUDm3C7hDru1_bN3DwXt3VpDqfuYtM3MAabKg0oCYVWgFwnAKYmZLZMWMQh7k_hZxy1gOCQmE9U08tf_pU21aI0El6n5A5uG2FT0placwchheFmXAtoPjT7nU53HVmRissxUR_vRCDj_ZCFo3K3nZNXCQOKPAMc9-LC0prb9Slg6siKtSHB3iGjNQlT9-nbSnDgifI8zC1cvT8CdaNLOmUywRIB4wvRn1z123NuyfJaIz95igW9P189vBTJEZREF-MgJEboWKdlGNn6bbBtu0waqAmUU7WVLeZKdtUI6EEKF7wRGYuY_BhZx1ipyXnBHZpsufuH4AwgOO289QKmqg8QAy7HFD9c8H8fNCtR7sTZ4YNP2AhEaES0rkMSQUCNVEz42YEBi2GgrSpnI94SPdb3J3PkCMZ4OgFRjztLO7nrgbPtflhSOo_VOE0_7Y74km43WAMQPKL3-44vQrEQ61Hd_24IcFh_ChNXvUDqp39GzYlO3D0zlau4ozll8BeLUZrJwHTQWZS8XR-EifCl4MW5Y3Y1SxOLrIxnukCzQxL7aGmc&s=pEsT5zEebyCw38sxckvC9EVO52g38kpg9EXUMYfpsAAHVCBpgTptmbqC88N1ZkOaaHnG-ShN0CkskbhUJUOfxColfDYneSXKY7046hQUd48lSOBpEtpSSIbyiXk61QgFlxDwOG8HC5UOMqprkAsqdSjwJgKmY499Kr5kkFBBXjPsticWW3tMRv1CnpXpoEgA0vyExcO92nzMuu2lVslKHR2qRL_Nin3AM2PM7FeRspihlAQL80HYPn-HaB_0BFtgxTOIGodTDKnYHRvfizquLov4J-WaCMZrodLJCsCFaLiwXlsl8aVXK3NG7JbQUQH04w0camdPxi5KZgjcNfPCuQ&h=2Pao3PTIIWrqys8OgjzdmV8sUvopZu0UvP_mxJDKUBQ" + "https://management.azure.com/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps2289/providers/Microsoft.Batch/batchAccounts/ps5017/operationResults/50101d66-9d40-4d82-a504-6e28e0df756a?api-version=2023-11-01&t=638932200993295654&c=MIIIpTCCBo2gAwIBAgITFgGsmnj73LBE7PaBtQABAayaeDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDMwHhcNMjUwNzE4MTIwNDI4WhcNMjYwMTE0MTIwNDI4WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKYwXiklImL5-WfPWj2FX3_Y-JxCd3XXEOuNXx5ggHubZZamujLTqEBSFsFYiH_9NCaqKTiATXu6fBpzW3ghgYhwr0PL071fQT15KnnNUFjd5hFXB7SYti9IwWu1lxSAz-De7HivujKdlsgcmfoV6upRQ0eva9e74EwLV9pCn4WQAhs-6T8p0CytQsi81qHMWybAbNvfom0ox78IEWdS_6g_d4Jl_I4ccYLMyRTOV2NioM96cRECWCZhbpLl1zwoYGSbU5H0MZaiCBjPlhXN40BqagpamZfP98sPYSBfreh6-iMGU5tNTRkh8RiJqzjhzIUpEv3PqLtWTyPUB8JS7aUCAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9BTTNQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAzKDEpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MB0GA1UdDgQWBBTxzPCXgPzIUiTz94us0y0CCMf8BzAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBRIo61gdWpv7GDzaVXRALEyV_xs5DAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggIBAAqNK9Ejzdnb9L4TyakCpJByRYVTN_6nCGbtUd2E2sELjuJGRGiRmujp_jqNyIofO_ghSaP_tqH-3WRTRUbnt5xM8aBYoYJSOgKgTsNrB6clspdhCCmzhJy6EQuOqfUDm3C7hDru1_bN3DwXt3VpDqfuYtM3MAabKg0oCYVWgFwnAKYmZLZMWMQh7k_hZxy1gOCQmE9U08tf_pU21aI0El6n5A5uG2FT0placwchheFmXAtoPjT7nU53HVmRissxUR_vRCDj_ZCFo3K3nZNXCQOKPAMc9-LC0prb9Slg6siKtSHB3iGjNQlT9-nbSnDgifI8zC1cvT8CdaNLOmUywRIB4wvRn1z123NuyfJaIz95igW9P189vBTJEZREF-MgJEboWKdlGNn6bbBtu0waqAmUU7WVLeZKdtUI6EEKF7wRGYuY_BhZx1ipyXnBHZpsufuH4AwgOO289QKmqg8QAy7HFD9c8H8fNCtR7sTZ4YNP2AhEaES0rkMSQUCNVEz42YEBi2GgrSpnI94SPdb3J3PkCMZ4OgFRjztLO7nrgbPtflhSOo_VOE0_7Y74km43WAMQPKL3-44vQrEQ61Hd_24IcFh_ChNXvUDqp39GzYlO3D0zlau4ozll8BeLUZrJwHTQWZS8XR-EifCl4MW5Y3Y1SxOLrIxnukCzQxL7aGmc&s=pEsT5zEebyCw38sxckvC9EVO52g38kpg9EXUMYfpsAAHVCBpgTptmbqC88N1ZkOaaHnG-ShN0CkskbhUJUOfxColfDYneSXKY7046hQUd48lSOBpEtpSSIbyiXk61QgFlxDwOG8HC5UOMqprkAsqdSjwJgKmY499Kr5kkFBBXjPsticWW3tMRv1CnpXpoEgA0vyExcO92nzMuu2lVslKHR2qRL_Nin3AM2PM7FeRspihlAQL80HYPn-HaB_0BFtgxTOIGodTDKnYHRvfizquLov4J-WaCMZrodLJCsCFaLiwXlsl8aVXK3NG7JbQUQH04w0camdPxi5KZgjcNfPCuQ&h=2Pao3PTIIWrqys8OgjzdmV8sUvopZu0UvP_mxJDKUBQ" ], "Retry-After": [ "15" @@ -226,7 +226,7 @@ "StatusCode": 202 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps2289/providers/Microsoft.Batch/batchAccounts/ps5017/operationResults/50101d66-9d40-4d82-a504-6e28e0df756a?api-version=2023-05-01&t=638932200993295654&c=MIIIpTCCBo2gAwIBAgITFgGsmnj73LBE7PaBtQABAayaeDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDMwHhcNMjUwNzE4MTIwNDI4WhcNMjYwMTE0MTIwNDI4WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKYwXiklImL5-WfPWj2FX3_Y-JxCd3XXEOuNXx5ggHubZZamujLTqEBSFsFYiH_9NCaqKTiATXu6fBpzW3ghgYhwr0PL071fQT15KnnNUFjd5hFXB7SYti9IwWu1lxSAz-De7HivujKdlsgcmfoV6upRQ0eva9e74EwLV9pCn4WQAhs-6T8p0CytQsi81qHMWybAbNvfom0ox78IEWdS_6g_d4Jl_I4ccYLMyRTOV2NioM96cRECWCZhbpLl1zwoYGSbU5H0MZaiCBjPlhXN40BqagpamZfP98sPYSBfreh6-iMGU5tNTRkh8RiJqzjhzIUpEv3PqLtWTyPUB8JS7aUCAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9BTTNQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAzKDEpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MB0GA1UdDgQWBBTxzPCXgPzIUiTz94us0y0CCMf8BzAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBRIo61gdWpv7GDzaVXRALEyV_xs5DAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggIBAAqNK9Ejzdnb9L4TyakCpJByRYVTN_6nCGbtUd2E2sELjuJGRGiRmujp_jqNyIofO_ghSaP_tqH-3WRTRUbnt5xM8aBYoYJSOgKgTsNrB6clspdhCCmzhJy6EQuOqfUDm3C7hDru1_bN3DwXt3VpDqfuYtM3MAabKg0oCYVWgFwnAKYmZLZMWMQh7k_hZxy1gOCQmE9U08tf_pU21aI0El6n5A5uG2FT0placwchheFmXAtoPjT7nU53HVmRissxUR_vRCDj_ZCFo3K3nZNXCQOKPAMc9-LC0prb9Slg6siKtSHB3iGjNQlT9-nbSnDgifI8zC1cvT8CdaNLOmUywRIB4wvRn1z123NuyfJaIz95igW9P189vBTJEZREF-MgJEboWKdlGNn6bbBtu0waqAmUU7WVLeZKdtUI6EEKF7wRGYuY_BhZx1ipyXnBHZpsufuH4AwgOO289QKmqg8QAy7HFD9c8H8fNCtR7sTZ4YNP2AhEaES0rkMSQUCNVEz42YEBi2GgrSpnI94SPdb3J3PkCMZ4OgFRjztLO7nrgbPtflhSOo_VOE0_7Y74km43WAMQPKL3-44vQrEQ61Hd_24IcFh_ChNXvUDqp39GzYlO3D0zlau4ozll8BeLUZrJwHTQWZS8XR-EifCl4MW5Y3Y1SxOLrIxnukCzQxL7aGmc&s=pEsT5zEebyCw38sxckvC9EVO52g38kpg9EXUMYfpsAAHVCBpgTptmbqC88N1ZkOaaHnG-ShN0CkskbhUJUOfxColfDYneSXKY7046hQUd48lSOBpEtpSSIbyiXk61QgFlxDwOG8HC5UOMqprkAsqdSjwJgKmY499Kr5kkFBBXjPsticWW3tMRv1CnpXpoEgA0vyExcO92nzMuu2lVslKHR2qRL_Nin3AM2PM7FeRspihlAQL80HYPn-HaB_0BFtgxTOIGodTDKnYHRvfizquLov4J-WaCMZrodLJCsCFaLiwXlsl8aVXK3NG7JbQUQH04w0camdPxi5KZgjcNfPCuQ&h=2Pao3PTIIWrqys8OgjzdmV8sUvopZu0UvP_mxJDKUBQ", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps2289/providers/Microsoft.Batch/batchAccounts/ps5017/operationResults/50101d66-9d40-4d82-a504-6e28e0df756a?api-version=2023-11-01&t=638932200993295654&c=MIIIpTCCBo2gAwIBAgITFgGsmnj73LBE7PaBtQABAayaeDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDMwHhcNMjUwNzE4MTIwNDI4WhcNMjYwMTE0MTIwNDI4WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKYwXiklImL5-WfPWj2FX3_Y-JxCd3XXEOuNXx5ggHubZZamujLTqEBSFsFYiH_9NCaqKTiATXu6fBpzW3ghgYhwr0PL071fQT15KnnNUFjd5hFXB7SYti9IwWu1lxSAz-De7HivujKdlsgcmfoV6upRQ0eva9e74EwLV9pCn4WQAhs-6T8p0CytQsi81qHMWybAbNvfom0ox78IEWdS_6g_d4Jl_I4ccYLMyRTOV2NioM96cRECWCZhbpLl1zwoYGSbU5H0MZaiCBjPlhXN40BqagpamZfP98sPYSBfreh6-iMGU5tNTRkh8RiJqzjhzIUpEv3PqLtWTyPUB8JS7aUCAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9BTTNQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAzKDEpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MB0GA1UdDgQWBBTxzPCXgPzIUiTz94us0y0CCMf8BzAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBRIo61gdWpv7GDzaVXRALEyV_xs5DAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggIBAAqNK9Ejzdnb9L4TyakCpJByRYVTN_6nCGbtUd2E2sELjuJGRGiRmujp_jqNyIofO_ghSaP_tqH-3WRTRUbnt5xM8aBYoYJSOgKgTsNrB6clspdhCCmzhJy6EQuOqfUDm3C7hDru1_bN3DwXt3VpDqfuYtM3MAabKg0oCYVWgFwnAKYmZLZMWMQh7k_hZxy1gOCQmE9U08tf_pU21aI0El6n5A5uG2FT0placwchheFmXAtoPjT7nU53HVmRissxUR_vRCDj_ZCFo3K3nZNXCQOKPAMc9-LC0prb9Slg6siKtSHB3iGjNQlT9-nbSnDgifI8zC1cvT8CdaNLOmUywRIB4wvRn1z123NuyfJaIz95igW9P189vBTJEZREF-MgJEboWKdlGNn6bbBtu0waqAmUU7WVLeZKdtUI6EEKF7wRGYuY_BhZx1ipyXnBHZpsufuH4AwgOO289QKmqg8QAy7HFD9c8H8fNCtR7sTZ4YNP2AhEaES0rkMSQUCNVEz42YEBi2GgrSpnI94SPdb3J3PkCMZ4OgFRjztLO7nrgbPtflhSOo_VOE0_7Y74km43WAMQPKL3-44vQrEQ61Hd_24IcFh_ChNXvUDqp39GzYlO3D0zlau4ozll8BeLUZrJwHTQWZS8XR-EifCl4MW5Y3Y1SxOLrIxnukCzQxL7aGmc&s=pEsT5zEebyCw38sxckvC9EVO52g38kpg9EXUMYfpsAAHVCBpgTptmbqC88N1ZkOaaHnG-ShN0CkskbhUJUOfxColfDYneSXKY7046hQUd48lSOBpEtpSSIbyiXk61QgFlxDwOG8HC5UOMqprkAsqdSjwJgKmY499Kr5kkFBBXjPsticWW3tMRv1CnpXpoEgA0vyExcO92nzMuu2lVslKHR2qRL_Nin3AM2PM7FeRspihlAQL80HYPn-HaB_0BFtgxTOIGodTDKnYHRvfizquLov4J-WaCMZrodLJCsCFaLiwXlsl8aVXK3NG7JbQUQH04w0camdPxi5KZgjcNfPCuQ&h=2Pao3PTIIWrqys8OgjzdmV8sUvopZu0UvP_mxJDKUBQ", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL3BzMjI4OS9wcm92aWRlcnMvTWljcm9zb2Z0LkJhdGNoL2JhdGNoQWNjb3VudHMvcHM1MDE3L29wZXJhdGlvblJlc3VsdHMvNTAxMDFkNjYtOWQ0MC00ZDgyLWE1MDQtNmUyOGUwZGY3NTZhP2FwaS12ZXJzaW9uPTIwMjMtMDUtMDEmdD02Mzg5MzIyMDA5OTMyOTU2NTQmYz1NSUlJcFRDQ0JvMmdBd0lCQWdJVEZnR3Ntbmo3M0xCRTdQYUJ0UUFCQWF5YWVEQU5CZ2txaGtpRzl3MEJBUXNGQURCRU1STXdFUVlLQ1pJbWlaUHlMR1FCR1JZRFIwSk1NUk13RVFZS0NaSW1pWlB5TEdRQkdSWURRVTFGTVJnd0ZnWURWUVFERXc5QlRVVWdTVzVtY21FZ1EwRWdNRE13SGhjTk1qVXdOekU0TVRJd05ESTRXaGNOTWpZd01URTBNVEl3TkRJNFdqQkFNVDR3UEFZRFZRUURFelZoYzNsdVkyOXdaWEpoZEdsdmJuTnBaMjVwYm1kalpYSjBhV1pwWTJGMFpTNXRZVzVoWjJWdFpXNTBMbUY2ZFhKbExtTnZiVENDQVNJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dFUEFEQ0NBUW9DZ2dFQkFLWXdYaWtsSW1MNS1XZlBXajJGWDNfWS1KeENkM1hYRU91Tlh4NWdnSHViWlphbXVqTFRxRUJTRnNGWWlIXzlOQ2FxS1RpQVRYdTZmQnB6VzNnaGdZaHdyMFBMMDcxZlFUMTVLbm5OVUZqZDVoRlhCN1NZdGk5SXdXdTFseFNBei1EZTdIaXZ1aktkbHNnY21mb1Y2dXBSUTBldmE5ZTc0RXdMVjlwQ240V1FBaHMtNlQ4cDBDeXRRc2k4MXFITVd5YkFiTnZmb20wb3g3OElFV2RTXzZnX2Q0SmxfSTRjY1lMTXlSVE9WMk5pb005NmNSRUNXQ1poYnBMbDF6d29ZR1NiVTVIME1aYWlDQmpQbGhYTjQwQnFhZ3BhbVpmUDk4c1BZU0JmcmVoNi1pTUdVNXROVFJraDhSaUpxempoeklVcEV2M1BxTHRXVHlQVUI4SlM3YVVDQXdFQUFhT0NCSkl3Z2dTT01DY0dDU3NHQVFRQmdqY1ZDZ1FhTUJnd0NnWUlLd1lCQlFVSEF3RXdDZ1lJS3dZQkJRVUhBd0l3UFFZSkt3WUJCQUdDTnhVSEJEQXdMZ1ltS3dZQkJBR0NOeFVJaHBEakRZVFZ0SGlFOFlzLWhadmRGczZkRW9GZ2hmbVJTNFdzbVRRQ0FXUUNBUWN3Z2dIYUJnZ3JCZ0VGQlFjQkFRU0NBY3d3Z2dISU1HWUdDQ3NHQVFVRkJ6QUNobHBvZEhSd09pOHZZM0pzTG0xcFkzSnZjMjltZEM1amIyMHZjR3RwYVc1bWNtRXZRMlZ5ZEhNdlFVMHpVRXRKU1U1VVEwRXdNUzVCVFVVdVIwSk1YMEZOUlNVeU1FbHVabkpoSlRJd1EwRWxNakF3TXlneEtTNWpjblF3VmdZSUt3WUJCUVVITUFLR1NtaDBkSEE2THk5amNtd3hMbUZ0WlM1blltd3ZZV2xoTDBGTk0xQkxTVWxPVkVOQk1ERXVRVTFGTGtkQ1RGOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRE1vTVNrdVkzSjBNRllHQ0NzR0FRVUZCekFDaGtwb2RIUndPaTh2WTNKc01pNWhiV1V1WjJKc0wyRnBZUzlCVFROUVMwbEpUbFJEUVRBeExrRk5SUzVIUWt4ZlFVMUZKVEl3U1c1bWNtRWxNakJEUVNVeU1EQXpLREVwTG1OeWREQldCZ2dyQmdFRkJRY3dBb1pLYUhSMGNEb3ZMMk55YkRNdVlXMWxMbWRpYkM5aGFXRXZRVTB6VUV0SlNVNVVRMEV3TVM1QlRVVXVSMEpNWDBGTlJTVXlNRWx1Wm5KaEpUSXdRMEVsTWpBd015Z3hLUzVqY25Rd1ZnWUlLd1lCQlFVSE1BS0dTbWgwZEhBNkx5OWpjbXcwTG1GdFpTNW5ZbXd2WVdsaEwwRk5NMUJMU1VsT1ZFTkJNREV1UVUxRkxrZENURjlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURNb01Ta3VZM0owTUIwR0ExVWREZ1FXQkJUeHpQQ1hnUHpJVWlUejk0dXMweTBDQ01mOEJ6QU9CZ05WSFE4QkFmOEVCQU1DQmFBd2dnRTFCZ05WSFI4RWdnRXNNSUlCS0RDQ0FTU2dnZ0Vnb0lJQkhJWkNhSFIwY0RvdkwyTnliQzV0YVdOeWIzTnZablF1WTI5dEwzQnJhV2x1Wm5KaEwwTlNUQzlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURNb01Ta3VZM0pzaGpSb2RIUndPaTh2WTNKc01TNWhiV1V1WjJKc0wyTnliQzlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURNb01Ta3VZM0pzaGpSb2RIUndPaTh2WTNKc01pNWhiV1V1WjJKc0wyTnliQzlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURNb01Ta3VZM0pzaGpSb2RIUndPaTh2WTNKc015NWhiV1V1WjJKc0wyTnliQzlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURNb01Ta3VZM0pzaGpSb2RIUndPaTh2WTNKc05DNWhiV1V1WjJKc0wyTnliQzlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURNb01Ta3VZM0pzTUlHZEJnTlZIU0FFZ1pVd2daSXdEQVlLS3dZQkJBR0NOM3NCQVRCbUJnb3JCZ0VFQVlJM2V3SUNNRmd3VmdZSUt3WUJCUVVIQWdJd1NoNUlBRE1BTXdCbEFEQUFNUUE1QURJQU1RQXRBRFFBWkFBMkFEUUFMUUEwQUdZQU9BQmpBQzBBWVFBd0FEVUFOUUF0QURVQVlnQmtBR0VBWmdCbUFHUUFOUUJsQURNQU13QmtNQXdHQ2lzR0FRUUJnamQ3QXdJd0RBWUtLd1lCQkFHQ04zc0VBakFmQmdOVkhTTUVHREFXZ0JSSW82MWdkV3B2N0dEemFWWFJBTEV5Vl94czVEQWRCZ05WSFNVRUZqQVVCZ2dyQmdFRkJRY0RBUVlJS3dZQkJRVUhBd0l3RFFZSktvWklodmNOQVFFTEJRQURnZ0lCQUFxTks5RWp6ZG5iOUw0VHlha0NwSkJ5UllWVE5fNm5DR2J0VWQyRTJzRUxqdUpHUkdpUm11anBfanFOeUlvZk9fZ2hTYVBfdHFILTNXUlRSVWJudDV4TThhQllvWUpTT2dLZ1RzTnJCNmNsc3BkaENDbXpoSnk2RVF1T3FmVURtM0M3aERydTFfYk4zRHdYdDNWcERxZnVZdE0zTUFhYktnMG9DWVZXZ0Z3bkFLWW1aTFpNV01RaDdrX2haeHkxZ09DUW1FOVUwOHRmX3BVMjFhSTBFbDZuNUE1dUcyRlQwcGxhY3djaGhlRm1YQXRvUGpUN25VNTNIVm1SaXNzeFVSX3ZSQ0RqX1pDRm8zSzNuWk5YQ1FPS1BBTWM5LUxDMHByYjlTbGc2c2lLdFNIQjNpR2pOUWxUOS1uYlNuRGdpZkk4ekMxY3ZUOENkYU5MT21VeXdSSUI0d3ZSbjF6MTIzTnV5ZkphSXo5NWlnVzlQMTg5dkJUSkVaUkVGLU1nSkVib1dLZGxHTm42YmJCdHUwd2FxQW1VVTdXVkxlWktkdFVJNkVFS0Y3d1JHWXVZX0JoWngxaXB5WG5CSFpwc3VmdUg0QXdnT08yODlRS21xZzhRQXk3SEZEOWM4SDhmTkN0UjdzVFo0WU5QMkFoRWFFUzBya01TUVVDTlZFejQyWUVCaTJHZ3JTcG5JOTRTUGRiM0ozUGtDTVo0T2dGUmp6dExPN25yZ2JQdGZsaFNPb19WT0UwXzdZNzRrbTQzV0FNUVBLTDMtNDR2UXJFUTYxSGRfMjRJY0ZoX0NoTlh2VURxcDM5R3pZbE8zRDB6bGF1NG96bGw4QmVMVVpySndIVFFXWlM4WFItRWlmQ2w0TVc1WTNZMVN4T0xySXhudWtDelF4TDdhR21jJnM9cEVzVDV6RWVieUN3MzhzeGNrdkM5RVZPNTJnMzhrcGc5RVhVTVlmcHNBQUhWQ0JwZ1RwdG1icUM4OE4xWmtPYWFIbkctU2hOMENrc2tiaFVKVU9meENvbGZEWW5lU1hLWTcwNDZoUVVkNDhsU09CcEV0cFNTSWJ5aVhrNjFRZ0ZseER3T0c4SEM1VU9NcXBya0FzcWRTandKZ0ttWTQ5OUtyNWtrRkJCWGpQc3RpY1dXM3RNUnYxQ25wWHBvRWdBMHZ5RXhjTzkybnpNdXUybFZzbEtIUjJxUkxfTmluM0FNMlBNN0ZlUnNwaWhsQVFMODBIWVBuLUhhQl8wQkZ0Z3hUT0lHb2RUREtuWUhSdmZpenF1TG92NEotV2FDTVpyb2RMSkNzQ0ZhTGl3WGxzbDhhVlhLM05HN0piUVVRSDA0dzBjYW1kUHhpNUtaZ2pjTmZQQ3VRJmg9MlBhbzNQVElJV3JxeXM4T2dqemRtVjhzVXZvcFp1MFV2UF9teEpES1VCUQ==", "RequestMethod": "GET", "RequestHeaders": { diff --git a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchAccountTests/TestCreateNewBatchAccountWithSystemIdentity.json b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchAccountTests/TestCreateNewBatchAccountWithSystemIdentity.json index 44ae55a43720..10f2b37b3c59 100644 --- a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchAccountTests/TestCreateNewBatchAccountWithSystemIdentity.json +++ b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchAccountTests/TestCreateNewBatchAccountWithSystemIdentity.json @@ -145,7 +145,7 @@ "StatusCode": 201 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps2521/providers/Microsoft.Batch/batchAccounts/ps3606?api-version=2023-05-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps2521/providers/Microsoft.Batch/batchAccounts/ps3606?api-version=2023-11-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL3BzMjUyMS9wcm92aWRlcnMvTWljcm9zb2Z0LkJhdGNoL2JhdGNoQWNjb3VudHMvcHMzNjA2P2FwaS12ZXJzaW9uPTIwMjMtMDUtMDE=", "RequestMethod": "PUT", "RequestHeaders": { @@ -177,7 +177,7 @@ "no-cache" ], "Location": [ - "https://management.azure.com/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps2521/providers/Microsoft.Batch/batchAccounts/ps3606/operationResults/52594a4f-4313-44cd-a1a9-e2452733dc31?api-version=2023-05-01&t=638932203870748989&c=MIIIpTCCBo2gAwIBAgITFgGsmnj73LBE7PaBtQABAayaeDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDMwHhcNMjUwNzE4MTIwNDI4WhcNMjYwMTE0MTIwNDI4WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKYwXiklImL5-WfPWj2FX3_Y-JxCd3XXEOuNXx5ggHubZZamujLTqEBSFsFYiH_9NCaqKTiATXu6fBpzW3ghgYhwr0PL071fQT15KnnNUFjd5hFXB7SYti9IwWu1lxSAz-De7HivujKdlsgcmfoV6upRQ0eva9e74EwLV9pCn4WQAhs-6T8p0CytQsi81qHMWybAbNvfom0ox78IEWdS_6g_d4Jl_I4ccYLMyRTOV2NioM96cRECWCZhbpLl1zwoYGSbU5H0MZaiCBjPlhXN40BqagpamZfP98sPYSBfreh6-iMGU5tNTRkh8RiJqzjhzIUpEv3PqLtWTyPUB8JS7aUCAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9BTTNQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAzKDEpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MB0GA1UdDgQWBBTxzPCXgPzIUiTz94us0y0CCMf8BzAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBRIo61gdWpv7GDzaVXRALEyV_xs5DAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggIBAAqNK9Ejzdnb9L4TyakCpJByRYVTN_6nCGbtUd2E2sELjuJGRGiRmujp_jqNyIofO_ghSaP_tqH-3WRTRUbnt5xM8aBYoYJSOgKgTsNrB6clspdhCCmzhJy6EQuOqfUDm3C7hDru1_bN3DwXt3VpDqfuYtM3MAabKg0oCYVWgFwnAKYmZLZMWMQh7k_hZxy1gOCQmE9U08tf_pU21aI0El6n5A5uG2FT0placwchheFmXAtoPjT7nU53HVmRissxUR_vRCDj_ZCFo3K3nZNXCQOKPAMc9-LC0prb9Slg6siKtSHB3iGjNQlT9-nbSnDgifI8zC1cvT8CdaNLOmUywRIB4wvRn1z123NuyfJaIz95igW9P189vBTJEZREF-MgJEboWKdlGNn6bbBtu0waqAmUU7WVLeZKdtUI6EEKF7wRGYuY_BhZx1ipyXnBHZpsufuH4AwgOO289QKmqg8QAy7HFD9c8H8fNCtR7sTZ4YNP2AhEaES0rkMSQUCNVEz42YEBi2GgrSpnI94SPdb3J3PkCMZ4OgFRjztLO7nrgbPtflhSOo_VOE0_7Y74km43WAMQPKL3-44vQrEQ61Hd_24IcFh_ChNXvUDqp39GzYlO3D0zlau4ozll8BeLUZrJwHTQWZS8XR-EifCl4MW5Y3Y1SxOLrIxnukCzQxL7aGmc&s=RDwaOfBt2crFCDxMzmgp2sh2rdlDaYsTWOxDiuwd2MGfgggn711QQj6g_xA3lTeArhksko7YQRk57FFQ8Xdet9l2s5nZAAxxC5iStzTd2jftG5wRhryCfj0c170jEd7s-g7oGIS4ukIuQYSgzmKPbObHzUTCQF7GSS1-dgQ4NvldiInjonH9G65UhZYxKDxaFNUngDP8AlL95TwduPbdjDe2nd8fBoZbgdPOlJEyulfOzbG6SG8VeLR8mmrvCLXKzueHz4w1f6UogTXkWDWZ8SQoaGdVcXRIPBzxTqW7fUu3rObvRYew0L3Ds8RaW9NWdZeKEvdWfN_j2_UoB7tHxQ&h=Smng_2XxXB6ddgVury2V_jXpAHF7SpHmYqBfD4NX0gE" + "https://management.azure.com/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps2521/providers/Microsoft.Batch/batchAccounts/ps3606/operationResults/52594a4f-4313-44cd-a1a9-e2452733dc31?api-version=2023-11-01&t=638932203870748989&c=MIIIpTCCBo2gAwIBAgITFgGsmnj73LBE7PaBtQABAayaeDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDMwHhcNMjUwNzE4MTIwNDI4WhcNMjYwMTE0MTIwNDI4WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKYwXiklImL5-WfPWj2FX3_Y-JxCd3XXEOuNXx5ggHubZZamujLTqEBSFsFYiH_9NCaqKTiATXu6fBpzW3ghgYhwr0PL071fQT15KnnNUFjd5hFXB7SYti9IwWu1lxSAz-De7HivujKdlsgcmfoV6upRQ0eva9e74EwLV9pCn4WQAhs-6T8p0CytQsi81qHMWybAbNvfom0ox78IEWdS_6g_d4Jl_I4ccYLMyRTOV2NioM96cRECWCZhbpLl1zwoYGSbU5H0MZaiCBjPlhXN40BqagpamZfP98sPYSBfreh6-iMGU5tNTRkh8RiJqzjhzIUpEv3PqLtWTyPUB8JS7aUCAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9BTTNQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAzKDEpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MB0GA1UdDgQWBBTxzPCXgPzIUiTz94us0y0CCMf8BzAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBRIo61gdWpv7GDzaVXRALEyV_xs5DAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggIBAAqNK9Ejzdnb9L4TyakCpJByRYVTN_6nCGbtUd2E2sELjuJGRGiRmujp_jqNyIofO_ghSaP_tqH-3WRTRUbnt5xM8aBYoYJSOgKgTsNrB6clspdhCCmzhJy6EQuOqfUDm3C7hDru1_bN3DwXt3VpDqfuYtM3MAabKg0oCYVWgFwnAKYmZLZMWMQh7k_hZxy1gOCQmE9U08tf_pU21aI0El6n5A5uG2FT0placwchheFmXAtoPjT7nU53HVmRissxUR_vRCDj_ZCFo3K3nZNXCQOKPAMc9-LC0prb9Slg6siKtSHB3iGjNQlT9-nbSnDgifI8zC1cvT8CdaNLOmUywRIB4wvRn1z123NuyfJaIz95igW9P189vBTJEZREF-MgJEboWKdlGNn6bbBtu0waqAmUU7WVLeZKdtUI6EEKF7wRGYuY_BhZx1ipyXnBHZpsufuH4AwgOO289QKmqg8QAy7HFD9c8H8fNCtR7sTZ4YNP2AhEaES0rkMSQUCNVEz42YEBi2GgrSpnI94SPdb3J3PkCMZ4OgFRjztLO7nrgbPtflhSOo_VOE0_7Y74km43WAMQPKL3-44vQrEQ61Hd_24IcFh_ChNXvUDqp39GzYlO3D0zlau4ozll8BeLUZrJwHTQWZS8XR-EifCl4MW5Y3Y1SxOLrIxnukCzQxL7aGmc&s=RDwaOfBt2crFCDxMzmgp2sh2rdlDaYsTWOxDiuwd2MGfgggn711QQj6g_xA3lTeArhksko7YQRk57FFQ8Xdet9l2s5nZAAxxC5iStzTd2jftG5wRhryCfj0c170jEd7s-g7oGIS4ukIuQYSgzmKPbObHzUTCQF7GSS1-dgQ4NvldiInjonH9G65UhZYxKDxaFNUngDP8AlL95TwduPbdjDe2nd8fBoZbgdPOlJEyulfOzbG6SG8VeLR8mmrvCLXKzueHz4w1f6UogTXkWDWZ8SQoaGdVcXRIPBzxTqW7fUu3rObvRYew0L3Ds8RaW9NWdZeKEvdWfN_j2_UoB7tHxQ&h=Smng_2XxXB6ddgVury2V_jXpAHF7SpHmYqBfD4NX0gE" ], "Retry-After": [ "15" @@ -226,7 +226,7 @@ "StatusCode": 202 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps2521/providers/Microsoft.Batch/batchAccounts/ps3606/operationResults/52594a4f-4313-44cd-a1a9-e2452733dc31?api-version=2023-05-01&t=638932203870748989&c=MIIIpTCCBo2gAwIBAgITFgGsmnj73LBE7PaBtQABAayaeDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDMwHhcNMjUwNzE4MTIwNDI4WhcNMjYwMTE0MTIwNDI4WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKYwXiklImL5-WfPWj2FX3_Y-JxCd3XXEOuNXx5ggHubZZamujLTqEBSFsFYiH_9NCaqKTiATXu6fBpzW3ghgYhwr0PL071fQT15KnnNUFjd5hFXB7SYti9IwWu1lxSAz-De7HivujKdlsgcmfoV6upRQ0eva9e74EwLV9pCn4WQAhs-6T8p0CytQsi81qHMWybAbNvfom0ox78IEWdS_6g_d4Jl_I4ccYLMyRTOV2NioM96cRECWCZhbpLl1zwoYGSbU5H0MZaiCBjPlhXN40BqagpamZfP98sPYSBfreh6-iMGU5tNTRkh8RiJqzjhzIUpEv3PqLtWTyPUB8JS7aUCAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9BTTNQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAzKDEpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MB0GA1UdDgQWBBTxzPCXgPzIUiTz94us0y0CCMf8BzAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBRIo61gdWpv7GDzaVXRALEyV_xs5DAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggIBAAqNK9Ejzdnb9L4TyakCpJByRYVTN_6nCGbtUd2E2sELjuJGRGiRmujp_jqNyIofO_ghSaP_tqH-3WRTRUbnt5xM8aBYoYJSOgKgTsNrB6clspdhCCmzhJy6EQuOqfUDm3C7hDru1_bN3DwXt3VpDqfuYtM3MAabKg0oCYVWgFwnAKYmZLZMWMQh7k_hZxy1gOCQmE9U08tf_pU21aI0El6n5A5uG2FT0placwchheFmXAtoPjT7nU53HVmRissxUR_vRCDj_ZCFo3K3nZNXCQOKPAMc9-LC0prb9Slg6siKtSHB3iGjNQlT9-nbSnDgifI8zC1cvT8CdaNLOmUywRIB4wvRn1z123NuyfJaIz95igW9P189vBTJEZREF-MgJEboWKdlGNn6bbBtu0waqAmUU7WVLeZKdtUI6EEKF7wRGYuY_BhZx1ipyXnBHZpsufuH4AwgOO289QKmqg8QAy7HFD9c8H8fNCtR7sTZ4YNP2AhEaES0rkMSQUCNVEz42YEBi2GgrSpnI94SPdb3J3PkCMZ4OgFRjztLO7nrgbPtflhSOo_VOE0_7Y74km43WAMQPKL3-44vQrEQ61Hd_24IcFh_ChNXvUDqp39GzYlO3D0zlau4ozll8BeLUZrJwHTQWZS8XR-EifCl4MW5Y3Y1SxOLrIxnukCzQxL7aGmc&s=RDwaOfBt2crFCDxMzmgp2sh2rdlDaYsTWOxDiuwd2MGfgggn711QQj6g_xA3lTeArhksko7YQRk57FFQ8Xdet9l2s5nZAAxxC5iStzTd2jftG5wRhryCfj0c170jEd7s-g7oGIS4ukIuQYSgzmKPbObHzUTCQF7GSS1-dgQ4NvldiInjonH9G65UhZYxKDxaFNUngDP8AlL95TwduPbdjDe2nd8fBoZbgdPOlJEyulfOzbG6SG8VeLR8mmrvCLXKzueHz4w1f6UogTXkWDWZ8SQoaGdVcXRIPBzxTqW7fUu3rObvRYew0L3Ds8RaW9NWdZeKEvdWfN_j2_UoB7tHxQ&h=Smng_2XxXB6ddgVury2V_jXpAHF7SpHmYqBfD4NX0gE", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps2521/providers/Microsoft.Batch/batchAccounts/ps3606/operationResults/52594a4f-4313-44cd-a1a9-e2452733dc31?api-version=2023-11-01&t=638932203870748989&c=MIIIpTCCBo2gAwIBAgITFgGsmnj73LBE7PaBtQABAayaeDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDMwHhcNMjUwNzE4MTIwNDI4WhcNMjYwMTE0MTIwNDI4WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKYwXiklImL5-WfPWj2FX3_Y-JxCd3XXEOuNXx5ggHubZZamujLTqEBSFsFYiH_9NCaqKTiATXu6fBpzW3ghgYhwr0PL071fQT15KnnNUFjd5hFXB7SYti9IwWu1lxSAz-De7HivujKdlsgcmfoV6upRQ0eva9e74EwLV9pCn4WQAhs-6T8p0CytQsi81qHMWybAbNvfom0ox78IEWdS_6g_d4Jl_I4ccYLMyRTOV2NioM96cRECWCZhbpLl1zwoYGSbU5H0MZaiCBjPlhXN40BqagpamZfP98sPYSBfreh6-iMGU5tNTRkh8RiJqzjhzIUpEv3PqLtWTyPUB8JS7aUCAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9BTTNQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAzKDEpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MB0GA1UdDgQWBBTxzPCXgPzIUiTz94us0y0CCMf8BzAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBRIo61gdWpv7GDzaVXRALEyV_xs5DAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggIBAAqNK9Ejzdnb9L4TyakCpJByRYVTN_6nCGbtUd2E2sELjuJGRGiRmujp_jqNyIofO_ghSaP_tqH-3WRTRUbnt5xM8aBYoYJSOgKgTsNrB6clspdhCCmzhJy6EQuOqfUDm3C7hDru1_bN3DwXt3VpDqfuYtM3MAabKg0oCYVWgFwnAKYmZLZMWMQh7k_hZxy1gOCQmE9U08tf_pU21aI0El6n5A5uG2FT0placwchheFmXAtoPjT7nU53HVmRissxUR_vRCDj_ZCFo3K3nZNXCQOKPAMc9-LC0prb9Slg6siKtSHB3iGjNQlT9-nbSnDgifI8zC1cvT8CdaNLOmUywRIB4wvRn1z123NuyfJaIz95igW9P189vBTJEZREF-MgJEboWKdlGNn6bbBtu0waqAmUU7WVLeZKdtUI6EEKF7wRGYuY_BhZx1ipyXnBHZpsufuH4AwgOO289QKmqg8QAy7HFD9c8H8fNCtR7sTZ4YNP2AhEaES0rkMSQUCNVEz42YEBi2GgrSpnI94SPdb3J3PkCMZ4OgFRjztLO7nrgbPtflhSOo_VOE0_7Y74km43WAMQPKL3-44vQrEQ61Hd_24IcFh_ChNXvUDqp39GzYlO3D0zlau4ozll8BeLUZrJwHTQWZS8XR-EifCl4MW5Y3Y1SxOLrIxnukCzQxL7aGmc&s=RDwaOfBt2crFCDxMzmgp2sh2rdlDaYsTWOxDiuwd2MGfgggn711QQj6g_xA3lTeArhksko7YQRk57FFQ8Xdet9l2s5nZAAxxC5iStzTd2jftG5wRhryCfj0c170jEd7s-g7oGIS4ukIuQYSgzmKPbObHzUTCQF7GSS1-dgQ4NvldiInjonH9G65UhZYxKDxaFNUngDP8AlL95TwduPbdjDe2nd8fBoZbgdPOlJEyulfOzbG6SG8VeLR8mmrvCLXKzueHz4w1f6UogTXkWDWZ8SQoaGdVcXRIPBzxTqW7fUu3rObvRYew0L3Ds8RaW9NWdZeKEvdWfN_j2_UoB7tHxQ&h=Smng_2XxXB6ddgVury2V_jXpAHF7SpHmYqBfD4NX0gE", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL3BzMjUyMS9wcm92aWRlcnMvTWljcm9zb2Z0LkJhdGNoL2JhdGNoQWNjb3VudHMvcHMzNjA2L29wZXJhdGlvblJlc3VsdHMvNTI1OTRhNGYtNDMxMy00NGNkLWExYTktZTI0NTI3MzNkYzMxP2FwaS12ZXJzaW9uPTIwMjMtMDUtMDEmdD02Mzg5MzIyMDM4NzA3NDg5ODkmYz1NSUlJcFRDQ0JvMmdBd0lCQWdJVEZnR3Ntbmo3M0xCRTdQYUJ0UUFCQWF5YWVEQU5CZ2txaGtpRzl3MEJBUXNGQURCRU1STXdFUVlLQ1pJbWlaUHlMR1FCR1JZRFIwSk1NUk13RVFZS0NaSW1pWlB5TEdRQkdSWURRVTFGTVJnd0ZnWURWUVFERXc5QlRVVWdTVzVtY21FZ1EwRWdNRE13SGhjTk1qVXdOekU0TVRJd05ESTRXaGNOTWpZd01URTBNVEl3TkRJNFdqQkFNVDR3UEFZRFZRUURFelZoYzNsdVkyOXdaWEpoZEdsdmJuTnBaMjVwYm1kalpYSjBhV1pwWTJGMFpTNXRZVzVoWjJWdFpXNTBMbUY2ZFhKbExtTnZiVENDQVNJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dFUEFEQ0NBUW9DZ2dFQkFLWXdYaWtsSW1MNS1XZlBXajJGWDNfWS1KeENkM1hYRU91Tlh4NWdnSHViWlphbXVqTFRxRUJTRnNGWWlIXzlOQ2FxS1RpQVRYdTZmQnB6VzNnaGdZaHdyMFBMMDcxZlFUMTVLbm5OVUZqZDVoRlhCN1NZdGk5SXdXdTFseFNBei1EZTdIaXZ1aktkbHNnY21mb1Y2dXBSUTBldmE5ZTc0RXdMVjlwQ240V1FBaHMtNlQ4cDBDeXRRc2k4MXFITVd5YkFiTnZmb20wb3g3OElFV2RTXzZnX2Q0SmxfSTRjY1lMTXlSVE9WMk5pb005NmNSRUNXQ1poYnBMbDF6d29ZR1NiVTVIME1aYWlDQmpQbGhYTjQwQnFhZ3BhbVpmUDk4c1BZU0JmcmVoNi1pTUdVNXROVFJraDhSaUpxempoeklVcEV2M1BxTHRXVHlQVUI4SlM3YVVDQXdFQUFhT0NCSkl3Z2dTT01DY0dDU3NHQVFRQmdqY1ZDZ1FhTUJnd0NnWUlLd1lCQlFVSEF3RXdDZ1lJS3dZQkJRVUhBd0l3UFFZSkt3WUJCQUdDTnhVSEJEQXdMZ1ltS3dZQkJBR0NOeFVJaHBEakRZVFZ0SGlFOFlzLWhadmRGczZkRW9GZ2hmbVJTNFdzbVRRQ0FXUUNBUWN3Z2dIYUJnZ3JCZ0VGQlFjQkFRU0NBY3d3Z2dISU1HWUdDQ3NHQVFVRkJ6QUNobHBvZEhSd09pOHZZM0pzTG0xcFkzSnZjMjltZEM1amIyMHZjR3RwYVc1bWNtRXZRMlZ5ZEhNdlFVMHpVRXRKU1U1VVEwRXdNUzVCVFVVdVIwSk1YMEZOUlNVeU1FbHVabkpoSlRJd1EwRWxNakF3TXlneEtTNWpjblF3VmdZSUt3WUJCUVVITUFLR1NtaDBkSEE2THk5amNtd3hMbUZ0WlM1blltd3ZZV2xoTDBGTk0xQkxTVWxPVkVOQk1ERXVRVTFGTGtkQ1RGOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRE1vTVNrdVkzSjBNRllHQ0NzR0FRVUZCekFDaGtwb2RIUndPaTh2WTNKc01pNWhiV1V1WjJKc0wyRnBZUzlCVFROUVMwbEpUbFJEUVRBeExrRk5SUzVIUWt4ZlFVMUZKVEl3U1c1bWNtRWxNakJEUVNVeU1EQXpLREVwTG1OeWREQldCZ2dyQmdFRkJRY3dBb1pLYUhSMGNEb3ZMMk55YkRNdVlXMWxMbWRpYkM5aGFXRXZRVTB6VUV0SlNVNVVRMEV3TVM1QlRVVXVSMEpNWDBGTlJTVXlNRWx1Wm5KaEpUSXdRMEVsTWpBd015Z3hLUzVqY25Rd1ZnWUlLd1lCQlFVSE1BS0dTbWgwZEhBNkx5OWpjbXcwTG1GdFpTNW5ZbXd2WVdsaEwwRk5NMUJMU1VsT1ZFTkJNREV1UVUxRkxrZENURjlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURNb01Ta3VZM0owTUIwR0ExVWREZ1FXQkJUeHpQQ1hnUHpJVWlUejk0dXMweTBDQ01mOEJ6QU9CZ05WSFE4QkFmOEVCQU1DQmFBd2dnRTFCZ05WSFI4RWdnRXNNSUlCS0RDQ0FTU2dnZ0Vnb0lJQkhJWkNhSFIwY0RvdkwyTnliQzV0YVdOeWIzTnZablF1WTI5dEwzQnJhV2x1Wm5KaEwwTlNUQzlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURNb01Ta3VZM0pzaGpSb2RIUndPaTh2WTNKc01TNWhiV1V1WjJKc0wyTnliQzlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURNb01Ta3VZM0pzaGpSb2RIUndPaTh2WTNKc01pNWhiV1V1WjJKc0wyTnliQzlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURNb01Ta3VZM0pzaGpSb2RIUndPaTh2WTNKc015NWhiV1V1WjJKc0wyTnliQzlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURNb01Ta3VZM0pzaGpSb2RIUndPaTh2WTNKc05DNWhiV1V1WjJKc0wyTnliQzlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURNb01Ta3VZM0pzTUlHZEJnTlZIU0FFZ1pVd2daSXdEQVlLS3dZQkJBR0NOM3NCQVRCbUJnb3JCZ0VFQVlJM2V3SUNNRmd3VmdZSUt3WUJCUVVIQWdJd1NoNUlBRE1BTXdCbEFEQUFNUUE1QURJQU1RQXRBRFFBWkFBMkFEUUFMUUEwQUdZQU9BQmpBQzBBWVFBd0FEVUFOUUF0QURVQVlnQmtBR0VBWmdCbUFHUUFOUUJsQURNQU13QmtNQXdHQ2lzR0FRUUJnamQ3QXdJd0RBWUtLd1lCQkFHQ04zc0VBakFmQmdOVkhTTUVHREFXZ0JSSW82MWdkV3B2N0dEemFWWFJBTEV5Vl94czVEQWRCZ05WSFNVRUZqQVVCZ2dyQmdFRkJRY0RBUVlJS3dZQkJRVUhBd0l3RFFZSktvWklodmNOQVFFTEJRQURnZ0lCQUFxTks5RWp6ZG5iOUw0VHlha0NwSkJ5UllWVE5fNm5DR2J0VWQyRTJzRUxqdUpHUkdpUm11anBfanFOeUlvZk9fZ2hTYVBfdHFILTNXUlRSVWJudDV4TThhQllvWUpTT2dLZ1RzTnJCNmNsc3BkaENDbXpoSnk2RVF1T3FmVURtM0M3aERydTFfYk4zRHdYdDNWcERxZnVZdE0zTUFhYktnMG9DWVZXZ0Z3bkFLWW1aTFpNV01RaDdrX2haeHkxZ09DUW1FOVUwOHRmX3BVMjFhSTBFbDZuNUE1dUcyRlQwcGxhY3djaGhlRm1YQXRvUGpUN25VNTNIVm1SaXNzeFVSX3ZSQ0RqX1pDRm8zSzNuWk5YQ1FPS1BBTWM5LUxDMHByYjlTbGc2c2lLdFNIQjNpR2pOUWxUOS1uYlNuRGdpZkk4ekMxY3ZUOENkYU5MT21VeXdSSUI0d3ZSbjF6MTIzTnV5ZkphSXo5NWlnVzlQMTg5dkJUSkVaUkVGLU1nSkVib1dLZGxHTm42YmJCdHUwd2FxQW1VVTdXVkxlWktkdFVJNkVFS0Y3d1JHWXVZX0JoWngxaXB5WG5CSFpwc3VmdUg0QXdnT08yODlRS21xZzhRQXk3SEZEOWM4SDhmTkN0UjdzVFo0WU5QMkFoRWFFUzBya01TUVVDTlZFejQyWUVCaTJHZ3JTcG5JOTRTUGRiM0ozUGtDTVo0T2dGUmp6dExPN25yZ2JQdGZsaFNPb19WT0UwXzdZNzRrbTQzV0FNUVBLTDMtNDR2UXJFUTYxSGRfMjRJY0ZoX0NoTlh2VURxcDM5R3pZbE8zRDB6bGF1NG96bGw4QmVMVVpySndIVFFXWlM4WFItRWlmQ2w0TVc1WTNZMVN4T0xySXhudWtDelF4TDdhR21jJnM9UkR3YU9mQnQyY3JGQ0R4TXptZ3Ayc2gycmRsRGFZc1RXT3hEaXV3ZDJNR2ZnZ2duNzExUVFqNmdfeEEzbFRlQXJoa3NrbzdZUVJrNTdGRlE4WGRldDlsMnM1blpBQXh4QzVpU3R6VGQyamZ0RzV3UmhyeUNmajBjMTcwakVkN3MtZzdvR0lTNHVrSXVRWVNnem1LUGJPYkh6VVRDUUY3R1NTMS1kZ1E0TnZsZGlJbmpvbkg5RzY1VWhaWXhLRHhhRk5VbmdEUDhBbEw5NVR3ZHVQYmRqRGUybmQ4ZkJvWmJnZFBPbEpFeXVsZk96Ykc2U0c4VmVMUjhtbXJ2Q0xYS3p1ZUh6NHcxZjZVb2dUWGtXRFdaOFNRb2FHZFZjWFJJUEJ6eFRxVzdmVXUzck9idlJZZXcwTDNEczhSYVc5TldkWmVLRXZkV2ZOX2oyX1VvQjd0SHhRJmg9U21uZ18yWHhYQjZkZGdWdXJ5MlZfalhwQUhGN1NwSG1ZcUJmRDROWDBnRQ==", "RequestMethod": "GET", "RequestHeaders": { diff --git a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchApplicationPackageTests/TestCreatePoolWithApplicationPackage.json b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchApplicationPackageTests/TestCreatePoolWithApplicationPackage.json index cc99e1083e06..cd27d1a49c46 100644 --- a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchApplicationPackageTests/TestCreatePoolWithApplicationPackage.json +++ b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchApplicationPackageTests/TestCreatePoolWithApplicationPackage.json @@ -1,7 +1,7 @@ { "Entries": [ { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/createPoolWithApplicationPackage/versions/foo?api-version=2023-05-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/createPoolWithApplicationPackage/versions/foo?api-version=2023-11-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvYXBwbGljYXRpb25zL2NyZWF0ZVBvb2xXaXRoQXBwbGljYXRpb25QYWNrYWdlL3ZlcnNpb25zL2Zvbz9hcGktdmVyc2lvbj0yMDIzLTA1LTAx", "RequestMethod": "PUT", "RequestHeaders": { @@ -85,7 +85,7 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/createPoolWithApplicationPackage/versions/foo/activate?api-version=2023-05-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/createPoolWithApplicationPackage/versions/foo/activate?api-version=2023-11-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvYXBwbGljYXRpb25zL2NyZWF0ZVBvb2xXaXRoQXBwbGljYXRpb25QYWNrYWdlL3ZlcnNpb25zL2Zvby9hY3RpdmF0ZT9hcGktdmVyc2lvbj0yMDIzLTA1LTAx", "RequestMethod": "POST", "RequestHeaders": { @@ -169,7 +169,7 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/createPoolWithApplicationPackage/versions/foo?api-version=2023-05-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/createPoolWithApplicationPackage/versions/foo?api-version=2023-11-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvYXBwbGljYXRpb25zL2NyZWF0ZVBvb2xXaXRoQXBwbGljYXRpb25QYWNrYWdlL3ZlcnNpb25zL2Zvbz9hcGktdmVyc2lvbj0yMDIzLTA1LTAx", "RequestMethod": "GET", "RequestHeaders": { @@ -317,7 +317,7 @@ "StatusCode": 201 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/createPoolWithApplicationPackage/versions/foo?api-version=2023-05-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/createPoolWithApplicationPackage/versions/foo?api-version=2023-11-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvYXBwbGljYXRpb25zL2NyZWF0ZVBvb2xXaXRoQXBwbGljYXRpb25QYWNrYWdlL3ZlcnNpb25zL2Zvbz9hcGktdmVyc2lvbj0yMDIzLTA1LTAx", "RequestMethod": "DELETE", "RequestHeaders": { @@ -386,7 +386,7 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/createPoolWithApplicationPackage?api-version=2023-05-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/createPoolWithApplicationPackage?api-version=2023-11-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvYXBwbGljYXRpb25zL2NyZWF0ZVBvb2xXaXRoQXBwbGljYXRpb25QYWNrYWdlP2FwaS12ZXJzaW9uPTIwMjMtMDUtMDE=", "RequestMethod": "DELETE", "RequestHeaders": { diff --git a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchApplicationPackageTests/TestUpdateApplicationPackage.json b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchApplicationPackageTests/TestUpdateApplicationPackage.json index 3675256321cc..fae4edc3c104 100644 --- a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchApplicationPackageTests/TestUpdateApplicationPackage.json +++ b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchApplicationPackageTests/TestUpdateApplicationPackage.json @@ -1,7 +1,7 @@ { "Entries": [ { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/updateApplicationPackage/versions/foo?api-version=2023-05-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/updateApplicationPackage/versions/foo?api-version=2023-11-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvYXBwbGljYXRpb25zL3VwZGF0ZUFwcGxpY2F0aW9uUGFja2FnZS92ZXJzaW9ucy9mb28/YXBpLXZlcnNpb249MjAyMy0wNS0wMQ==", "RequestMethod": "PUT", "RequestHeaders": { @@ -85,7 +85,7 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/updateApplicationPackage?api-version=2023-05-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/updateApplicationPackage?api-version=2023-11-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvYXBwbGljYXRpb25zL3VwZGF0ZUFwcGxpY2F0aW9uUGFja2FnZT9hcGktdmVyc2lvbj0yMDIzLTA1LTAx", "RequestMethod": "GET", "RequestHeaders": { @@ -163,7 +163,7 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/updateApplicationPackage?api-version=2023-05-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/updateApplicationPackage?api-version=2023-11-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvYXBwbGljYXRpb25zL3VwZGF0ZUFwcGxpY2F0aW9uUGFja2FnZT9hcGktdmVyc2lvbj0yMDIzLTA1LTAx", "RequestMethod": "GET", "RequestHeaders": { @@ -241,7 +241,7 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/updateApplicationPackage/versions/foo/activate?api-version=2023-05-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/updateApplicationPackage/versions/foo/activate?api-version=2023-11-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvYXBwbGljYXRpb25zL3VwZGF0ZUFwcGxpY2F0aW9uUGFja2FnZS92ZXJzaW9ucy9mb28vYWN0aXZhdGU/YXBpLXZlcnNpb249MjAyMy0wNS0wMQ==", "RequestMethod": "POST", "RequestHeaders": { @@ -325,7 +325,7 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/updateApplicationPackage/versions/foo?api-version=2023-05-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/updateApplicationPackage/versions/foo?api-version=2023-11-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvYXBwbGljYXRpb25zL3VwZGF0ZUFwcGxpY2F0aW9uUGFja2FnZS92ZXJzaW9ucy9mb28/YXBpLXZlcnNpb249MjAyMy0wNS0wMQ==", "RequestMethod": "GET", "RequestHeaders": { @@ -403,7 +403,7 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/updateApplicationPackage?api-version=2023-05-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/updateApplicationPackage?api-version=2023-11-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvYXBwbGljYXRpb25zL3VwZGF0ZUFwcGxpY2F0aW9uUGFja2FnZT9hcGktdmVyc2lvbj0yMDIzLTA1LTAx", "RequestMethod": "PATCH", "RequestHeaders": { @@ -487,7 +487,7 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/updateApplicationPackage/versions/foo?api-version=2023-05-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/updateApplicationPackage/versions/foo?api-version=2023-11-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvYXBwbGljYXRpb25zL3VwZGF0ZUFwcGxpY2F0aW9uUGFja2FnZS92ZXJzaW9ucy9mb28/YXBpLXZlcnNpb249MjAyMy0wNS0wMQ==", "RequestMethod": "DELETE", "RequestHeaders": { @@ -556,7 +556,7 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/updateApplicationPackage?api-version=2023-05-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/updateApplicationPackage?api-version=2023-11-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvYXBwbGljYXRpb25zL3VwZGF0ZUFwcGxpY2F0aW9uUGFja2FnZT9hcGktdmVyc2lvbj0yMDIzLTA1LTAx", "RequestMethod": "DELETE", "RequestHeaders": { diff --git a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchApplicationPackageTests/TestUpdatePoolWithApplicationPackage.json b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchApplicationPackageTests/TestUpdatePoolWithApplicationPackage.json index 5e7da7ca0e75..2ca8f85fd5a5 100644 --- a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchApplicationPackageTests/TestUpdatePoolWithApplicationPackage.json +++ b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchApplicationPackageTests/TestUpdatePoolWithApplicationPackage.json @@ -1,7 +1,7 @@ { "Entries": [ { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/updatePoolWithApplicationPackage/versions/foo?api-version=2023-05-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/updatePoolWithApplicationPackage/versions/foo?api-version=2023-11-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvYXBwbGljYXRpb25zL3VwZGF0ZVBvb2xXaXRoQXBwbGljYXRpb25QYWNrYWdlL3ZlcnNpb25zL2Zvbz9hcGktdmVyc2lvbj0yMDIzLTA1LTAx", "RequestMethod": "PUT", "RequestHeaders": { @@ -152,7 +152,7 @@ "StatusCode": 201 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/updatePoolWithApplicationPackage/versions/foo/activate?api-version=2023-05-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/updatePoolWithApplicationPackage/versions/foo/activate?api-version=2023-11-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvYXBwbGljYXRpb25zL3VwZGF0ZVBvb2xXaXRoQXBwbGljYXRpb25QYWNrYWdlL3ZlcnNpb25zL2Zvby9hY3RpdmF0ZT9hcGktdmVyc2lvbj0yMDIzLTA1LTAx", "RequestMethod": "POST", "RequestHeaders": { @@ -236,7 +236,7 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/updatePoolWithApplicationPackage/versions/foo?api-version=2023-05-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/updatePoolWithApplicationPackage/versions/foo?api-version=2023-11-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvYXBwbGljYXRpb25zL3VwZGF0ZVBvb2xXaXRoQXBwbGljYXRpb25QYWNrYWdlL3ZlcnNpb25zL2Zvbz9hcGktdmVyc2lvbj0yMDIzLTA1LTAx", "RequestMethod": "GET", "RequestHeaders": { @@ -503,7 +503,7 @@ "StatusCode": 204 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/updatePoolWithApplicationPackage/versions/foo?api-version=2023-05-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/updatePoolWithApplicationPackage/versions/foo?api-version=2023-11-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvYXBwbGljYXRpb25zL3VwZGF0ZVBvb2xXaXRoQXBwbGljYXRpb25QYWNrYWdlL3ZlcnNpb25zL2Zvbz9hcGktdmVyc2lvbj0yMDIzLTA1LTAx", "RequestMethod": "DELETE", "RequestHeaders": { @@ -572,7 +572,7 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/updatePoolWithApplicationPackage?api-version=2023-05-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/updatePoolWithApplicationPackage?api-version=2023-11-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvYXBwbGljYXRpb25zL3VwZGF0ZVBvb2xXaXRoQXBwbGljYXRpb25QYWNrYWdlP2FwaS12ZXJzaW9uPTIwMjMtMDUtMDE=", "RequestMethod": "DELETE", "RequestHeaders": { diff --git a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchApplicationPackageTests/TestUploadApplicationPackage.json b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchApplicationPackageTests/TestUploadApplicationPackage.json index a2a2e6f5d993..bded737aab68 100644 --- a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchApplicationPackageTests/TestUploadApplicationPackage.json +++ b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchApplicationPackageTests/TestUploadApplicationPackage.json @@ -1,7 +1,7 @@ { "Entries": [ { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/newApplicationPackage/versions/foo?api-version=2023-05-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/newApplicationPackage/versions/foo?api-version=2023-11-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvYXBwbGljYXRpb25zL25ld0FwcGxpY2F0aW9uUGFja2FnZS92ZXJzaW9ucy9mb28/YXBpLXZlcnNpb249MjAyMy0wNS0wMQ==", "RequestMethod": "PUT", "RequestHeaders": { @@ -85,7 +85,7 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/newApplicationPackage/versions/foo/activate?api-version=2023-05-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/newApplicationPackage/versions/foo/activate?api-version=2023-11-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvYXBwbGljYXRpb25zL25ld0FwcGxpY2F0aW9uUGFja2FnZS92ZXJzaW9ucy9mb28vYWN0aXZhdGU/YXBpLXZlcnNpb249MjAyMy0wNS0wMQ==", "RequestMethod": "POST", "RequestHeaders": { @@ -169,7 +169,7 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/newApplicationPackage/versions/foo?api-version=2023-05-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/newApplicationPackage/versions/foo?api-version=2023-11-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvYXBwbGljYXRpb25zL25ld0FwcGxpY2F0aW9uUGFja2FnZS92ZXJzaW9ucy9mb28/YXBpLXZlcnNpb249MjAyMy0wNS0wMQ==", "RequestMethod": "GET", "RequestHeaders": { @@ -247,7 +247,7 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/newApplicationPackage/versions/foo?api-version=2023-05-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/newApplicationPackage/versions/foo?api-version=2023-11-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvYXBwbGljYXRpb25zL25ld0FwcGxpY2F0aW9uUGFja2FnZS92ZXJzaW9ucy9mb28/YXBpLXZlcnNpb249MjAyMy0wNS0wMQ==", "RequestMethod": "DELETE", "RequestHeaders": { @@ -316,7 +316,7 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/newApplicationPackage?api-version=2023-05-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/newApplicationPackage?api-version=2023-11-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvYXBwbGljYXRpb25zL25ld0FwcGxpY2F0aW9uUGFja2FnZT9hcGktdmVyc2lvbj0yMDIzLTA1LTAx", "RequestMethod": "DELETE", "RequestHeaders": { diff --git a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchApplicationTests/TestAddApplication.json b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchApplicationTests/TestAddApplication.json index d3568caab7a4..667c58b110e6 100644 --- a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchApplicationTests/TestAddApplication.json +++ b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchApplicationTests/TestAddApplication.json @@ -1,7 +1,7 @@ { "Entries": [ { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/test?api-version=2023-05-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/test?api-version=2023-11-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvYXBwbGljYXRpb25zL3Rlc3Q/YXBpLXZlcnNpb249MjAyMy0wNS0wMQ==", "RequestMethod": "PUT", "RequestHeaders": { @@ -85,7 +85,7 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/test?api-version=2023-05-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/test?api-version=2023-11-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvYXBwbGljYXRpb25zL3Rlc3Q/YXBpLXZlcnNpb249MjAyMy0wNS0wMQ==", "RequestMethod": "GET", "RequestHeaders": { @@ -163,7 +163,7 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/test?api-version=2023-05-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/test?api-version=2023-11-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvYXBwbGljYXRpb25zL3Rlc3Q/YXBpLXZlcnNpb249MjAyMy0wNS0wMQ==", "RequestMethod": "DELETE", "RequestHeaders": { diff --git a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.LocationTests/TestGetLocationQuotas.json b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.LocationTests/TestGetLocationQuotas.json index 31f6dfd57470..d03bf78812d5 100644 --- a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.LocationTests/TestGetLocationQuotas.json +++ b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.LocationTests/TestGetLocationQuotas.json @@ -70,7 +70,7 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/providers/Microsoft.Batch/locations/westus2/quotas?api-version=2023-05-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/providers/Microsoft.Batch/locations/westus2/quotas?api-version=2023-11-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Byb3ZpZGVycy9NaWNyb3NvZnQuQmF0Y2gvbG9jYXRpb25zL3dlc3R1czIvcXVvdGFzP2FwaS12ZXJzaW9uPTIwMjMtMDUtMDE=", "RequestMethod": "GET", "RequestHeaders": { From ab794243074b4f7c9bee6c5d46cc436008ba3bf9 Mon Sep 17 00:00:00 2001 From: "REDMOND\\wiboris" Date: Fri, 12 Sep 2025 13:48:27 -0700 Subject: [PATCH 05/13] Batch managmenet 2024-02-01 generation --- .../Generated/BatchManagementClient.cs | 2 +- .../Models/AutomaticOSUpgradePolicy.cs | 91 ++++++++ .../Generated/Models/Pool.cs | 16 +- .../Generated/Models/PoolProperties.cs | 16 +- .../Generated/Models/RollingUpgradePolicy.cs | 209 ++++++++++++++++++ .../Generated/Models/SupportedSku.cs | 12 +- .../Generated/Models/UpgradeMode.cs | 71 ++++++ .../Generated/Models/UpgradePolicy.cs | 98 ++++++++ src/Batch/Batch.Management.Sdk/README.md | 4 +- .../TestBatchAccountEndToEnd.json | 34 +-- ...stCreateNewBatchAccountWithNoPublicIp.json | 6 +- ...eateNewBatchAccountWithSystemIdentity.json | 6 +- .../TestCreatePoolWithApplicationPackage.json | 10 +- .../TestUpdateApplicationPackage.json | 16 +- .../TestUpdatePoolWithApplicationPackage.json | 10 +- .../TestUploadApplicationPackage.json | 10 +- .../TestAddApplication.json | 6 +- .../TestGetLocationQuotas.json | 2 +- 18 files changed, 563 insertions(+), 56 deletions(-) create mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/AutomaticOSUpgradePolicy.cs create mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/RollingUpgradePolicy.cs create mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/UpgradeMode.cs create mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/UpgradePolicy.cs diff --git a/src/Batch/Batch.Management.Sdk/Generated/BatchManagementClient.cs b/src/Batch/Batch.Management.Sdk/Generated/BatchManagementClient.cs index be58b6296d8c..600151f8f5c4 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/BatchManagementClient.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/BatchManagementClient.cs @@ -345,7 +345,7 @@ private void Initialize() this.PrivateEndpointConnection = new PrivateEndpointConnectionOperations(this); this.Pool = new PoolOperations(this); this.BaseUri = new System.Uri("https://management.azure.com"); - this.ApiVersion = "2023-11-01"; + this.ApiVersion = "2024-02-01"; this.AcceptLanguage = "en-US"; this.LongRunningOperationRetryTimeout = 30; this.GenerateClientRequestId = true; diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/AutomaticOSUpgradePolicy.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/AutomaticOSUpgradePolicy.cs new file mode 100644 index 000000000000..e556bdc42eed --- /dev/null +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/AutomaticOSUpgradePolicy.cs @@ -0,0 +1,91 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.Management.Batch.Models +{ + using System.Linq; + + /// + /// The configuration parameters used for performing automatic OS upgrade. + /// + public partial class AutomaticOSUpgradePolicy + { + /// + /// Initializes a new instance of the AutomaticOSUpgradePolicy class. + /// + public AutomaticOSUpgradePolicy() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the AutomaticOSUpgradePolicy class. + /// + + /// Whether OS image rollback feature should be disabled. + /// + + /// Indicates whether OS upgrades should automatically be applied to scale set + /// instances in a rolling fashion when a newer version of the OS image becomes + /// available. <br /><br /> If this is set to true for Windows based pools, + /// [WindowsConfiguration.enableAutomaticUpdates](https://learn.microsoft.com/en-us/rest/api/batchmanagement/pool/create?tabs=HTTP#windowsconfiguration) + /// cannot be set to true. + /// + + /// Indicates whether rolling upgrade policy should be used during Auto OS + /// Upgrade. Auto OS Upgrade will fallback to the default policy if no policy + /// is defined on the VMSS. + /// + + /// Defer OS upgrades on the TVMs if they are running tasks. + /// + public AutomaticOSUpgradePolicy(bool? disableAutomaticRollback = default(bool?), bool? enableAutomaticOSUpgrade = default(bool?), bool? useRollingUpgradePolicy = default(bool?), bool? osRollingUpgradeDeferral = default(bool?)) + + { + this.DisableAutomaticRollback = disableAutomaticRollback; + this.EnableAutomaticOSUpgrade = enableAutomaticOSUpgrade; + this.UseRollingUpgradePolicy = useRollingUpgradePolicy; + this.OSRollingUpgradeDeferral = osRollingUpgradeDeferral; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + + /// + /// Gets or sets whether OS image rollback feature should be disabled. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "disableAutomaticRollback")] + public bool? DisableAutomaticRollback {get; set; } + + /// + /// Gets or sets indicates whether OS upgrades should automatically be applied + /// to scale set instances in a rolling fashion when a newer version of the OS + /// image becomes available. <br /><br /> If this is set to true for Windows + /// based pools, + /// [WindowsConfiguration.enableAutomaticUpdates](https://learn.microsoft.com/en-us/rest/api/batchmanagement/pool/create?tabs=HTTP#windowsconfiguration) + /// cannot be set to true. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "enableAutomaticOSUpgrade")] + public bool? EnableAutomaticOSUpgrade {get; set; } + + /// + /// Gets or sets indicates whether rolling upgrade policy should be used during + /// Auto OS Upgrade. Auto OS Upgrade will fallback to the default policy if no + /// policy is defined on the VMSS. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "useRollingUpgradePolicy")] + public bool? UseRollingUpgradePolicy {get; set; } + + /// + /// Gets or sets defer OS upgrades on the TVMs if they are running tasks. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "osRollingUpgradeDeferral")] + public bool? OSRollingUpgradeDeferral {get; set; } + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/Pool.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/Pool.cs index 919d0571e301..c40c6be98936 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/Pool.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/Pool.cs @@ -62,6 +62,9 @@ public Pool() /// to remove the start task from the pool. /// + /// Describes an upgrade policy - automatic, manual, or rolling. + /// + /// The display name need not be unique and can contain any Unicode characters /// up to a maximum length of 1024. /// @@ -173,7 +176,7 @@ public Pool() /// Batch account was created with the poolAllocationMode property set to /// 'UserSubscription'. /// - public Pool(string id = default(string), string name = default(string), string type = default(string), string etag = default(string), BatchPoolIdentity identity = default(BatchPoolIdentity), AllocationState? allocationState = default(AllocationState?), DeploymentConfiguration deploymentConfiguration = default(DeploymentConfiguration), ScaleSettings scaleSettings = default(ScaleSettings), NetworkConfiguration networkConfiguration = default(NetworkConfiguration), StartTask startTask = default(StartTask), string displayName = default(string), System.DateTime? lastModified = default(System.DateTime?), System.DateTime? creationTime = default(System.DateTime?), PoolProvisioningState? provisioningState = default(PoolProvisioningState?), System.DateTime? provisioningStateTransitionTime = default(System.DateTime?), System.DateTime? allocationStateTransitionTime = default(System.DateTime?), string vmSize = default(string), int? currentDedicatedNodes = default(int?), int? currentLowPriorityNodes = default(int?), AutoScaleRun autoScaleRun = default(AutoScaleRun), InterNodeCommunicationState? interNodeCommunication = default(InterNodeCommunicationState?), int? taskSlotsPerNode = default(int?), TaskSchedulingPolicy taskSchedulingPolicy = default(TaskSchedulingPolicy), System.Collections.Generic.IList userAccounts = default(System.Collections.Generic.IList), System.Collections.Generic.IList metadata = default(System.Collections.Generic.IList), System.Collections.Generic.IList certificates = default(System.Collections.Generic.IList), System.Collections.Generic.IList applicationPackages = default(System.Collections.Generic.IList), System.Collections.Generic.IList applicationLicenses = default(System.Collections.Generic.IList), ResizeOperationStatus resizeOperationStatus = default(ResizeOperationStatus), System.Collections.Generic.IList mountConfiguration = default(System.Collections.Generic.IList), NodeCommunicationMode? targetNodeCommunicationMode = default(NodeCommunicationMode?), NodeCommunicationMode? currentNodeCommunicationMode = default(NodeCommunicationMode?), System.Collections.Generic.IDictionary resourceTags = default(System.Collections.Generic.IDictionary)) + public Pool(string id = default(string), string name = default(string), string type = default(string), string etag = default(string), BatchPoolIdentity identity = default(BatchPoolIdentity), AllocationState? allocationState = default(AllocationState?), DeploymentConfiguration deploymentConfiguration = default(DeploymentConfiguration), ScaleSettings scaleSettings = default(ScaleSettings), NetworkConfiguration networkConfiguration = default(NetworkConfiguration), StartTask startTask = default(StartTask), UpgradePolicy upgradePolicy = default(UpgradePolicy), string displayName = default(string), System.DateTime? lastModified = default(System.DateTime?), System.DateTime? creationTime = default(System.DateTime?), PoolProvisioningState? provisioningState = default(PoolProvisioningState?), System.DateTime? provisioningStateTransitionTime = default(System.DateTime?), System.DateTime? allocationStateTransitionTime = default(System.DateTime?), string vmSize = default(string), int? currentDedicatedNodes = default(int?), int? currentLowPriorityNodes = default(int?), AutoScaleRun autoScaleRun = default(AutoScaleRun), InterNodeCommunicationState? interNodeCommunication = default(InterNodeCommunicationState?), int? taskSlotsPerNode = default(int?), TaskSchedulingPolicy taskSchedulingPolicy = default(TaskSchedulingPolicy), System.Collections.Generic.IList userAccounts = default(System.Collections.Generic.IList), System.Collections.Generic.IList metadata = default(System.Collections.Generic.IList), System.Collections.Generic.IList certificates = default(System.Collections.Generic.IList), System.Collections.Generic.IList applicationPackages = default(System.Collections.Generic.IList), System.Collections.Generic.IList applicationLicenses = default(System.Collections.Generic.IList), ResizeOperationStatus resizeOperationStatus = default(ResizeOperationStatus), System.Collections.Generic.IList mountConfiguration = default(System.Collections.Generic.IList), NodeCommunicationMode? targetNodeCommunicationMode = default(NodeCommunicationMode?), NodeCommunicationMode? currentNodeCommunicationMode = default(NodeCommunicationMode?), System.Collections.Generic.IDictionary resourceTags = default(System.Collections.Generic.IDictionary)) : base(id, name, type, etag) { @@ -183,6 +186,7 @@ public Pool() this.ScaleSettings = scaleSettings; this.NetworkConfiguration = networkConfiguration; this.StartTask = startTask; + this.UpgradePolicy = upgradePolicy; this.DisplayName = displayName; this.LastModified = lastModified; this.CreationTime = creationTime; @@ -258,6 +262,12 @@ public Pool() [Newtonsoft.Json.JsonProperty(PropertyName = "properties.startTask")] public StartTask StartTask {get; set; } + /// + /// Gets or sets describes an upgrade policy - automatic, manual, or rolling. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "properties.upgradePolicy")] + public UpgradePolicy UpgradePolicy {get; set; } + /// /// Gets or sets the display name need not be unique and can contain any /// Unicode characters up to a maximum length of 1024. @@ -468,6 +478,10 @@ public virtual void Validate() { this.StartTask.Validate(); } + if (this.UpgradePolicy != null) + { + this.UpgradePolicy.Validate(); + } diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/PoolProperties.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/PoolProperties.cs index d62f2d7c60da..405aef15f1c5 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/PoolProperties.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/PoolProperties.cs @@ -151,13 +151,16 @@ public PoolProperties() /// Determines how a pool communicates with the Batch service. /// Possible values include: 'Default', 'Classic', 'Simplified' + /// Describes an upgrade policy - automatic, manual, or rolling. + /// + /// 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'. /// - public PoolProperties(string displayName = default(string), System.DateTime? lastModified = default(System.DateTime?), System.DateTime? creationTime = default(System.DateTime?), PoolProvisioningState? provisioningState = default(PoolProvisioningState?), System.DateTime? provisioningStateTransitionTime = default(System.DateTime?), AllocationState? allocationState = default(AllocationState?), System.DateTime? allocationStateTransitionTime = default(System.DateTime?), string vmSize = default(string), DeploymentConfiguration deploymentConfiguration = default(DeploymentConfiguration), int? currentDedicatedNodes = default(int?), int? currentLowPriorityNodes = default(int?), ScaleSettings scaleSettings = default(ScaleSettings), AutoScaleRun autoScaleRun = default(AutoScaleRun), InterNodeCommunicationState? interNodeCommunication = default(InterNodeCommunicationState?), NetworkConfiguration networkConfiguration = default(NetworkConfiguration), int? taskSlotsPerNode = default(int?), TaskSchedulingPolicy taskSchedulingPolicy = default(TaskSchedulingPolicy), System.Collections.Generic.IList userAccounts = default(System.Collections.Generic.IList), System.Collections.Generic.IList metadata = default(System.Collections.Generic.IList), StartTask startTask = default(StartTask), System.Collections.Generic.IList certificates = default(System.Collections.Generic.IList), System.Collections.Generic.IList applicationPackages = default(System.Collections.Generic.IList), System.Collections.Generic.IList applicationLicenses = default(System.Collections.Generic.IList), ResizeOperationStatus resizeOperationStatus = default(ResizeOperationStatus), System.Collections.Generic.IList mountConfiguration = default(System.Collections.Generic.IList), NodeCommunicationMode? targetNodeCommunicationMode = default(NodeCommunicationMode?), NodeCommunicationMode? currentNodeCommunicationMode = default(NodeCommunicationMode?), System.Collections.Generic.IDictionary resourceTags = default(System.Collections.Generic.IDictionary)) + public PoolProperties(string displayName = default(string), System.DateTime? lastModified = default(System.DateTime?), System.DateTime? creationTime = default(System.DateTime?), PoolProvisioningState? provisioningState = default(PoolProvisioningState?), System.DateTime? provisioningStateTransitionTime = default(System.DateTime?), AllocationState? allocationState = default(AllocationState?), System.DateTime? allocationStateTransitionTime = default(System.DateTime?), string vmSize = default(string), DeploymentConfiguration deploymentConfiguration = default(DeploymentConfiguration), int? currentDedicatedNodes = default(int?), int? currentLowPriorityNodes = default(int?), ScaleSettings scaleSettings = default(ScaleSettings), AutoScaleRun autoScaleRun = default(AutoScaleRun), InterNodeCommunicationState? interNodeCommunication = default(InterNodeCommunicationState?), NetworkConfiguration networkConfiguration = default(NetworkConfiguration), int? taskSlotsPerNode = default(int?), TaskSchedulingPolicy taskSchedulingPolicy = default(TaskSchedulingPolicy), System.Collections.Generic.IList userAccounts = default(System.Collections.Generic.IList), System.Collections.Generic.IList metadata = default(System.Collections.Generic.IList), StartTask startTask = default(StartTask), System.Collections.Generic.IList certificates = default(System.Collections.Generic.IList), System.Collections.Generic.IList applicationPackages = default(System.Collections.Generic.IList), System.Collections.Generic.IList applicationLicenses = default(System.Collections.Generic.IList), ResizeOperationStatus resizeOperationStatus = default(ResizeOperationStatus), System.Collections.Generic.IList mountConfiguration = default(System.Collections.Generic.IList), NodeCommunicationMode? targetNodeCommunicationMode = default(NodeCommunicationMode?), NodeCommunicationMode? currentNodeCommunicationMode = default(NodeCommunicationMode?), UpgradePolicy upgradePolicy = default(UpgradePolicy), System.Collections.Generic.IDictionary resourceTags = default(System.Collections.Generic.IDictionary)) { this.DisplayName = displayName; @@ -187,6 +190,7 @@ public PoolProperties() this.MountConfiguration = mountConfiguration; this.TargetNodeCommunicationMode = targetNodeCommunicationMode; this.CurrentNodeCommunicationMode = currentNodeCommunicationMode; + this.UpgradePolicy = upgradePolicy; this.ResourceTags = resourceTags; CustomInit(); } @@ -406,6 +410,12 @@ public PoolProperties() [Newtonsoft.Json.JsonProperty(PropertyName = "currentNodeCommunicationMode")] public NodeCommunicationMode? CurrentNodeCommunicationMode {get; private set; } + /// + /// Gets or sets describes an upgrade policy - automatic, manual, or rolling. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "upgradePolicy")] + public UpgradePolicy UpgradePolicy {get; set; } + /// /// Gets or sets the user-defined tags to be associated with the Azure Batch /// Pool. When specified, these tags are propagated to the backing Azure @@ -506,6 +516,10 @@ public virtual void Validate() } + if (this.UpgradePolicy != null) + { + this.UpgradePolicy.Validate(); + } } } diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/RollingUpgradePolicy.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/RollingUpgradePolicy.cs new file mode 100644 index 000000000000..6bb2529b49b0 --- /dev/null +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/RollingUpgradePolicy.cs @@ -0,0 +1,209 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.Management.Batch.Models +{ + using System.Linq; + + /// + /// The configuration parameters used while performing a rolling upgrade. + /// + public partial class RollingUpgradePolicy + { + /// + /// Initializes a new instance of the RollingUpgradePolicy class. + /// + public RollingUpgradePolicy() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the RollingUpgradePolicy class. + /// + + /// Allow VMSS to ignore AZ boundaries when constructing upgrade batches. Take + /// into consideration the Update Domain and maxBatchInstancePercent to + /// determine the batch size. If this field is not set, Azure Azure Batch will + /// not set its default value. The value of enableCrossZoneUpgrade on the + /// created VirtualMachineScaleSet will be decided by the default + /// configurations on VirtualMachineScaleSet. This field is able to be set to + /// true or false only when using NodePlacementConfiguration as Zonal. + /// + + /// The maximum percent of total virtual machine instances that will be + /// upgraded simultaneously by the rolling upgrade in one batch. As this is a + /// maximum, unhealthy instances in previous or future batches can cause the + /// percentage of instances in a batch to decrease to ensure higher + /// reliability. The value of this field should be between 5 and 100, + /// inclusive. If both maxBatchInstancePercent and maxUnhealthyInstancePercent + /// are assigned with value, the value of maxBatchInstancePercent should not be + /// more than maxUnhealthyInstancePercent. + /// + + /// The maximum percentage of the total virtual machine instances in the scale + /// set that can be simultaneously unhealthy, either as a result of being + /// upgraded, or by being found in an unhealthy state by the virtual machine + /// health checks before the rolling upgrade aborts. This constraint will be + /// checked prior to starting any batch. The value of this field should be + /// between 5 and 100, inclusive. If both maxBatchInstancePercent and + /// maxUnhealthyInstancePercent are assigned with value, the value of + /// maxBatchInstancePercent should not be more than + /// maxUnhealthyInstancePercent. + /// + + /// The maximum percentage of upgraded virtual machine instances that can be + /// found to be in an unhealthy state. This check will happen after each batch + /// is upgraded. If this percentage is ever exceeded, the rolling update + /// aborts. The value of this field should be between 0 and 100, inclusive. + /// + + /// The wait time between completing the update for all virtual machines in one + /// batch and starting the next batch. The time duration should be specified in + /// ISO 8601 format. + /// + + /// Upgrade all unhealthy instances in a scale set before any healthy + /// instances. + /// + + /// Rollback failed instances to previous model if the Rolling Upgrade policy + /// is violated. + /// + public RollingUpgradePolicy(bool? enableCrossZoneUpgrade = default(bool?), int? maxBatchInstancePercent = default(int?), int? maxUnhealthyInstancePercent = default(int?), int? maxUnhealthyUpgradedInstancePercent = default(int?), string pauseTimeBetweenBatches = default(string), bool? prioritizeUnhealthyInstances = default(bool?), bool? rollbackFailedInstancesOnPolicyBreach = default(bool?)) + + { + this.EnableCrossZoneUpgrade = enableCrossZoneUpgrade; + this.MaxBatchInstancePercent = maxBatchInstancePercent; + this.MaxUnhealthyInstancePercent = maxUnhealthyInstancePercent; + this.MaxUnhealthyUpgradedInstancePercent = maxUnhealthyUpgradedInstancePercent; + this.PauseTimeBetweenBatches = pauseTimeBetweenBatches; + this.PrioritizeUnhealthyInstances = prioritizeUnhealthyInstances; + this.RollbackFailedInstancesOnPolicyBreach = rollbackFailedInstancesOnPolicyBreach; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + + /// + /// Gets or sets allow VMSS to ignore AZ boundaries when constructing upgrade + /// batches. Take into consideration the Update Domain and + /// maxBatchInstancePercent to determine the batch size. If this field is not + /// set, Azure Azure Batch will not set its default value. The value of + /// enableCrossZoneUpgrade on the created VirtualMachineScaleSet will be + /// decided by the default configurations on VirtualMachineScaleSet. This field + /// is able to be set to true or false only when using + /// NodePlacementConfiguration as Zonal. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "enableCrossZoneUpgrade")] + public bool? EnableCrossZoneUpgrade {get; set; } + + /// + /// Gets or sets the maximum percent of total virtual machine instances that + /// will be upgraded simultaneously by the rolling upgrade in one batch. As + /// this is a maximum, unhealthy instances in previous or future batches can + /// cause the percentage of instances in a batch to decrease to ensure higher + /// reliability. The value of this field should be between 5 and 100, + /// inclusive. If both maxBatchInstancePercent and maxUnhealthyInstancePercent + /// are assigned with value, the value of maxBatchInstancePercent should not be + /// more than maxUnhealthyInstancePercent. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "maxBatchInstancePercent")] + public int? MaxBatchInstancePercent {get; set; } + + /// + /// Gets or sets the maximum percentage of the total virtual machine instances + /// in the scale set that can be simultaneously unhealthy, either as a result + /// of being upgraded, or by being found in an unhealthy state by the virtual + /// machine health checks before the rolling upgrade aborts. This constraint + /// will be checked prior to starting any batch. The value of this field should + /// be between 5 and 100, inclusive. If both maxBatchInstancePercent and + /// maxUnhealthyInstancePercent are assigned with value, the value of + /// maxBatchInstancePercent should not be more than + /// maxUnhealthyInstancePercent. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "maxUnhealthyInstancePercent")] + public int? MaxUnhealthyInstancePercent {get; set; } + + /// + /// Gets or sets the maximum percentage of upgraded virtual machine instances + /// that can be found to be in an unhealthy state. This check will happen after + /// each batch is upgraded. If this percentage is ever exceeded, the rolling + /// update aborts. The value of this field should be between 0 and 100, + /// inclusive. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "maxUnhealthyUpgradedInstancePercent")] + public int? MaxUnhealthyUpgradedInstancePercent {get; set; } + + /// + /// Gets or sets the wait time between completing the update for all virtual + /// machines in one batch and starting the next batch. The time duration should + /// be specified in ISO 8601 format. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "pauseTimeBetweenBatches")] + public string PauseTimeBetweenBatches {get; set; } + + /// + /// Gets or sets upgrade all unhealthy instances in a scale set before any + /// healthy instances. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "prioritizeUnhealthyInstances")] + public bool? PrioritizeUnhealthyInstances {get; set; } + + /// + /// Gets or sets rollback failed instances to previous model if the Rolling + /// Upgrade policy is violated. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "rollbackFailedInstancesOnPolicyBreach")] + public bool? RollbackFailedInstancesOnPolicyBreach {get; set; } + /// + /// Validate the object. + /// + /// + /// Thrown if validation fails + /// + public virtual void Validate() + { + if (this.MaxBatchInstancePercent != null) + { + if (this.MaxBatchInstancePercent > 100) + { + throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.InclusiveMaximum, "MaxBatchInstancePercent", 100); + } + if (this.MaxBatchInstancePercent < 5) + { + throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.InclusiveMinimum, "MaxBatchInstancePercent", 5); + } + } + if (this.MaxUnhealthyInstancePercent != null) + { + if (this.MaxUnhealthyInstancePercent > 100) + { + throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.InclusiveMaximum, "MaxUnhealthyInstancePercent", 100); + } + if (this.MaxUnhealthyInstancePercent < 5) + { + throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.InclusiveMinimum, "MaxUnhealthyInstancePercent", 5); + } + } + if (this.MaxUnhealthyUpgradedInstancePercent != null) + { + if (this.MaxUnhealthyUpgradedInstancePercent > 100) + { + throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.InclusiveMaximum, "MaxUnhealthyUpgradedInstancePercent", 100); + } + if (this.MaxUnhealthyUpgradedInstancePercent < 0) + { + throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.InclusiveMinimum, "MaxUnhealthyUpgradedInstancePercent", 0); + } + } + + } + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/SupportedSku.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/SupportedSku.cs index c93883d4f01f..44d43e001b00 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/SupportedSku.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/SupportedSku.cs @@ -32,12 +32,16 @@ public SupportedSku() /// A collection of capabilities which this SKU supports. /// - public SupportedSku(string name = default(string), string familyName = default(string), System.Collections.Generic.IList capabilities = default(System.Collections.Generic.IList)) + + /// The time when Azure Batch service will retire this SKU. + /// + public SupportedSku(string name = default(string), string familyName = default(string), System.Collections.Generic.IList capabilities = default(System.Collections.Generic.IList), System.DateTime? batchSupportEndOfLife = default(System.DateTime?)) { this.Name = name; this.FamilyName = familyName; this.Capabilities = capabilities; + this.BatchSupportEndOfLife = batchSupportEndOfLife; CustomInit(); } @@ -64,5 +68,11 @@ public SupportedSku() /// [Newtonsoft.Json.JsonProperty(PropertyName = "capabilities")] public System.Collections.Generic.IList Capabilities {get; private set; } + + /// + /// Gets the time when Azure Batch service will retire this SKU. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "batchSupportEndOfLife")] + public System.DateTime? BatchSupportEndOfLife {get; private set; } } } \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/UpgradeMode.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/UpgradeMode.cs new file mode 100644 index 000000000000..c1a9ce7f7047 --- /dev/null +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/UpgradeMode.cs @@ -0,0 +1,71 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.Management.Batch.Models +{ + + /// + /// Defines values for UpgradeMode. + /// + + + [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.StringEnumConverter))] + public enum UpgradeMode + { + /// + /// All virtual machines in the scale set are automatically updated at the same + /// time. + /// + [System.Runtime.Serialization.EnumMember(Value = "automatic")] + Automatic, + /// + /// You control the application of updates to virtual machines in the scale + /// set. You do this by using the manualUpgrade action. + /// + [System.Runtime.Serialization.EnumMember(Value = "manual")] + Manual, + /// + /// The existing instances in a scale set are brought down in batches to be + /// upgraded. Once the upgraded batch is complete, the instances will begin + /// taking traffic again and the next batch will begin. This continues until + /// all instances brought up-to-date. + /// + [System.Runtime.Serialization.EnumMember(Value = "rolling")] + Rolling + } + internal static class UpgradeModeEnumExtension + { + internal static string ToSerializedValue(this UpgradeMode? value) + { + return value == null ? null : ((UpgradeMode)value).ToSerializedValue(); + } + internal static string ToSerializedValue(this UpgradeMode value) + { + switch( value ) + { + case UpgradeMode.Automatic: + return "automatic"; + case UpgradeMode.Manual: + return "manual"; + case UpgradeMode.Rolling: + return "rolling"; + } + return null; + } + internal static UpgradeMode? ParseUpgradeMode(this string value) + { + switch( value ) + { + case "automatic": + return UpgradeMode.Automatic; + case "manual": + return UpgradeMode.Manual; + case "rolling": + return UpgradeMode.Rolling; + } + return null; + } + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/UpgradePolicy.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/UpgradePolicy.cs new file mode 100644 index 000000000000..0811d01b7acd --- /dev/null +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/UpgradePolicy.cs @@ -0,0 +1,98 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.Management.Batch.Models +{ + using System.Linq; + + /// + /// Describes an upgrade policy - automatic, manual, or rolling. + /// + public partial class UpgradePolicy + { + /// + /// Initializes a new instance of the UpgradePolicy class. + /// + public UpgradePolicy() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the UpgradePolicy class. + /// + + /// Specifies the mode of an upgrade to virtual machines in the scale set.<br + /// /><br /> Possible values are:<br /><br /> **Manual** - You control the + /// application of updates to virtual machines in the scale set. You do this by + /// using the manualUpgrade action.<br /><br /> **Automatic** - All virtual + /// machines in the scale set are automatically updated at the same time.<br + /// /><br /> **Rolling** - Scale set performs updates in batches with an + /// optional pause time in between. + /// Possible values include: 'automatic', 'manual', 'rolling' + + /// The configuration parameters used for performing automatic OS upgrade. + /// + + /// This property is only supported on Pools with the + /// virtualMachineConfiguration property. + /// + public UpgradePolicy(UpgradeMode mode, AutomaticOSUpgradePolicy automaticOSUpgradePolicy = default(AutomaticOSUpgradePolicy), RollingUpgradePolicy rollingUpgradePolicy = default(RollingUpgradePolicy)) + + { + this.Mode = mode; + this.AutomaticOSUpgradePolicy = automaticOSUpgradePolicy; + this.RollingUpgradePolicy = rollingUpgradePolicy; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + + /// + /// Gets or sets specifies the mode of an upgrade to virtual machines in the + /// scale set.<br /><br /> Possible values are:<br /><br /> **Manual** - You + /// control the application of updates to virtual machines in the scale set. + /// You do this by using the manualUpgrade action.<br /><br /> **Automatic** - + /// All virtual machines in the scale set are automatically updated at the same + /// time.<br /><br /> **Rolling** - Scale set performs updates in batches with + /// an optional pause time in between. Possible values include: 'automatic', 'manual', 'rolling' + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "mode")] + public UpgradeMode Mode {get; set; } + + /// + /// Gets or sets the configuration parameters used for performing automatic OS + /// upgrade. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "automaticOSUpgradePolicy")] + public AutomaticOSUpgradePolicy AutomaticOSUpgradePolicy {get; set; } + + /// + /// Gets or sets this property is only supported on Pools with the + /// virtualMachineConfiguration property. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "rollingUpgradePolicy")] + public RollingUpgradePolicy RollingUpgradePolicy {get; set; } + /// + /// Validate the object. + /// + /// + /// Thrown if validation fails + /// + public virtual void Validate() + { + + + if (this.RollingUpgradePolicy != null) + { + this.RollingUpgradePolicy.Validate(); + } + } + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/README.md b/src/Batch/Batch.Management.Sdk/README.md index 9016268a8e74..d7c344775c63 100644 --- a/src/Batch/Batch.Management.Sdk/README.md +++ b/src/Batch/Batch.Management.Sdk/README.md @@ -21,9 +21,9 @@ license-header: MICROSOFT_MIT_NO_VERSION payload-flattening-threshold: 1 # title: BatchManagementClient -commit: 408db257fe67fc66d8c66c10881be8d414d5e5f3 +commit: d6fcc46341f274b8af42a4cdcfa14e1f8d472619 input-file: - - https://github.com/Azure/azure-rest-api-specs/blob/$(commit)/specification/batch/resource-manager/Microsoft.Batch/stable/2023-11-01/BatchManagement.json + - https://github.com/Azure/azure-rest-api-specs/blob/$(commit)/specification/batch/resource-manager/Microsoft.Batch/stable/2024-02-01/BatchManagement.json output-folder: Generated diff --git a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchAccountTests/TestBatchAccountEndToEnd.json b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchAccountTests/TestBatchAccountEndToEnd.json index e9eb8d29bd3b..341f7e7b64dc 100644 --- a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchAccountTests/TestBatchAccountEndToEnd.json +++ b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchAccountTests/TestBatchAccountEndToEnd.json @@ -145,7 +145,7 @@ "StatusCode": 201 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437?api-version=2023-11-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437?api-version=2024-02-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL3BzMzY5OC9wcm92aWRlcnMvTWljcm9zb2Z0LkJhdGNoL2JhdGNoQWNjb3VudHMvcHM4NDM3P2FwaS12ZXJzaW9uPTIwMjMtMDUtMDE=", "RequestMethod": "PUT", "RequestHeaders": { @@ -177,7 +177,7 @@ "no-cache" ], "Location": [ - "https://management.azure.com/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437/operationResults/f591e7a1-746e-4f19-9fd5-aa0142592be4?api-version=2023-11-01&t=638932183004851134&c=MIIIpTCCBo2gAwIBAgITFgGsmnj73LBE7PaBtQABAayaeDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDMwHhcNMjUwNzE4MTIwNDI4WhcNMjYwMTE0MTIwNDI4WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKYwXiklImL5-WfPWj2FX3_Y-JxCd3XXEOuNXx5ggHubZZamujLTqEBSFsFYiH_9NCaqKTiATXu6fBpzW3ghgYhwr0PL071fQT15KnnNUFjd5hFXB7SYti9IwWu1lxSAz-De7HivujKdlsgcmfoV6upRQ0eva9e74EwLV9pCn4WQAhs-6T8p0CytQsi81qHMWybAbNvfom0ox78IEWdS_6g_d4Jl_I4ccYLMyRTOV2NioM96cRECWCZhbpLl1zwoYGSbU5H0MZaiCBjPlhXN40BqagpamZfP98sPYSBfreh6-iMGU5tNTRkh8RiJqzjhzIUpEv3PqLtWTyPUB8JS7aUCAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9BTTNQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAzKDEpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MB0GA1UdDgQWBBTxzPCXgPzIUiTz94us0y0CCMf8BzAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBRIo61gdWpv7GDzaVXRALEyV_xs5DAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggIBAAqNK9Ejzdnb9L4TyakCpJByRYVTN_6nCGbtUd2E2sELjuJGRGiRmujp_jqNyIofO_ghSaP_tqH-3WRTRUbnt5xM8aBYoYJSOgKgTsNrB6clspdhCCmzhJy6EQuOqfUDm3C7hDru1_bN3DwXt3VpDqfuYtM3MAabKg0oCYVWgFwnAKYmZLZMWMQh7k_hZxy1gOCQmE9U08tf_pU21aI0El6n5A5uG2FT0placwchheFmXAtoPjT7nU53HVmRissxUR_vRCDj_ZCFo3K3nZNXCQOKPAMc9-LC0prb9Slg6siKtSHB3iGjNQlT9-nbSnDgifI8zC1cvT8CdaNLOmUywRIB4wvRn1z123NuyfJaIz95igW9P189vBTJEZREF-MgJEboWKdlGNn6bbBtu0waqAmUU7WVLeZKdtUI6EEKF7wRGYuY_BhZx1ipyXnBHZpsufuH4AwgOO289QKmqg8QAy7HFD9c8H8fNCtR7sTZ4YNP2AhEaES0rkMSQUCNVEz42YEBi2GgrSpnI94SPdb3J3PkCMZ4OgFRjztLO7nrgbPtflhSOo_VOE0_7Y74km43WAMQPKL3-44vQrEQ61Hd_24IcFh_ChNXvUDqp39GzYlO3D0zlau4ozll8BeLUZrJwHTQWZS8XR-EifCl4MW5Y3Y1SxOLrIxnukCzQxL7aGmc&s=SPR_g8AydHAx2fRbsISNByRsbJGhJLU6-JUt3D1bzIt6yWDz76_77_MQpuUYZDqcBHaHYnieVy7BTQbdojj0-BnLt4w3o-3Ul0i16Rq0zaHreZkfbQchwflOTzx-g3kWK3WYg2yyZJrhd66aWzfffKVB1SPfxNWeb8cEvc3WaWw1sUy9OhEt3Sn75jwsn6xtz0FuT_DdyAHimQ-2mU7-shV8A0-y8V4rYc4dGgA6jlym1CrcafhQTwSnlwu0vR9q_P7wTn_zJB4FVh-Eocokah_ZbHWdLyKwhfNaHbokXvup8A5Q0XcbdlJ63LvspRj244TD4xo9hQ0aORw8InShVQ&h=NhZWEsIi8Cy5R1wXWXcLTn-B44Mq4vZHPaf5F7W8dQw" + "https://management.azure.com/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437/operationResults/f591e7a1-746e-4f19-9fd5-aa0142592be4?api-version=2024-02-01&t=638932183004851134&c=MIIIpTCCBo2gAwIBAgITFgGsmnj73LBE7PaBtQABAayaeDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDMwHhcNMjUwNzE4MTIwNDI4WhcNMjYwMTE0MTIwNDI4WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKYwXiklImL5-WfPWj2FX3_Y-JxCd3XXEOuNXx5ggHubZZamujLTqEBSFsFYiH_9NCaqKTiATXu6fBpzW3ghgYhwr0PL071fQT15KnnNUFjd5hFXB7SYti9IwWu1lxSAz-De7HivujKdlsgcmfoV6upRQ0eva9e74EwLV9pCn4WQAhs-6T8p0CytQsi81qHMWybAbNvfom0ox78IEWdS_6g_d4Jl_I4ccYLMyRTOV2NioM96cRECWCZhbpLl1zwoYGSbU5H0MZaiCBjPlhXN40BqagpamZfP98sPYSBfreh6-iMGU5tNTRkh8RiJqzjhzIUpEv3PqLtWTyPUB8JS7aUCAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9BTTNQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAzKDEpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MB0GA1UdDgQWBBTxzPCXgPzIUiTz94us0y0CCMf8BzAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBRIo61gdWpv7GDzaVXRALEyV_xs5DAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggIBAAqNK9Ejzdnb9L4TyakCpJByRYVTN_6nCGbtUd2E2sELjuJGRGiRmujp_jqNyIofO_ghSaP_tqH-3WRTRUbnt5xM8aBYoYJSOgKgTsNrB6clspdhCCmzhJy6EQuOqfUDm3C7hDru1_bN3DwXt3VpDqfuYtM3MAabKg0oCYVWgFwnAKYmZLZMWMQh7k_hZxy1gOCQmE9U08tf_pU21aI0El6n5A5uG2FT0placwchheFmXAtoPjT7nU53HVmRissxUR_vRCDj_ZCFo3K3nZNXCQOKPAMc9-LC0prb9Slg6siKtSHB3iGjNQlT9-nbSnDgifI8zC1cvT8CdaNLOmUywRIB4wvRn1z123NuyfJaIz95igW9P189vBTJEZREF-MgJEboWKdlGNn6bbBtu0waqAmUU7WVLeZKdtUI6EEKF7wRGYuY_BhZx1ipyXnBHZpsufuH4AwgOO289QKmqg8QAy7HFD9c8H8fNCtR7sTZ4YNP2AhEaES0rkMSQUCNVEz42YEBi2GgrSpnI94SPdb3J3PkCMZ4OgFRjztLO7nrgbPtflhSOo_VOE0_7Y74km43WAMQPKL3-44vQrEQ61Hd_24IcFh_ChNXvUDqp39GzYlO3D0zlau4ozll8BeLUZrJwHTQWZS8XR-EifCl4MW5Y3Y1SxOLrIxnukCzQxL7aGmc&s=SPR_g8AydHAx2fRbsISNByRsbJGhJLU6-JUt3D1bzIt6yWDz76_77_MQpuUYZDqcBHaHYnieVy7BTQbdojj0-BnLt4w3o-3Ul0i16Rq0zaHreZkfbQchwflOTzx-g3kWK3WYg2yyZJrhd66aWzfffKVB1SPfxNWeb8cEvc3WaWw1sUy9OhEt3Sn75jwsn6xtz0FuT_DdyAHimQ-2mU7-shV8A0-y8V4rYc4dGgA6jlym1CrcafhQTwSnlwu0vR9q_P7wTn_zJB4FVh-Eocokah_ZbHWdLyKwhfNaHbokXvup8A5Q0XcbdlJ63LvspRj244TD4xo9hQ0aORw8InShVQ&h=NhZWEsIi8Cy5R1wXWXcLTn-B44Mq4vZHPaf5F7W8dQw" ], "Retry-After": [ "15" @@ -226,7 +226,7 @@ "StatusCode": 202 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437?api-version=2023-11-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437?api-version=2024-02-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL3BzMzY5OC9wcm92aWRlcnMvTWljcm9zb2Z0LkJhdGNoL2JhdGNoQWNjb3VudHMvcHM4NDM3P2FwaS12ZXJzaW9uPTIwMjMtMDUtMDE=", "RequestMethod": "PUT", "RequestHeaders": { @@ -310,7 +310,7 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437/operationResults/f591e7a1-746e-4f19-9fd5-aa0142592be4?api-version=2023-11-01&t=638932183004851134&c=MIIIpTCCBo2gAwIBAgITFgGsmnj73LBE7PaBtQABAayaeDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDMwHhcNMjUwNzE4MTIwNDI4WhcNMjYwMTE0MTIwNDI4WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKYwXiklImL5-WfPWj2FX3_Y-JxCd3XXEOuNXx5ggHubZZamujLTqEBSFsFYiH_9NCaqKTiATXu6fBpzW3ghgYhwr0PL071fQT15KnnNUFjd5hFXB7SYti9IwWu1lxSAz-De7HivujKdlsgcmfoV6upRQ0eva9e74EwLV9pCn4WQAhs-6T8p0CytQsi81qHMWybAbNvfom0ox78IEWdS_6g_d4Jl_I4ccYLMyRTOV2NioM96cRECWCZhbpLl1zwoYGSbU5H0MZaiCBjPlhXN40BqagpamZfP98sPYSBfreh6-iMGU5tNTRkh8RiJqzjhzIUpEv3PqLtWTyPUB8JS7aUCAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9BTTNQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAzKDEpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MB0GA1UdDgQWBBTxzPCXgPzIUiTz94us0y0CCMf8BzAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBRIo61gdWpv7GDzaVXRALEyV_xs5DAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggIBAAqNK9Ejzdnb9L4TyakCpJByRYVTN_6nCGbtUd2E2sELjuJGRGiRmujp_jqNyIofO_ghSaP_tqH-3WRTRUbnt5xM8aBYoYJSOgKgTsNrB6clspdhCCmzhJy6EQuOqfUDm3C7hDru1_bN3DwXt3VpDqfuYtM3MAabKg0oCYVWgFwnAKYmZLZMWMQh7k_hZxy1gOCQmE9U08tf_pU21aI0El6n5A5uG2FT0placwchheFmXAtoPjT7nU53HVmRissxUR_vRCDj_ZCFo3K3nZNXCQOKPAMc9-LC0prb9Slg6siKtSHB3iGjNQlT9-nbSnDgifI8zC1cvT8CdaNLOmUywRIB4wvRn1z123NuyfJaIz95igW9P189vBTJEZREF-MgJEboWKdlGNn6bbBtu0waqAmUU7WVLeZKdtUI6EEKF7wRGYuY_BhZx1ipyXnBHZpsufuH4AwgOO289QKmqg8QAy7HFD9c8H8fNCtR7sTZ4YNP2AhEaES0rkMSQUCNVEz42YEBi2GgrSpnI94SPdb3J3PkCMZ4OgFRjztLO7nrgbPtflhSOo_VOE0_7Y74km43WAMQPKL3-44vQrEQ61Hd_24IcFh_ChNXvUDqp39GzYlO3D0zlau4ozll8BeLUZrJwHTQWZS8XR-EifCl4MW5Y3Y1SxOLrIxnukCzQxL7aGmc&s=SPR_g8AydHAx2fRbsISNByRsbJGhJLU6-JUt3D1bzIt6yWDz76_77_MQpuUYZDqcBHaHYnieVy7BTQbdojj0-BnLt4w3o-3Ul0i16Rq0zaHreZkfbQchwflOTzx-g3kWK3WYg2yyZJrhd66aWzfffKVB1SPfxNWeb8cEvc3WaWw1sUy9OhEt3Sn75jwsn6xtz0FuT_DdyAHimQ-2mU7-shV8A0-y8V4rYc4dGgA6jlym1CrcafhQTwSnlwu0vR9q_P7wTn_zJB4FVh-Eocokah_ZbHWdLyKwhfNaHbokXvup8A5Q0XcbdlJ63LvspRj244TD4xo9hQ0aORw8InShVQ&h=NhZWEsIi8Cy5R1wXWXcLTn-B44Mq4vZHPaf5F7W8dQw", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437/operationResults/f591e7a1-746e-4f19-9fd5-aa0142592be4?api-version=2024-02-01&t=638932183004851134&c=MIIIpTCCBo2gAwIBAgITFgGsmnj73LBE7PaBtQABAayaeDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDMwHhcNMjUwNzE4MTIwNDI4WhcNMjYwMTE0MTIwNDI4WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKYwXiklImL5-WfPWj2FX3_Y-JxCd3XXEOuNXx5ggHubZZamujLTqEBSFsFYiH_9NCaqKTiATXu6fBpzW3ghgYhwr0PL071fQT15KnnNUFjd5hFXB7SYti9IwWu1lxSAz-De7HivujKdlsgcmfoV6upRQ0eva9e74EwLV9pCn4WQAhs-6T8p0CytQsi81qHMWybAbNvfom0ox78IEWdS_6g_d4Jl_I4ccYLMyRTOV2NioM96cRECWCZhbpLl1zwoYGSbU5H0MZaiCBjPlhXN40BqagpamZfP98sPYSBfreh6-iMGU5tNTRkh8RiJqzjhzIUpEv3PqLtWTyPUB8JS7aUCAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9BTTNQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAzKDEpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MB0GA1UdDgQWBBTxzPCXgPzIUiTz94us0y0CCMf8BzAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBRIo61gdWpv7GDzaVXRALEyV_xs5DAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggIBAAqNK9Ejzdnb9L4TyakCpJByRYVTN_6nCGbtUd2E2sELjuJGRGiRmujp_jqNyIofO_ghSaP_tqH-3WRTRUbnt5xM8aBYoYJSOgKgTsNrB6clspdhCCmzhJy6EQuOqfUDm3C7hDru1_bN3DwXt3VpDqfuYtM3MAabKg0oCYVWgFwnAKYmZLZMWMQh7k_hZxy1gOCQmE9U08tf_pU21aI0El6n5A5uG2FT0placwchheFmXAtoPjT7nU53HVmRissxUR_vRCDj_ZCFo3K3nZNXCQOKPAMc9-LC0prb9Slg6siKtSHB3iGjNQlT9-nbSnDgifI8zC1cvT8CdaNLOmUywRIB4wvRn1z123NuyfJaIz95igW9P189vBTJEZREF-MgJEboWKdlGNn6bbBtu0waqAmUU7WVLeZKdtUI6EEKF7wRGYuY_BhZx1ipyXnBHZpsufuH4AwgOO289QKmqg8QAy7HFD9c8H8fNCtR7sTZ4YNP2AhEaES0rkMSQUCNVEz42YEBi2GgrSpnI94SPdb3J3PkCMZ4OgFRjztLO7nrgbPtflhSOo_VOE0_7Y74km43WAMQPKL3-44vQrEQ61Hd_24IcFh_ChNXvUDqp39GzYlO3D0zlau4ozll8BeLUZrJwHTQWZS8XR-EifCl4MW5Y3Y1SxOLrIxnukCzQxL7aGmc&s=SPR_g8AydHAx2fRbsISNByRsbJGhJLU6-JUt3D1bzIt6yWDz76_77_MQpuUYZDqcBHaHYnieVy7BTQbdojj0-BnLt4w3o-3Ul0i16Rq0zaHreZkfbQchwflOTzx-g3kWK3WYg2yyZJrhd66aWzfffKVB1SPfxNWeb8cEvc3WaWw1sUy9OhEt3Sn75jwsn6xtz0FuT_DdyAHimQ-2mU7-shV8A0-y8V4rYc4dGgA6jlym1CrcafhQTwSnlwu0vR9q_P7wTn_zJB4FVh-Eocokah_ZbHWdLyKwhfNaHbokXvup8A5Q0XcbdlJ63LvspRj244TD4xo9hQ0aORw8InShVQ&h=NhZWEsIi8Cy5R1wXWXcLTn-B44Mq4vZHPaf5F7W8dQw", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL3BzMzY5OC9wcm92aWRlcnMvTWljcm9zb2Z0LkJhdGNoL2JhdGNoQWNjb3VudHMvcHM4NDM3L29wZXJhdGlvblJlc3VsdHMvZjU5MWU3YTEtNzQ2ZS00ZjE5LTlmZDUtYWEwMTQyNTkyYmU0P2FwaS12ZXJzaW9uPTIwMjMtMDUtMDEmdD02Mzg5MzIxODMwMDQ4NTExMzQmYz1NSUlJcFRDQ0JvMmdBd0lCQWdJVEZnR3Ntbmo3M0xCRTdQYUJ0UUFCQWF5YWVEQU5CZ2txaGtpRzl3MEJBUXNGQURCRU1STXdFUVlLQ1pJbWlaUHlMR1FCR1JZRFIwSk1NUk13RVFZS0NaSW1pWlB5TEdRQkdSWURRVTFGTVJnd0ZnWURWUVFERXc5QlRVVWdTVzVtY21FZ1EwRWdNRE13SGhjTk1qVXdOekU0TVRJd05ESTRXaGNOTWpZd01URTBNVEl3TkRJNFdqQkFNVDR3UEFZRFZRUURFelZoYzNsdVkyOXdaWEpoZEdsdmJuTnBaMjVwYm1kalpYSjBhV1pwWTJGMFpTNXRZVzVoWjJWdFpXNTBMbUY2ZFhKbExtTnZiVENDQVNJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dFUEFEQ0NBUW9DZ2dFQkFLWXdYaWtsSW1MNS1XZlBXajJGWDNfWS1KeENkM1hYRU91Tlh4NWdnSHViWlphbXVqTFRxRUJTRnNGWWlIXzlOQ2FxS1RpQVRYdTZmQnB6VzNnaGdZaHdyMFBMMDcxZlFUMTVLbm5OVUZqZDVoRlhCN1NZdGk5SXdXdTFseFNBei1EZTdIaXZ1aktkbHNnY21mb1Y2dXBSUTBldmE5ZTc0RXdMVjlwQ240V1FBaHMtNlQ4cDBDeXRRc2k4MXFITVd5YkFiTnZmb20wb3g3OElFV2RTXzZnX2Q0SmxfSTRjY1lMTXlSVE9WMk5pb005NmNSRUNXQ1poYnBMbDF6d29ZR1NiVTVIME1aYWlDQmpQbGhYTjQwQnFhZ3BhbVpmUDk4c1BZU0JmcmVoNi1pTUdVNXROVFJraDhSaUpxempoeklVcEV2M1BxTHRXVHlQVUI4SlM3YVVDQXdFQUFhT0NCSkl3Z2dTT01DY0dDU3NHQVFRQmdqY1ZDZ1FhTUJnd0NnWUlLd1lCQlFVSEF3RXdDZ1lJS3dZQkJRVUhBd0l3UFFZSkt3WUJCQUdDTnhVSEJEQXdMZ1ltS3dZQkJBR0NOeFVJaHBEakRZVFZ0SGlFOFlzLWhadmRGczZkRW9GZ2hmbVJTNFdzbVRRQ0FXUUNBUWN3Z2dIYUJnZ3JCZ0VGQlFjQkFRU0NBY3d3Z2dISU1HWUdDQ3NHQVFVRkJ6QUNobHBvZEhSd09pOHZZM0pzTG0xcFkzSnZjMjltZEM1amIyMHZjR3RwYVc1bWNtRXZRMlZ5ZEhNdlFVMHpVRXRKU1U1VVEwRXdNUzVCVFVVdVIwSk1YMEZOUlNVeU1FbHVabkpoSlRJd1EwRWxNakF3TXlneEtTNWpjblF3VmdZSUt3WUJCUVVITUFLR1NtaDBkSEE2THk5amNtd3hMbUZ0WlM1blltd3ZZV2xoTDBGTk0xQkxTVWxPVkVOQk1ERXVRVTFGTGtkQ1RGOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRE1vTVNrdVkzSjBNRllHQ0NzR0FRVUZCekFDaGtwb2RIUndPaTh2WTNKc01pNWhiV1V1WjJKc0wyRnBZUzlCVFROUVMwbEpUbFJEUVRBeExrRk5SUzVIUWt4ZlFVMUZKVEl3U1c1bWNtRWxNakJEUVNVeU1EQXpLREVwTG1OeWREQldCZ2dyQmdFRkJRY3dBb1pLYUhSMGNEb3ZMMk55YkRNdVlXMWxMbWRpYkM5aGFXRXZRVTB6VUV0SlNVNVVRMEV3TVM1QlRVVXVSMEpNWDBGTlJTVXlNRWx1Wm5KaEpUSXdRMEVsTWpBd015Z3hLUzVqY25Rd1ZnWUlLd1lCQlFVSE1BS0dTbWgwZEhBNkx5OWpjbXcwTG1GdFpTNW5ZbXd2WVdsaEwwRk5NMUJMU1VsT1ZFTkJNREV1UVUxRkxrZENURjlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURNb01Ta3VZM0owTUIwR0ExVWREZ1FXQkJUeHpQQ1hnUHpJVWlUejk0dXMweTBDQ01mOEJ6QU9CZ05WSFE4QkFmOEVCQU1DQmFBd2dnRTFCZ05WSFI4RWdnRXNNSUlCS0RDQ0FTU2dnZ0Vnb0lJQkhJWkNhSFIwY0RvdkwyTnliQzV0YVdOeWIzTnZablF1WTI5dEwzQnJhV2x1Wm5KaEwwTlNUQzlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURNb01Ta3VZM0pzaGpSb2RIUndPaTh2WTNKc01TNWhiV1V1WjJKc0wyTnliQzlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURNb01Ta3VZM0pzaGpSb2RIUndPaTh2WTNKc01pNWhiV1V1WjJKc0wyTnliQzlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURNb01Ta3VZM0pzaGpSb2RIUndPaTh2WTNKc015NWhiV1V1WjJKc0wyTnliQzlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURNb01Ta3VZM0pzaGpSb2RIUndPaTh2WTNKc05DNWhiV1V1WjJKc0wyTnliQzlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURNb01Ta3VZM0pzTUlHZEJnTlZIU0FFZ1pVd2daSXdEQVlLS3dZQkJBR0NOM3NCQVRCbUJnb3JCZ0VFQVlJM2V3SUNNRmd3VmdZSUt3WUJCUVVIQWdJd1NoNUlBRE1BTXdCbEFEQUFNUUE1QURJQU1RQXRBRFFBWkFBMkFEUUFMUUEwQUdZQU9BQmpBQzBBWVFBd0FEVUFOUUF0QURVQVlnQmtBR0VBWmdCbUFHUUFOUUJsQURNQU13QmtNQXdHQ2lzR0FRUUJnamQ3QXdJd0RBWUtLd1lCQkFHQ04zc0VBakFmQmdOVkhTTUVHREFXZ0JSSW82MWdkV3B2N0dEemFWWFJBTEV5Vl94czVEQWRCZ05WSFNVRUZqQVVCZ2dyQmdFRkJRY0RBUVlJS3dZQkJRVUhBd0l3RFFZSktvWklodmNOQVFFTEJRQURnZ0lCQUFxTks5RWp6ZG5iOUw0VHlha0NwSkJ5UllWVE5fNm5DR2J0VWQyRTJzRUxqdUpHUkdpUm11anBfanFOeUlvZk9fZ2hTYVBfdHFILTNXUlRSVWJudDV4TThhQllvWUpTT2dLZ1RzTnJCNmNsc3BkaENDbXpoSnk2RVF1T3FmVURtM0M3aERydTFfYk4zRHdYdDNWcERxZnVZdE0zTUFhYktnMG9DWVZXZ0Z3bkFLWW1aTFpNV01RaDdrX2haeHkxZ09DUW1FOVUwOHRmX3BVMjFhSTBFbDZuNUE1dUcyRlQwcGxhY3djaGhlRm1YQXRvUGpUN25VNTNIVm1SaXNzeFVSX3ZSQ0RqX1pDRm8zSzNuWk5YQ1FPS1BBTWM5LUxDMHByYjlTbGc2c2lLdFNIQjNpR2pOUWxUOS1uYlNuRGdpZkk4ekMxY3ZUOENkYU5MT21VeXdSSUI0d3ZSbjF6MTIzTnV5ZkphSXo5NWlnVzlQMTg5dkJUSkVaUkVGLU1nSkVib1dLZGxHTm42YmJCdHUwd2FxQW1VVTdXVkxlWktkdFVJNkVFS0Y3d1JHWXVZX0JoWngxaXB5WG5CSFpwc3VmdUg0QXdnT08yODlRS21xZzhRQXk3SEZEOWM4SDhmTkN0UjdzVFo0WU5QMkFoRWFFUzBya01TUVVDTlZFejQyWUVCaTJHZ3JTcG5JOTRTUGRiM0ozUGtDTVo0T2dGUmp6dExPN25yZ2JQdGZsaFNPb19WT0UwXzdZNzRrbTQzV0FNUVBLTDMtNDR2UXJFUTYxSGRfMjRJY0ZoX0NoTlh2VURxcDM5R3pZbE8zRDB6bGF1NG96bGw4QmVMVVpySndIVFFXWlM4WFItRWlmQ2w0TVc1WTNZMVN4T0xySXhudWtDelF4TDdhR21jJnM9U1BSX2c4QXlkSEF4MmZSYnNJU05CeVJzYkpHaEpMVTYtSlV0M0QxYnpJdDZ5V0R6NzZfNzdfTVFwdVVZWkRxY0JIYUhZbmllVnk3QlRRYmRvamowLUJuTHQ0dzNvLTNVbDBpMTZScTB6YUhyZVprZmJRY2h3ZmxPVHp4LWcza1dLM1dZZzJ5eVpKcmhkNjZhV3pmZmZLVkIxU1BmeE5XZWI4Y0V2YzNXYVd3MXNVeTlPaEV0M1NuNzVqd3NuNnh0ejBGdVRfRGR5QUhpbVEtMm1VNy1zaFY4QTAteThWNHJZYzRkR2dBNmpseW0xQ3JjYWZoUVR3U25sd3UwdlI5cV9QN3dUbl96SkI0RlZoLUVvY29rYWhfWmJIV2RMeUt3aGZOYUhib2tYdnVwOEE1UTBYY2JkbEo2M0x2c3BSajI0NFRENHhvOWhRMGFPUnc4SW5TaFZRJmg9TmhaV0VzSWk4Q3k1UjF3WFdYY0xUbi1CNDRNcTR2WkhQYWY1RjdXOGRRdw==", "RequestMethod": "GET", "RequestHeaders": { @@ -385,7 +385,7 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437?api-version=2023-11-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437?api-version=2024-02-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL3BzMzY5OC9wcm92aWRlcnMvTWljcm9zb2Z0LkJhdGNoL2JhdGNoQWNjb3VudHMvcHM4NDM3P2FwaS12ZXJzaW9uPTIwMjMtMDUtMDE=", "RequestMethod": "GET", "RequestHeaders": { @@ -460,7 +460,7 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437?api-version=2023-11-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437?api-version=2024-02-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL3BzMzY5OC9wcm92aWRlcnMvTWljcm9zb2Z0LkJhdGNoL2JhdGNoQWNjb3VudHMvcHM4NDM3P2FwaS12ZXJzaW9uPTIwMjMtMDUtMDE=", "RequestMethod": "GET", "RequestHeaders": { @@ -535,7 +535,7 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437?api-version=2023-11-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437?api-version=2024-02-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL3BzMzY5OC9wcm92aWRlcnMvTWljcm9zb2Z0LkJhdGNoL2JhdGNoQWNjb3VudHMvcHM4NDM3P2FwaS12ZXJzaW9uPTIwMjMtMDUtMDE=", "RequestMethod": "GET", "RequestHeaders": { @@ -610,7 +610,7 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437?api-version=2023-11-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437?api-version=2024-02-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL3BzMzY5OC9wcm92aWRlcnMvTWljcm9zb2Z0LkJhdGNoL2JhdGNoQWNjb3VudHMvcHM4NDM3P2FwaS12ZXJzaW9uPTIwMjMtMDUtMDE=", "RequestMethod": "GET", "RequestHeaders": { @@ -685,7 +685,7 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437?api-version=2023-11-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437?api-version=2024-02-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL3BzMzY5OC9wcm92aWRlcnMvTWljcm9zb2Z0LkJhdGNoL2JhdGNoQWNjb3VudHMvcHM4NDM3P2FwaS12ZXJzaW9uPTIwMjMtMDUtMDE=", "RequestMethod": "GET", "RequestHeaders": { @@ -760,7 +760,7 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437?api-version=2023-11-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437?api-version=2024-02-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL3BzMzY5OC9wcm92aWRlcnMvTWljcm9zb2Z0LkJhdGNoL2JhdGNoQWNjb3VudHMvcHM4NDM3P2FwaS12ZXJzaW9uPTIwMjMtMDUtMDE=", "RequestMethod": "GET", "RequestHeaders": { @@ -898,7 +898,7 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437/listKeys?api-version=2023-11-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437/listKeys?api-version=2024-02-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL3BzMzY5OC9wcm92aWRlcnMvTWljcm9zb2Z0LkJhdGNoL2JhdGNoQWNjb3VudHMvcHM4NDM3L2xpc3RLZXlzP2FwaS12ZXJzaW9uPTIwMjMtMDUtMDE=", "RequestMethod": "POST", "RequestHeaders": { @@ -970,7 +970,7 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437/listKeys?api-version=2023-11-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437/listKeys?api-version=2024-02-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL3BzMzY5OC9wcm92aWRlcnMvTWljcm9zb2Z0LkJhdGNoL2JhdGNoQWNjb3VudHMvcHM4NDM3L2xpc3RLZXlzP2FwaS12ZXJzaW9uPTIwMjMtMDUtMDE=", "RequestMethod": "POST", "RequestHeaders": { @@ -1042,7 +1042,7 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437/regenerateKeys?api-version=2023-11-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437/regenerateKeys?api-version=2024-02-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL3BzMzY5OC9wcm92aWRlcnMvTWljcm9zb2Z0LkJhdGNoL2JhdGNoQWNjb3VudHMvcHM4NDM3L3JlZ2VuZXJhdGVLZXlzP2FwaS12ZXJzaW9uPTIwMjMtMDUtMDE=", "RequestMethod": "POST", "RequestHeaders": { @@ -1120,7 +1120,7 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437?api-version=2023-11-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437?api-version=2024-02-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL3BzMzY5OC9wcm92aWRlcnMvTWljcm9zb2Z0LkJhdGNoL2JhdGNoQWNjb3VudHMvcHM4NDM3P2FwaS12ZXJzaW9uPTIwMjMtMDUtMDE=", "RequestMethod": "DELETE", "RequestHeaders": { @@ -1146,7 +1146,7 @@ "no-cache" ], "Location": [ - "https://management.azure.com/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/providers/Microsoft.Batch/locations/westus2/accountOperationResults/ps8437-7f030330-c3d1-42d2-88dc-6fa78252b612?api-version=2023-11-01&t=638932183186360780&c=MIIIpTCCBo2gAwIBAgITFgGsmnj73LBE7PaBtQABAayaeDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDMwHhcNMjUwNzE4MTIwNDI4WhcNMjYwMTE0MTIwNDI4WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKYwXiklImL5-WfPWj2FX3_Y-JxCd3XXEOuNXx5ggHubZZamujLTqEBSFsFYiH_9NCaqKTiATXu6fBpzW3ghgYhwr0PL071fQT15KnnNUFjd5hFXB7SYti9IwWu1lxSAz-De7HivujKdlsgcmfoV6upRQ0eva9e74EwLV9pCn4WQAhs-6T8p0CytQsi81qHMWybAbNvfom0ox78IEWdS_6g_d4Jl_I4ccYLMyRTOV2NioM96cRECWCZhbpLl1zwoYGSbU5H0MZaiCBjPlhXN40BqagpamZfP98sPYSBfreh6-iMGU5tNTRkh8RiJqzjhzIUpEv3PqLtWTyPUB8JS7aUCAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9BTTNQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAzKDEpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MB0GA1UdDgQWBBTxzPCXgPzIUiTz94us0y0CCMf8BzAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBRIo61gdWpv7GDzaVXRALEyV_xs5DAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggIBAAqNK9Ejzdnb9L4TyakCpJByRYVTN_6nCGbtUd2E2sELjuJGRGiRmujp_jqNyIofO_ghSaP_tqH-3WRTRUbnt5xM8aBYoYJSOgKgTsNrB6clspdhCCmzhJy6EQuOqfUDm3C7hDru1_bN3DwXt3VpDqfuYtM3MAabKg0oCYVWgFwnAKYmZLZMWMQh7k_hZxy1gOCQmE9U08tf_pU21aI0El6n5A5uG2FT0placwchheFmXAtoPjT7nU53HVmRissxUR_vRCDj_ZCFo3K3nZNXCQOKPAMc9-LC0prb9Slg6siKtSHB3iGjNQlT9-nbSnDgifI8zC1cvT8CdaNLOmUywRIB4wvRn1z123NuyfJaIz95igW9P189vBTJEZREF-MgJEboWKdlGNn6bbBtu0waqAmUU7WVLeZKdtUI6EEKF7wRGYuY_BhZx1ipyXnBHZpsufuH4AwgOO289QKmqg8QAy7HFD9c8H8fNCtR7sTZ4YNP2AhEaES0rkMSQUCNVEz42YEBi2GgrSpnI94SPdb3J3PkCMZ4OgFRjztLO7nrgbPtflhSOo_VOE0_7Y74km43WAMQPKL3-44vQrEQ61Hd_24IcFh_ChNXvUDqp39GzYlO3D0zlau4ozll8BeLUZrJwHTQWZS8XR-EifCl4MW5Y3Y1SxOLrIxnukCzQxL7aGmc&s=ENIYYOeR9tQXkYkicd_BX2Eh2gJYj6XtnBl6V2kh79ev8fOaZH8Jy1N4WfSAzvg5LSOv5UCHRhCbE6nH0OrCsSKDuxErHmcfv7H_yfkt-acdEoQwwtGCwPd-87-Yht2Nq2RefPWjN82BzfXDBpDWI3L7Nq78xmRB1RAMNFt9PElzG4ioxCJdU55N0nN0Wsp1BKTUwP6Enql3wu9g2tPDn7xBgx1TKSL3y3Qcz6R0AznDqv9bZ8JpBf7mLPbZ41Jhp0xVb7Ca6x_bs5GRj3ecgkSxXcn3AiGTTJiwjddCrZaNPoHFG750GviR1_QT9iRMvwbj7dgy2tP85G-AZhu7sA&h=CKs8IW2-k2gwB8WnRaGg_rhleAL5pbPIjZRT05ae0g0" + "https://management.azure.com/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/providers/Microsoft.Batch/locations/westus2/accountOperationResults/ps8437-7f030330-c3d1-42d2-88dc-6fa78252b612?api-version=2024-02-01&t=638932183186360780&c=MIIIpTCCBo2gAwIBAgITFgGsmnj73LBE7PaBtQABAayaeDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDMwHhcNMjUwNzE4MTIwNDI4WhcNMjYwMTE0MTIwNDI4WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKYwXiklImL5-WfPWj2FX3_Y-JxCd3XXEOuNXx5ggHubZZamujLTqEBSFsFYiH_9NCaqKTiATXu6fBpzW3ghgYhwr0PL071fQT15KnnNUFjd5hFXB7SYti9IwWu1lxSAz-De7HivujKdlsgcmfoV6upRQ0eva9e74EwLV9pCn4WQAhs-6T8p0CytQsi81qHMWybAbNvfom0ox78IEWdS_6g_d4Jl_I4ccYLMyRTOV2NioM96cRECWCZhbpLl1zwoYGSbU5H0MZaiCBjPlhXN40BqagpamZfP98sPYSBfreh6-iMGU5tNTRkh8RiJqzjhzIUpEv3PqLtWTyPUB8JS7aUCAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9BTTNQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAzKDEpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MB0GA1UdDgQWBBTxzPCXgPzIUiTz94us0y0CCMf8BzAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBRIo61gdWpv7GDzaVXRALEyV_xs5DAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggIBAAqNK9Ejzdnb9L4TyakCpJByRYVTN_6nCGbtUd2E2sELjuJGRGiRmujp_jqNyIofO_ghSaP_tqH-3WRTRUbnt5xM8aBYoYJSOgKgTsNrB6clspdhCCmzhJy6EQuOqfUDm3C7hDru1_bN3DwXt3VpDqfuYtM3MAabKg0oCYVWgFwnAKYmZLZMWMQh7k_hZxy1gOCQmE9U08tf_pU21aI0El6n5A5uG2FT0placwchheFmXAtoPjT7nU53HVmRissxUR_vRCDj_ZCFo3K3nZNXCQOKPAMc9-LC0prb9Slg6siKtSHB3iGjNQlT9-nbSnDgifI8zC1cvT8CdaNLOmUywRIB4wvRn1z123NuyfJaIz95igW9P189vBTJEZREF-MgJEboWKdlGNn6bbBtu0waqAmUU7WVLeZKdtUI6EEKF7wRGYuY_BhZx1ipyXnBHZpsufuH4AwgOO289QKmqg8QAy7HFD9c8H8fNCtR7sTZ4YNP2AhEaES0rkMSQUCNVEz42YEBi2GgrSpnI94SPdb3J3PkCMZ4OgFRjztLO7nrgbPtflhSOo_VOE0_7Y74km43WAMQPKL3-44vQrEQ61Hd_24IcFh_ChNXvUDqp39GzYlO3D0zlau4ozll8BeLUZrJwHTQWZS8XR-EifCl4MW5Y3Y1SxOLrIxnukCzQxL7aGmc&s=ENIYYOeR9tQXkYkicd_BX2Eh2gJYj6XtnBl6V2kh79ev8fOaZH8Jy1N4WfSAzvg5LSOv5UCHRhCbE6nH0OrCsSKDuxErHmcfv7H_yfkt-acdEoQwwtGCwPd-87-Yht2Nq2RefPWjN82BzfXDBpDWI3L7Nq78xmRB1RAMNFt9PElzG4ioxCJdU55N0nN0Wsp1BKTUwP6Enql3wu9g2tPDn7xBgx1TKSL3y3Qcz6R0AznDqv9bZ8JpBf7mLPbZ41Jhp0xVb7Ca6x_bs5GRj3ecgkSxXcn3AiGTTJiwjddCrZaNPoHFG750GviR1_QT9iRMvwbj7dgy2tP85G-AZhu7sA&h=CKs8IW2-k2gwB8WnRaGg_rhleAL5pbPIjZRT05ae0g0" ], "Retry-After": [ "15" @@ -1195,7 +1195,7 @@ "StatusCode": 202 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/providers/Microsoft.Batch/locations/westus2/accountOperationResults/ps8437-7f030330-c3d1-42d2-88dc-6fa78252b612?api-version=2023-11-01&t=638932183186360780&c=MIIIpTCCBo2gAwIBAgITFgGsmnj73LBE7PaBtQABAayaeDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDMwHhcNMjUwNzE4MTIwNDI4WhcNMjYwMTE0MTIwNDI4WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKYwXiklImL5-WfPWj2FX3_Y-JxCd3XXEOuNXx5ggHubZZamujLTqEBSFsFYiH_9NCaqKTiATXu6fBpzW3ghgYhwr0PL071fQT15KnnNUFjd5hFXB7SYti9IwWu1lxSAz-De7HivujKdlsgcmfoV6upRQ0eva9e74EwLV9pCn4WQAhs-6T8p0CytQsi81qHMWybAbNvfom0ox78IEWdS_6g_d4Jl_I4ccYLMyRTOV2NioM96cRECWCZhbpLl1zwoYGSbU5H0MZaiCBjPlhXN40BqagpamZfP98sPYSBfreh6-iMGU5tNTRkh8RiJqzjhzIUpEv3PqLtWTyPUB8JS7aUCAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9BTTNQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAzKDEpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MB0GA1UdDgQWBBTxzPCXgPzIUiTz94us0y0CCMf8BzAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBRIo61gdWpv7GDzaVXRALEyV_xs5DAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggIBAAqNK9Ejzdnb9L4TyakCpJByRYVTN_6nCGbtUd2E2sELjuJGRGiRmujp_jqNyIofO_ghSaP_tqH-3WRTRUbnt5xM8aBYoYJSOgKgTsNrB6clspdhCCmzhJy6EQuOqfUDm3C7hDru1_bN3DwXt3VpDqfuYtM3MAabKg0oCYVWgFwnAKYmZLZMWMQh7k_hZxy1gOCQmE9U08tf_pU21aI0El6n5A5uG2FT0placwchheFmXAtoPjT7nU53HVmRissxUR_vRCDj_ZCFo3K3nZNXCQOKPAMc9-LC0prb9Slg6siKtSHB3iGjNQlT9-nbSnDgifI8zC1cvT8CdaNLOmUywRIB4wvRn1z123NuyfJaIz95igW9P189vBTJEZREF-MgJEboWKdlGNn6bbBtu0waqAmUU7WVLeZKdtUI6EEKF7wRGYuY_BhZx1ipyXnBHZpsufuH4AwgOO289QKmqg8QAy7HFD9c8H8fNCtR7sTZ4YNP2AhEaES0rkMSQUCNVEz42YEBi2GgrSpnI94SPdb3J3PkCMZ4OgFRjztLO7nrgbPtflhSOo_VOE0_7Y74km43WAMQPKL3-44vQrEQ61Hd_24IcFh_ChNXvUDqp39GzYlO3D0zlau4ozll8BeLUZrJwHTQWZS8XR-EifCl4MW5Y3Y1SxOLrIxnukCzQxL7aGmc&s=ENIYYOeR9tQXkYkicd_BX2Eh2gJYj6XtnBl6V2kh79ev8fOaZH8Jy1N4WfSAzvg5LSOv5UCHRhCbE6nH0OrCsSKDuxErHmcfv7H_yfkt-acdEoQwwtGCwPd-87-Yht2Nq2RefPWjN82BzfXDBpDWI3L7Nq78xmRB1RAMNFt9PElzG4ioxCJdU55N0nN0Wsp1BKTUwP6Enql3wu9g2tPDn7xBgx1TKSL3y3Qcz6R0AznDqv9bZ8JpBf7mLPbZ41Jhp0xVb7Ca6x_bs5GRj3ecgkSxXcn3AiGTTJiwjddCrZaNPoHFG750GviR1_QT9iRMvwbj7dgy2tP85G-AZhu7sA&h=CKs8IW2-k2gwB8WnRaGg_rhleAL5pbPIjZRT05ae0g0", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/providers/Microsoft.Batch/locations/westus2/accountOperationResults/ps8437-7f030330-c3d1-42d2-88dc-6fa78252b612?api-version=2024-02-01&t=638932183186360780&c=MIIIpTCCBo2gAwIBAgITFgGsmnj73LBE7PaBtQABAayaeDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDMwHhcNMjUwNzE4MTIwNDI4WhcNMjYwMTE0MTIwNDI4WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKYwXiklImL5-WfPWj2FX3_Y-JxCd3XXEOuNXx5ggHubZZamujLTqEBSFsFYiH_9NCaqKTiATXu6fBpzW3ghgYhwr0PL071fQT15KnnNUFjd5hFXB7SYti9IwWu1lxSAz-De7HivujKdlsgcmfoV6upRQ0eva9e74EwLV9pCn4WQAhs-6T8p0CytQsi81qHMWybAbNvfom0ox78IEWdS_6g_d4Jl_I4ccYLMyRTOV2NioM96cRECWCZhbpLl1zwoYGSbU5H0MZaiCBjPlhXN40BqagpamZfP98sPYSBfreh6-iMGU5tNTRkh8RiJqzjhzIUpEv3PqLtWTyPUB8JS7aUCAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9BTTNQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAzKDEpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MB0GA1UdDgQWBBTxzPCXgPzIUiTz94us0y0CCMf8BzAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBRIo61gdWpv7GDzaVXRALEyV_xs5DAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggIBAAqNK9Ejzdnb9L4TyakCpJByRYVTN_6nCGbtUd2E2sELjuJGRGiRmujp_jqNyIofO_ghSaP_tqH-3WRTRUbnt5xM8aBYoYJSOgKgTsNrB6clspdhCCmzhJy6EQuOqfUDm3C7hDru1_bN3DwXt3VpDqfuYtM3MAabKg0oCYVWgFwnAKYmZLZMWMQh7k_hZxy1gOCQmE9U08tf_pU21aI0El6n5A5uG2FT0placwchheFmXAtoPjT7nU53HVmRissxUR_vRCDj_ZCFo3K3nZNXCQOKPAMc9-LC0prb9Slg6siKtSHB3iGjNQlT9-nbSnDgifI8zC1cvT8CdaNLOmUywRIB4wvRn1z123NuyfJaIz95igW9P189vBTJEZREF-MgJEboWKdlGNn6bbBtu0waqAmUU7WVLeZKdtUI6EEKF7wRGYuY_BhZx1ipyXnBHZpsufuH4AwgOO289QKmqg8QAy7HFD9c8H8fNCtR7sTZ4YNP2AhEaES0rkMSQUCNVEz42YEBi2GgrSpnI94SPdb3J3PkCMZ4OgFRjztLO7nrgbPtflhSOo_VOE0_7Y74km43WAMQPKL3-44vQrEQ61Hd_24IcFh_ChNXvUDqp39GzYlO3D0zlau4ozll8BeLUZrJwHTQWZS8XR-EifCl4MW5Y3Y1SxOLrIxnukCzQxL7aGmc&s=ENIYYOeR9tQXkYkicd_BX2Eh2gJYj6XtnBl6V2kh79ev8fOaZH8Jy1N4WfSAzvg5LSOv5UCHRhCbE6nH0OrCsSKDuxErHmcfv7H_yfkt-acdEoQwwtGCwPd-87-Yht2Nq2RefPWjN82BzfXDBpDWI3L7Nq78xmRB1RAMNFt9PElzG4ioxCJdU55N0nN0Wsp1BKTUwP6Enql3wu9g2tPDn7xBgx1TKSL3y3Qcz6R0AznDqv9bZ8JpBf7mLPbZ41Jhp0xVb7Ca6x_bs5GRj3ecgkSxXcn3AiGTTJiwjddCrZaNPoHFG750GviR1_QT9iRMvwbj7dgy2tP85G-AZhu7sA&h=CKs8IW2-k2gwB8WnRaGg_rhleAL5pbPIjZRT05ae0g0", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Byb3ZpZGVycy9NaWNyb3NvZnQuQmF0Y2gvbG9jYXRpb25zL3dlc3R1czIvYWNjb3VudE9wZXJhdGlvblJlc3VsdHMvcHM4NDM3LTdmMDMwMzMwLWMzZDEtNDJkMi04OGRjLTZmYTc4MjUyYjYxMj9hcGktdmVyc2lvbj0yMDIzLTA1LTAxJnQ9NjM4OTMyMTgzMTg2MzYwNzgwJmM9TUlJSXBUQ0NCbzJnQXdJQkFnSVRGZ0dzbW5qNzNMQkU3UGFCdFFBQkFheWFlREFOQmdrcWhraUc5dzBCQVFzRkFEQkVNUk13RVFZS0NaSW1pWlB5TEdRQkdSWURSMEpNTVJNd0VRWUtDWkltaVpQeUxHUUJHUllEUVUxRk1SZ3dGZ1lEVlFRREV3OUJUVVVnU1c1bWNtRWdRMEVnTURNd0hoY05NalV3TnpFNE1USXdOREk0V2hjTk1qWXdNVEUwTVRJd05ESTRXakJBTVQ0d1BBWURWUVFERXpWaGMzbHVZMjl3WlhKaGRHbHZibk5wWjI1cGJtZGpaWEowYVdacFkyRjBaUzV0WVc1aFoyVnRaVzUwTG1GNmRYSmxMbU52YlRDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBS1l3WGlrbEltTDUtV2ZQV2oyRlgzX1ktSnhDZDNYWEVPdU5YeDVnZ0h1YlpaYW11akxUcUVCU0ZzRllpSF85TkNhcUtUaUFUWHU2ZkJwelczZ2hnWWh3cjBQTDA3MWZRVDE1S25uTlVGamQ1aEZYQjdTWXRpOUl3V3UxbHhTQXotRGU3SGl2dWpLZGxzZ2NtZm9WNnVwUlEwZXZhOWU3NEV3TFY5cENuNFdRQWhzLTZUOHAwQ3l0UXNpODFxSE1XeWJBYk52Zm9tMG94NzhJRVdkU182Z19kNEpsX0k0Y2NZTE15UlRPVjJOaW9NOTZjUkVDV0NaaGJwTGwxendvWUdTYlU1SDBNWmFpQ0JqUGxoWE40MEJxYWdwYW1aZlA5OHNQWVNCZnJlaDYtaU1HVTV0TlRSa2g4UmlKcXpqaHpJVXBFdjNQcUx0V1R5UFVCOEpTN2FVQ0F3RUFBYU9DQkpJd2dnU09NQ2NHQ1NzR0FRUUJnamNWQ2dRYU1CZ3dDZ1lJS3dZQkJRVUhBd0V3Q2dZSUt3WUJCUVVIQXdJd1BRWUpLd1lCQkFHQ054VUhCREF3TGdZbUt3WUJCQUdDTnhVSWhwRGpEWVRWdEhpRThZcy1oWnZkRnM2ZEVvRmdoZm1SUzRXc21UUUNBV1FDQVFjd2dnSGFCZ2dyQmdFRkJRY0JBUVNDQWN3d2dnSElNR1lHQ0NzR0FRVUZCekFDaGxwb2RIUndPaTh2WTNKc0xtMXBZM0p2YzI5bWRDNWpiMjB2Y0d0cGFXNW1jbUV2UTJWeWRITXZRVTB6VUV0SlNVNVVRMEV3TVM1QlRVVXVSMEpNWDBGTlJTVXlNRWx1Wm5KaEpUSXdRMEVsTWpBd015Z3hLUzVqY25Rd1ZnWUlLd1lCQlFVSE1BS0dTbWgwZEhBNkx5OWpjbXd4TG1GdFpTNW5ZbXd2WVdsaEwwRk5NMUJMU1VsT1ZFTkJNREV1UVUxRkxrZENURjlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURNb01Ta3VZM0owTUZZR0NDc0dBUVVGQnpBQ2hrcG9kSFJ3T2k4dlkzSnNNaTVoYldVdVoySnNMMkZwWVM5QlRUTlFTMGxKVGxSRFFUQXhMa0ZOUlM1SFFreGZRVTFGSlRJd1NXNW1jbUVsTWpCRFFTVXlNREF6S0RFcExtTnlkREJXQmdnckJnRUZCUWN3QW9aS2FIUjBjRG92TDJOeWJETXVZVzFsTG1kaWJDOWhhV0V2UVUwelVFdEpTVTVVUTBFd01TNUJUVVV1UjBKTVgwRk5SU1V5TUVsdVpuSmhKVEl3UTBFbE1qQXdNeWd4S1M1amNuUXdWZ1lJS3dZQkJRVUhNQUtHU21oMGRIQTZMeTlqY213MExtRnRaUzVuWW13dllXbGhMMEZOTTFCTFNVbE9WRU5CTURFdVFVMUZMa2RDVEY5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKME1CMEdBMVVkRGdRV0JCVHh6UENYZ1B6SVVpVHo5NHVzMHkwQ0NNZjhCekFPQmdOVkhROEJBZjhFQkFNQ0JhQXdnZ0UxQmdOVkhSOEVnZ0VzTUlJQktEQ0NBU1NnZ2dFZ29JSUJISVpDYUhSMGNEb3ZMMk55YkM1dGFXTnliM052Wm5RdVkyOXRMM0JyYVdsdVpuSmhMME5TVEM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc2hqUm9kSFJ3T2k4dlkzSnNNUzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc2hqUm9kSFJ3T2k4dlkzSnNNaTVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc2hqUm9kSFJ3T2k4dlkzSnNNeTVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc2hqUm9kSFJ3T2k4dlkzSnNOQzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc01JR2RCZ05WSFNBRWdaVXdnWkl3REFZS0t3WUJCQUdDTjNzQkFUQm1CZ29yQmdFRUFZSTNld0lDTUZnd1ZnWUlLd1lCQlFVSEFnSXdTaDVJQURNQU13QmxBREFBTVFBNUFESUFNUUF0QURRQVpBQTJBRFFBTFFBMEFHWUFPQUJqQUMwQVlRQXdBRFVBTlFBdEFEVUFZZ0JrQUdFQVpnQm1BR1FBTlFCbEFETUFNd0JrTUF3R0Npc0dBUVFCZ2pkN0F3SXdEQVlLS3dZQkJBR0NOM3NFQWpBZkJnTlZIU01FR0RBV2dCUklvNjFnZFdwdjdHRHphVlhSQUxFeVZfeHM1REFkQmdOVkhTVUVGakFVQmdnckJnRUZCUWNEQVFZSUt3WUJCUVVIQXdJd0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dJQkFBcU5LOUVqemRuYjlMNFR5YWtDcEpCeVJZVlROXzZuQ0didFVkMkUyc0VManVKR1JHaVJtdWpwX2pxTnlJb2ZPX2doU2FQX3RxSC0zV1JUUlVibnQ1eE04YUJZb1lKU09nS2dUc05yQjZjbHNwZGhDQ216aEp5NkVRdU9xZlVEbTNDN2hEcnUxX2JOM0R3WHQzVnBEcWZ1WXRNM01BYWJLZzBvQ1lWV2dGd25BS1ltWkxaTVdNUWg3a19oWnh5MWdPQ1FtRTlVMDh0Zl9wVTIxYUkwRWw2bjVBNXVHMkZUMHBsYWN3Y2hoZUZtWEF0b1BqVDduVTUzSFZtUmlzc3hVUl92UkNEal9aQ0ZvM0szblpOWENRT0tQQU1jOS1MQzBwcmI5U2xnNnNpS3RTSEIzaUdqTlFsVDktbmJTbkRnaWZJOHpDMWN2VDhDZGFOTE9tVXl3UklCNHd2Um4xejEyM051eWZKYUl6OTVpZ1c5UDE4OXZCVEpFWlJFRi1NZ0pFYm9XS2RsR05uNmJiQnR1MHdhcUFtVVU3V1ZMZVpLZHRVSTZFRUtGN3dSR1l1WV9CaFp4MWlweVhuQkhacHN1ZnVINEF3Z09PMjg5UUttcWc4UUF5N0hGRDljOEg4Zk5DdFI3c1RaNFlOUDJBaEVhRVMwcmtNU1FVQ05WRXo0MllFQmkyR2dyU3BuSTk0U1BkYjNKM1BrQ01aNE9nRlJqenRMTzducmdiUHRmbGhTT29fVk9FMF83WTc0a200M1dBTVFQS0wzLTQ0dlFyRVE2MUhkXzI0SWNGaF9DaE5YdlVEcXAzOUd6WWxPM0QwemxhdTRvemxsOEJlTFVackp3SFRRV1pTOFhSLUVpZkNsNE1XNVkzWTFTeE9Mckl4bnVrQ3pReEw3YUdtYyZzPUVOSVlZT2VSOXRRWGtZa2ljZF9CWDJFaDJnSllqNlh0bkJsNlYya2g3OWV2OGZPYVpIOEp5MU40V2ZTQXp2ZzVMU092NVVDSFJoQ2JFNm5IME9yQ3NTS0R1eEVySG1jZnY3SF95Zmt0LWFjZEVvUXd3dEdDd1BkLTg3LVlodDJOcTJSZWZQV2pOODJCemZYREJwRFdJM0w3TnE3OHhtUkIxUkFNTkZ0OVBFbHpHNGlveENKZFU1NU4wbk4wV3NwMUJLVFV3UDZFbnFsM3d1OWcydFBEbjd4Qmd4MVRLU0wzeTNRY3o2UjBBem5EcXY5Ylo4SnBCZjdtTFBiWjQxSmhwMHhWYjdDYTZ4X2JzNUdSajNlY2drU3hYY24zQWlHVFRKaXdqZGRDclphTlBvSEZHNzUwR3ZpUjFfUVQ5aVJNdndiajdkZ3kydFA4NUctQVpodTdzQSZoPUNLczhJVzItazJnd0I4V25SYUdnX3JobGVBTDVwYlBJalpSVDA1YWUwZzA=", "RequestMethod": "GET", "RequestHeaders": { @@ -1261,7 +1261,7 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/providers/Microsoft.Batch/locations/westus2/accountOperationResults/ps8437-7f030330-c3d1-42d2-88dc-6fa78252b612?api-version=2023-11-01&t=638932183186360780&c=MIIIpTCCBo2gAwIBAgITFgGsmnj73LBE7PaBtQABAayaeDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDMwHhcNMjUwNzE4MTIwNDI4WhcNMjYwMTE0MTIwNDI4WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKYwXiklImL5-WfPWj2FX3_Y-JxCd3XXEOuNXx5ggHubZZamujLTqEBSFsFYiH_9NCaqKTiATXu6fBpzW3ghgYhwr0PL071fQT15KnnNUFjd5hFXB7SYti9IwWu1lxSAz-De7HivujKdlsgcmfoV6upRQ0eva9e74EwLV9pCn4WQAhs-6T8p0CytQsi81qHMWybAbNvfom0ox78IEWdS_6g_d4Jl_I4ccYLMyRTOV2NioM96cRECWCZhbpLl1zwoYGSbU5H0MZaiCBjPlhXN40BqagpamZfP98sPYSBfreh6-iMGU5tNTRkh8RiJqzjhzIUpEv3PqLtWTyPUB8JS7aUCAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9BTTNQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAzKDEpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MB0GA1UdDgQWBBTxzPCXgPzIUiTz94us0y0CCMf8BzAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBRIo61gdWpv7GDzaVXRALEyV_xs5DAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggIBAAqNK9Ejzdnb9L4TyakCpJByRYVTN_6nCGbtUd2E2sELjuJGRGiRmujp_jqNyIofO_ghSaP_tqH-3WRTRUbnt5xM8aBYoYJSOgKgTsNrB6clspdhCCmzhJy6EQuOqfUDm3C7hDru1_bN3DwXt3VpDqfuYtM3MAabKg0oCYVWgFwnAKYmZLZMWMQh7k_hZxy1gOCQmE9U08tf_pU21aI0El6n5A5uG2FT0placwchheFmXAtoPjT7nU53HVmRissxUR_vRCDj_ZCFo3K3nZNXCQOKPAMc9-LC0prb9Slg6siKtSHB3iGjNQlT9-nbSnDgifI8zC1cvT8CdaNLOmUywRIB4wvRn1z123NuyfJaIz95igW9P189vBTJEZREF-MgJEboWKdlGNn6bbBtu0waqAmUU7WVLeZKdtUI6EEKF7wRGYuY_BhZx1ipyXnBHZpsufuH4AwgOO289QKmqg8QAy7HFD9c8H8fNCtR7sTZ4YNP2AhEaES0rkMSQUCNVEz42YEBi2GgrSpnI94SPdb3J3PkCMZ4OgFRjztLO7nrgbPtflhSOo_VOE0_7Y74km43WAMQPKL3-44vQrEQ61Hd_24IcFh_ChNXvUDqp39GzYlO3D0zlau4ozll8BeLUZrJwHTQWZS8XR-EifCl4MW5Y3Y1SxOLrIxnukCzQxL7aGmc&s=ENIYYOeR9tQXkYkicd_BX2Eh2gJYj6XtnBl6V2kh79ev8fOaZH8Jy1N4WfSAzvg5LSOv5UCHRhCbE6nH0OrCsSKDuxErHmcfv7H_yfkt-acdEoQwwtGCwPd-87-Yht2Nq2RefPWjN82BzfXDBpDWI3L7Nq78xmRB1RAMNFt9PElzG4ioxCJdU55N0nN0Wsp1BKTUwP6Enql3wu9g2tPDn7xBgx1TKSL3y3Qcz6R0AznDqv9bZ8JpBf7mLPbZ41Jhp0xVb7Ca6x_bs5GRj3ecgkSxXcn3AiGTTJiwjddCrZaNPoHFG750GviR1_QT9iRMvwbj7dgy2tP85G-AZhu7sA&h=CKs8IW2-k2gwB8WnRaGg_rhleAL5pbPIjZRT05ae0g0", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/providers/Microsoft.Batch/locations/westus2/accountOperationResults/ps8437-7f030330-c3d1-42d2-88dc-6fa78252b612?api-version=2024-02-01&t=638932183186360780&c=MIIIpTCCBo2gAwIBAgITFgGsmnj73LBE7PaBtQABAayaeDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDMwHhcNMjUwNzE4MTIwNDI4WhcNMjYwMTE0MTIwNDI4WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKYwXiklImL5-WfPWj2FX3_Y-JxCd3XXEOuNXx5ggHubZZamujLTqEBSFsFYiH_9NCaqKTiATXu6fBpzW3ghgYhwr0PL071fQT15KnnNUFjd5hFXB7SYti9IwWu1lxSAz-De7HivujKdlsgcmfoV6upRQ0eva9e74EwLV9pCn4WQAhs-6T8p0CytQsi81qHMWybAbNvfom0ox78IEWdS_6g_d4Jl_I4ccYLMyRTOV2NioM96cRECWCZhbpLl1zwoYGSbU5H0MZaiCBjPlhXN40BqagpamZfP98sPYSBfreh6-iMGU5tNTRkh8RiJqzjhzIUpEv3PqLtWTyPUB8JS7aUCAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9BTTNQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAzKDEpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MB0GA1UdDgQWBBTxzPCXgPzIUiTz94us0y0CCMf8BzAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBRIo61gdWpv7GDzaVXRALEyV_xs5DAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggIBAAqNK9Ejzdnb9L4TyakCpJByRYVTN_6nCGbtUd2E2sELjuJGRGiRmujp_jqNyIofO_ghSaP_tqH-3WRTRUbnt5xM8aBYoYJSOgKgTsNrB6clspdhCCmzhJy6EQuOqfUDm3C7hDru1_bN3DwXt3VpDqfuYtM3MAabKg0oCYVWgFwnAKYmZLZMWMQh7k_hZxy1gOCQmE9U08tf_pU21aI0El6n5A5uG2FT0placwchheFmXAtoPjT7nU53HVmRissxUR_vRCDj_ZCFo3K3nZNXCQOKPAMc9-LC0prb9Slg6siKtSHB3iGjNQlT9-nbSnDgifI8zC1cvT8CdaNLOmUywRIB4wvRn1z123NuyfJaIz95igW9P189vBTJEZREF-MgJEboWKdlGNn6bbBtu0waqAmUU7WVLeZKdtUI6EEKF7wRGYuY_BhZx1ipyXnBHZpsufuH4AwgOO289QKmqg8QAy7HFD9c8H8fNCtR7sTZ4YNP2AhEaES0rkMSQUCNVEz42YEBi2GgrSpnI94SPdb3J3PkCMZ4OgFRjztLO7nrgbPtflhSOo_VOE0_7Y74km43WAMQPKL3-44vQrEQ61Hd_24IcFh_ChNXvUDqp39GzYlO3D0zlau4ozll8BeLUZrJwHTQWZS8XR-EifCl4MW5Y3Y1SxOLrIxnukCzQxL7aGmc&s=ENIYYOeR9tQXkYkicd_BX2Eh2gJYj6XtnBl6V2kh79ev8fOaZH8Jy1N4WfSAzvg5LSOv5UCHRhCbE6nH0OrCsSKDuxErHmcfv7H_yfkt-acdEoQwwtGCwPd-87-Yht2Nq2RefPWjN82BzfXDBpDWI3L7Nq78xmRB1RAMNFt9PElzG4ioxCJdU55N0nN0Wsp1BKTUwP6Enql3wu9g2tPDn7xBgx1TKSL3y3Qcz6R0AznDqv9bZ8JpBf7mLPbZ41Jhp0xVb7Ca6x_bs5GRj3ecgkSxXcn3AiGTTJiwjddCrZaNPoHFG750GviR1_QT9iRMvwbj7dgy2tP85G-AZhu7sA&h=CKs8IW2-k2gwB8WnRaGg_rhleAL5pbPIjZRT05ae0g0", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Byb3ZpZGVycy9NaWNyb3NvZnQuQmF0Y2gvbG9jYXRpb25zL3dlc3R1czIvYWNjb3VudE9wZXJhdGlvblJlc3VsdHMvcHM4NDM3LTdmMDMwMzMwLWMzZDEtNDJkMi04OGRjLTZmYTc4MjUyYjYxMj9hcGktdmVyc2lvbj0yMDIzLTA1LTAxJnQ9NjM4OTMyMTgzMTg2MzYwNzgwJmM9TUlJSXBUQ0NCbzJnQXdJQkFnSVRGZ0dzbW5qNzNMQkU3UGFCdFFBQkFheWFlREFOQmdrcWhraUc5dzBCQVFzRkFEQkVNUk13RVFZS0NaSW1pWlB5TEdRQkdSWURSMEpNTVJNd0VRWUtDWkltaVpQeUxHUUJHUllEUVUxRk1SZ3dGZ1lEVlFRREV3OUJUVVVnU1c1bWNtRWdRMEVnTURNd0hoY05NalV3TnpFNE1USXdOREk0V2hjTk1qWXdNVEUwTVRJd05ESTRXakJBTVQ0d1BBWURWUVFERXpWaGMzbHVZMjl3WlhKaGRHbHZibk5wWjI1cGJtZGpaWEowYVdacFkyRjBaUzV0WVc1aFoyVnRaVzUwTG1GNmRYSmxMbU52YlRDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBS1l3WGlrbEltTDUtV2ZQV2oyRlgzX1ktSnhDZDNYWEVPdU5YeDVnZ0h1YlpaYW11akxUcUVCU0ZzRllpSF85TkNhcUtUaUFUWHU2ZkJwelczZ2hnWWh3cjBQTDA3MWZRVDE1S25uTlVGamQ1aEZYQjdTWXRpOUl3V3UxbHhTQXotRGU3SGl2dWpLZGxzZ2NtZm9WNnVwUlEwZXZhOWU3NEV3TFY5cENuNFdRQWhzLTZUOHAwQ3l0UXNpODFxSE1XeWJBYk52Zm9tMG94NzhJRVdkU182Z19kNEpsX0k0Y2NZTE15UlRPVjJOaW9NOTZjUkVDV0NaaGJwTGwxendvWUdTYlU1SDBNWmFpQ0JqUGxoWE40MEJxYWdwYW1aZlA5OHNQWVNCZnJlaDYtaU1HVTV0TlRSa2g4UmlKcXpqaHpJVXBFdjNQcUx0V1R5UFVCOEpTN2FVQ0F3RUFBYU9DQkpJd2dnU09NQ2NHQ1NzR0FRUUJnamNWQ2dRYU1CZ3dDZ1lJS3dZQkJRVUhBd0V3Q2dZSUt3WUJCUVVIQXdJd1BRWUpLd1lCQkFHQ054VUhCREF3TGdZbUt3WUJCQUdDTnhVSWhwRGpEWVRWdEhpRThZcy1oWnZkRnM2ZEVvRmdoZm1SUzRXc21UUUNBV1FDQVFjd2dnSGFCZ2dyQmdFRkJRY0JBUVNDQWN3d2dnSElNR1lHQ0NzR0FRVUZCekFDaGxwb2RIUndPaTh2WTNKc0xtMXBZM0p2YzI5bWRDNWpiMjB2Y0d0cGFXNW1jbUV2UTJWeWRITXZRVTB6VUV0SlNVNVVRMEV3TVM1QlRVVXVSMEpNWDBGTlJTVXlNRWx1Wm5KaEpUSXdRMEVsTWpBd015Z3hLUzVqY25Rd1ZnWUlLd1lCQlFVSE1BS0dTbWgwZEhBNkx5OWpjbXd4TG1GdFpTNW5ZbXd2WVdsaEwwRk5NMUJMU1VsT1ZFTkJNREV1UVUxRkxrZENURjlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURNb01Ta3VZM0owTUZZR0NDc0dBUVVGQnpBQ2hrcG9kSFJ3T2k4dlkzSnNNaTVoYldVdVoySnNMMkZwWVM5QlRUTlFTMGxKVGxSRFFUQXhMa0ZOUlM1SFFreGZRVTFGSlRJd1NXNW1jbUVsTWpCRFFTVXlNREF6S0RFcExtTnlkREJXQmdnckJnRUZCUWN3QW9aS2FIUjBjRG92TDJOeWJETXVZVzFsTG1kaWJDOWhhV0V2UVUwelVFdEpTVTVVUTBFd01TNUJUVVV1UjBKTVgwRk5SU1V5TUVsdVpuSmhKVEl3UTBFbE1qQXdNeWd4S1M1amNuUXdWZ1lJS3dZQkJRVUhNQUtHU21oMGRIQTZMeTlqY213MExtRnRaUzVuWW13dllXbGhMMEZOTTFCTFNVbE9WRU5CTURFdVFVMUZMa2RDVEY5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKME1CMEdBMVVkRGdRV0JCVHh6UENYZ1B6SVVpVHo5NHVzMHkwQ0NNZjhCekFPQmdOVkhROEJBZjhFQkFNQ0JhQXdnZ0UxQmdOVkhSOEVnZ0VzTUlJQktEQ0NBU1NnZ2dFZ29JSUJISVpDYUhSMGNEb3ZMMk55YkM1dGFXTnliM052Wm5RdVkyOXRMM0JyYVdsdVpuSmhMME5TVEM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc2hqUm9kSFJ3T2k4dlkzSnNNUzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc2hqUm9kSFJ3T2k4dlkzSnNNaTVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc2hqUm9kSFJ3T2k4dlkzSnNNeTVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc2hqUm9kSFJ3T2k4dlkzSnNOQzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc01JR2RCZ05WSFNBRWdaVXdnWkl3REFZS0t3WUJCQUdDTjNzQkFUQm1CZ29yQmdFRUFZSTNld0lDTUZnd1ZnWUlLd1lCQlFVSEFnSXdTaDVJQURNQU13QmxBREFBTVFBNUFESUFNUUF0QURRQVpBQTJBRFFBTFFBMEFHWUFPQUJqQUMwQVlRQXdBRFVBTlFBdEFEVUFZZ0JrQUdFQVpnQm1BR1FBTlFCbEFETUFNd0JrTUF3R0Npc0dBUVFCZ2pkN0F3SXdEQVlLS3dZQkJBR0NOM3NFQWpBZkJnTlZIU01FR0RBV2dCUklvNjFnZFdwdjdHRHphVlhSQUxFeVZfeHM1REFkQmdOVkhTVUVGakFVQmdnckJnRUZCUWNEQVFZSUt3WUJCUVVIQXdJd0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dJQkFBcU5LOUVqemRuYjlMNFR5YWtDcEpCeVJZVlROXzZuQ0didFVkMkUyc0VManVKR1JHaVJtdWpwX2pxTnlJb2ZPX2doU2FQX3RxSC0zV1JUUlVibnQ1eE04YUJZb1lKU09nS2dUc05yQjZjbHNwZGhDQ216aEp5NkVRdU9xZlVEbTNDN2hEcnUxX2JOM0R3WHQzVnBEcWZ1WXRNM01BYWJLZzBvQ1lWV2dGd25BS1ltWkxaTVdNUWg3a19oWnh5MWdPQ1FtRTlVMDh0Zl9wVTIxYUkwRWw2bjVBNXVHMkZUMHBsYWN3Y2hoZUZtWEF0b1BqVDduVTUzSFZtUmlzc3hVUl92UkNEal9aQ0ZvM0szblpOWENRT0tQQU1jOS1MQzBwcmI5U2xnNnNpS3RTSEIzaUdqTlFsVDktbmJTbkRnaWZJOHpDMWN2VDhDZGFOTE9tVXl3UklCNHd2Um4xejEyM051eWZKYUl6OTVpZ1c5UDE4OXZCVEpFWlJFRi1NZ0pFYm9XS2RsR05uNmJiQnR1MHdhcUFtVVU3V1ZMZVpLZHRVSTZFRUtGN3dSR1l1WV9CaFp4MWlweVhuQkhacHN1ZnVINEF3Z09PMjg5UUttcWc4UUF5N0hGRDljOEg4Zk5DdFI3c1RaNFlOUDJBaEVhRVMwcmtNU1FVQ05WRXo0MllFQmkyR2dyU3BuSTk0U1BkYjNKM1BrQ01aNE9nRlJqenRMTzducmdiUHRmbGhTT29fVk9FMF83WTc0a200M1dBTVFQS0wzLTQ0dlFyRVE2MUhkXzI0SWNGaF9DaE5YdlVEcXAzOUd6WWxPM0QwemxhdTRvemxsOEJlTFVackp3SFRRV1pTOFhSLUVpZkNsNE1XNVkzWTFTeE9Mckl4bnVrQ3pReEw3YUdtYyZzPUVOSVlZT2VSOXRRWGtZa2ljZF9CWDJFaDJnSllqNlh0bkJsNlYya2g3OWV2OGZPYVpIOEp5MU40V2ZTQXp2ZzVMU092NVVDSFJoQ2JFNm5IME9yQ3NTS0R1eEVySG1jZnY3SF95Zmt0LWFjZEVvUXd3dEdDd1BkLTg3LVlodDJOcTJSZWZQV2pOODJCemZYREJwRFdJM0w3TnE3OHhtUkIxUkFNTkZ0OVBFbHpHNGlveENKZFU1NU4wbk4wV3NwMUJLVFV3UDZFbnFsM3d1OWcydFBEbjd4Qmd4MVRLU0wzeTNRY3o2UjBBem5EcXY5Ylo4SnBCZjdtTFBiWjQxSmhwMHhWYjdDYTZ4X2JzNUdSajNlY2drU3hYY24zQWlHVFRKaXdqZGRDclphTlBvSEZHNzUwR3ZpUjFfUVQ5aVJNdndiajdkZ3kydFA4NUctQVpodTdzQSZoPUNLczhJVzItazJnd0I4V25SYUdnX3JobGVBTDVwYlBJalpSVDA1YWUwZzA=", "RequestMethod": "GET", "RequestHeaders": { diff --git a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchAccountTests/TestCreateNewBatchAccountWithNoPublicIp.json b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchAccountTests/TestCreateNewBatchAccountWithNoPublicIp.json index 11bb91f6f5f3..672f9323d567 100644 --- a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchAccountTests/TestCreateNewBatchAccountWithNoPublicIp.json +++ b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchAccountTests/TestCreateNewBatchAccountWithNoPublicIp.json @@ -145,7 +145,7 @@ "StatusCode": 201 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps2289/providers/Microsoft.Batch/batchAccounts/ps5017?api-version=2023-11-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps2289/providers/Microsoft.Batch/batchAccounts/ps5017?api-version=2024-02-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL3BzMjI4OS9wcm92aWRlcnMvTWljcm9zb2Z0LkJhdGNoL2JhdGNoQWNjb3VudHMvcHM1MDE3P2FwaS12ZXJzaW9uPTIwMjMtMDUtMDE=", "RequestMethod": "PUT", "RequestHeaders": { @@ -177,7 +177,7 @@ "no-cache" ], "Location": [ - "https://management.azure.com/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps2289/providers/Microsoft.Batch/batchAccounts/ps5017/operationResults/50101d66-9d40-4d82-a504-6e28e0df756a?api-version=2023-11-01&t=638932200993295654&c=MIIIpTCCBo2gAwIBAgITFgGsmnj73LBE7PaBtQABAayaeDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDMwHhcNMjUwNzE4MTIwNDI4WhcNMjYwMTE0MTIwNDI4WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKYwXiklImL5-WfPWj2FX3_Y-JxCd3XXEOuNXx5ggHubZZamujLTqEBSFsFYiH_9NCaqKTiATXu6fBpzW3ghgYhwr0PL071fQT15KnnNUFjd5hFXB7SYti9IwWu1lxSAz-De7HivujKdlsgcmfoV6upRQ0eva9e74EwLV9pCn4WQAhs-6T8p0CytQsi81qHMWybAbNvfom0ox78IEWdS_6g_d4Jl_I4ccYLMyRTOV2NioM96cRECWCZhbpLl1zwoYGSbU5H0MZaiCBjPlhXN40BqagpamZfP98sPYSBfreh6-iMGU5tNTRkh8RiJqzjhzIUpEv3PqLtWTyPUB8JS7aUCAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9BTTNQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAzKDEpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MB0GA1UdDgQWBBTxzPCXgPzIUiTz94us0y0CCMf8BzAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBRIo61gdWpv7GDzaVXRALEyV_xs5DAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggIBAAqNK9Ejzdnb9L4TyakCpJByRYVTN_6nCGbtUd2E2sELjuJGRGiRmujp_jqNyIofO_ghSaP_tqH-3WRTRUbnt5xM8aBYoYJSOgKgTsNrB6clspdhCCmzhJy6EQuOqfUDm3C7hDru1_bN3DwXt3VpDqfuYtM3MAabKg0oCYVWgFwnAKYmZLZMWMQh7k_hZxy1gOCQmE9U08tf_pU21aI0El6n5A5uG2FT0placwchheFmXAtoPjT7nU53HVmRissxUR_vRCDj_ZCFo3K3nZNXCQOKPAMc9-LC0prb9Slg6siKtSHB3iGjNQlT9-nbSnDgifI8zC1cvT8CdaNLOmUywRIB4wvRn1z123NuyfJaIz95igW9P189vBTJEZREF-MgJEboWKdlGNn6bbBtu0waqAmUU7WVLeZKdtUI6EEKF7wRGYuY_BhZx1ipyXnBHZpsufuH4AwgOO289QKmqg8QAy7HFD9c8H8fNCtR7sTZ4YNP2AhEaES0rkMSQUCNVEz42YEBi2GgrSpnI94SPdb3J3PkCMZ4OgFRjztLO7nrgbPtflhSOo_VOE0_7Y74km43WAMQPKL3-44vQrEQ61Hd_24IcFh_ChNXvUDqp39GzYlO3D0zlau4ozll8BeLUZrJwHTQWZS8XR-EifCl4MW5Y3Y1SxOLrIxnukCzQxL7aGmc&s=pEsT5zEebyCw38sxckvC9EVO52g38kpg9EXUMYfpsAAHVCBpgTptmbqC88N1ZkOaaHnG-ShN0CkskbhUJUOfxColfDYneSXKY7046hQUd48lSOBpEtpSSIbyiXk61QgFlxDwOG8HC5UOMqprkAsqdSjwJgKmY499Kr5kkFBBXjPsticWW3tMRv1CnpXpoEgA0vyExcO92nzMuu2lVslKHR2qRL_Nin3AM2PM7FeRspihlAQL80HYPn-HaB_0BFtgxTOIGodTDKnYHRvfizquLov4J-WaCMZrodLJCsCFaLiwXlsl8aVXK3NG7JbQUQH04w0camdPxi5KZgjcNfPCuQ&h=2Pao3PTIIWrqys8OgjzdmV8sUvopZu0UvP_mxJDKUBQ" + "https://management.azure.com/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps2289/providers/Microsoft.Batch/batchAccounts/ps5017/operationResults/50101d66-9d40-4d82-a504-6e28e0df756a?api-version=2024-02-01&t=638932200993295654&c=MIIIpTCCBo2gAwIBAgITFgGsmnj73LBE7PaBtQABAayaeDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDMwHhcNMjUwNzE4MTIwNDI4WhcNMjYwMTE0MTIwNDI4WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKYwXiklImL5-WfPWj2FX3_Y-JxCd3XXEOuNXx5ggHubZZamujLTqEBSFsFYiH_9NCaqKTiATXu6fBpzW3ghgYhwr0PL071fQT15KnnNUFjd5hFXB7SYti9IwWu1lxSAz-De7HivujKdlsgcmfoV6upRQ0eva9e74EwLV9pCn4WQAhs-6T8p0CytQsi81qHMWybAbNvfom0ox78IEWdS_6g_d4Jl_I4ccYLMyRTOV2NioM96cRECWCZhbpLl1zwoYGSbU5H0MZaiCBjPlhXN40BqagpamZfP98sPYSBfreh6-iMGU5tNTRkh8RiJqzjhzIUpEv3PqLtWTyPUB8JS7aUCAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9BTTNQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAzKDEpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MB0GA1UdDgQWBBTxzPCXgPzIUiTz94us0y0CCMf8BzAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBRIo61gdWpv7GDzaVXRALEyV_xs5DAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggIBAAqNK9Ejzdnb9L4TyakCpJByRYVTN_6nCGbtUd2E2sELjuJGRGiRmujp_jqNyIofO_ghSaP_tqH-3WRTRUbnt5xM8aBYoYJSOgKgTsNrB6clspdhCCmzhJy6EQuOqfUDm3C7hDru1_bN3DwXt3VpDqfuYtM3MAabKg0oCYVWgFwnAKYmZLZMWMQh7k_hZxy1gOCQmE9U08tf_pU21aI0El6n5A5uG2FT0placwchheFmXAtoPjT7nU53HVmRissxUR_vRCDj_ZCFo3K3nZNXCQOKPAMc9-LC0prb9Slg6siKtSHB3iGjNQlT9-nbSnDgifI8zC1cvT8CdaNLOmUywRIB4wvRn1z123NuyfJaIz95igW9P189vBTJEZREF-MgJEboWKdlGNn6bbBtu0waqAmUU7WVLeZKdtUI6EEKF7wRGYuY_BhZx1ipyXnBHZpsufuH4AwgOO289QKmqg8QAy7HFD9c8H8fNCtR7sTZ4YNP2AhEaES0rkMSQUCNVEz42YEBi2GgrSpnI94SPdb3J3PkCMZ4OgFRjztLO7nrgbPtflhSOo_VOE0_7Y74km43WAMQPKL3-44vQrEQ61Hd_24IcFh_ChNXvUDqp39GzYlO3D0zlau4ozll8BeLUZrJwHTQWZS8XR-EifCl4MW5Y3Y1SxOLrIxnukCzQxL7aGmc&s=pEsT5zEebyCw38sxckvC9EVO52g38kpg9EXUMYfpsAAHVCBpgTptmbqC88N1ZkOaaHnG-ShN0CkskbhUJUOfxColfDYneSXKY7046hQUd48lSOBpEtpSSIbyiXk61QgFlxDwOG8HC5UOMqprkAsqdSjwJgKmY499Kr5kkFBBXjPsticWW3tMRv1CnpXpoEgA0vyExcO92nzMuu2lVslKHR2qRL_Nin3AM2PM7FeRspihlAQL80HYPn-HaB_0BFtgxTOIGodTDKnYHRvfizquLov4J-WaCMZrodLJCsCFaLiwXlsl8aVXK3NG7JbQUQH04w0camdPxi5KZgjcNfPCuQ&h=2Pao3PTIIWrqys8OgjzdmV8sUvopZu0UvP_mxJDKUBQ" ], "Retry-After": [ "15" @@ -226,7 +226,7 @@ "StatusCode": 202 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps2289/providers/Microsoft.Batch/batchAccounts/ps5017/operationResults/50101d66-9d40-4d82-a504-6e28e0df756a?api-version=2023-11-01&t=638932200993295654&c=MIIIpTCCBo2gAwIBAgITFgGsmnj73LBE7PaBtQABAayaeDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDMwHhcNMjUwNzE4MTIwNDI4WhcNMjYwMTE0MTIwNDI4WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKYwXiklImL5-WfPWj2FX3_Y-JxCd3XXEOuNXx5ggHubZZamujLTqEBSFsFYiH_9NCaqKTiATXu6fBpzW3ghgYhwr0PL071fQT15KnnNUFjd5hFXB7SYti9IwWu1lxSAz-De7HivujKdlsgcmfoV6upRQ0eva9e74EwLV9pCn4WQAhs-6T8p0CytQsi81qHMWybAbNvfom0ox78IEWdS_6g_d4Jl_I4ccYLMyRTOV2NioM96cRECWCZhbpLl1zwoYGSbU5H0MZaiCBjPlhXN40BqagpamZfP98sPYSBfreh6-iMGU5tNTRkh8RiJqzjhzIUpEv3PqLtWTyPUB8JS7aUCAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9BTTNQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAzKDEpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MB0GA1UdDgQWBBTxzPCXgPzIUiTz94us0y0CCMf8BzAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBRIo61gdWpv7GDzaVXRALEyV_xs5DAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggIBAAqNK9Ejzdnb9L4TyakCpJByRYVTN_6nCGbtUd2E2sELjuJGRGiRmujp_jqNyIofO_ghSaP_tqH-3WRTRUbnt5xM8aBYoYJSOgKgTsNrB6clspdhCCmzhJy6EQuOqfUDm3C7hDru1_bN3DwXt3VpDqfuYtM3MAabKg0oCYVWgFwnAKYmZLZMWMQh7k_hZxy1gOCQmE9U08tf_pU21aI0El6n5A5uG2FT0placwchheFmXAtoPjT7nU53HVmRissxUR_vRCDj_ZCFo3K3nZNXCQOKPAMc9-LC0prb9Slg6siKtSHB3iGjNQlT9-nbSnDgifI8zC1cvT8CdaNLOmUywRIB4wvRn1z123NuyfJaIz95igW9P189vBTJEZREF-MgJEboWKdlGNn6bbBtu0waqAmUU7WVLeZKdtUI6EEKF7wRGYuY_BhZx1ipyXnBHZpsufuH4AwgOO289QKmqg8QAy7HFD9c8H8fNCtR7sTZ4YNP2AhEaES0rkMSQUCNVEz42YEBi2GgrSpnI94SPdb3J3PkCMZ4OgFRjztLO7nrgbPtflhSOo_VOE0_7Y74km43WAMQPKL3-44vQrEQ61Hd_24IcFh_ChNXvUDqp39GzYlO3D0zlau4ozll8BeLUZrJwHTQWZS8XR-EifCl4MW5Y3Y1SxOLrIxnukCzQxL7aGmc&s=pEsT5zEebyCw38sxckvC9EVO52g38kpg9EXUMYfpsAAHVCBpgTptmbqC88N1ZkOaaHnG-ShN0CkskbhUJUOfxColfDYneSXKY7046hQUd48lSOBpEtpSSIbyiXk61QgFlxDwOG8HC5UOMqprkAsqdSjwJgKmY499Kr5kkFBBXjPsticWW3tMRv1CnpXpoEgA0vyExcO92nzMuu2lVslKHR2qRL_Nin3AM2PM7FeRspihlAQL80HYPn-HaB_0BFtgxTOIGodTDKnYHRvfizquLov4J-WaCMZrodLJCsCFaLiwXlsl8aVXK3NG7JbQUQH04w0camdPxi5KZgjcNfPCuQ&h=2Pao3PTIIWrqys8OgjzdmV8sUvopZu0UvP_mxJDKUBQ", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps2289/providers/Microsoft.Batch/batchAccounts/ps5017/operationResults/50101d66-9d40-4d82-a504-6e28e0df756a?api-version=2024-02-01&t=638932200993295654&c=MIIIpTCCBo2gAwIBAgITFgGsmnj73LBE7PaBtQABAayaeDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDMwHhcNMjUwNzE4MTIwNDI4WhcNMjYwMTE0MTIwNDI4WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKYwXiklImL5-WfPWj2FX3_Y-JxCd3XXEOuNXx5ggHubZZamujLTqEBSFsFYiH_9NCaqKTiATXu6fBpzW3ghgYhwr0PL071fQT15KnnNUFjd5hFXB7SYti9IwWu1lxSAz-De7HivujKdlsgcmfoV6upRQ0eva9e74EwLV9pCn4WQAhs-6T8p0CytQsi81qHMWybAbNvfom0ox78IEWdS_6g_d4Jl_I4ccYLMyRTOV2NioM96cRECWCZhbpLl1zwoYGSbU5H0MZaiCBjPlhXN40BqagpamZfP98sPYSBfreh6-iMGU5tNTRkh8RiJqzjhzIUpEv3PqLtWTyPUB8JS7aUCAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9BTTNQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAzKDEpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MB0GA1UdDgQWBBTxzPCXgPzIUiTz94us0y0CCMf8BzAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBRIo61gdWpv7GDzaVXRALEyV_xs5DAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggIBAAqNK9Ejzdnb9L4TyakCpJByRYVTN_6nCGbtUd2E2sELjuJGRGiRmujp_jqNyIofO_ghSaP_tqH-3WRTRUbnt5xM8aBYoYJSOgKgTsNrB6clspdhCCmzhJy6EQuOqfUDm3C7hDru1_bN3DwXt3VpDqfuYtM3MAabKg0oCYVWgFwnAKYmZLZMWMQh7k_hZxy1gOCQmE9U08tf_pU21aI0El6n5A5uG2FT0placwchheFmXAtoPjT7nU53HVmRissxUR_vRCDj_ZCFo3K3nZNXCQOKPAMc9-LC0prb9Slg6siKtSHB3iGjNQlT9-nbSnDgifI8zC1cvT8CdaNLOmUywRIB4wvRn1z123NuyfJaIz95igW9P189vBTJEZREF-MgJEboWKdlGNn6bbBtu0waqAmUU7WVLeZKdtUI6EEKF7wRGYuY_BhZx1ipyXnBHZpsufuH4AwgOO289QKmqg8QAy7HFD9c8H8fNCtR7sTZ4YNP2AhEaES0rkMSQUCNVEz42YEBi2GgrSpnI94SPdb3J3PkCMZ4OgFRjztLO7nrgbPtflhSOo_VOE0_7Y74km43WAMQPKL3-44vQrEQ61Hd_24IcFh_ChNXvUDqp39GzYlO3D0zlau4ozll8BeLUZrJwHTQWZS8XR-EifCl4MW5Y3Y1SxOLrIxnukCzQxL7aGmc&s=pEsT5zEebyCw38sxckvC9EVO52g38kpg9EXUMYfpsAAHVCBpgTptmbqC88N1ZkOaaHnG-ShN0CkskbhUJUOfxColfDYneSXKY7046hQUd48lSOBpEtpSSIbyiXk61QgFlxDwOG8HC5UOMqprkAsqdSjwJgKmY499Kr5kkFBBXjPsticWW3tMRv1CnpXpoEgA0vyExcO92nzMuu2lVslKHR2qRL_Nin3AM2PM7FeRspihlAQL80HYPn-HaB_0BFtgxTOIGodTDKnYHRvfizquLov4J-WaCMZrodLJCsCFaLiwXlsl8aVXK3NG7JbQUQH04w0camdPxi5KZgjcNfPCuQ&h=2Pao3PTIIWrqys8OgjzdmV8sUvopZu0UvP_mxJDKUBQ", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL3BzMjI4OS9wcm92aWRlcnMvTWljcm9zb2Z0LkJhdGNoL2JhdGNoQWNjb3VudHMvcHM1MDE3L29wZXJhdGlvblJlc3VsdHMvNTAxMDFkNjYtOWQ0MC00ZDgyLWE1MDQtNmUyOGUwZGY3NTZhP2FwaS12ZXJzaW9uPTIwMjMtMDUtMDEmdD02Mzg5MzIyMDA5OTMyOTU2NTQmYz1NSUlJcFRDQ0JvMmdBd0lCQWdJVEZnR3Ntbmo3M0xCRTdQYUJ0UUFCQWF5YWVEQU5CZ2txaGtpRzl3MEJBUXNGQURCRU1STXdFUVlLQ1pJbWlaUHlMR1FCR1JZRFIwSk1NUk13RVFZS0NaSW1pWlB5TEdRQkdSWURRVTFGTVJnd0ZnWURWUVFERXc5QlRVVWdTVzVtY21FZ1EwRWdNRE13SGhjTk1qVXdOekU0TVRJd05ESTRXaGNOTWpZd01URTBNVEl3TkRJNFdqQkFNVDR3UEFZRFZRUURFelZoYzNsdVkyOXdaWEpoZEdsdmJuTnBaMjVwYm1kalpYSjBhV1pwWTJGMFpTNXRZVzVoWjJWdFpXNTBMbUY2ZFhKbExtTnZiVENDQVNJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dFUEFEQ0NBUW9DZ2dFQkFLWXdYaWtsSW1MNS1XZlBXajJGWDNfWS1KeENkM1hYRU91Tlh4NWdnSHViWlphbXVqTFRxRUJTRnNGWWlIXzlOQ2FxS1RpQVRYdTZmQnB6VzNnaGdZaHdyMFBMMDcxZlFUMTVLbm5OVUZqZDVoRlhCN1NZdGk5SXdXdTFseFNBei1EZTdIaXZ1aktkbHNnY21mb1Y2dXBSUTBldmE5ZTc0RXdMVjlwQ240V1FBaHMtNlQ4cDBDeXRRc2k4MXFITVd5YkFiTnZmb20wb3g3OElFV2RTXzZnX2Q0SmxfSTRjY1lMTXlSVE9WMk5pb005NmNSRUNXQ1poYnBMbDF6d29ZR1NiVTVIME1aYWlDQmpQbGhYTjQwQnFhZ3BhbVpmUDk4c1BZU0JmcmVoNi1pTUdVNXROVFJraDhSaUpxempoeklVcEV2M1BxTHRXVHlQVUI4SlM3YVVDQXdFQUFhT0NCSkl3Z2dTT01DY0dDU3NHQVFRQmdqY1ZDZ1FhTUJnd0NnWUlLd1lCQlFVSEF3RXdDZ1lJS3dZQkJRVUhBd0l3UFFZSkt3WUJCQUdDTnhVSEJEQXdMZ1ltS3dZQkJBR0NOeFVJaHBEakRZVFZ0SGlFOFlzLWhadmRGczZkRW9GZ2hmbVJTNFdzbVRRQ0FXUUNBUWN3Z2dIYUJnZ3JCZ0VGQlFjQkFRU0NBY3d3Z2dISU1HWUdDQ3NHQVFVRkJ6QUNobHBvZEhSd09pOHZZM0pzTG0xcFkzSnZjMjltZEM1amIyMHZjR3RwYVc1bWNtRXZRMlZ5ZEhNdlFVMHpVRXRKU1U1VVEwRXdNUzVCVFVVdVIwSk1YMEZOUlNVeU1FbHVabkpoSlRJd1EwRWxNakF3TXlneEtTNWpjblF3VmdZSUt3WUJCUVVITUFLR1NtaDBkSEE2THk5amNtd3hMbUZ0WlM1blltd3ZZV2xoTDBGTk0xQkxTVWxPVkVOQk1ERXVRVTFGTGtkQ1RGOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRE1vTVNrdVkzSjBNRllHQ0NzR0FRVUZCekFDaGtwb2RIUndPaTh2WTNKc01pNWhiV1V1WjJKc0wyRnBZUzlCVFROUVMwbEpUbFJEUVRBeExrRk5SUzVIUWt4ZlFVMUZKVEl3U1c1bWNtRWxNakJEUVNVeU1EQXpLREVwTG1OeWREQldCZ2dyQmdFRkJRY3dBb1pLYUhSMGNEb3ZMMk55YkRNdVlXMWxMbWRpYkM5aGFXRXZRVTB6VUV0SlNVNVVRMEV3TVM1QlRVVXVSMEpNWDBGTlJTVXlNRWx1Wm5KaEpUSXdRMEVsTWpBd015Z3hLUzVqY25Rd1ZnWUlLd1lCQlFVSE1BS0dTbWgwZEhBNkx5OWpjbXcwTG1GdFpTNW5ZbXd2WVdsaEwwRk5NMUJMU1VsT1ZFTkJNREV1UVUxRkxrZENURjlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURNb01Ta3VZM0owTUIwR0ExVWREZ1FXQkJUeHpQQ1hnUHpJVWlUejk0dXMweTBDQ01mOEJ6QU9CZ05WSFE4QkFmOEVCQU1DQmFBd2dnRTFCZ05WSFI4RWdnRXNNSUlCS0RDQ0FTU2dnZ0Vnb0lJQkhJWkNhSFIwY0RvdkwyTnliQzV0YVdOeWIzTnZablF1WTI5dEwzQnJhV2x1Wm5KaEwwTlNUQzlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURNb01Ta3VZM0pzaGpSb2RIUndPaTh2WTNKc01TNWhiV1V1WjJKc0wyTnliQzlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURNb01Ta3VZM0pzaGpSb2RIUndPaTh2WTNKc01pNWhiV1V1WjJKc0wyTnliQzlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURNb01Ta3VZM0pzaGpSb2RIUndPaTh2WTNKc015NWhiV1V1WjJKc0wyTnliQzlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURNb01Ta3VZM0pzaGpSb2RIUndPaTh2WTNKc05DNWhiV1V1WjJKc0wyTnliQzlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURNb01Ta3VZM0pzTUlHZEJnTlZIU0FFZ1pVd2daSXdEQVlLS3dZQkJBR0NOM3NCQVRCbUJnb3JCZ0VFQVlJM2V3SUNNRmd3VmdZSUt3WUJCUVVIQWdJd1NoNUlBRE1BTXdCbEFEQUFNUUE1QURJQU1RQXRBRFFBWkFBMkFEUUFMUUEwQUdZQU9BQmpBQzBBWVFBd0FEVUFOUUF0QURVQVlnQmtBR0VBWmdCbUFHUUFOUUJsQURNQU13QmtNQXdHQ2lzR0FRUUJnamQ3QXdJd0RBWUtLd1lCQkFHQ04zc0VBakFmQmdOVkhTTUVHREFXZ0JSSW82MWdkV3B2N0dEemFWWFJBTEV5Vl94czVEQWRCZ05WSFNVRUZqQVVCZ2dyQmdFRkJRY0RBUVlJS3dZQkJRVUhBd0l3RFFZSktvWklodmNOQVFFTEJRQURnZ0lCQUFxTks5RWp6ZG5iOUw0VHlha0NwSkJ5UllWVE5fNm5DR2J0VWQyRTJzRUxqdUpHUkdpUm11anBfanFOeUlvZk9fZ2hTYVBfdHFILTNXUlRSVWJudDV4TThhQllvWUpTT2dLZ1RzTnJCNmNsc3BkaENDbXpoSnk2RVF1T3FmVURtM0M3aERydTFfYk4zRHdYdDNWcERxZnVZdE0zTUFhYktnMG9DWVZXZ0Z3bkFLWW1aTFpNV01RaDdrX2haeHkxZ09DUW1FOVUwOHRmX3BVMjFhSTBFbDZuNUE1dUcyRlQwcGxhY3djaGhlRm1YQXRvUGpUN25VNTNIVm1SaXNzeFVSX3ZSQ0RqX1pDRm8zSzNuWk5YQ1FPS1BBTWM5LUxDMHByYjlTbGc2c2lLdFNIQjNpR2pOUWxUOS1uYlNuRGdpZkk4ekMxY3ZUOENkYU5MT21VeXdSSUI0d3ZSbjF6MTIzTnV5ZkphSXo5NWlnVzlQMTg5dkJUSkVaUkVGLU1nSkVib1dLZGxHTm42YmJCdHUwd2FxQW1VVTdXVkxlWktkdFVJNkVFS0Y3d1JHWXVZX0JoWngxaXB5WG5CSFpwc3VmdUg0QXdnT08yODlRS21xZzhRQXk3SEZEOWM4SDhmTkN0UjdzVFo0WU5QMkFoRWFFUzBya01TUVVDTlZFejQyWUVCaTJHZ3JTcG5JOTRTUGRiM0ozUGtDTVo0T2dGUmp6dExPN25yZ2JQdGZsaFNPb19WT0UwXzdZNzRrbTQzV0FNUVBLTDMtNDR2UXJFUTYxSGRfMjRJY0ZoX0NoTlh2VURxcDM5R3pZbE8zRDB6bGF1NG96bGw4QmVMVVpySndIVFFXWlM4WFItRWlmQ2w0TVc1WTNZMVN4T0xySXhudWtDelF4TDdhR21jJnM9cEVzVDV6RWVieUN3MzhzeGNrdkM5RVZPNTJnMzhrcGc5RVhVTVlmcHNBQUhWQ0JwZ1RwdG1icUM4OE4xWmtPYWFIbkctU2hOMENrc2tiaFVKVU9meENvbGZEWW5lU1hLWTcwNDZoUVVkNDhsU09CcEV0cFNTSWJ5aVhrNjFRZ0ZseER3T0c4SEM1VU9NcXBya0FzcWRTandKZ0ttWTQ5OUtyNWtrRkJCWGpQc3RpY1dXM3RNUnYxQ25wWHBvRWdBMHZ5RXhjTzkybnpNdXUybFZzbEtIUjJxUkxfTmluM0FNMlBNN0ZlUnNwaWhsQVFMODBIWVBuLUhhQl8wQkZ0Z3hUT0lHb2RUREtuWUhSdmZpenF1TG92NEotV2FDTVpyb2RMSkNzQ0ZhTGl3WGxzbDhhVlhLM05HN0piUVVRSDA0dzBjYW1kUHhpNUtaZ2pjTmZQQ3VRJmg9MlBhbzNQVElJV3JxeXM4T2dqemRtVjhzVXZvcFp1MFV2UF9teEpES1VCUQ==", "RequestMethod": "GET", "RequestHeaders": { diff --git a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchAccountTests/TestCreateNewBatchAccountWithSystemIdentity.json b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchAccountTests/TestCreateNewBatchAccountWithSystemIdentity.json index 10f2b37b3c59..c7e0d05e3b29 100644 --- a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchAccountTests/TestCreateNewBatchAccountWithSystemIdentity.json +++ b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchAccountTests/TestCreateNewBatchAccountWithSystemIdentity.json @@ -145,7 +145,7 @@ "StatusCode": 201 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps2521/providers/Microsoft.Batch/batchAccounts/ps3606?api-version=2023-11-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps2521/providers/Microsoft.Batch/batchAccounts/ps3606?api-version=2024-02-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL3BzMjUyMS9wcm92aWRlcnMvTWljcm9zb2Z0LkJhdGNoL2JhdGNoQWNjb3VudHMvcHMzNjA2P2FwaS12ZXJzaW9uPTIwMjMtMDUtMDE=", "RequestMethod": "PUT", "RequestHeaders": { @@ -177,7 +177,7 @@ "no-cache" ], "Location": [ - "https://management.azure.com/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps2521/providers/Microsoft.Batch/batchAccounts/ps3606/operationResults/52594a4f-4313-44cd-a1a9-e2452733dc31?api-version=2023-11-01&t=638932203870748989&c=MIIIpTCCBo2gAwIBAgITFgGsmnj73LBE7PaBtQABAayaeDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDMwHhcNMjUwNzE4MTIwNDI4WhcNMjYwMTE0MTIwNDI4WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKYwXiklImL5-WfPWj2FX3_Y-JxCd3XXEOuNXx5ggHubZZamujLTqEBSFsFYiH_9NCaqKTiATXu6fBpzW3ghgYhwr0PL071fQT15KnnNUFjd5hFXB7SYti9IwWu1lxSAz-De7HivujKdlsgcmfoV6upRQ0eva9e74EwLV9pCn4WQAhs-6T8p0CytQsi81qHMWybAbNvfom0ox78IEWdS_6g_d4Jl_I4ccYLMyRTOV2NioM96cRECWCZhbpLl1zwoYGSbU5H0MZaiCBjPlhXN40BqagpamZfP98sPYSBfreh6-iMGU5tNTRkh8RiJqzjhzIUpEv3PqLtWTyPUB8JS7aUCAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9BTTNQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAzKDEpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MB0GA1UdDgQWBBTxzPCXgPzIUiTz94us0y0CCMf8BzAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBRIo61gdWpv7GDzaVXRALEyV_xs5DAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggIBAAqNK9Ejzdnb9L4TyakCpJByRYVTN_6nCGbtUd2E2sELjuJGRGiRmujp_jqNyIofO_ghSaP_tqH-3WRTRUbnt5xM8aBYoYJSOgKgTsNrB6clspdhCCmzhJy6EQuOqfUDm3C7hDru1_bN3DwXt3VpDqfuYtM3MAabKg0oCYVWgFwnAKYmZLZMWMQh7k_hZxy1gOCQmE9U08tf_pU21aI0El6n5A5uG2FT0placwchheFmXAtoPjT7nU53HVmRissxUR_vRCDj_ZCFo3K3nZNXCQOKPAMc9-LC0prb9Slg6siKtSHB3iGjNQlT9-nbSnDgifI8zC1cvT8CdaNLOmUywRIB4wvRn1z123NuyfJaIz95igW9P189vBTJEZREF-MgJEboWKdlGNn6bbBtu0waqAmUU7WVLeZKdtUI6EEKF7wRGYuY_BhZx1ipyXnBHZpsufuH4AwgOO289QKmqg8QAy7HFD9c8H8fNCtR7sTZ4YNP2AhEaES0rkMSQUCNVEz42YEBi2GgrSpnI94SPdb3J3PkCMZ4OgFRjztLO7nrgbPtflhSOo_VOE0_7Y74km43WAMQPKL3-44vQrEQ61Hd_24IcFh_ChNXvUDqp39GzYlO3D0zlau4ozll8BeLUZrJwHTQWZS8XR-EifCl4MW5Y3Y1SxOLrIxnukCzQxL7aGmc&s=RDwaOfBt2crFCDxMzmgp2sh2rdlDaYsTWOxDiuwd2MGfgggn711QQj6g_xA3lTeArhksko7YQRk57FFQ8Xdet9l2s5nZAAxxC5iStzTd2jftG5wRhryCfj0c170jEd7s-g7oGIS4ukIuQYSgzmKPbObHzUTCQF7GSS1-dgQ4NvldiInjonH9G65UhZYxKDxaFNUngDP8AlL95TwduPbdjDe2nd8fBoZbgdPOlJEyulfOzbG6SG8VeLR8mmrvCLXKzueHz4w1f6UogTXkWDWZ8SQoaGdVcXRIPBzxTqW7fUu3rObvRYew0L3Ds8RaW9NWdZeKEvdWfN_j2_UoB7tHxQ&h=Smng_2XxXB6ddgVury2V_jXpAHF7SpHmYqBfD4NX0gE" + "https://management.azure.com/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps2521/providers/Microsoft.Batch/batchAccounts/ps3606/operationResults/52594a4f-4313-44cd-a1a9-e2452733dc31?api-version=2024-02-01&t=638932203870748989&c=MIIIpTCCBo2gAwIBAgITFgGsmnj73LBE7PaBtQABAayaeDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDMwHhcNMjUwNzE4MTIwNDI4WhcNMjYwMTE0MTIwNDI4WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKYwXiklImL5-WfPWj2FX3_Y-JxCd3XXEOuNXx5ggHubZZamujLTqEBSFsFYiH_9NCaqKTiATXu6fBpzW3ghgYhwr0PL071fQT15KnnNUFjd5hFXB7SYti9IwWu1lxSAz-De7HivujKdlsgcmfoV6upRQ0eva9e74EwLV9pCn4WQAhs-6T8p0CytQsi81qHMWybAbNvfom0ox78IEWdS_6g_d4Jl_I4ccYLMyRTOV2NioM96cRECWCZhbpLl1zwoYGSbU5H0MZaiCBjPlhXN40BqagpamZfP98sPYSBfreh6-iMGU5tNTRkh8RiJqzjhzIUpEv3PqLtWTyPUB8JS7aUCAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9BTTNQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAzKDEpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MB0GA1UdDgQWBBTxzPCXgPzIUiTz94us0y0CCMf8BzAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBRIo61gdWpv7GDzaVXRALEyV_xs5DAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggIBAAqNK9Ejzdnb9L4TyakCpJByRYVTN_6nCGbtUd2E2sELjuJGRGiRmujp_jqNyIofO_ghSaP_tqH-3WRTRUbnt5xM8aBYoYJSOgKgTsNrB6clspdhCCmzhJy6EQuOqfUDm3C7hDru1_bN3DwXt3VpDqfuYtM3MAabKg0oCYVWgFwnAKYmZLZMWMQh7k_hZxy1gOCQmE9U08tf_pU21aI0El6n5A5uG2FT0placwchheFmXAtoPjT7nU53HVmRissxUR_vRCDj_ZCFo3K3nZNXCQOKPAMc9-LC0prb9Slg6siKtSHB3iGjNQlT9-nbSnDgifI8zC1cvT8CdaNLOmUywRIB4wvRn1z123NuyfJaIz95igW9P189vBTJEZREF-MgJEboWKdlGNn6bbBtu0waqAmUU7WVLeZKdtUI6EEKF7wRGYuY_BhZx1ipyXnBHZpsufuH4AwgOO289QKmqg8QAy7HFD9c8H8fNCtR7sTZ4YNP2AhEaES0rkMSQUCNVEz42YEBi2GgrSpnI94SPdb3J3PkCMZ4OgFRjztLO7nrgbPtflhSOo_VOE0_7Y74km43WAMQPKL3-44vQrEQ61Hd_24IcFh_ChNXvUDqp39GzYlO3D0zlau4ozll8BeLUZrJwHTQWZS8XR-EifCl4MW5Y3Y1SxOLrIxnukCzQxL7aGmc&s=RDwaOfBt2crFCDxMzmgp2sh2rdlDaYsTWOxDiuwd2MGfgggn711QQj6g_xA3lTeArhksko7YQRk57FFQ8Xdet9l2s5nZAAxxC5iStzTd2jftG5wRhryCfj0c170jEd7s-g7oGIS4ukIuQYSgzmKPbObHzUTCQF7GSS1-dgQ4NvldiInjonH9G65UhZYxKDxaFNUngDP8AlL95TwduPbdjDe2nd8fBoZbgdPOlJEyulfOzbG6SG8VeLR8mmrvCLXKzueHz4w1f6UogTXkWDWZ8SQoaGdVcXRIPBzxTqW7fUu3rObvRYew0L3Ds8RaW9NWdZeKEvdWfN_j2_UoB7tHxQ&h=Smng_2XxXB6ddgVury2V_jXpAHF7SpHmYqBfD4NX0gE" ], "Retry-After": [ "15" @@ -226,7 +226,7 @@ "StatusCode": 202 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps2521/providers/Microsoft.Batch/batchAccounts/ps3606/operationResults/52594a4f-4313-44cd-a1a9-e2452733dc31?api-version=2023-11-01&t=638932203870748989&c=MIIIpTCCBo2gAwIBAgITFgGsmnj73LBE7PaBtQABAayaeDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDMwHhcNMjUwNzE4MTIwNDI4WhcNMjYwMTE0MTIwNDI4WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKYwXiklImL5-WfPWj2FX3_Y-JxCd3XXEOuNXx5ggHubZZamujLTqEBSFsFYiH_9NCaqKTiATXu6fBpzW3ghgYhwr0PL071fQT15KnnNUFjd5hFXB7SYti9IwWu1lxSAz-De7HivujKdlsgcmfoV6upRQ0eva9e74EwLV9pCn4WQAhs-6T8p0CytQsi81qHMWybAbNvfom0ox78IEWdS_6g_d4Jl_I4ccYLMyRTOV2NioM96cRECWCZhbpLl1zwoYGSbU5H0MZaiCBjPlhXN40BqagpamZfP98sPYSBfreh6-iMGU5tNTRkh8RiJqzjhzIUpEv3PqLtWTyPUB8JS7aUCAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9BTTNQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAzKDEpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MB0GA1UdDgQWBBTxzPCXgPzIUiTz94us0y0CCMf8BzAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBRIo61gdWpv7GDzaVXRALEyV_xs5DAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggIBAAqNK9Ejzdnb9L4TyakCpJByRYVTN_6nCGbtUd2E2sELjuJGRGiRmujp_jqNyIofO_ghSaP_tqH-3WRTRUbnt5xM8aBYoYJSOgKgTsNrB6clspdhCCmzhJy6EQuOqfUDm3C7hDru1_bN3DwXt3VpDqfuYtM3MAabKg0oCYVWgFwnAKYmZLZMWMQh7k_hZxy1gOCQmE9U08tf_pU21aI0El6n5A5uG2FT0placwchheFmXAtoPjT7nU53HVmRissxUR_vRCDj_ZCFo3K3nZNXCQOKPAMc9-LC0prb9Slg6siKtSHB3iGjNQlT9-nbSnDgifI8zC1cvT8CdaNLOmUywRIB4wvRn1z123NuyfJaIz95igW9P189vBTJEZREF-MgJEboWKdlGNn6bbBtu0waqAmUU7WVLeZKdtUI6EEKF7wRGYuY_BhZx1ipyXnBHZpsufuH4AwgOO289QKmqg8QAy7HFD9c8H8fNCtR7sTZ4YNP2AhEaES0rkMSQUCNVEz42YEBi2GgrSpnI94SPdb3J3PkCMZ4OgFRjztLO7nrgbPtflhSOo_VOE0_7Y74km43WAMQPKL3-44vQrEQ61Hd_24IcFh_ChNXvUDqp39GzYlO3D0zlau4ozll8BeLUZrJwHTQWZS8XR-EifCl4MW5Y3Y1SxOLrIxnukCzQxL7aGmc&s=RDwaOfBt2crFCDxMzmgp2sh2rdlDaYsTWOxDiuwd2MGfgggn711QQj6g_xA3lTeArhksko7YQRk57FFQ8Xdet9l2s5nZAAxxC5iStzTd2jftG5wRhryCfj0c170jEd7s-g7oGIS4ukIuQYSgzmKPbObHzUTCQF7GSS1-dgQ4NvldiInjonH9G65UhZYxKDxaFNUngDP8AlL95TwduPbdjDe2nd8fBoZbgdPOlJEyulfOzbG6SG8VeLR8mmrvCLXKzueHz4w1f6UogTXkWDWZ8SQoaGdVcXRIPBzxTqW7fUu3rObvRYew0L3Ds8RaW9NWdZeKEvdWfN_j2_UoB7tHxQ&h=Smng_2XxXB6ddgVury2V_jXpAHF7SpHmYqBfD4NX0gE", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps2521/providers/Microsoft.Batch/batchAccounts/ps3606/operationResults/52594a4f-4313-44cd-a1a9-e2452733dc31?api-version=2024-02-01&t=638932203870748989&c=MIIIpTCCBo2gAwIBAgITFgGsmnj73LBE7PaBtQABAayaeDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDMwHhcNMjUwNzE4MTIwNDI4WhcNMjYwMTE0MTIwNDI4WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKYwXiklImL5-WfPWj2FX3_Y-JxCd3XXEOuNXx5ggHubZZamujLTqEBSFsFYiH_9NCaqKTiATXu6fBpzW3ghgYhwr0PL071fQT15KnnNUFjd5hFXB7SYti9IwWu1lxSAz-De7HivujKdlsgcmfoV6upRQ0eva9e74EwLV9pCn4WQAhs-6T8p0CytQsi81qHMWybAbNvfom0ox78IEWdS_6g_d4Jl_I4ccYLMyRTOV2NioM96cRECWCZhbpLl1zwoYGSbU5H0MZaiCBjPlhXN40BqagpamZfP98sPYSBfreh6-iMGU5tNTRkh8RiJqzjhzIUpEv3PqLtWTyPUB8JS7aUCAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9BTTNQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAzKDEpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MB0GA1UdDgQWBBTxzPCXgPzIUiTz94us0y0CCMf8BzAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBRIo61gdWpv7GDzaVXRALEyV_xs5DAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggIBAAqNK9Ejzdnb9L4TyakCpJByRYVTN_6nCGbtUd2E2sELjuJGRGiRmujp_jqNyIofO_ghSaP_tqH-3WRTRUbnt5xM8aBYoYJSOgKgTsNrB6clspdhCCmzhJy6EQuOqfUDm3C7hDru1_bN3DwXt3VpDqfuYtM3MAabKg0oCYVWgFwnAKYmZLZMWMQh7k_hZxy1gOCQmE9U08tf_pU21aI0El6n5A5uG2FT0placwchheFmXAtoPjT7nU53HVmRissxUR_vRCDj_ZCFo3K3nZNXCQOKPAMc9-LC0prb9Slg6siKtSHB3iGjNQlT9-nbSnDgifI8zC1cvT8CdaNLOmUywRIB4wvRn1z123NuyfJaIz95igW9P189vBTJEZREF-MgJEboWKdlGNn6bbBtu0waqAmUU7WVLeZKdtUI6EEKF7wRGYuY_BhZx1ipyXnBHZpsufuH4AwgOO289QKmqg8QAy7HFD9c8H8fNCtR7sTZ4YNP2AhEaES0rkMSQUCNVEz42YEBi2GgrSpnI94SPdb3J3PkCMZ4OgFRjztLO7nrgbPtflhSOo_VOE0_7Y74km43WAMQPKL3-44vQrEQ61Hd_24IcFh_ChNXvUDqp39GzYlO3D0zlau4ozll8BeLUZrJwHTQWZS8XR-EifCl4MW5Y3Y1SxOLrIxnukCzQxL7aGmc&s=RDwaOfBt2crFCDxMzmgp2sh2rdlDaYsTWOxDiuwd2MGfgggn711QQj6g_xA3lTeArhksko7YQRk57FFQ8Xdet9l2s5nZAAxxC5iStzTd2jftG5wRhryCfj0c170jEd7s-g7oGIS4ukIuQYSgzmKPbObHzUTCQF7GSS1-dgQ4NvldiInjonH9G65UhZYxKDxaFNUngDP8AlL95TwduPbdjDe2nd8fBoZbgdPOlJEyulfOzbG6SG8VeLR8mmrvCLXKzueHz4w1f6UogTXkWDWZ8SQoaGdVcXRIPBzxTqW7fUu3rObvRYew0L3Ds8RaW9NWdZeKEvdWfN_j2_UoB7tHxQ&h=Smng_2XxXB6ddgVury2V_jXpAHF7SpHmYqBfD4NX0gE", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL3BzMjUyMS9wcm92aWRlcnMvTWljcm9zb2Z0LkJhdGNoL2JhdGNoQWNjb3VudHMvcHMzNjA2L29wZXJhdGlvblJlc3VsdHMvNTI1OTRhNGYtNDMxMy00NGNkLWExYTktZTI0NTI3MzNkYzMxP2FwaS12ZXJzaW9uPTIwMjMtMDUtMDEmdD02Mzg5MzIyMDM4NzA3NDg5ODkmYz1NSUlJcFRDQ0JvMmdBd0lCQWdJVEZnR3Ntbmo3M0xCRTdQYUJ0UUFCQWF5YWVEQU5CZ2txaGtpRzl3MEJBUXNGQURCRU1STXdFUVlLQ1pJbWlaUHlMR1FCR1JZRFIwSk1NUk13RVFZS0NaSW1pWlB5TEdRQkdSWURRVTFGTVJnd0ZnWURWUVFERXc5QlRVVWdTVzVtY21FZ1EwRWdNRE13SGhjTk1qVXdOekU0TVRJd05ESTRXaGNOTWpZd01URTBNVEl3TkRJNFdqQkFNVDR3UEFZRFZRUURFelZoYzNsdVkyOXdaWEpoZEdsdmJuTnBaMjVwYm1kalpYSjBhV1pwWTJGMFpTNXRZVzVoWjJWdFpXNTBMbUY2ZFhKbExtTnZiVENDQVNJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dFUEFEQ0NBUW9DZ2dFQkFLWXdYaWtsSW1MNS1XZlBXajJGWDNfWS1KeENkM1hYRU91Tlh4NWdnSHViWlphbXVqTFRxRUJTRnNGWWlIXzlOQ2FxS1RpQVRYdTZmQnB6VzNnaGdZaHdyMFBMMDcxZlFUMTVLbm5OVUZqZDVoRlhCN1NZdGk5SXdXdTFseFNBei1EZTdIaXZ1aktkbHNnY21mb1Y2dXBSUTBldmE5ZTc0RXdMVjlwQ240V1FBaHMtNlQ4cDBDeXRRc2k4MXFITVd5YkFiTnZmb20wb3g3OElFV2RTXzZnX2Q0SmxfSTRjY1lMTXlSVE9WMk5pb005NmNSRUNXQ1poYnBMbDF6d29ZR1NiVTVIME1aYWlDQmpQbGhYTjQwQnFhZ3BhbVpmUDk4c1BZU0JmcmVoNi1pTUdVNXROVFJraDhSaUpxempoeklVcEV2M1BxTHRXVHlQVUI4SlM3YVVDQXdFQUFhT0NCSkl3Z2dTT01DY0dDU3NHQVFRQmdqY1ZDZ1FhTUJnd0NnWUlLd1lCQlFVSEF3RXdDZ1lJS3dZQkJRVUhBd0l3UFFZSkt3WUJCQUdDTnhVSEJEQXdMZ1ltS3dZQkJBR0NOeFVJaHBEakRZVFZ0SGlFOFlzLWhadmRGczZkRW9GZ2hmbVJTNFdzbVRRQ0FXUUNBUWN3Z2dIYUJnZ3JCZ0VGQlFjQkFRU0NBY3d3Z2dISU1HWUdDQ3NHQVFVRkJ6QUNobHBvZEhSd09pOHZZM0pzTG0xcFkzSnZjMjltZEM1amIyMHZjR3RwYVc1bWNtRXZRMlZ5ZEhNdlFVMHpVRXRKU1U1VVEwRXdNUzVCVFVVdVIwSk1YMEZOUlNVeU1FbHVabkpoSlRJd1EwRWxNakF3TXlneEtTNWpjblF3VmdZSUt3WUJCUVVITUFLR1NtaDBkSEE2THk5amNtd3hMbUZ0WlM1blltd3ZZV2xoTDBGTk0xQkxTVWxPVkVOQk1ERXVRVTFGTGtkQ1RGOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRE1vTVNrdVkzSjBNRllHQ0NzR0FRVUZCekFDaGtwb2RIUndPaTh2WTNKc01pNWhiV1V1WjJKc0wyRnBZUzlCVFROUVMwbEpUbFJEUVRBeExrRk5SUzVIUWt4ZlFVMUZKVEl3U1c1bWNtRWxNakJEUVNVeU1EQXpLREVwTG1OeWREQldCZ2dyQmdFRkJRY3dBb1pLYUhSMGNEb3ZMMk55YkRNdVlXMWxMbWRpYkM5aGFXRXZRVTB6VUV0SlNVNVVRMEV3TVM1QlRVVXVSMEpNWDBGTlJTVXlNRWx1Wm5KaEpUSXdRMEVsTWpBd015Z3hLUzVqY25Rd1ZnWUlLd1lCQlFVSE1BS0dTbWgwZEhBNkx5OWpjbXcwTG1GdFpTNW5ZbXd2WVdsaEwwRk5NMUJMU1VsT1ZFTkJNREV1UVUxRkxrZENURjlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURNb01Ta3VZM0owTUIwR0ExVWREZ1FXQkJUeHpQQ1hnUHpJVWlUejk0dXMweTBDQ01mOEJ6QU9CZ05WSFE4QkFmOEVCQU1DQmFBd2dnRTFCZ05WSFI4RWdnRXNNSUlCS0RDQ0FTU2dnZ0Vnb0lJQkhJWkNhSFIwY0RvdkwyTnliQzV0YVdOeWIzTnZablF1WTI5dEwzQnJhV2x1Wm5KaEwwTlNUQzlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURNb01Ta3VZM0pzaGpSb2RIUndPaTh2WTNKc01TNWhiV1V1WjJKc0wyTnliQzlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURNb01Ta3VZM0pzaGpSb2RIUndPaTh2WTNKc01pNWhiV1V1WjJKc0wyTnliQzlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURNb01Ta3VZM0pzaGpSb2RIUndPaTh2WTNKc015NWhiV1V1WjJKc0wyTnliQzlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURNb01Ta3VZM0pzaGpSb2RIUndPaTh2WTNKc05DNWhiV1V1WjJKc0wyTnliQzlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURNb01Ta3VZM0pzTUlHZEJnTlZIU0FFZ1pVd2daSXdEQVlLS3dZQkJBR0NOM3NCQVRCbUJnb3JCZ0VFQVlJM2V3SUNNRmd3VmdZSUt3WUJCUVVIQWdJd1NoNUlBRE1BTXdCbEFEQUFNUUE1QURJQU1RQXRBRFFBWkFBMkFEUUFMUUEwQUdZQU9BQmpBQzBBWVFBd0FEVUFOUUF0QURVQVlnQmtBR0VBWmdCbUFHUUFOUUJsQURNQU13QmtNQXdHQ2lzR0FRUUJnamQ3QXdJd0RBWUtLd1lCQkFHQ04zc0VBakFmQmdOVkhTTUVHREFXZ0JSSW82MWdkV3B2N0dEemFWWFJBTEV5Vl94czVEQWRCZ05WSFNVRUZqQVVCZ2dyQmdFRkJRY0RBUVlJS3dZQkJRVUhBd0l3RFFZSktvWklodmNOQVFFTEJRQURnZ0lCQUFxTks5RWp6ZG5iOUw0VHlha0NwSkJ5UllWVE5fNm5DR2J0VWQyRTJzRUxqdUpHUkdpUm11anBfanFOeUlvZk9fZ2hTYVBfdHFILTNXUlRSVWJudDV4TThhQllvWUpTT2dLZ1RzTnJCNmNsc3BkaENDbXpoSnk2RVF1T3FmVURtM0M3aERydTFfYk4zRHdYdDNWcERxZnVZdE0zTUFhYktnMG9DWVZXZ0Z3bkFLWW1aTFpNV01RaDdrX2haeHkxZ09DUW1FOVUwOHRmX3BVMjFhSTBFbDZuNUE1dUcyRlQwcGxhY3djaGhlRm1YQXRvUGpUN25VNTNIVm1SaXNzeFVSX3ZSQ0RqX1pDRm8zSzNuWk5YQ1FPS1BBTWM5LUxDMHByYjlTbGc2c2lLdFNIQjNpR2pOUWxUOS1uYlNuRGdpZkk4ekMxY3ZUOENkYU5MT21VeXdSSUI0d3ZSbjF6MTIzTnV5ZkphSXo5NWlnVzlQMTg5dkJUSkVaUkVGLU1nSkVib1dLZGxHTm42YmJCdHUwd2FxQW1VVTdXVkxlWktkdFVJNkVFS0Y3d1JHWXVZX0JoWngxaXB5WG5CSFpwc3VmdUg0QXdnT08yODlRS21xZzhRQXk3SEZEOWM4SDhmTkN0UjdzVFo0WU5QMkFoRWFFUzBya01TUVVDTlZFejQyWUVCaTJHZ3JTcG5JOTRTUGRiM0ozUGtDTVo0T2dGUmp6dExPN25yZ2JQdGZsaFNPb19WT0UwXzdZNzRrbTQzV0FNUVBLTDMtNDR2UXJFUTYxSGRfMjRJY0ZoX0NoTlh2VURxcDM5R3pZbE8zRDB6bGF1NG96bGw4QmVMVVpySndIVFFXWlM4WFItRWlmQ2w0TVc1WTNZMVN4T0xySXhudWtDelF4TDdhR21jJnM9UkR3YU9mQnQyY3JGQ0R4TXptZ3Ayc2gycmRsRGFZc1RXT3hEaXV3ZDJNR2ZnZ2duNzExUVFqNmdfeEEzbFRlQXJoa3NrbzdZUVJrNTdGRlE4WGRldDlsMnM1blpBQXh4QzVpU3R6VGQyamZ0RzV3UmhyeUNmajBjMTcwakVkN3MtZzdvR0lTNHVrSXVRWVNnem1LUGJPYkh6VVRDUUY3R1NTMS1kZ1E0TnZsZGlJbmpvbkg5RzY1VWhaWXhLRHhhRk5VbmdEUDhBbEw5NVR3ZHVQYmRqRGUybmQ4ZkJvWmJnZFBPbEpFeXVsZk96Ykc2U0c4VmVMUjhtbXJ2Q0xYS3p1ZUh6NHcxZjZVb2dUWGtXRFdaOFNRb2FHZFZjWFJJUEJ6eFRxVzdmVXUzck9idlJZZXcwTDNEczhSYVc5TldkWmVLRXZkV2ZOX2oyX1VvQjd0SHhRJmg9U21uZ18yWHhYQjZkZGdWdXJ5MlZfalhwQUhGN1NwSG1ZcUJmRDROWDBnRQ==", "RequestMethod": "GET", "RequestHeaders": { diff --git a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchApplicationPackageTests/TestCreatePoolWithApplicationPackage.json b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchApplicationPackageTests/TestCreatePoolWithApplicationPackage.json index cd27d1a49c46..106567d54dec 100644 --- a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchApplicationPackageTests/TestCreatePoolWithApplicationPackage.json +++ b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchApplicationPackageTests/TestCreatePoolWithApplicationPackage.json @@ -1,7 +1,7 @@ { "Entries": [ { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/createPoolWithApplicationPackage/versions/foo?api-version=2023-11-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/createPoolWithApplicationPackage/versions/foo?api-version=2024-02-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvYXBwbGljYXRpb25zL2NyZWF0ZVBvb2xXaXRoQXBwbGljYXRpb25QYWNrYWdlL3ZlcnNpb25zL2Zvbz9hcGktdmVyc2lvbj0yMDIzLTA1LTAx", "RequestMethod": "PUT", "RequestHeaders": { @@ -85,7 +85,7 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/createPoolWithApplicationPackage/versions/foo/activate?api-version=2023-11-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/createPoolWithApplicationPackage/versions/foo/activate?api-version=2024-02-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvYXBwbGljYXRpb25zL2NyZWF0ZVBvb2xXaXRoQXBwbGljYXRpb25QYWNrYWdlL3ZlcnNpb25zL2Zvby9hY3RpdmF0ZT9hcGktdmVyc2lvbj0yMDIzLTA1LTAx", "RequestMethod": "POST", "RequestHeaders": { @@ -169,7 +169,7 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/createPoolWithApplicationPackage/versions/foo?api-version=2023-11-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/createPoolWithApplicationPackage/versions/foo?api-version=2024-02-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvYXBwbGljYXRpb25zL2NyZWF0ZVBvb2xXaXRoQXBwbGljYXRpb25QYWNrYWdlL3ZlcnNpb25zL2Zvbz9hcGktdmVyc2lvbj0yMDIzLTA1LTAx", "RequestMethod": "GET", "RequestHeaders": { @@ -317,7 +317,7 @@ "StatusCode": 201 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/createPoolWithApplicationPackage/versions/foo?api-version=2023-11-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/createPoolWithApplicationPackage/versions/foo?api-version=2024-02-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvYXBwbGljYXRpb25zL2NyZWF0ZVBvb2xXaXRoQXBwbGljYXRpb25QYWNrYWdlL3ZlcnNpb25zL2Zvbz9hcGktdmVyc2lvbj0yMDIzLTA1LTAx", "RequestMethod": "DELETE", "RequestHeaders": { @@ -386,7 +386,7 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/createPoolWithApplicationPackage?api-version=2023-11-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/createPoolWithApplicationPackage?api-version=2024-02-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvYXBwbGljYXRpb25zL2NyZWF0ZVBvb2xXaXRoQXBwbGljYXRpb25QYWNrYWdlP2FwaS12ZXJzaW9uPTIwMjMtMDUtMDE=", "RequestMethod": "DELETE", "RequestHeaders": { diff --git a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchApplicationPackageTests/TestUpdateApplicationPackage.json b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchApplicationPackageTests/TestUpdateApplicationPackage.json index fae4edc3c104..e1460b1015a9 100644 --- a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchApplicationPackageTests/TestUpdateApplicationPackage.json +++ b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchApplicationPackageTests/TestUpdateApplicationPackage.json @@ -1,7 +1,7 @@ { "Entries": [ { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/updateApplicationPackage/versions/foo?api-version=2023-11-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/updateApplicationPackage/versions/foo?api-version=2024-02-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvYXBwbGljYXRpb25zL3VwZGF0ZUFwcGxpY2F0aW9uUGFja2FnZS92ZXJzaW9ucy9mb28/YXBpLXZlcnNpb249MjAyMy0wNS0wMQ==", "RequestMethod": "PUT", "RequestHeaders": { @@ -85,7 +85,7 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/updateApplicationPackage?api-version=2023-11-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/updateApplicationPackage?api-version=2024-02-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvYXBwbGljYXRpb25zL3VwZGF0ZUFwcGxpY2F0aW9uUGFja2FnZT9hcGktdmVyc2lvbj0yMDIzLTA1LTAx", "RequestMethod": "GET", "RequestHeaders": { @@ -163,7 +163,7 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/updateApplicationPackage?api-version=2023-11-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/updateApplicationPackage?api-version=2024-02-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvYXBwbGljYXRpb25zL3VwZGF0ZUFwcGxpY2F0aW9uUGFja2FnZT9hcGktdmVyc2lvbj0yMDIzLTA1LTAx", "RequestMethod": "GET", "RequestHeaders": { @@ -241,7 +241,7 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/updateApplicationPackage/versions/foo/activate?api-version=2023-11-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/updateApplicationPackage/versions/foo/activate?api-version=2024-02-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvYXBwbGljYXRpb25zL3VwZGF0ZUFwcGxpY2F0aW9uUGFja2FnZS92ZXJzaW9ucy9mb28vYWN0aXZhdGU/YXBpLXZlcnNpb249MjAyMy0wNS0wMQ==", "RequestMethod": "POST", "RequestHeaders": { @@ -325,7 +325,7 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/updateApplicationPackage/versions/foo?api-version=2023-11-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/updateApplicationPackage/versions/foo?api-version=2024-02-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvYXBwbGljYXRpb25zL3VwZGF0ZUFwcGxpY2F0aW9uUGFja2FnZS92ZXJzaW9ucy9mb28/YXBpLXZlcnNpb249MjAyMy0wNS0wMQ==", "RequestMethod": "GET", "RequestHeaders": { @@ -403,7 +403,7 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/updateApplicationPackage?api-version=2023-11-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/updateApplicationPackage?api-version=2024-02-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvYXBwbGljYXRpb25zL3VwZGF0ZUFwcGxpY2F0aW9uUGFja2FnZT9hcGktdmVyc2lvbj0yMDIzLTA1LTAx", "RequestMethod": "PATCH", "RequestHeaders": { @@ -487,7 +487,7 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/updateApplicationPackage/versions/foo?api-version=2023-11-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/updateApplicationPackage/versions/foo?api-version=2024-02-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvYXBwbGljYXRpb25zL3VwZGF0ZUFwcGxpY2F0aW9uUGFja2FnZS92ZXJzaW9ucy9mb28/YXBpLXZlcnNpb249MjAyMy0wNS0wMQ==", "RequestMethod": "DELETE", "RequestHeaders": { @@ -556,7 +556,7 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/updateApplicationPackage?api-version=2023-11-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/updateApplicationPackage?api-version=2024-02-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvYXBwbGljYXRpb25zL3VwZGF0ZUFwcGxpY2F0aW9uUGFja2FnZT9hcGktdmVyc2lvbj0yMDIzLTA1LTAx", "RequestMethod": "DELETE", "RequestHeaders": { diff --git a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchApplicationPackageTests/TestUpdatePoolWithApplicationPackage.json b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchApplicationPackageTests/TestUpdatePoolWithApplicationPackage.json index 2ca8f85fd5a5..852d78c38cd7 100644 --- a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchApplicationPackageTests/TestUpdatePoolWithApplicationPackage.json +++ b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchApplicationPackageTests/TestUpdatePoolWithApplicationPackage.json @@ -1,7 +1,7 @@ { "Entries": [ { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/updatePoolWithApplicationPackage/versions/foo?api-version=2023-11-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/updatePoolWithApplicationPackage/versions/foo?api-version=2024-02-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvYXBwbGljYXRpb25zL3VwZGF0ZVBvb2xXaXRoQXBwbGljYXRpb25QYWNrYWdlL3ZlcnNpb25zL2Zvbz9hcGktdmVyc2lvbj0yMDIzLTA1LTAx", "RequestMethod": "PUT", "RequestHeaders": { @@ -152,7 +152,7 @@ "StatusCode": 201 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/updatePoolWithApplicationPackage/versions/foo/activate?api-version=2023-11-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/updatePoolWithApplicationPackage/versions/foo/activate?api-version=2024-02-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvYXBwbGljYXRpb25zL3VwZGF0ZVBvb2xXaXRoQXBwbGljYXRpb25QYWNrYWdlL3ZlcnNpb25zL2Zvby9hY3RpdmF0ZT9hcGktdmVyc2lvbj0yMDIzLTA1LTAx", "RequestMethod": "POST", "RequestHeaders": { @@ -236,7 +236,7 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/updatePoolWithApplicationPackage/versions/foo?api-version=2023-11-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/updatePoolWithApplicationPackage/versions/foo?api-version=2024-02-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvYXBwbGljYXRpb25zL3VwZGF0ZVBvb2xXaXRoQXBwbGljYXRpb25QYWNrYWdlL3ZlcnNpb25zL2Zvbz9hcGktdmVyc2lvbj0yMDIzLTA1LTAx", "RequestMethod": "GET", "RequestHeaders": { @@ -503,7 +503,7 @@ "StatusCode": 204 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/updatePoolWithApplicationPackage/versions/foo?api-version=2023-11-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/updatePoolWithApplicationPackage/versions/foo?api-version=2024-02-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvYXBwbGljYXRpb25zL3VwZGF0ZVBvb2xXaXRoQXBwbGljYXRpb25QYWNrYWdlL3ZlcnNpb25zL2Zvbz9hcGktdmVyc2lvbj0yMDIzLTA1LTAx", "RequestMethod": "DELETE", "RequestHeaders": { @@ -572,7 +572,7 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/updatePoolWithApplicationPackage?api-version=2023-11-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/updatePoolWithApplicationPackage?api-version=2024-02-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvYXBwbGljYXRpb25zL3VwZGF0ZVBvb2xXaXRoQXBwbGljYXRpb25QYWNrYWdlP2FwaS12ZXJzaW9uPTIwMjMtMDUtMDE=", "RequestMethod": "DELETE", "RequestHeaders": { diff --git a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchApplicationPackageTests/TestUploadApplicationPackage.json b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchApplicationPackageTests/TestUploadApplicationPackage.json index bded737aab68..773ff1e81c54 100644 --- a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchApplicationPackageTests/TestUploadApplicationPackage.json +++ b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchApplicationPackageTests/TestUploadApplicationPackage.json @@ -1,7 +1,7 @@ { "Entries": [ { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/newApplicationPackage/versions/foo?api-version=2023-11-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/newApplicationPackage/versions/foo?api-version=2024-02-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvYXBwbGljYXRpb25zL25ld0FwcGxpY2F0aW9uUGFja2FnZS92ZXJzaW9ucy9mb28/YXBpLXZlcnNpb249MjAyMy0wNS0wMQ==", "RequestMethod": "PUT", "RequestHeaders": { @@ -85,7 +85,7 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/newApplicationPackage/versions/foo/activate?api-version=2023-11-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/newApplicationPackage/versions/foo/activate?api-version=2024-02-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvYXBwbGljYXRpb25zL25ld0FwcGxpY2F0aW9uUGFja2FnZS92ZXJzaW9ucy9mb28vYWN0aXZhdGU/YXBpLXZlcnNpb249MjAyMy0wNS0wMQ==", "RequestMethod": "POST", "RequestHeaders": { @@ -169,7 +169,7 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/newApplicationPackage/versions/foo?api-version=2023-11-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/newApplicationPackage/versions/foo?api-version=2024-02-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvYXBwbGljYXRpb25zL25ld0FwcGxpY2F0aW9uUGFja2FnZS92ZXJzaW9ucy9mb28/YXBpLXZlcnNpb249MjAyMy0wNS0wMQ==", "RequestMethod": "GET", "RequestHeaders": { @@ -247,7 +247,7 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/newApplicationPackage/versions/foo?api-version=2023-11-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/newApplicationPackage/versions/foo?api-version=2024-02-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvYXBwbGljYXRpb25zL25ld0FwcGxpY2F0aW9uUGFja2FnZS92ZXJzaW9ucy9mb28/YXBpLXZlcnNpb249MjAyMy0wNS0wMQ==", "RequestMethod": "DELETE", "RequestHeaders": { @@ -316,7 +316,7 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/newApplicationPackage?api-version=2023-11-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/newApplicationPackage?api-version=2024-02-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvYXBwbGljYXRpb25zL25ld0FwcGxpY2F0aW9uUGFja2FnZT9hcGktdmVyc2lvbj0yMDIzLTA1LTAx", "RequestMethod": "DELETE", "RequestHeaders": { diff --git a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchApplicationTests/TestAddApplication.json b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchApplicationTests/TestAddApplication.json index 667c58b110e6..24d7396664c1 100644 --- a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchApplicationTests/TestAddApplication.json +++ b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchApplicationTests/TestAddApplication.json @@ -1,7 +1,7 @@ { "Entries": [ { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/test?api-version=2023-11-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/test?api-version=2024-02-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvYXBwbGljYXRpb25zL3Rlc3Q/YXBpLXZlcnNpb249MjAyMy0wNS0wMQ==", "RequestMethod": "PUT", "RequestHeaders": { @@ -85,7 +85,7 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/test?api-version=2023-11-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/test?api-version=2024-02-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvYXBwbGljYXRpb25zL3Rlc3Q/YXBpLXZlcnNpb249MjAyMy0wNS0wMQ==", "RequestMethod": "GET", "RequestHeaders": { @@ -163,7 +163,7 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/test?api-version=2023-11-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/test?api-version=2024-02-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvYXBwbGljYXRpb25zL3Rlc3Q/YXBpLXZlcnNpb249MjAyMy0wNS0wMQ==", "RequestMethod": "DELETE", "RequestHeaders": { diff --git a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.LocationTests/TestGetLocationQuotas.json b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.LocationTests/TestGetLocationQuotas.json index d03bf78812d5..06846e9e82ee 100644 --- a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.LocationTests/TestGetLocationQuotas.json +++ b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.LocationTests/TestGetLocationQuotas.json @@ -70,7 +70,7 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/providers/Microsoft.Batch/locations/westus2/quotas?api-version=2023-11-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/providers/Microsoft.Batch/locations/westus2/quotas?api-version=2024-02-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Byb3ZpZGVycy9NaWNyb3NvZnQuQmF0Y2gvbG9jYXRpb25zL3dlc3R1czIvcXVvdGFzP2FwaS12ZXJzaW9uPTIwMjMtMDUtMDE=", "RequestMethod": "GET", "RequestHeaders": { From 27850b3af076b4517a21237d5176e39f9a9a479a Mon Sep 17 00:00:00 2001 From: "REDMOND\\wiboris" Date: Fri, 12 Sep 2025 17:56:01 -0700 Subject: [PATCH 06/13] Adding 2024-07-01 generation --- .../Generated/ApplicationPackageOperations.cs | 9 +- .../ApplicationPackageOperationsExtensions.cs | 8 +- .../Generated/BatchAccountOperations.cs | 4 +- .../BatchAccountOperationsExtensions.cs | 8 +- .../Generated/BatchManagementClient.cs | 7 +- .../IApplicationPackageOperations.cs | 5 +- .../Generated/IBatchAccountOperations.cs | 8 +- .../Generated/IBatchManagementClient.cs | 5 + .../Generated/ILocationOperations.cs | 56 -- .../INetworkSecurityPerimeterOperations.cs | 147 +++ .../IPrivateEndpointConnectionOperations.cs | 18 +- .../Generated/LocationOperations.cs | 405 -------- .../Generated/LocationOperationsExtensions.cs | 82 -- .../Generated/Models/AccessRule.cs | 58 ++ .../Generated/Models/AccessRuleDirection.cs | 25 + .../Generated/Models/AccessRuleProperties.cs | 108 ++ .../AccessRulePropertiesSubscriptionsItem.cs | 50 + .../Generated/Models/Application.cs | 9 +- .../Generated/Models/ApplicationPackage.cs | 9 +- .../Models/AutomaticOSUpgradePolicy.cs | 4 +- .../Generated/Models/AzureProxyResource.cs | 88 ++ .../Generated/Models/AzureResource.cs | 88 ++ .../Generated/Models/BatchAccount.cs | 6 +- .../Models/BatchAccountCreateParameters.cs | 4 +- .../Models/BatchAccountCreateProperties.cs | 4 +- .../Models/BatchAccountProperties.cs | 4 +- .../Models/BatchAccountUpdateParameters.cs | 4 +- .../Models/BatchAccountUpdateProperties.cs | 4 +- .../Generated/Models/Certificate.cs | 9 +- .../CertificateCreateOrUpdateParameters.cs | 9 +- .../Generated/Models/CertificateReference.cs | 48 +- .../Models/CloudServiceConfiguration.cs | 90 -- .../Models/ComputeNodeDeallocationOption.cs | 8 +- .../ContainerHostBatchBindMountEntry.cs | 69 ++ .../Generated/Models/ContainerHostDataPath.cs | 41 + .../Generated/Models/CreatedByType.cs | 21 + .../Models/DeploymentConfiguration.cs | 30 +- .../Generated/Models/DetectorResponse.cs | 9 +- .../Generated/Models/DiffDiskSettings.cs | 8 +- .../Generated/Models/ErrorAdditionalInfo.cs | 58 ++ .../Generated/Models/ErrorDetail.cs | 88 ++ .../Generated/Models/ErrorResponse.cs | 55 + .../Models/ErrorResponseException.cs | 55 + .../Generated/Models/ImageReference.cs | 30 +- .../Generated/Models/InboundNatPool.cs | 11 +- .../Generated/Models/IssueType.cs | 39 + .../Generated/Models/ManagedDisk.cs | 16 +- .../Generated/Models/NetworkConfiguration.cs | 35 +- .../Models/NetworkSecurityPerimeter.cs | 68 ++ .../NetworkSecurityPerimeterConfiguration.cs | 64 ++ ...ecurityPerimeterConfigurationProperties.cs | 91 ++ ...PerimeterConfigurationProvisioningState.cs | 24 + ...yPerimeterReconcileConfigurationHeaders.cs | 55 + .../Models/NetworkSecurityProfile.cs | 88 ++ .../Generated/Models/Pool.cs | 46 +- .../Generated/Models/PoolProperties.cs | 37 +- .../Models/PrivateEndpointConnection.cs | 9 +- .../Generated/Models/PrivateLinkResource.cs | 9 +- .../Generated/Models/ProvisioningIssue.cs | 67 ++ .../Models/ProvisioningIssueProperties.cs | 97 ++ .../Generated/Models/ProxyResource.cs | 51 +- .../Models/PublicNetworkAccessType.cs | 11 +- .../Generated/Models/Resource.cs | 47 +- .../Generated/Models/ResourceAssociation.cs | 58 ++ .../Models/ResourceAssociationAccessMode.cs | 32 + .../Models/SecurityEncryptionTypes.cs | 19 + .../Generated/Models/SecurityProfile.cs | 4 +- .../Generated/Models/SecurityTypes.cs | 15 +- .../Generated/Models/Severity.cs | 19 + .../Generated/Models/SystemData.cs | 98 ++ .../Generated/Models/TaskContainerSettings.cs | 18 +- .../Generated/Models/UpgradePolicy.cs | 7 +- .../Generated/Models/VMDiskSecurityProfile.cs | 58 ++ .../Models/WindowsUserConfiguration.cs | 9 +- .../NetworkSecurityPerimeterOperations.cs | 949 ++++++++++++++++++ ...rkSecurityPerimeterOperationsExtensions.cs | 223 ++++ .../PrivateEndpointConnectionOperations.cs | 29 +- ...eEndpointConnectionOperationsExtensions.cs | 16 +- src/Batch/Batch.Management.Sdk/README.md | 6 +- .../TestBatchAccountEndToEnd.json | 24 +- ...stCreateNewBatchAccountWithNoPublicIp.json | 2 +- ...eateNewBatchAccountWithSystemIdentity.json | 2 +- .../TestCreatePoolWithApplicationPackage.json | 10 +- .../TestUpdateApplicationPackage.json | 16 +- .../TestUpdatePoolWithApplicationPackage.json | 10 +- .../TestUploadApplicationPackage.json | 10 +- .../TestAddApplication.json | 6 +- .../TestGetLocationQuotas.json | 2 +- .../BatchClient.PrivateEndpointConnection.cs | 9 +- 89 files changed, 3384 insertions(+), 987 deletions(-) create mode 100644 src/Batch/Batch.Management.Sdk/Generated/INetworkSecurityPerimeterOperations.cs create mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/AccessRule.cs create mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/AccessRuleDirection.cs create mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/AccessRuleProperties.cs create mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/AccessRulePropertiesSubscriptionsItem.cs create mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/AzureProxyResource.cs create mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/AzureResource.cs delete mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/CloudServiceConfiguration.cs create mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/ContainerHostBatchBindMountEntry.cs create mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/ContainerHostDataPath.cs create mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/CreatedByType.cs create mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/ErrorAdditionalInfo.cs create mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/ErrorDetail.cs create mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/ErrorResponse.cs create mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/ErrorResponseException.cs create mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/IssueType.cs create mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/NetworkSecurityPerimeter.cs create mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/NetworkSecurityPerimeterConfiguration.cs create mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/NetworkSecurityPerimeterConfigurationProperties.cs create mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/NetworkSecurityPerimeterConfigurationProvisioningState.cs create mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/NetworkSecurityPerimeterReconcileConfigurationHeaders.cs create mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/NetworkSecurityProfile.cs create mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/ProvisioningIssue.cs create mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/ProvisioningIssueProperties.cs create mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/ResourceAssociation.cs create mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/ResourceAssociationAccessMode.cs create mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/SecurityEncryptionTypes.cs create mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/Severity.cs create mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/SystemData.cs create mode 100644 src/Batch/Batch.Management.Sdk/Generated/Models/VMDiskSecurityProfile.cs create mode 100644 src/Batch/Batch.Management.Sdk/Generated/NetworkSecurityPerimeterOperations.cs create mode 100644 src/Batch/Batch.Management.Sdk/Generated/NetworkSecurityPerimeterOperationsExtensions.cs diff --git a/src/Batch/Batch.Management.Sdk/Generated/ApplicationPackageOperations.cs b/src/Batch/Batch.Management.Sdk/Generated/ApplicationPackageOperations.cs index 709c9e26f6b6..528cccd10319 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/ApplicationPackageOperations.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/ApplicationPackageOperations.cs @@ -349,6 +349,9 @@ internal ApplicationPackageOperations (BatchManagementClient client) /// /// The version of the application. /// + /// + /// The tags of the resource. + /// /// /// Headers that will be added to request. /// @@ -370,7 +373,7 @@ internal ApplicationPackageOperations (BatchManagementClient client) /// /// A response object containing the response body and response headers. /// - public async System.Threading.Tasks.Task> CreateWithHttpMessagesAsync(string resourceGroupName, string accountName, string applicationName, string versionName, System.Collections.Generic.Dictionary> customHeaders = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + public async System.Threading.Tasks.Task> CreateWithHttpMessagesAsync(string resourceGroupName, string accountName, string applicationName, string versionName, System.Collections.Generic.IDictionary tags = default(System.Collections.Generic.IDictionary), System.Collections.Generic.Dictionary> customHeaders = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { @@ -449,6 +452,10 @@ internal ApplicationPackageOperations (BatchManagementClient client) } ApplicationPackage parameters = new ApplicationPackage(); + if(tags != null) + { + parameters.Tags = tags; + } // Tracing bool _shouldTrace = Microsoft.Rest.ServiceClientTracing.IsEnabled; string _invocationId = null; diff --git a/src/Batch/Batch.Management.Sdk/Generated/ApplicationPackageOperationsExtensions.cs b/src/Batch/Batch.Management.Sdk/Generated/ApplicationPackageOperationsExtensions.cs index 34c9024b3036..724c4c711e8b 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/ApplicationPackageOperationsExtensions.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/ApplicationPackageOperationsExtensions.cs @@ -89,9 +89,9 @@ public static ApplicationPackage Activate(this IApplicationPackageOperations ope /// /// The version of the application. /// - public static ApplicationPackage Create(this IApplicationPackageOperations operations, string resourceGroupName, string accountName, string applicationName, string versionName) + public static ApplicationPackage Create(this IApplicationPackageOperations operations, string resourceGroupName, string accountName, string applicationName, string versionName, System.Collections.Generic.IDictionary tags = default(System.Collections.Generic.IDictionary)) { - return ((IApplicationPackageOperations)operations).CreateAsync(resourceGroupName, accountName, applicationName, versionName).GetAwaiter().GetResult(); + return ((IApplicationPackageOperations)operations).CreateAsync(resourceGroupName, accountName, applicationName, versionName, tags).GetAwaiter().GetResult(); } /// @@ -119,9 +119,9 @@ public static ApplicationPackage Create(this IApplicationPackageOperations opera /// /// The cancellation token. /// - public static async System.Threading.Tasks.Task CreateAsync(this IApplicationPackageOperations operations, string resourceGroupName, string accountName, string applicationName, string versionName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + public static async System.Threading.Tasks.Task CreateAsync(this IApplicationPackageOperations operations, string resourceGroupName, string accountName, string applicationName, string versionName, System.Collections.Generic.IDictionary tags = default(System.Collections.Generic.IDictionary), System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { - using (var _result = await operations.CreateWithHttpMessagesAsync(resourceGroupName, accountName, applicationName, versionName, null, cancellationToken).ConfigureAwait(false)) + using (var _result = await operations.CreateWithHttpMessagesAsync(resourceGroupName, accountName, applicationName, versionName, tags, null, cancellationToken).ConfigureAwait(false)) { return _result.Body; } diff --git a/src/Batch/Batch.Management.Sdk/Generated/BatchAccountOperations.cs b/src/Batch/Batch.Management.Sdk/Generated/BatchAccountOperations.cs index b470cb9da37c..40c384cc58db 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/BatchAccountOperations.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/BatchAccountOperations.cs @@ -2111,7 +2111,7 @@ internal BatchAccountOperations (BatchManagementClient client) /// network allows outbound access to these endpoints. Failure to allow access /// to these endpoints may cause Batch to mark the affected nodes as unusable. /// For more information about creating a pool inside of a virtual network, see - /// https://docs.microsoft.com/en-us/azure/batch/batch-virtual-network. + /// https://learn.microsoft.com/azure/batch/batch-virtual-network. /// /// /// The name of the resource group that contains the Batch account. @@ -3375,7 +3375,7 @@ internal BatchAccountOperations (BatchManagementClient client) /// network allows outbound access to these endpoints. Failure to allow access /// to these endpoints may cause Batch to mark the affected nodes as unusable. /// For more information about creating a pool inside of a virtual network, see - /// https://docs.microsoft.com/en-us/azure/batch/batch-virtual-network. + /// https://learn.microsoft.com/azure/batch/batch-virtual-network. /// /// /// The NextLink from the previous successful call to List operation. diff --git a/src/Batch/Batch.Management.Sdk/Generated/BatchAccountOperationsExtensions.cs b/src/Batch/Batch.Management.Sdk/Generated/BatchAccountOperationsExtensions.cs index 1ceac9aca4ca..1e7f5c1fcf5d 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/BatchAccountOperationsExtensions.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/BatchAccountOperationsExtensions.cs @@ -471,7 +471,7 @@ public static DetectorResponse GetDetector(this IBatchAccountOperations operatio /// network allows outbound access to these endpoints. Failure to allow access /// to these endpoints may cause Batch to mark the affected nodes as unusable. /// For more information about creating a pool inside of a virtual network, see - /// https://docs.microsoft.com/en-us/azure/batch/batch-virtual-network. + /// https://learn.microsoft.com/azure/batch/batch-virtual-network. /// /// /// The operations group for this extension method. @@ -494,7 +494,7 @@ public static Microsoft.Rest.Azure.IPage ListOutbou /// network allows outbound access to these endpoints. Failure to allow access /// to these endpoints may cause Batch to mark the affected nodes as unusable. /// For more information about creating a pool inside of a virtual network, see - /// https://docs.microsoft.com/en-us/azure/batch/batch-virtual-network. + /// https://learn.microsoft.com/azure/batch/batch-virtual-network. /// /// /// The operations group for this extension method. @@ -715,7 +715,7 @@ public static Microsoft.Rest.Azure.IPage ListDetectorsNext(thi /// network allows outbound access to these endpoints. Failure to allow access /// to these endpoints may cause Batch to mark the affected nodes as unusable. /// For more information about creating a pool inside of a virtual network, see - /// https://docs.microsoft.com/en-us/azure/batch/batch-virtual-network. + /// https://learn.microsoft.com/azure/batch/batch-virtual-network. /// /// /// The operations group for this extension method. @@ -735,7 +735,7 @@ public static Microsoft.Rest.Azure.IPage ListOutbou /// network allows outbound access to these endpoints. Failure to allow access /// to these endpoints may cause Batch to mark the affected nodes as unusable. /// For more information about creating a pool inside of a virtual network, see - /// https://docs.microsoft.com/en-us/azure/batch/batch-virtual-network. + /// https://learn.microsoft.com/azure/batch/batch-virtual-network. /// /// /// The operations group for this extension method. diff --git a/src/Batch/Batch.Management.Sdk/Generated/BatchManagementClient.cs b/src/Batch/Batch.Management.Sdk/Generated/BatchManagementClient.cs index 600151f8f5c4..80b6eb71a1ce 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/BatchManagementClient.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/BatchManagementClient.cs @@ -98,6 +98,10 @@ public partial class BatchManagementClient : Microsoft.Rest.ServiceClient public virtual IPoolOperations Pool { get; private set; } /// + /// Gets the INetworkSecurityPerimeterOperations + /// + public virtual INetworkSecurityPerimeterOperations NetworkSecurityPerimeter { get; private set; } + /// /// Initializes a new instance of the BatchManagementClient class. /// /// @@ -344,8 +348,9 @@ private void Initialize() this.PrivateLinkResource = new PrivateLinkResourceOperations(this); this.PrivateEndpointConnection = new PrivateEndpointConnectionOperations(this); this.Pool = new PoolOperations(this); + this.NetworkSecurityPerimeter = new NetworkSecurityPerimeterOperations(this); this.BaseUri = new System.Uri("https://management.azure.com"); - this.ApiVersion = "2024-02-01"; + this.ApiVersion = "2024-07-01"; this.AcceptLanguage = "en-US"; this.LongRunningOperationRetryTimeout = 30; this.GenerateClientRequestId = true; diff --git a/src/Batch/Batch.Management.Sdk/Generated/IApplicationPackageOperations.cs b/src/Batch/Batch.Management.Sdk/Generated/IApplicationPackageOperations.cs index 85c81fa9f7ca..ef9cbb09fac1 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/IApplicationPackageOperations.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/IApplicationPackageOperations.cs @@ -78,6 +78,9 @@ public partial interface IApplicationPackageOperations /// /// The version of the application. /// + /// + /// The tags of the resource. + /// /// /// The headers that will be added to request. /// @@ -90,7 +93,7 @@ public partial interface IApplicationPackageOperations /// /// Thrown when unable to deserialize the response /// - System.Threading.Tasks.Task> CreateWithHttpMessagesAsync(string resourceGroupName, string accountName, string applicationName, string versionName, System.Collections.Generic.Dictionary> customHeaders = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task> CreateWithHttpMessagesAsync(string resourceGroupName, string accountName, string applicationName, string versionName, System.Collections.Generic.IDictionary tags = default(System.Collections.Generic.IDictionary), System.Collections.Generic.Dictionary> customHeaders = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); /// /// Deletes an application package record and its associated binary file. diff --git a/src/Batch/Batch.Management.Sdk/Generated/IBatchAccountOperations.cs b/src/Batch/Batch.Management.Sdk/Generated/IBatchAccountOperations.cs index 7bbb53b99291..2139fa6dfcfb 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/IBatchAccountOperations.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/IBatchAccountOperations.cs @@ -336,7 +336,7 @@ public partial interface IBatchAccountOperations /// network allows outbound access to these endpoints. Failure to allow access /// to these endpoints may cause Batch to mark the affected nodes as unusable. /// For more information about creating a pool inside of a virtual network, see - /// https://docs.microsoft.com/en-us/azure/batch/batch-virtual-network. + /// https://learn.microsoft.com/azure/batch/batch-virtual-network. /// /// /// Lists the endpoints that a Batch Compute Node under this Batch Account may @@ -345,7 +345,7 @@ public partial interface IBatchAccountOperations /// network allows outbound access to these endpoints. Failure to allow access /// to these endpoints may cause Batch to mark the affected nodes as unusable. /// For more information about creating a pool inside of a virtual network, see - /// https://docs.microsoft.com/en-us/azure/batch/batch-virtual-network. + /// https://learn.microsoft.com/azure/batch/batch-virtual-network. /// /// /// The name of the resource group that contains the Batch account. @@ -506,7 +506,7 @@ public partial interface IBatchAccountOperations /// network allows outbound access to these endpoints. Failure to allow access /// to these endpoints may cause Batch to mark the affected nodes as unusable. /// For more information about creating a pool inside of a virtual network, see - /// https://docs.microsoft.com/en-us/azure/batch/batch-virtual-network. + /// https://learn.microsoft.com/azure/batch/batch-virtual-network. /// /// /// Lists the endpoints that a Batch Compute Node under this Batch Account may @@ -515,7 +515,7 @@ public partial interface IBatchAccountOperations /// network allows outbound access to these endpoints. Failure to allow access /// to these endpoints may cause Batch to mark the affected nodes as unusable. /// For more information about creating a pool inside of a virtual network, see - /// https://docs.microsoft.com/en-us/azure/batch/batch-virtual-network. + /// https://learn.microsoft.com/azure/batch/batch-virtual-network. /// /// /// The NextLink from the previous successful call to List operation. diff --git a/src/Batch/Batch.Management.Sdk/Generated/IBatchManagementClient.cs b/src/Batch/Batch.Management.Sdk/Generated/IBatchManagementClient.cs index 83562fff68f6..066fc167d4aa 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/IBatchManagementClient.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/IBatchManagementClient.cs @@ -114,5 +114,10 @@ public partial interface IBatchManagementClient : System.IDisposable /// IPoolOperations Pool { get; } + /// + /// Gets the INetworkSecurityPerimeterOperations + /// + INetworkSecurityPerimeterOperations NetworkSecurityPerimeter { get; } + } } \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/ILocationOperations.cs b/src/Batch/Batch.Management.Sdk/Generated/ILocationOperations.cs index d9c71c0a6ca9..71606ba55c87 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/ILocationOperations.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/ILocationOperations.cs @@ -69,37 +69,6 @@ public partial interface ILocationOperations /// System.Threading.Tasks.Task>> ListSupportedVirtualMachineSkusWithHttpMessagesAsync(string locationName, int? maxresults = default(int?), string filter = default(string), System.Collections.Generic.Dictionary> customHeaders = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - /// - /// Gets the list of Batch supported Cloud Service VM sizes available at the - /// given location. - /// - /// - /// Gets the list of Batch supported Cloud Service VM sizes available at the - /// given location. - /// - /// - /// The region for which to retrieve Batch service supported SKUs. - /// - /// - /// The maximum number of items to return in the response. - /// - /// - /// OData filter expression. Valid properties for filtering are "familyName". - /// - /// - /// The headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when unable to deserialize the response - /// - System.Threading.Tasks.Task>> ListSupportedCloudServiceSkusWithHttpMessagesAsync(string locationName, int? maxresults = default(int?), string filter = default(string), System.Collections.Generic.Dictionary> customHeaders = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - /// /// Checks whether the Batch account name is available in the specified region. /// @@ -151,30 +120,5 @@ public partial interface ILocationOperations /// System.Threading.Tasks.Task>> ListSupportedVirtualMachineSkusNextWithHttpMessagesAsync(string nextPageLink, System.Collections.Generic.Dictionary> customHeaders = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - /// - /// Gets the list of Batch supported Cloud Service VM sizes available at the - /// given location. - /// - /// - /// Gets the list of Batch supported Cloud Service VM sizes available at the - /// given location. - /// - /// - /// The NextLink from the previous successful call to List operation. - /// - /// - /// The headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when unable to deserialize the response - /// - System.Threading.Tasks.Task>> ListSupportedCloudServiceSkusNextWithHttpMessagesAsync(string nextPageLink, System.Collections.Generic.Dictionary> customHeaders = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); - } } \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/INetworkSecurityPerimeterOperations.cs b/src/Batch/Batch.Management.Sdk/Generated/INetworkSecurityPerimeterOperations.cs new file mode 100644 index 000000000000..49871b57073c --- /dev/null +++ b/src/Batch/Batch.Management.Sdk/Generated/INetworkSecurityPerimeterOperations.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.Management.Batch +{ + using Microsoft.Rest.Azure; + using Models; + + /// + /// NetworkSecurityPerimeterOperations operations. + /// + public partial interface INetworkSecurityPerimeterOperations + { + /// + /// Lists all of the NSP configurations in the specified account. + /// + /// + /// Lists all of the NSP configurations in the specified account. + /// + /// + /// The name of the resource group that contains the Batch account. + /// + /// + /// The name of the Batch account. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + System.Threading.Tasks.Task>> ListConfigurationsWithHttpMessagesAsync(string resourceGroupName, string accountName, System.Collections.Generic.Dictionary> customHeaders = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + + /// + /// Gets information about the specified NSP configuration. + /// + /// + /// Gets information about the specified NSP configuration. + /// + /// + /// The name of the resource group that contains the Batch account. + /// + /// + /// The name of the Batch account. + /// + /// + /// The name for Network Security Perimeter configuration + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + System.Threading.Tasks.Task> GetConfigurationWithHttpMessagesAsync(string resourceGroupName, string accountName, string networkSecurityPerimeterConfigurationName, System.Collections.Generic.Dictionary> customHeaders = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + + /// + /// Reconciles the specified NSP configuration. + /// + /// + /// Reconciles the specified NSP configuration. + /// + /// + /// The name of the resource group that contains the Batch account. + /// + /// + /// The name of the Batch account. + /// + /// + /// The name for Network Security Perimeter configuration + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + System.Threading.Tasks.Task> ReconcileConfigurationWithHttpMessagesAsync(string resourceGroupName, string accountName, string networkSecurityPerimeterConfigurationName, System.Collections.Generic.Dictionary> customHeaders = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + + /// + /// Reconciles the specified NSP configuration. + /// + /// + /// Reconciles the specified NSP configuration. + /// + /// + /// The name of the resource group that contains the Batch account. + /// + /// + /// The name of the Batch account. + /// + /// + /// The name for Network Security Perimeter configuration + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + System.Threading.Tasks.Task> BeginReconcileConfigurationWithHttpMessagesAsync(string resourceGroupName, string accountName, string networkSecurityPerimeterConfigurationName, System.Collections.Generic.Dictionary> customHeaders = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + + /// + /// Lists all of the NSP configurations in the specified account. + /// + /// + /// Lists all of the NSP configurations in the specified account. + /// + /// + /// The NextLink from the previous successful call to List operation. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + System.Threading.Tasks.Task>> ListConfigurationsNextWithHttpMessagesAsync(string nextPageLink, System.Collections.Generic.Dictionary> customHeaders = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/IPrivateEndpointConnectionOperations.cs b/src/Batch/Batch.Management.Sdk/Generated/IPrivateEndpointConnectionOperations.cs index 233a6afc572b..8a5caf1d7593 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/IPrivateEndpointConnectionOperations.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/IPrivateEndpointConnectionOperations.cs @@ -92,9 +92,10 @@ public partial interface IPrivateEndpointConnectionOperations /// The state (ETag) version of the private endpoint connection to update. This /// value can be omitted or set to "*" to apply the operation unconditionally. /// - /// - /// The private link service connection state of the private endpoint - /// connection + /// + /// PrivateEndpointConnection properties that should be updated. Properties + /// that are supplied will be updated, any property not supplied will be + /// unchanged. /// /// /// The headers that will be added to request. @@ -108,7 +109,7 @@ public partial interface IPrivateEndpointConnectionOperations /// /// Thrown when unable to deserialize the response /// - System.Threading.Tasks.Task> UpdateWithHttpMessagesAsync(string resourceGroupName, string accountName, string privateEndpointConnectionName, PrivateLinkServiceConnectionState privateLinkServiceConnectionState = default(PrivateLinkServiceConnectionState), string ifMatch = default(string), System.Collections.Generic.Dictionary> customHeaders = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task> UpdateWithHttpMessagesAsync(string resourceGroupName, string accountName, string privateEndpointConnectionName, PrivateEndpointConnection parameters, string ifMatch = default(string), System.Collections.Generic.Dictionary> customHeaders = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); /// /// Deletes the specified private endpoint connection. @@ -157,9 +158,10 @@ public partial interface IPrivateEndpointConnectionOperations /// The state (ETag) version of the private endpoint connection to update. This /// value can be omitted or set to "*" to apply the operation unconditionally. /// - /// - /// The private link service connection state of the private endpoint - /// connection + /// + /// PrivateEndpointConnection properties that should be updated. Properties + /// that are supplied will be updated, any property not supplied will be + /// unchanged. /// /// /// The headers that will be added to request. @@ -173,7 +175,7 @@ public partial interface IPrivateEndpointConnectionOperations /// /// Thrown when unable to deserialize the response /// - System.Threading.Tasks.Task> BeginUpdateWithHttpMessagesAsync(string resourceGroupName, string accountName, string privateEndpointConnectionName, PrivateLinkServiceConnectionState privateLinkServiceConnectionState = default(PrivateLinkServiceConnectionState), string ifMatch = default(string), System.Collections.Generic.Dictionary> customHeaders = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + System.Threading.Tasks.Task> BeginUpdateWithHttpMessagesAsync(string resourceGroupName, string accountName, string privateEndpointConnectionName, PrivateEndpointConnection parameters, string ifMatch = default(string), System.Collections.Generic.Dictionary> customHeaders = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); /// /// Deletes the specified private endpoint connection. diff --git a/src/Batch/Batch.Management.Sdk/Generated/LocationOperations.cs b/src/Batch/Batch.Management.Sdk/Generated/LocationOperations.cs index 6ccb5b76ea2d..24fce390fb61 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/LocationOperations.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/LocationOperations.cs @@ -463,228 +463,6 @@ internal LocationOperations (BatchManagementClient client) - } - /// - /// Gets the list of Batch supported Cloud Service VM sizes available at the - /// given location. - /// - /// - /// The region for which to retrieve Batch service supported SKUs. - /// - /// - /// The maximum number of items to return in the response. - /// - /// - /// OData filter expression. Valid properties for filtering are "familyName". - /// - /// - /// Headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when unable to deserialize the response - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// A response object containing the response body and response headers. - /// - public async System.Threading.Tasks.Task>> ListSupportedCloudServiceSkusWithHttpMessagesAsync(string locationName, int? maxresults = default(int?), string filter = default(string), System.Collections.Generic.Dictionary> customHeaders = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) - { - - - - - if (locationName == null) - { - throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.CannotBeNull, "locationName"); - } - - - - if (this.Client.ApiVersion == null) - { - throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.CannotBeNull, "this.Client.ApiVersion"); - } - - if (this.Client.SubscriptionId == null) - { - throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.CannotBeNull, "this.Client.SubscriptionId"); - } - - // Tracing - bool _shouldTrace = Microsoft.Rest.ServiceClientTracing.IsEnabled; - string _invocationId = null; - if (_shouldTrace) - { - _invocationId = Microsoft.Rest.ServiceClientTracing.NextInvocationId.ToString(); - System.Collections.Generic.Dictionary tracingParameters = new System.Collections.Generic.Dictionary(); - tracingParameters.Add("locationName", locationName); - tracingParameters.Add("maxresults", maxresults); - tracingParameters.Add("filter", filter); - - - tracingParameters.Add("cancellationToken", cancellationToken); - Microsoft.Rest.ServiceClientTracing.Enter(_invocationId, this, "ListSupportedCloudServiceSkus", tracingParameters); - } - // Construct URL - - var _baseUrl = this.Client.BaseUri.AbsoluteUri; - var _url = new System.Uri(new System.Uri(_baseUrl + (_baseUrl.EndsWith("/") ? "" : "/")), "subscriptions/{subscriptionId}/providers/Microsoft.Batch/locations/{locationName}/cloudServiceSkus").ToString(); - _url = _url.Replace("{locationName}", System.Uri.EscapeDataString(locationName)); - _url = _url.Replace("{subscriptionId}", System.Uri.EscapeDataString(this.Client.SubscriptionId)); - - System.Collections.Generic.List _queryParameters = new System.Collections.Generic.List(); - if (maxresults != null) - { - _queryParameters.Add(string.Format("maxresults={0}", System.Uri.EscapeDataString(Microsoft.Rest.Serialization.SafeJsonConvert.SerializeObject(maxresults, this.Client.SerializationSettings).Trim('"')))); - } - if (filter != null) - { - _queryParameters.Add(string.Format("$filter={0}", System.Uri.EscapeDataString(filter))); - } - if (this.Client.ApiVersion != null) - { - _queryParameters.Add(string.Format("api-version={0}", System.Uri.EscapeDataString(this.Client.ApiVersion))); - } - if (_queryParameters.Count > 0) - { - _url += (_url.Contains("?") ? "&" : "?") + string.Join("&", _queryParameters); - } - // Create HTTP transport objects - var _httpRequest = new System.Net.Http.HttpRequestMessage(); - System.Net.Http.HttpResponseMessage _httpResponse = null; - _httpRequest.Method = new System.Net.Http.HttpMethod("GET"); - _httpRequest.RequestUri = new System.Uri(_url); - // Set Headers - if (this.Client.GenerateClientRequestId != null && this.Client.GenerateClientRequestId.Value) - { - _httpRequest.Headers.TryAddWithoutValidation("x-ms-client-request-id", System.Guid.NewGuid().ToString()); - } - if (this.Client.AcceptLanguage != null) - { - if (_httpRequest.Headers.Contains("accept-language")) - { - _httpRequest.Headers.Remove("accept-language"); - } - _httpRequest.Headers.TryAddWithoutValidation("accept-language", this.Client.AcceptLanguage); - } - - if (customHeaders != null) - { - foreach(var _header in customHeaders) - { - if (_httpRequest.Headers.Contains(_header.Key)) - { - _httpRequest.Headers.Remove(_header.Key); - } - _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); - } - } - // Serialize Request - string _requestContent = null; - // Set Credentials - if (this.Client.Credentials != null) - { - cancellationToken.ThrowIfCancellationRequested(); - await this.Client.Credentials.ProcessHttpRequestAsync(_httpRequest, cancellationToken).ConfigureAwait(false); - } - // Send Request - if (_shouldTrace) - { - Microsoft.Rest.ServiceClientTracing.SendRequest(_invocationId, _httpRequest); - } - cancellationToken.ThrowIfCancellationRequested(); - _httpResponse = await this.Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); - if (_shouldTrace) - { - Microsoft.Rest.ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); - } - - System.Net.HttpStatusCode _statusCode = _httpResponse.StatusCode; - cancellationToken.ThrowIfCancellationRequested(); - string _responseContent = null; - - if ((int)_statusCode != 200) - { - var ex = new Microsoft.Rest.Azure.CloudException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); - try - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - CloudError _errorBody = Microsoft.Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, this.Client.DeserializationSettings); - if (_errorBody != null) - { - ex = new Microsoft.Rest.Azure.CloudException(_errorBody.Message); - ex.Body = _errorBody; - } - } - catch (Newtonsoft.Json.JsonException) - { - // Ignore the exception - } - ex.Request = new Microsoft.Rest.HttpRequestMessageWrapper(_httpRequest, _requestContent); - ex.Response = new Microsoft.Rest.HttpResponseMessageWrapper(_httpResponse, _responseContent); - if (_httpResponse.Headers.Contains("x-ms-request-id")) - { - ex.RequestId = _httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault(); - } - if (_shouldTrace) - { - Microsoft.Rest.ServiceClientTracing.Error(_invocationId, ex); - } - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw ex; - } - // Create Result - var _result = new Microsoft.Rest.Azure.AzureOperationResponse>(); - _result.Request = _httpRequest; - _result.Response = _httpResponse; - - if (_httpResponse.Headers.Contains("x-ms-request-id")) - { - _result.RequestId = _httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault(); - } - // Deserialize Response - if ((int)_statusCode == 200) - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - try - { - _result.Body = Microsoft.Rest.Serialization.SafeJsonConvert.DeserializeObject>(_responseContent, this.Client.DeserializationSettings); - } - catch (Newtonsoft.Json.JsonException ex) - { - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw new Microsoft.Rest.SerializationException("Unable to deserialize the response.", _responseContent, ex); - } - } - if (_shouldTrace) - { - Microsoft.Rest.ServiceClientTracing.Exit(_invocationId, _result); - } - return _result; - - - - - } /// /// Checks whether the Batch account name is available in the specified region. @@ -1086,189 +864,6 @@ internal LocationOperations (BatchManagementClient client) - } - /// - /// Gets the list of Batch supported Cloud Service VM sizes available at the - /// given location. - /// - /// - /// The NextLink from the previous successful call to List operation. - /// - /// - /// Headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when unable to deserialize the response - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// A response object containing the response body and response headers. - /// - public async System.Threading.Tasks.Task>> ListSupportedCloudServiceSkusNextWithHttpMessagesAsync(string nextPageLink, System.Collections.Generic.Dictionary> customHeaders = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) - { - - if (nextPageLink == null) - { - throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.CannotBeNull, "nextPageLink"); - } - // Tracing - bool _shouldTrace = Microsoft.Rest.ServiceClientTracing.IsEnabled; - string _invocationId = null; - if (_shouldTrace) - { - _invocationId = Microsoft.Rest.ServiceClientTracing.NextInvocationId.ToString(); - System.Collections.Generic.Dictionary tracingParameters = new System.Collections.Generic.Dictionary(); - tracingParameters.Add("nextPageLink", nextPageLink); - - - tracingParameters.Add("cancellationToken", cancellationToken); - Microsoft.Rest.ServiceClientTracing.Enter(_invocationId, this, "ListSupportedCloudServiceSkusNext", tracingParameters); - } - // Construct URL - string _url = "{nextLink}"; - _url = _url.Replace("{nextLink}", nextPageLink); - - System.Collections.Generic.List _queryParameters = new System.Collections.Generic.List(); - if (_queryParameters.Count > 0) - { - _url += (_url.Contains("?") ? "&" : "?") + string.Join("&", _queryParameters); - } - // Create HTTP transport objects - var _httpRequest = new System.Net.Http.HttpRequestMessage(); - System.Net.Http.HttpResponseMessage _httpResponse = null; - _httpRequest.Method = new System.Net.Http.HttpMethod("GET"); - _httpRequest.RequestUri = new System.Uri(_url); - // Set Headers - if (this.Client.GenerateClientRequestId != null && this.Client.GenerateClientRequestId.Value) - { - _httpRequest.Headers.TryAddWithoutValidation("x-ms-client-request-id", System.Guid.NewGuid().ToString()); - } - if (this.Client.AcceptLanguage != null) - { - if (_httpRequest.Headers.Contains("accept-language")) - { - _httpRequest.Headers.Remove("accept-language"); - } - _httpRequest.Headers.TryAddWithoutValidation("accept-language", this.Client.AcceptLanguage); - } - - if (customHeaders != null) - { - foreach(var _header in customHeaders) - { - if (_httpRequest.Headers.Contains(_header.Key)) - { - _httpRequest.Headers.Remove(_header.Key); - } - _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); - } - } - // Serialize Request - string _requestContent = null; - // Set Credentials - if (this.Client.Credentials != null) - { - cancellationToken.ThrowIfCancellationRequested(); - await this.Client.Credentials.ProcessHttpRequestAsync(_httpRequest, cancellationToken).ConfigureAwait(false); - } - // Send Request - if (_shouldTrace) - { - Microsoft.Rest.ServiceClientTracing.SendRequest(_invocationId, _httpRequest); - } - cancellationToken.ThrowIfCancellationRequested(); - _httpResponse = await this.Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); - if (_shouldTrace) - { - Microsoft.Rest.ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); - } - - System.Net.HttpStatusCode _statusCode = _httpResponse.StatusCode; - cancellationToken.ThrowIfCancellationRequested(); - string _responseContent = null; - - if ((int)_statusCode != 200) - { - var ex = new Microsoft.Rest.Azure.CloudException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); - try - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - CloudError _errorBody = Microsoft.Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, this.Client.DeserializationSettings); - if (_errorBody != null) - { - ex = new Microsoft.Rest.Azure.CloudException(_errorBody.Message); - ex.Body = _errorBody; - } - } - catch (Newtonsoft.Json.JsonException) - { - // Ignore the exception - } - ex.Request = new Microsoft.Rest.HttpRequestMessageWrapper(_httpRequest, _requestContent); - ex.Response = new Microsoft.Rest.HttpResponseMessageWrapper(_httpResponse, _responseContent); - if (_httpResponse.Headers.Contains("x-ms-request-id")) - { - ex.RequestId = _httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault(); - } - if (_shouldTrace) - { - Microsoft.Rest.ServiceClientTracing.Error(_invocationId, ex); - } - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw ex; - } - // Create Result - var _result = new Microsoft.Rest.Azure.AzureOperationResponse>(); - _result.Request = _httpRequest; - _result.Response = _httpResponse; - - if (_httpResponse.Headers.Contains("x-ms-request-id")) - { - _result.RequestId = _httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault(); - } - // Deserialize Response - if ((int)_statusCode == 200) - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - try - { - _result.Body = Microsoft.Rest.Serialization.SafeJsonConvert.DeserializeObject>(_responseContent, this.Client.DeserializationSettings); - } - catch (Newtonsoft.Json.JsonException ex) - { - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw new Microsoft.Rest.SerializationException("Unable to deserialize the response.", _responseContent, ex); - } - } - if (_shouldTrace) - { - Microsoft.Rest.ServiceClientTracing.Exit(_invocationId, _result); - } - return _result; - - - - - } } } \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/LocationOperationsExtensions.cs b/src/Batch/Batch.Management.Sdk/Generated/LocationOperationsExtensions.cs index 0d664da956bc..34fb2c6e958c 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/LocationOperationsExtensions.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/LocationOperationsExtensions.cs @@ -95,53 +95,6 @@ public static BatchLocationQuota GetQuotas(this ILocationOperations operations, } } /// - /// Gets the list of Batch supported Cloud Service VM sizes available at the - /// given location. - /// - /// - /// The operations group for this extension method. - /// - /// - /// The region for which to retrieve Batch service supported SKUs. - /// - /// - /// The maximum number of items to return in the response. - /// - /// - /// OData filter expression. Valid properties for filtering are "familyName". - /// - public static Microsoft.Rest.Azure.IPage ListSupportedCloudServiceSkus(this ILocationOperations operations, string locationName, int? maxresults = default(int?), string filter = default(string)) - { - return ((ILocationOperations)operations).ListSupportedCloudServiceSkusAsync(locationName, maxresults, filter).GetAwaiter().GetResult(); - } - - /// - /// Gets the list of Batch supported Cloud Service VM sizes available at the - /// given location. - /// - /// - /// The operations group for this extension method. - /// - /// - /// The region for which to retrieve Batch service supported SKUs. - /// - /// - /// The maximum number of items to return in the response. - /// - /// - /// OData filter expression. Valid properties for filtering are "familyName". - /// - /// - /// The cancellation token. - /// - public static async System.Threading.Tasks.Task> ListSupportedCloudServiceSkusAsync(this ILocationOperations operations, string locationName, int? maxresults = default(int?), string filter = default(string), System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) - { - using (var _result = await operations.ListSupportedCloudServiceSkusWithHttpMessagesAsync(locationName, maxresults, filter, null, cancellationToken).ConfigureAwait(false)) - { - return _result.Body; - } - } - /// /// Checks whether the Batch account name is available in the specified region. /// /// @@ -209,40 +162,5 @@ public static Microsoft.Rest.Azure.IPage ListSupportedVirtualMachi return _result.Body; } } - /// - /// Gets the list of Batch supported Cloud Service VM sizes available at the - /// given location. - /// - /// - /// The operations group for this extension method. - /// - /// - /// The NextLink from the previous successful call to List operation. - /// - public static Microsoft.Rest.Azure.IPage ListSupportedCloudServiceSkusNext(this ILocationOperations operations, string nextPageLink) - { - return ((ILocationOperations)operations).ListSupportedCloudServiceSkusNextAsync(nextPageLink).GetAwaiter().GetResult(); - } - - /// - /// Gets the list of Batch supported Cloud Service VM sizes available at the - /// given location. - /// - /// - /// The operations group for this extension method. - /// - /// - /// The NextLink from the previous successful call to List operation. - /// - /// - /// The cancellation token. - /// - public static async System.Threading.Tasks.Task> ListSupportedCloudServiceSkusNextAsync(this ILocationOperations operations, string nextPageLink, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) - { - using (var _result = await operations.ListSupportedCloudServiceSkusNextWithHttpMessagesAsync(nextPageLink, null, cancellationToken).ConfigureAwait(false)) - { - return _result.Body; - } - } } } diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/AccessRule.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/AccessRule.cs new file mode 100644 index 000000000000..c20cab9a1ffa --- /dev/null +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/AccessRule.cs @@ -0,0 +1,58 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.Management.Batch.Models +{ + using System.Linq; + + /// + /// Access rule in a network security perimeter configuration profile + /// + public partial class AccessRule + { + /// + /// Initializes a new instance of the AccessRule class. + /// + public AccessRule() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the AccessRule class. + /// + + /// Name of the access rule + /// + + /// Properties of Access Rule + /// + public AccessRule(string name = default(string), AccessRuleProperties properties = default(AccessRuleProperties)) + + { + this.Name = name; + this.Properties = properties; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + + /// + /// Gets or sets name of the access rule + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "name")] + public string Name {get; set; } + + /// + /// Gets or sets properties of Access Rule + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "properties")] + public AccessRuleProperties Properties {get; set; } + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/AccessRuleDirection.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/AccessRuleDirection.cs new file mode 100644 index 000000000000..4b8ae08415fb --- /dev/null +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/AccessRuleDirection.cs @@ -0,0 +1,25 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.Management.Batch.Models +{ + + /// + /// Defines values for AccessRuleDirection. + /// + + + public static class AccessRuleDirection + { + /// + /// Applies to inbound network traffic to the secured resources. + /// + public const string Inbound = "Inbound"; + /// + /// Applies to outbound network traffic from the secured resources + /// + public const string Outbound = "Outbound"; + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/AccessRuleProperties.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/AccessRuleProperties.cs new file mode 100644 index 000000000000..b3ab0cd63661 --- /dev/null +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/AccessRuleProperties.cs @@ -0,0 +1,108 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.Management.Batch.Models +{ + using System.Linq; + + /// + /// Properties of Access Rule + /// + public partial class AccessRuleProperties + { + /// + /// Initializes a new instance of the AccessRuleProperties class. + /// + public AccessRuleProperties() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the AccessRuleProperties class. + /// + + /// Direction of Access Rule + /// Possible values include: 'Inbound', 'Outbound' + + /// Address prefixes in the CIDR format for inbound rules + /// + + /// Subscriptions for inbound rules + /// + + /// Network security perimeters for inbound rules + /// + + /// Fully qualified domain names (FQDN) for outbound rules + /// + + /// Email addresses for outbound rules + /// + + /// Phone numbers for outbound rules + /// + public AccessRuleProperties(string direction = default(string), System.Collections.Generic.IList addressPrefixes = default(System.Collections.Generic.IList), System.Collections.Generic.IList subscriptions = default(System.Collections.Generic.IList), System.Collections.Generic.IList networkSecurityPerimeters = default(System.Collections.Generic.IList), System.Collections.Generic.IList fullyQualifiedDomainNames = default(System.Collections.Generic.IList), System.Collections.Generic.IList emailAddresses = default(System.Collections.Generic.IList), System.Collections.Generic.IList phoneNumbers = default(System.Collections.Generic.IList)) + + { + this.Direction = direction; + this.AddressPrefixes = addressPrefixes; + this.Subscriptions = subscriptions; + this.NetworkSecurityPerimeters = networkSecurityPerimeters; + this.FullyQualifiedDomainNames = fullyQualifiedDomainNames; + this.EmailAddresses = emailAddresses; + this.PhoneNumbers = phoneNumbers; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + + /// + /// Gets or sets direction of Access Rule Possible values include: 'Inbound', 'Outbound' + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "direction")] + public string Direction {get; set; } + + /// + /// Gets or sets address prefixes in the CIDR format for inbound rules + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "addressPrefixes")] + public System.Collections.Generic.IList AddressPrefixes {get; set; } + + /// + /// Gets or sets subscriptions for inbound rules + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "subscriptions")] + public System.Collections.Generic.IList Subscriptions {get; set; } + + /// + /// Gets or sets network security perimeters for inbound rules + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "networkSecurityPerimeters")] + public System.Collections.Generic.IList NetworkSecurityPerimeters {get; set; } + + /// + /// Gets or sets fully qualified domain names (FQDN) for outbound rules + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "fullyQualifiedDomainNames")] + public System.Collections.Generic.IList FullyQualifiedDomainNames {get; set; } + + /// + /// Gets or sets email addresses for outbound rules + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "emailAddresses")] + public System.Collections.Generic.IList EmailAddresses {get; set; } + + /// + /// Gets or sets phone numbers for outbound rules + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "phoneNumbers")] + public System.Collections.Generic.IList PhoneNumbers {get; set; } + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/AccessRulePropertiesSubscriptionsItem.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/AccessRulePropertiesSubscriptionsItem.cs new file mode 100644 index 000000000000..eea37adc4545 --- /dev/null +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/AccessRulePropertiesSubscriptionsItem.cs @@ -0,0 +1,50 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.Management.Batch.Models +{ + using System.Linq; + + /// + /// Subscription identifiers + /// + public partial class AccessRulePropertiesSubscriptionsItem + { + /// + /// Initializes a new instance of the AccessRulePropertiesSubscriptionsItem class. + /// + public AccessRulePropertiesSubscriptionsItem() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the AccessRulePropertiesSubscriptionsItem class. + /// + + /// The fully qualified Azure resource ID of the subscription e.g. + /// ('/subscriptions/00000000-0000-0000-0000-000000000000') + /// + public AccessRulePropertiesSubscriptionsItem(string id = default(string)) + + { + this.Id = id; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + + /// + /// Gets or sets the fully qualified Azure resource ID of the subscription e.g. + /// ('/subscriptions/00000000-0000-0000-0000-000000000000') + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "id")] + public string Id {get; set; } + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/Application.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/Application.cs index 0ce1fc8ab1e7..3bf992b1f1d5 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/Application.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/Application.cs @@ -11,7 +11,7 @@ namespace Microsoft.Azure.Management.Batch.Models /// Contains information about an application in a Batch account. /// [Microsoft.Rest.Serialization.JsonTransformation] - public partial class Application : ProxyResource + public partial class Application : AzureProxyResource { /// /// Initializes a new instance of the Application class. @@ -37,6 +37,9 @@ public Application() /// The ETag of the resource, used for concurrency statements. /// + /// The tags of the resource. + /// + /// The display name for the application. /// @@ -48,9 +51,9 @@ public Application() /// specify a version. This property can only be set to the name of an existing /// package. /// - public Application(string id = default(string), string name = default(string), string type = default(string), string etag = default(string), string displayName = default(string), bool? allowUpdates = default(bool?), string defaultVersion = default(string)) + public Application(string id = default(string), string name = default(string), string type = default(string), string etag = default(string), System.Collections.Generic.IDictionary tags = default(System.Collections.Generic.IDictionary), string displayName = default(string), bool? allowUpdates = default(bool?), string defaultVersion = default(string)) - : base(id, name, type, etag) + : base(id, name, type, etag, tags) { this.DisplayName = displayName; this.AllowUpdates = allowUpdates; diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/ApplicationPackage.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/ApplicationPackage.cs index 4232032b173c..b2479702cfd9 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/ApplicationPackage.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/ApplicationPackage.cs @@ -12,7 +12,7 @@ namespace Microsoft.Azure.Management.Batch.Models /// application. /// [Microsoft.Rest.Serialization.JsonTransformation] - public partial class ApplicationPackage : ProxyResource + public partial class ApplicationPackage : AzureProxyResource { /// /// Initializes a new instance of the ApplicationPackage class. @@ -38,6 +38,9 @@ public ApplicationPackage() /// The ETag of the resource, used for concurrency statements. /// + /// The tags of the resource. + /// + /// The current state of the application package. /// Possible values include: 'Pending', 'Active' @@ -52,9 +55,9 @@ public ApplicationPackage() /// The time at which the package was last activated, if the package is active. /// - public ApplicationPackage(string id = default(string), string name = default(string), string type = default(string), string etag = default(string), PackageState? state = default(PackageState?), string format = default(string), string storageUrl = default(string), System.DateTime? storageUrlExpiry = default(System.DateTime?), System.DateTime? lastActivationTime = default(System.DateTime?)) + public ApplicationPackage(string id = default(string), string name = default(string), string type = default(string), string etag = default(string), System.Collections.Generic.IDictionary tags = default(System.Collections.Generic.IDictionary), PackageState? state = default(PackageState?), string format = default(string), string storageUrl = default(string), System.DateTime? storageUrlExpiry = default(System.DateTime?), System.DateTime? lastActivationTime = default(System.DateTime?)) - : base(id, name, type, etag) + : base(id, name, type, etag, tags) { this.State = state; this.Format = format; diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/AutomaticOSUpgradePolicy.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/AutomaticOSUpgradePolicy.cs index e556bdc42eed..123c638629e5 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/AutomaticOSUpgradePolicy.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/AutomaticOSUpgradePolicy.cs @@ -30,7 +30,7 @@ public AutomaticOSUpgradePolicy() /// Indicates whether OS upgrades should automatically be applied to scale set /// instances in a rolling fashion when a newer version of the OS image becomes /// available. <br /><br /> If this is set to true for Windows based pools, - /// [WindowsConfiguration.enableAutomaticUpdates](https://learn.microsoft.com/en-us/rest/api/batchmanagement/pool/create?tabs=HTTP#windowsconfiguration) + /// [WindowsConfiguration.enableAutomaticUpdates](https://learn.microsoft.com/rest/api/batchmanagement/pool/create?tabs=HTTP#windowsconfiguration) /// cannot be set to true. /// @@ -68,7 +68,7 @@ public AutomaticOSUpgradePolicy() /// to scale set instances in a rolling fashion when a newer version of the OS /// image becomes available. <br /><br /> If this is set to true for Windows /// based pools, - /// [WindowsConfiguration.enableAutomaticUpdates](https://learn.microsoft.com/en-us/rest/api/batchmanagement/pool/create?tabs=HTTP#windowsconfiguration) + /// [WindowsConfiguration.enableAutomaticUpdates](https://learn.microsoft.com/rest/api/batchmanagement/pool/create?tabs=HTTP#windowsconfiguration) /// cannot be set to true. /// [Newtonsoft.Json.JsonProperty(PropertyName = "enableAutomaticOSUpgrade")] diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/AzureProxyResource.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/AzureProxyResource.cs new file mode 100644 index 000000000000..0fa2913c89be --- /dev/null +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/AzureProxyResource.cs @@ -0,0 +1,88 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.Management.Batch.Models +{ + using System.Linq; + + /// + /// A definition of an Azure resource. + /// + public partial class AzureProxyResource : Microsoft.Rest.Azure.IResource + { + /// + /// Initializes a new instance of the AzureProxyResource class. + /// + public AzureProxyResource() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the AzureProxyResource class. + /// + + /// The ID of the resource. + /// + + /// The name of the resource. + /// + + /// The type of the resource. + /// + + /// The ETag of the resource, used for concurrency statements. + /// + + /// The tags of the resource. + /// + public AzureProxyResource(string id = default(string), string name = default(string), string type = default(string), string etag = default(string), System.Collections.Generic.IDictionary tags = default(System.Collections.Generic.IDictionary)) + + { + this.Id = id; + this.Name = name; + this.Type = type; + this.Etag = etag; + this.Tags = tags; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + + /// + /// Gets the ID of the resource. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "id")] + public string Id {get; private set; } + + /// + /// Gets the name of the resource. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "name")] + public string Name {get; private set; } + + /// + /// Gets the type of the resource. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "type")] + public string Type {get; private set; } + + /// + /// Gets the ETag of the resource, used for concurrency statements. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "etag")] + public string Etag {get; private set; } + + /// + /// Gets or sets the tags of the resource. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "tags")] + public System.Collections.Generic.IDictionary Tags {get; set; } + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/AzureResource.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/AzureResource.cs new file mode 100644 index 000000000000..14d6861ac366 --- /dev/null +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/AzureResource.cs @@ -0,0 +1,88 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.Management.Batch.Models +{ + using System.Linq; + + /// + /// A definition of an Azure resource. + /// + public partial class AzureResource : Microsoft.Rest.Azure.IResource + { + /// + /// Initializes a new instance of the AzureResource class. + /// + public AzureResource() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the AzureResource class. + /// + + /// The ID of the resource. + /// + + /// The name of the resource. + /// + + /// The type of the resource. + /// + + /// The location of the resource. + /// + + /// The tags of the resource. + /// + public AzureResource(string id = default(string), string name = default(string), string type = default(string), string location = default(string), System.Collections.Generic.IDictionary tags = default(System.Collections.Generic.IDictionary)) + + { + this.Id = id; + this.Name = name; + this.Type = type; + this.Location = location; + this.Tags = tags; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + + /// + /// Gets the ID of the resource. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "id")] + public string Id {get; private set; } + + /// + /// Gets the name of the resource. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "name")] + public string Name {get; private set; } + + /// + /// Gets the type of the resource. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "type")] + public string Type {get; private set; } + + /// + /// Gets the location of the resource. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "location")] + public string Location {get; private set; } + + /// + /// Gets the tags of the resource. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "tags")] + public System.Collections.Generic.IDictionary Tags {get; private set; } + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/BatchAccount.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/BatchAccount.cs index 5b7157cd85c4..06c40549dfae 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/BatchAccount.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/BatchAccount.cs @@ -11,7 +11,7 @@ namespace Microsoft.Azure.Management.Batch.Models /// Contains information about an Azure Batch account. /// [Microsoft.Rest.Serialization.JsonTransformation] - public partial class BatchAccount : Resource + public partial class BatchAccount : AzureResource { /// /// Initializes a new instance of the BatchAccount class. @@ -64,7 +64,7 @@ public BatchAccount() /// /// If not specified, the default value is 'enabled'. - /// Possible values include: 'Enabled', 'Disabled' + /// Possible values include: 'Enabled', 'Disabled', 'SecuredByPerimeter' /// List of private endpoint connections associated with the Batch account /// @@ -184,7 +184,7 @@ public BatchAccount() public KeyVaultReference KeyVaultReference {get; private set; } /// - /// Gets or sets if not specified, the default value is 'enabled'. Possible values include: 'Enabled', 'Disabled' + /// Gets or sets if not specified, the default value is 'enabled'. Possible values include: 'Enabled', 'Disabled', 'SecuredByPerimeter' /// [Newtonsoft.Json.JsonProperty(PropertyName = "properties.publicNetworkAccess")] public PublicNetworkAccessType? PublicNetworkAccess {get; set; } diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/BatchAccountCreateParameters.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/BatchAccountCreateParameters.cs index 96694e1519fb..98849e001f31 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/BatchAccountCreateParameters.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/BatchAccountCreateParameters.cs @@ -50,7 +50,7 @@ public BatchAccountCreateParameters() /// /// If not specified, the default value is 'enabled'. - /// Possible values include: 'Enabled', 'Disabled' + /// Possible values include: 'Enabled', 'Disabled', 'SecuredByPerimeter' /// Configures how customer data is encrypted inside the Batch account. By /// default, accounts are encrypted using a Microsoft managed key. For @@ -132,7 +132,7 @@ public BatchAccountCreateParameters() public KeyVaultReference KeyVaultReference {get; set; } /// - /// Gets or sets if not specified, the default value is 'enabled'. Possible values include: 'Enabled', 'Disabled' + /// Gets or sets if not specified, the default value is 'enabled'. Possible values include: 'Enabled', 'Disabled', 'SecuredByPerimeter' /// [Newtonsoft.Json.JsonProperty(PropertyName = "properties.publicNetworkAccess")] public PublicNetworkAccessType? PublicNetworkAccess {get; set; } diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/BatchAccountCreateProperties.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/BatchAccountCreateProperties.cs index c15d7a2bec1d..69cbdf0e6ce6 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/BatchAccountCreateProperties.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/BatchAccountCreateProperties.cs @@ -37,7 +37,7 @@ public BatchAccountCreateProperties() /// /// If not specified, the default value is 'enabled'. - /// Possible values include: 'Enabled', 'Disabled' + /// Possible values include: 'Enabled', 'Disabled', 'SecuredByPerimeter' /// The network profile only takes effect when publicNetworkAccess is enabled. /// @@ -94,7 +94,7 @@ public BatchAccountCreateProperties() public KeyVaultReference KeyVaultReference {get; set; } /// - /// Gets or sets if not specified, the default value is 'enabled'. Possible values include: 'Enabled', 'Disabled' + /// Gets or sets if not specified, the default value is 'enabled'. Possible values include: 'Enabled', 'Disabled', 'SecuredByPerimeter' /// [Newtonsoft.Json.JsonProperty(PropertyName = "publicNetworkAccess")] public PublicNetworkAccessType? PublicNetworkAccess {get; set; } diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/BatchAccountProperties.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/BatchAccountProperties.cs index 513e40d74b8b..249e66e4ba98 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/BatchAccountProperties.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/BatchAccountProperties.cs @@ -42,7 +42,7 @@ public BatchAccountProperties() /// /// If not specified, the default value is 'enabled'. - /// Possible values include: 'Enabled', 'Disabled' + /// Possible values include: 'Enabled', 'Disabled', 'SecuredByPerimeter' /// The network profile only takes effect when publicNetworkAccess is enabled. /// @@ -150,7 +150,7 @@ public BatchAccountProperties() public KeyVaultReference KeyVaultReference {get; private set; } /// - /// Gets or sets if not specified, the default value is 'enabled'. Possible values include: 'Enabled', 'Disabled' + /// Gets or sets if not specified, the default value is 'enabled'. Possible values include: 'Enabled', 'Disabled', 'SecuredByPerimeter' /// [Newtonsoft.Json.JsonProperty(PropertyName = "publicNetworkAccess")] public PublicNetworkAccessType? PublicNetworkAccess {get; set; } diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/BatchAccountUpdateParameters.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/BatchAccountUpdateParameters.cs index 9ee28dbdaa03..aa51742f814c 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/BatchAccountUpdateParameters.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/BatchAccountUpdateParameters.cs @@ -48,7 +48,7 @@ public BatchAccountUpdateParameters() /// /// If not specified, the default value is 'enabled'. - /// Possible values include: 'Enabled', 'Disabled' + /// Possible values include: 'Enabled', 'Disabled', 'SecuredByPerimeter' public BatchAccountUpdateParameters(System.Collections.Generic.IDictionary tags = default(System.Collections.Generic.IDictionary), BatchAccountIdentity identity = default(BatchAccountIdentity), NetworkProfile networkProfile = default(NetworkProfile), AutoStorageBaseProperties autoStorage = default(AutoStorageBaseProperties), EncryptionProperties encryption = default(EncryptionProperties), System.Collections.Generic.IList allowedAuthenticationModes = default(System.Collections.Generic.IList), PublicNetworkAccessType? publicNetworkAccess = default(PublicNetworkAccessType?)) { @@ -110,7 +110,7 @@ public BatchAccountUpdateParameters() public System.Collections.Generic.IList AllowedAuthenticationModes {get; set; } /// - /// Gets or sets if not specified, the default value is 'enabled'. Possible values include: 'Enabled', 'Disabled' + /// Gets or sets if not specified, the default value is 'enabled'. Possible values include: 'Enabled', 'Disabled', 'SecuredByPerimeter' /// [Newtonsoft.Json.JsonProperty(PropertyName = "properties.publicNetworkAccess")] public PublicNetworkAccessType? PublicNetworkAccess {get; set; } diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/BatchAccountUpdateProperties.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/BatchAccountUpdateProperties.cs index 9e5f363926dc..eda5c11df711 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/BatchAccountUpdateProperties.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/BatchAccountUpdateProperties.cs @@ -38,7 +38,7 @@ public BatchAccountUpdateProperties() /// /// If not specified, the default value is 'enabled'. - /// Possible values include: 'Enabled', 'Disabled' + /// Possible values include: 'Enabled', 'Disabled', 'SecuredByPerimeter' /// The network profile only takes effect when publicNetworkAccess is enabled. /// @@ -82,7 +82,7 @@ public BatchAccountUpdateProperties() public System.Collections.Generic.IList AllowedAuthenticationModes {get; set; } /// - /// Gets or sets if not specified, the default value is 'enabled'. Possible values include: 'Enabled', 'Disabled' + /// Gets or sets if not specified, the default value is 'enabled'. Possible values include: 'Enabled', 'Disabled', 'SecuredByPerimeter' /// [Newtonsoft.Json.JsonProperty(PropertyName = "publicNetworkAccess")] public PublicNetworkAccessType? PublicNetworkAccess {get; set; } diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/Certificate.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/Certificate.cs index 8974dad97b76..3303a3657588 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/Certificate.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/Certificate.cs @@ -11,7 +11,7 @@ namespace Microsoft.Azure.Management.Batch.Models /// Contains information about a certificate. /// [Microsoft.Rest.Serialization.JsonTransformation] - public partial class Certificate : ProxyResource + public partial class Certificate : AzureProxyResource { /// /// Initializes a new instance of the Certificate class. @@ -37,6 +37,9 @@ public Certificate() /// The ETag of the resource, used for concurrency statements. /// + /// The tags of the resource. + /// + /// This must match the first portion of the certificate name. Currently /// required to be 'SHA1'. /// @@ -65,9 +68,9 @@ public Certificate() /// This is only returned when the certificate provisioningState is 'Failed'. /// - public Certificate(string id = default(string), string name = default(string), string type = default(string), string etag = default(string), string thumbprintAlgorithm = default(string), string thumbprint = default(string), CertificateFormat format = default(CertificateFormat), CertificateProvisioningState? provisioningState = default(CertificateProvisioningState?), System.DateTime? provisioningStateTransitionTime = default(System.DateTime?), CertificateProvisioningState? previousProvisioningState = default(CertificateProvisioningState?), System.DateTime? previousProvisioningStateTransitionTime = default(System.DateTime?), string publicData = default(string), DeleteCertificateError deleteCertificateError = default(DeleteCertificateError)) + public Certificate(string id = default(string), string name = default(string), string type = default(string), string etag = default(string), System.Collections.Generic.IDictionary tags = default(System.Collections.Generic.IDictionary), string thumbprintAlgorithm = default(string), string thumbprint = default(string), CertificateFormat format = default(CertificateFormat), CertificateProvisioningState? provisioningState = default(CertificateProvisioningState?), System.DateTime? provisioningStateTransitionTime = default(System.DateTime?), CertificateProvisioningState? previousProvisioningState = default(CertificateProvisioningState?), System.DateTime? previousProvisioningStateTransitionTime = default(System.DateTime?), string publicData = default(string), DeleteCertificateError deleteCertificateError = default(DeleteCertificateError)) - : base(id, name, type, etag) + : base(id, name, type, etag, tags) { this.ThumbprintAlgorithm = thumbprintAlgorithm; this.Thumbprint = thumbprint; diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/CertificateCreateOrUpdateParameters.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/CertificateCreateOrUpdateParameters.cs index da14eb6115ed..2412e603fe41 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/CertificateCreateOrUpdateParameters.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/CertificateCreateOrUpdateParameters.cs @@ -11,7 +11,7 @@ namespace Microsoft.Azure.Management.Batch.Models /// Contains information about a certificate. /// [Microsoft.Rest.Serialization.JsonTransformation] - public partial class CertificateCreateOrUpdateParameters : ProxyResource + public partial class CertificateCreateOrUpdateParameters : AzureProxyResource { /// /// Initializes a new instance of the CertificateCreateOrUpdateParameters class. @@ -37,6 +37,9 @@ public CertificateCreateOrUpdateParameters() /// The ETag of the resource, used for concurrency statements. /// + /// The tags of the resource. + /// + /// This must match the first portion of the certificate name. Currently /// required to be 'SHA1'. /// @@ -53,9 +56,9 @@ public CertificateCreateOrUpdateParameters() /// This must not be specified if the certificate format is Cer. /// - public CertificateCreateOrUpdateParameters(string id = default(string), string name = default(string), string type = default(string), string etag = default(string), string thumbprintAlgorithm = default(string), string thumbprint = default(string), CertificateFormat format = default(CertificateFormat), string data = default(string), string password = default(string)) + public CertificateCreateOrUpdateParameters(string id = default(string), string name = default(string), string type = default(string), string etag = default(string), System.Collections.Generic.IDictionary tags = default(System.Collections.Generic.IDictionary), string thumbprintAlgorithm = default(string), string thumbprint = default(string), CertificateFormat format = default(CertificateFormat), string data = default(string), string password = default(string)) - : base(id, name, type, etag) + : base(id, name, type, etag, tags) { this.ThumbprintAlgorithm = thumbprintAlgorithm; this.Thumbprint = thumbprint; diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/CertificateReference.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/CertificateReference.cs index c7a713bb6250..13a22682858d 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/CertificateReference.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/CertificateReference.cs @@ -38,22 +38,19 @@ public CertificateReference() /// /// The default value is currentUser. This property is applicable only for - /// pools configured with Windows 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. + /// pools configured with Windows compute nodes. 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 include: 'CurrentUser', 'LocalMachine' - /// This property is applicable only for pools configured with Windows 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. + /// This property is applicable only for pools configured with Windows compute + /// nodes. 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. /// /// Which user accounts on the compute node should have access to the private @@ -84,25 +81,22 @@ public CertificateReference() /// /// Gets or sets the default value is currentUser. This property is applicable - /// only for pools configured with Windows 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 include: 'CurrentUser', 'LocalMachine' + /// only for pools configured with Windows compute nodes. 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 include: 'CurrentUser', 'LocalMachine' /// [Newtonsoft.Json.JsonProperty(PropertyName = "storeLocation")] public CertificateStoreLocation? StoreLocation {get; set; } /// /// Gets or sets this property is applicable only for pools configured with - /// Windows 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. + /// Windows compute nodes. 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. /// [Newtonsoft.Json.JsonProperty(PropertyName = "storeName")] public string StoreName {get; set; } diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/CloudServiceConfiguration.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/CloudServiceConfiguration.cs deleted file mode 100644 index 3d74c82058f7..000000000000 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/CloudServiceConfiguration.cs +++ /dev/null @@ -1,90 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for license information. -// Code generated by Microsoft (R) AutoRest Code Generator. -// Changes may cause incorrect behavior and will be lost if the code is regenerated. - -namespace Microsoft.Azure.Management.Batch.Models -{ - using System.Linq; - - /// - /// The configuration for nodes in a pool based on the Azure Cloud Services - /// platform. - /// - /// - /// The configuration for nodes in a pool based on the Azure Cloud Services - /// platform. - /// - public partial class CloudServiceConfiguration - { - /// - /// Initializes a new instance of the CloudServiceConfiguration class. - /// - public CloudServiceConfiguration() - { - CustomInit(); - } - - /// - /// Initializes a new instance of the CloudServiceConfiguration class. - /// - - /// Possible values are: 2 - OS Family 2, equivalent to Windows Server 2008 R2 - /// SP1. 3 - OS Family 3, equivalent to Windows Server 2012. 4 - OS Family 4, - /// equivalent to Windows Server 2012 R2. 5 - OS Family 5, equivalent to - /// Windows Server 2016. 6 - OS Family 6, equivalent to Windows Server 2019. - /// For more information, see Azure Guest OS Releases - /// (https://azure.microsoft.com/documentation/articles/cloud-services-guestos-update-matrix/#releases). - /// - - /// The default value is * which specifies the latest operating system version - /// for the specified OS family. - /// - public CloudServiceConfiguration(string osFamily, string osVersion = default(string)) - - { - this.OSFamily = osFamily; - this.OSVersion = osVersion; - CustomInit(); - } - - /// - /// An initialization method that performs custom operations like setting defaults - /// - partial void CustomInit(); - - - /// - /// Gets or sets possible values are: 2 - OS Family 2, equivalent to Windows - /// Server 2008 R2 SP1. 3 - OS Family 3, equivalent to Windows Server 2012. 4 - - /// OS Family 4, equivalent to Windows Server 2012 R2. 5 - OS Family 5, - /// equivalent to Windows Server 2016. 6 - OS Family 6, equivalent to Windows - /// Server 2019. For more information, see Azure Guest OS Releases - /// (https://azure.microsoft.com/documentation/articles/cloud-services-guestos-update-matrix/#releases). - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "osFamily")] - public string OSFamily {get; set; } - - /// - /// Gets or sets the default value is * which specifies the latest operating - /// system version for the specified OS family. - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "osVersion")] - public string OSVersion {get; set; } - /// - /// Validate the object. - /// - /// - /// Thrown if validation fails - /// - public virtual void Validate() - { - if (this.OSFamily == null) - { - throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.CannotBeNull, "OSFamily"); - } - - - } - } -} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/ComputeNodeDeallocationOption.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/ComputeNodeDeallocationOption.cs index 5e3a40cf5f68..4bfe87b541e7 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/ComputeNodeDeallocationOption.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/ComputeNodeDeallocationOption.cs @@ -35,9 +35,11 @@ public enum ComputeNodeDeallocationOption [System.Runtime.Serialization.EnumMember(Value = "TaskCompletion")] TaskCompletion, /// - /// Allow currently running tasks to complete, then wait for all task data - /// retention periods to expire. Schedule no new tasks while waiting. Remove - /// nodes when all task retention periods have expired. + /// Deprecated, we encourage you to upload task data to Azure Storage in your + /// task and use `TaskCompletion` instead. Allow currently running tasks to + /// complete, then wait for all task data retention periods to expire. Schedule + /// no new tasks while waiting. Remove nodes when all task retention periods + /// have expired. /// [System.Runtime.Serialization.EnumMember(Value = "RetainedData")] RetainedData diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/ContainerHostBatchBindMountEntry.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/ContainerHostBatchBindMountEntry.cs new file mode 100644 index 000000000000..13232061f856 --- /dev/null +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/ContainerHostBatchBindMountEntry.cs @@ -0,0 +1,69 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.Management.Batch.Models +{ + using System.Linq; + + /// + /// The entry of path and mount mode you want to mount into task container. + /// + /// + /// The entry of path and mount mode you want to mount into task container. + /// + public partial class ContainerHostBatchBindMountEntry + { + /// + /// Initializes a new instance of the ContainerHostBatchBindMountEntry class. + /// + public ContainerHostBatchBindMountEntry() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the ContainerHostBatchBindMountEntry class. + /// + + /// The paths which will be mounted to container task's container. + /// Possible values include: 'Shared', 'Startup', 'VfsMounts', 'Task', + /// 'JobPrep', 'Applications' + + /// For Linux, if you mount this path as a read/write mode, this does not mean + /// that all users in container have the read/write access for the path, it + /// depends on the access in host VM. If this path is mounted read-only, all + /// users within the container will not be able to modify the path. + /// + public ContainerHostBatchBindMountEntry(string source = default(string), bool? isReadOnly = default(bool?)) + + { + this.Source = source; + this.IsReadOnly = isReadOnly; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + + /// + /// Gets or sets the paths which will be mounted to container task's container. Possible values include: 'Shared', 'Startup', 'VfsMounts', 'Task', 'JobPrep', 'Applications' + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "source")] + public string Source {get; set; } + + /// + /// Gets or sets for Linux, if you mount this path as a read/write mode, this + /// does not mean that all users in container have the read/write access for + /// the path, it depends on the access in host VM. If this path is mounted + /// read-only, all users within the container will not be able to modify the + /// path. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "isReadOnly")] + public bool? IsReadOnly {get; set; } + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/ContainerHostDataPath.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/ContainerHostDataPath.cs new file mode 100644 index 000000000000..b8f1d77ef4f2 --- /dev/null +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/ContainerHostDataPath.cs @@ -0,0 +1,41 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.Management.Batch.Models +{ + + /// + /// Defines values for ContainerHostDataPath. + /// + + + public static class ContainerHostDataPath + { + /// + /// The path for multi-instances task to shared their files. + /// + public const string Shared = "Shared"; + /// + /// The path for start task. + /// + public const string Startup = "Startup"; + /// + /// The path contains all virtual file systems are mounted on this node. + /// + public const string VfsMounts = "VfsMounts"; + /// + /// The task path. + /// + public const string Task = "Task"; + /// + /// The job-prep task path. + /// + public const string JobPrep = "JobPrep"; + /// + /// The applications path. + /// + public const string Applications = "Applications"; + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/CreatedByType.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/CreatedByType.cs new file mode 100644 index 000000000000..8f6dd6d3652c --- /dev/null +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/CreatedByType.cs @@ -0,0 +1,21 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.Management.Batch.Models +{ + + /// + /// Defines values for CreatedByType. + /// + + + public static class CreatedByType + { + public const string User = "User"; + public const string Application = "Application"; + public const string ManagedIdentity = "ManagedIdentity"; + public const string Key = "Key"; + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/DeploymentConfiguration.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/DeploymentConfiguration.cs index 1f9b22e7fa58..8914f2b9eef5 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/DeploymentConfiguration.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/DeploymentConfiguration.cs @@ -27,19 +27,12 @@ public DeploymentConfiguration() /// Initializes a new instance of the DeploymentConfiguration class. /// - /// This property and virtualMachineConfiguration are mutually exclusive and - /// one of the properties must be specified. This property cannot be specified - /// if the Batch account was created with its poolAllocationMode property set - /// to 'UserSubscription'. + /// The configuration for compute nodes in a pool based on the Azure Virtual + /// Machines infrastructure. /// - - /// This property and cloudServiceConfiguration are mutually exclusive and one - /// of the properties must be specified. - /// - public DeploymentConfiguration(CloudServiceConfiguration cloudServiceConfiguration = default(CloudServiceConfiguration), VirtualMachineConfiguration virtualMachineConfiguration = default(VirtualMachineConfiguration)) + public DeploymentConfiguration(VirtualMachineConfiguration virtualMachineConfiguration = default(VirtualMachineConfiguration)) { - this.CloudServiceConfiguration = cloudServiceConfiguration; this.VirtualMachineConfiguration = virtualMachineConfiguration; CustomInit(); } @@ -51,17 +44,8 @@ public DeploymentConfiguration() /// - /// Gets or sets this property and virtualMachineConfiguration are mutually - /// exclusive and one of the properties must be specified. This property cannot - /// be specified if the Batch account was created with its poolAllocationMode - /// property set to 'UserSubscription'. - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "cloudServiceConfiguration")] - public CloudServiceConfiguration CloudServiceConfiguration {get; set; } - - /// - /// Gets or sets this property and cloudServiceConfiguration are mutually - /// exclusive and one of the properties must be specified. + /// Gets or sets the configuration for compute nodes in a pool based on the + /// Azure Virtual Machines infrastructure. /// [Newtonsoft.Json.JsonProperty(PropertyName = "virtualMachineConfiguration")] public VirtualMachineConfiguration VirtualMachineConfiguration {get; set; } @@ -73,10 +57,6 @@ public DeploymentConfiguration() /// public virtual void Validate() { - if (this.CloudServiceConfiguration != null) - { - this.CloudServiceConfiguration.Validate(); - } if (this.VirtualMachineConfiguration != null) { this.VirtualMachineConfiguration.Validate(); diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/DetectorResponse.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/DetectorResponse.cs index 6772c6ea28ca..92616c0abf5c 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/DetectorResponse.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/DetectorResponse.cs @@ -11,7 +11,7 @@ namespace Microsoft.Azure.Management.Batch.Models /// Contains the information for a detector. /// [Microsoft.Rest.Serialization.JsonTransformation] - public partial class DetectorResponse : ProxyResource + public partial class DetectorResponse : AzureProxyResource { /// /// Initializes a new instance of the DetectorResponse class. @@ -37,11 +37,14 @@ public DetectorResponse() /// The ETag of the resource, used for concurrency statements. /// + /// The tags of the resource. + /// + /// A base64 encoded string that represents the content of a detector. /// - public DetectorResponse(string id = default(string), string name = default(string), string type = default(string), string etag = default(string), string value = default(string)) + public DetectorResponse(string id = default(string), string name = default(string), string type = default(string), string etag = default(string), System.Collections.Generic.IDictionary tags = default(System.Collections.Generic.IDictionary), string value = default(string)) - : base(id, name, type, etag) + : base(id, name, type, etag, tags) { this.Value = value; CustomInit(); diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/DiffDiskSettings.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/DiffDiskSettings.cs index 3251404abfc8..99a23ebec160 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/DiffDiskSettings.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/DiffDiskSettings.cs @@ -34,9 +34,9 @@ public DiffDiskSettings() /// disk provisioning. For more information on Ephemeral OS disk size /// requirements, please refer to Ephemeral OS disk size requirements for /// Windows VMs at - /// https://docs.microsoft.com/en-us/azure/virtual-machines/windows/ephemeral-os-disks#size-requirements + /// https://learn.microsoft.com/azure/virtual-machines/windows/ephemeral-os-disks#size-requirements /// and Linux VMs at - /// https://docs.microsoft.com/en-us/azure/virtual-machines/linux/ephemeral-os-disks#size-requirements. + /// https://learn.microsoft.com/azure/virtual-machines/linux/ephemeral-os-disks#size-requirements. /// Possible values include: 'CacheDisk' public DiffDiskSettings(DiffDiskPlacement? placement = default(DiffDiskPlacement?)) @@ -57,9 +57,9 @@ public DiffDiskSettings() /// for Ephemeral OS disk provisioning. For more information on Ephemeral OS /// disk size requirements, please refer to Ephemeral OS disk size requirements /// for Windows VMs at - /// https://docs.microsoft.com/en-us/azure/virtual-machines/windows/ephemeral-os-disks#size-requirements + /// https://learn.microsoft.com/azure/virtual-machines/windows/ephemeral-os-disks#size-requirements /// and Linux VMs at - /// https://docs.microsoft.com/en-us/azure/virtual-machines/linux/ephemeral-os-disks#size-requirements. Possible values include: 'CacheDisk' + /// https://learn.microsoft.com/azure/virtual-machines/linux/ephemeral-os-disks#size-requirements. Possible values include: 'CacheDisk' /// [Newtonsoft.Json.JsonProperty(PropertyName = "placement")] public DiffDiskPlacement? Placement {get; set; } diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/ErrorAdditionalInfo.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/ErrorAdditionalInfo.cs new file mode 100644 index 000000000000..c03d84b6f03e --- /dev/null +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/ErrorAdditionalInfo.cs @@ -0,0 +1,58 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.Management.Batch.Models +{ + using System.Linq; + + /// + /// The resource management error additional info. + /// + public partial class ErrorAdditionalInfo + { + /// + /// Initializes a new instance of the ErrorAdditionalInfo class. + /// + public ErrorAdditionalInfo() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the ErrorAdditionalInfo class. + /// + + /// The additional info type. + /// + + /// The additional info. + /// + public ErrorAdditionalInfo(string type = default(string), object info = default(object)) + + { + this.Type = type; + this.Info = info; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + + /// + /// Gets the additional info type. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "type")] + public string Type {get; private set; } + + /// + /// Gets the additional info. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "info")] + public object Info {get; private set; } + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/ErrorDetail.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/ErrorDetail.cs new file mode 100644 index 000000000000..1e1e859e86f5 --- /dev/null +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/ErrorDetail.cs @@ -0,0 +1,88 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.Management.Batch.Models +{ + using System.Linq; + + /// + /// The error detail. + /// + public partial class ErrorDetail + { + /// + /// Initializes a new instance of the ErrorDetail class. + /// + public ErrorDetail() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the ErrorDetail class. + /// + + /// The error code. + /// + + /// The error message. + /// + + /// The error target. + /// + + /// The error details. + /// + + /// The error additional info. + /// + public ErrorDetail(string code = default(string), string message = default(string), string target = default(string), System.Collections.Generic.IList details = default(System.Collections.Generic.IList), System.Collections.Generic.IList additionalInfo = default(System.Collections.Generic.IList)) + + { + this.Code = code; + this.Message = message; + this.Target = target; + this.Details = details; + this.AdditionalInfo = additionalInfo; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + + /// + /// Gets the error code. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "code")] + public string Code {get; private set; } + + /// + /// Gets the error message. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "message")] + public string Message {get; private set; } + + /// + /// Gets the error target. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "target")] + public string Target {get; private set; } + + /// + /// Gets the error details. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "details")] + public System.Collections.Generic.IList Details {get; private set; } + + /// + /// Gets the error additional info. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "additionalInfo")] + public System.Collections.Generic.IList AdditionalInfo {get; private set; } + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/ErrorResponse.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/ErrorResponse.cs new file mode 100644 index 000000000000..d052775e919c --- /dev/null +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/ErrorResponse.cs @@ -0,0 +1,55 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.Management.Batch.Models +{ + using System.Linq; + + /// + /// Common error response for all Azure Resource Manager APIs to return error + /// details for failed operations. (This also follows the OData error response + /// format.). + /// + /// + /// Common error response for all Azure Resource Manager APIs to return error + /// details for failed operations. (This also follows the OData error response + /// format.). + /// + public partial class ErrorResponse + { + /// + /// Initializes a new instance of the ErrorResponse class. + /// + public ErrorResponse() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the ErrorResponse class. + /// + + /// The error object. + /// + public ErrorResponse(ErrorDetail error = default(ErrorDetail)) + + { + this.Error = error; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + + /// + /// Gets or sets the error object. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "error")] + public ErrorDetail Error {get; set; } + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/ErrorResponseException.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/ErrorResponseException.cs new file mode 100644 index 000000000000..7d1319007228 --- /dev/null +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/ErrorResponseException.cs @@ -0,0 +1,55 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.Management.Batch.Models +{ + + /// + /// Exception thrown for an invalid response with ErrorResponse information. + /// + public partial class ErrorResponseException : Microsoft.Rest.RestException + { + /// + /// Gets information about the associated HTTP request. + /// + public Microsoft.Rest.HttpRequestMessageWrapper Request { get; set; } + + /// + /// Gets information about the associated HTTP response. + /// + public Microsoft.Rest.HttpResponseMessageWrapper Response { get; set; } + + /// + /// Gets or sets the body object. + /// + public ErrorResponse Body { get; set; } + + /// + /// Initializes a new instance of the ErrorResponseException class. + /// + public ErrorResponseException() + { + } + + /// + /// Initializes a new instance of the ErrorResponse class. + /// + /// The exception message. + public ErrorResponseException(string message) + : this(message, null) + { + } + + /// + /// Initializes a new instance of the ErrorResponse class. + /// + /// The exception message. + /// Inner exception. + public ErrorResponseException(string message, System.Exception innerException) + : base(message, innerException) + { + } + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/ImageReference.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/ImageReference.cs index ee83eb043290..3b796bea11be 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/ImageReference.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/ImageReference.cs @@ -50,9 +50,17 @@ public ImageReference() /// Compute Gallery Image must have replicas in the same region as the Azure /// Batch account. For information about the firewall settings for the Batch /// node agent to communicate with the Batch service see - /// https://docs.microsoft.com/en-us/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration. + /// https://learn.microsoft.com/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration. /// - public ImageReference(string publisher = default(string), string offer = default(string), string sku = default(string), string version = default(string), string id = default(string)) + + /// This property is mutually exclusive with other properties and can be + /// fetched from shared gallery image GET call. + /// + + /// This property is mutually exclusive with other properties and can be + /// fetched from community gallery image GET call. + /// + public ImageReference(string publisher = default(string), string offer = default(string), string sku = default(string), string version = default(string), string id = default(string), string sharedGalleryImageId = default(string), string communityGalleryImageId = default(string)) { this.Publisher = publisher; @@ -60,6 +68,8 @@ public ImageReference() this.Sku = sku; this.Version = version; this.Id = id; + this.SharedGalleryImageId = sharedGalleryImageId; + this.CommunityGalleryImageId = communityGalleryImageId; CustomInit(); } @@ -99,9 +109,23 @@ public ImageReference() /// Azure Compute Gallery Image must have replicas in the same region as the /// Azure Batch account. For information about the firewall settings for the /// Batch node agent to communicate with the Batch service see - /// https://docs.microsoft.com/en-us/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration. + /// https://learn.microsoft.com/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration. /// [Newtonsoft.Json.JsonProperty(PropertyName = "id")] public string Id {get; set; } + + /// + /// Gets or sets this property is mutually exclusive with other properties and + /// can be fetched from shared gallery image GET call. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "sharedGalleryImageId")] + public string SharedGalleryImageId {get; set; } + + /// + /// Gets or sets this property is mutually exclusive with other properties and + /// can be fetched from community gallery image GET call. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "communityGalleryImageId")] + public string CommunityGalleryImageId {get; set; } } } \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/InboundNatPool.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/InboundNatPool.cs index 34d0340ab5bd..4523d48c9f21 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/InboundNatPool.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/InboundNatPool.cs @@ -40,9 +40,8 @@ public InboundNatPool() /// Possible values include: 'TCP', 'UDP' /// This must be unique within a Batch pool. Acceptable values are between 1 - /// and 65535 except for 22, 3389, 29876 and 29877 as these are reserved. If - /// any reserved values are provided the request fails with HTTP status code - /// 400. + /// and 65535 except for 29876 and 29877 as these are reserved. If any reserved + /// values are provided the request fails with HTTP status code 400. /// /// Acceptable values range between 1 and 65534 except ports from 50000 to @@ -99,9 +98,9 @@ public InboundNatPool() /// /// Gets or sets this must be unique within a Batch pool. Acceptable values are - /// between 1 and 65535 except for 22, 3389, 29876 and 29877 as these are - /// reserved. If any reserved values are provided the request fails with HTTP - /// status code 400. + /// between 1 and 65535 except for 29876 and 29877 as these are reserved. If + /// any reserved values are provided the request fails with HTTP status code + /// 400. /// [Newtonsoft.Json.JsonProperty(PropertyName = "backendPort")] public int BackendPort {get; set; } diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/IssueType.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/IssueType.cs new file mode 100644 index 000000000000..877cc16ddc5c --- /dev/null +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/IssueType.cs @@ -0,0 +1,39 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.Management.Batch.Models +{ + + /// + /// Defines values for IssueType. + /// + + + public static class IssueType + { + /// + /// Unknown issue type + /// + public const string Unknown = "Unknown"; + /// + /// An error occurred while applying the network security perimeter (NSP) + /// configuration. + /// + public const string ConfigurationPropagationFailure = "ConfigurationPropagationFailure"; + /// + /// A network connectivity issue is happening on the resource which could be + /// addressed either by adding new resources to the network security perimeter + /// (NSP) or by modifying access rules. + /// + public const string MissingPerimeterConfiguration = "MissingPerimeterConfiguration"; + /// + /// An managed identity hasn't been associated with the resource. The resource + /// will still be able to validate inbound traffic from the network security + /// perimeter (NSP) or matching inbound access rules, but it won't be able to + /// perform outbound access as a member of the NSP. + /// + public const string MissingIdentityConfiguration = "MissingIdentityConfiguration"; + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/ManagedDisk.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/ManagedDisk.cs index 7aa9458fc75b..c124fafb28a5 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/ManagedDisk.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/ManagedDisk.cs @@ -23,10 +23,16 @@ public ManagedDisk() /// The storage account type for use in creating data disks or OS disk. /// Possible values include: 'Standard_LRS', 'Premium_LRS', 'StandardSSD_LRS' - public ManagedDisk(StorageAccountType? storageAccountType = default(StorageAccountType?)) + + /// Specifies the security profile settings for the managed disk. **Note**: It + /// can only be set for Confidential VMs and is required when using + /// Confidential VMs. + /// + public ManagedDisk(StorageAccountType? storageAccountType = default(StorageAccountType?), VMDiskSecurityProfile securityProfile = default(VMDiskSecurityProfile)) { this.StorageAccountType = storageAccountType; + this.SecurityProfile = securityProfile; CustomInit(); } @@ -42,5 +48,13 @@ public ManagedDisk() /// [Newtonsoft.Json.JsonProperty(PropertyName = "storageAccountType")] public StorageAccountType? StorageAccountType {get; set; } + + /// + /// Gets or sets specifies the security profile settings for the managed disk. + /// **Note**: It can only be set for Confidential VMs and is required when + /// using Confidential VMs. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "securityProfile")] + public VMDiskSecurityProfile SecurityProfile {get; set; } } } \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/NetworkConfiguration.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/NetworkConfiguration.cs index b0a5216e2835..7e91a6718fc8 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/NetworkConfiguration.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/NetworkConfiguration.cs @@ -38,24 +38,19 @@ public NetworkConfiguration() /// NSG, then the Batch service will set the state of the compute nodes to /// unusable. If the specified VNet has any associated Network Security Groups /// (NSG), then a few reserved system ports must be enabled for inbound - /// communication. For pools created with a virtual machine configuration, - /// enable ports 29876 and 29877, as well as port 22 for Linux and port 3389 - /// for Windows. For pools created with a cloud service configuration, enable - /// ports 10100, 20100, and 30100. Also enable outbound connections to Azure - /// Storage on port 443. For cloudServiceConfiguration pools, only 'classic' - /// VNETs are supported. For more details see: - /// https://docs.microsoft.com/en-us/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration + /// communication,including ports 29876 and 29877. Also enable outbound + /// connections to Azure Storage on port 443. For more details see: + /// https://learn.microsoft.com/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration /// /// The scope of dynamic vnet assignment. /// Possible values include: 'none', 'job' - /// Pool endpoint configuration is only supported on pools with the - /// virtualMachineConfiguration property. + /// The endpoint configuration for a pool. /// - /// This property is only supported on Pools with the - /// virtualMachineConfiguration property. + /// The public IP Address configuration of the networking configuration of a + /// Pool. /// /// Accelerated networking enables single root I/O virtualization (SR-IOV) to a @@ -95,13 +90,10 @@ public NetworkConfiguration() /// specified subnet is denied by an NSG, then the Batch service will set the /// state of the compute nodes to unusable. If the specified VNet has any /// associated Network Security Groups (NSG), then a few reserved system ports - /// must be enabled for inbound communication. For pools created with a virtual - /// machine configuration, enable ports 29876 and 29877, as well as port 22 for - /// Linux and port 3389 for Windows. For pools created with a cloud service - /// configuration, enable ports 10100, 20100, and 30100. Also enable outbound - /// connections to Azure Storage on port 443. For cloudServiceConfiguration - /// pools, only 'classic' VNETs are supported. For more details see: - /// https://docs.microsoft.com/en-us/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration + /// must be enabled for inbound communication,including ports 29876 and 29877. + /// Also enable outbound connections to Azure Storage on port 443. For more + /// details see: + /// https://learn.microsoft.com/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration /// [Newtonsoft.Json.JsonProperty(PropertyName = "subnetId")] public string SubnetId {get; set; } @@ -113,15 +105,14 @@ public NetworkConfiguration() public DynamicVNetAssignmentScope? DynamicVnetAssignmentScope {get; set; } /// - /// Gets or sets pool endpoint configuration is only supported on pools with - /// the virtualMachineConfiguration property. + /// Gets or sets the endpoint configuration for a pool. /// [Newtonsoft.Json.JsonProperty(PropertyName = "endpointConfiguration")] public PoolEndpointConfiguration EndpointConfiguration {get; set; } /// - /// Gets or sets this property is only supported on Pools with the - /// virtualMachineConfiguration property. + /// Gets or sets the public IP Address configuration of the networking + /// configuration of a Pool. /// [Newtonsoft.Json.JsonProperty(PropertyName = "publicIPAddressConfiguration")] public PublicIPAddressConfiguration PublicIPAddressConfiguration {get; set; } diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/NetworkSecurityPerimeter.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/NetworkSecurityPerimeter.cs new file mode 100644 index 000000000000..df9f421ebaa8 --- /dev/null +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/NetworkSecurityPerimeter.cs @@ -0,0 +1,68 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.Management.Batch.Models +{ + using System.Linq; + + /// + /// Information about a network security perimeter (NSP) + /// + public partial class NetworkSecurityPerimeter + { + /// + /// Initializes a new instance of the NetworkSecurityPerimeter class. + /// + public NetworkSecurityPerimeter() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the NetworkSecurityPerimeter class. + /// + + /// Fully qualified Azure resource ID of the NSP resource + /// + + /// Universal unique ID (UUID) of the network security perimeter + /// + + /// Location of the network security perimeter + /// + public NetworkSecurityPerimeter(string id = default(string), System.Guid? perimeterGuid = default(System.Guid?), string location = default(string)) + + { + this.Id = id; + this.PerimeterGuid = perimeterGuid; + this.Location = location; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + + /// + /// Gets or sets fully qualified Azure resource ID of the NSP resource + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "id")] + public string Id {get; set; } + + /// + /// Gets or sets universal unique ID (UUID) of the network security perimeter + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "perimeterGuid")] + public System.Guid? PerimeterGuid {get; set; } + + /// + /// Gets or sets location of the network security perimeter + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "location")] + public string Location {get; set; } + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/NetworkSecurityPerimeterConfiguration.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/NetworkSecurityPerimeterConfiguration.cs new file mode 100644 index 000000000000..65ca39f79a9b --- /dev/null +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/NetworkSecurityPerimeterConfiguration.cs @@ -0,0 +1,64 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.Management.Batch.Models +{ + using System.Linq; + + /// + /// Network security perimeter (NSP) configuration resource + /// + public partial class NetworkSecurityPerimeterConfiguration : ProxyResource + { + /// + /// Initializes a new instance of the NetworkSecurityPerimeterConfiguration class. + /// + public NetworkSecurityPerimeterConfiguration() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the NetworkSecurityPerimeterConfiguration class. + /// + + /// Fully qualified resource ID for the resource. E.g. + /// "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}" + /// + + /// The name of the resource + /// + + /// The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + /// "Microsoft.Storage/storageAccounts" + /// + + /// Azure Resource Manager metadata containing createdBy and modifiedBy + /// information. + /// + + /// Network security configuration properties. + /// + public NetworkSecurityPerimeterConfiguration(string id = default(string), string name = default(string), string type = default(string), SystemData systemData = default(SystemData), NetworkSecurityPerimeterConfigurationProperties properties = default(NetworkSecurityPerimeterConfigurationProperties)) + + : base(id, name, type, systemData) + { + this.Properties = properties; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + + /// + /// Gets or sets network security configuration properties. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "properties")] + public NetworkSecurityPerimeterConfigurationProperties Properties {get; set; } + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/NetworkSecurityPerimeterConfigurationProperties.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/NetworkSecurityPerimeterConfigurationProperties.cs new file mode 100644 index 000000000000..cbe57291b0b8 --- /dev/null +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/NetworkSecurityPerimeterConfigurationProperties.cs @@ -0,0 +1,91 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.Management.Batch.Models +{ + using System.Linq; + + /// + /// Network security configuration properties. + /// + public partial class NetworkSecurityPerimeterConfigurationProperties + { + /// + /// Initializes a new instance of the NetworkSecurityPerimeterConfigurationProperties class. + /// + public NetworkSecurityPerimeterConfigurationProperties() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the NetworkSecurityPerimeterConfigurationProperties class. + /// + + /// Provisioning state of a network security perimeter configuration that is + /// being created or updated. + /// Possible values include: 'Succeeded', 'Creating', 'Updating', 'Deleting', + /// 'Accepted', 'Failed', 'Canceled' + + /// List of provisioning issues, if any + /// + + /// Information about a network security perimeter (NSP) + /// + + /// Information about resource association + /// + + /// Network security perimeter configuration profile + /// + public NetworkSecurityPerimeterConfigurationProperties(string provisioningState = default(string), System.Collections.Generic.IList provisioningIssues = default(System.Collections.Generic.IList), NetworkSecurityPerimeter networkSecurityPerimeter = default(NetworkSecurityPerimeter), ResourceAssociation resourceAssociation = default(ResourceAssociation), NetworkSecurityProfile profile = default(NetworkSecurityProfile)) + + { + this.ProvisioningState = provisioningState; + this.ProvisioningIssues = provisioningIssues; + this.NetworkSecurityPerimeter = networkSecurityPerimeter; + this.ResourceAssociation = resourceAssociation; + this.Profile = profile; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + + /// + /// Gets provisioning state of a network security perimeter configuration that + /// is being created or updated. Possible values include: 'Succeeded', 'Creating', 'Updating', 'Deleting', 'Accepted', 'Failed', 'Canceled' + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "provisioningState")] + public string ProvisioningState {get; private set; } + + /// + /// Gets list of provisioning issues, if any + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "provisioningIssues")] + public System.Collections.Generic.IList ProvisioningIssues {get; private set; } + + /// + /// Gets or sets information about a network security perimeter (NSP) + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "networkSecurityPerimeter")] + public NetworkSecurityPerimeter NetworkSecurityPerimeter {get; set; } + + /// + /// Gets or sets information about resource association + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "resourceAssociation")] + public ResourceAssociation ResourceAssociation {get; set; } + + /// + /// Gets or sets network security perimeter configuration profile + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "profile")] + public NetworkSecurityProfile Profile {get; set; } + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/NetworkSecurityPerimeterConfigurationProvisioningState.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/NetworkSecurityPerimeterConfigurationProvisioningState.cs new file mode 100644 index 000000000000..983ab2758ba9 --- /dev/null +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/NetworkSecurityPerimeterConfigurationProvisioningState.cs @@ -0,0 +1,24 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.Management.Batch.Models +{ + + /// + /// Defines values for NetworkSecurityPerimeterConfigurationProvisioningState. + /// + + + public static class NetworkSecurityPerimeterConfigurationProvisioningState + { + public const string Succeeded = "Succeeded"; + public const string Creating = "Creating"; + public const string Updating = "Updating"; + public const string Deleting = "Deleting"; + public const string Accepted = "Accepted"; + public const string Failed = "Failed"; + public const string Canceled = "Canceled"; + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/NetworkSecurityPerimeterReconcileConfigurationHeaders.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/NetworkSecurityPerimeterReconcileConfigurationHeaders.cs new file mode 100644 index 000000000000..460063e8e070 --- /dev/null +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/NetworkSecurityPerimeterReconcileConfigurationHeaders.cs @@ -0,0 +1,55 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.Management.Batch.Models +{ + using System.Linq; + + public partial class NetworkSecurityPerimeterReconcileConfigurationHeaders + { + /// + /// Initializes a new instance of the NetworkSecurityPerimeterReconcileConfigurationHeaders class. + /// + public NetworkSecurityPerimeterReconcileConfigurationHeaders() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the NetworkSecurityPerimeterReconcileConfigurationHeaders class. + /// + + /// + /// + + /// + /// + public NetworkSecurityPerimeterReconcileConfigurationHeaders(string location = default(string), int? retryAfter = default(int?)) + + { + this.Location = location; + this.RetryAfter = retryAfter; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + + /// + /// Gets or sets + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "Location")] + public string Location {get; set; } + + /// + /// Gets or sets + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "Retry-After")] + public int? RetryAfter {get; set; } + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/NetworkSecurityProfile.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/NetworkSecurityProfile.cs new file mode 100644 index 000000000000..ef326f14f54e --- /dev/null +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/NetworkSecurityProfile.cs @@ -0,0 +1,88 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.Management.Batch.Models +{ + using System.Linq; + + /// + /// Network security perimeter configuration profile + /// + public partial class NetworkSecurityProfile + { + /// + /// Initializes a new instance of the NetworkSecurityProfile class. + /// + public NetworkSecurityProfile() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the NetworkSecurityProfile class. + /// + + /// Name of the profile + /// + + /// Current access rules version + /// + + /// List of Access Rules + /// + + /// Current diagnostic settings version + /// + + /// List of log categories that are enabled + /// + public NetworkSecurityProfile(string name = default(string), int? accessRulesVersion = default(int?), System.Collections.Generic.IList accessRules = default(System.Collections.Generic.IList), int? diagnosticSettingsVersion = default(int?), System.Collections.Generic.IList enabledLogCategories = default(System.Collections.Generic.IList)) + + { + this.Name = name; + this.AccessRulesVersion = accessRulesVersion; + this.AccessRules = accessRules; + this.DiagnosticSettingsVersion = diagnosticSettingsVersion; + this.EnabledLogCategories = enabledLogCategories; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + + /// + /// Gets or sets name of the profile + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "name")] + public string Name {get; set; } + + /// + /// Gets or sets current access rules version + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "accessRulesVersion")] + public int? AccessRulesVersion {get; set; } + + /// + /// Gets or sets list of Access Rules + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "accessRules")] + public System.Collections.Generic.IList AccessRules {get; set; } + + /// + /// Gets or sets current diagnostic settings version + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "diagnosticSettingsVersion")] + public int? DiagnosticSettingsVersion {get; set; } + + /// + /// Gets or sets list of log categories that are enabled + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "enabledLogCategories")] + public System.Collections.Generic.IList EnabledLogCategories {get; set; } + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/Pool.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/Pool.cs index c40c6be98936..883dd30c61af 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/Pool.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/Pool.cs @@ -11,7 +11,7 @@ namespace Microsoft.Azure.Management.Batch.Models /// Contains information about a pool. /// [Microsoft.Rest.Serialization.JsonTransformation] - public partial class Pool : ProxyResource + public partial class Pool : AzureProxyResource { /// /// Initializes a new instance of the Pool class. @@ -37,15 +37,16 @@ public Pool() /// The ETag of the resource, used for concurrency statements. /// + /// The tags of the resource. + /// + /// The type of identity used for the Batch Pool. /// /// Whether the pool is resizing. /// Possible values include: 'Steady', 'Resizing', 'Stopping' - /// Using CloudServiceConfiguration specifies that the nodes should be creating - /// using Azure Cloud Services (PaaS), while VirtualMachineConfiguration uses - /// Azure Virtual Machines (IaaS). + /// Deployment configuration properties. /// /// Defines the desired size of the pool. This can either be 'fixedScale' where @@ -86,17 +87,8 @@ public Pool() /// The time at which the pool entered its current allocation state. /// - /// For information about available sizes of virtual machines for Cloud - /// Services pools (pools created with cloudServiceConfiguration), see Sizes - /// for Cloud Services - /// (https://azure.microsoft.com/documentation/articles/cloud-services-sizes-specs/). - /// Batch supports all Cloud Services VM sizes except ExtraSmall. For - /// information about available VM sizes for pools using images from the - /// Virtual Machines Marketplace (pools created with - /// virtualMachineConfiguration) see Sizes for Virtual Machines (Linux) - /// (https://azure.microsoft.com/documentation/articles/virtual-machines-linux-sizes/) - /// or Sizes for Virtual Machines (Windows) - /// (https://azure.microsoft.com/documentation/articles/virtual-machines-windows-sizes/). + /// 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). /// @@ -176,9 +168,9 @@ public Pool() /// Batch account was created with the poolAllocationMode property set to /// 'UserSubscription'. /// - public Pool(string id = default(string), string name = default(string), string type = default(string), string etag = default(string), BatchPoolIdentity identity = default(BatchPoolIdentity), AllocationState? allocationState = default(AllocationState?), DeploymentConfiguration deploymentConfiguration = default(DeploymentConfiguration), ScaleSettings scaleSettings = default(ScaleSettings), NetworkConfiguration networkConfiguration = default(NetworkConfiguration), StartTask startTask = default(StartTask), UpgradePolicy upgradePolicy = default(UpgradePolicy), string displayName = default(string), System.DateTime? lastModified = default(System.DateTime?), System.DateTime? creationTime = default(System.DateTime?), PoolProvisioningState? provisioningState = default(PoolProvisioningState?), System.DateTime? provisioningStateTransitionTime = default(System.DateTime?), System.DateTime? allocationStateTransitionTime = default(System.DateTime?), string vmSize = default(string), int? currentDedicatedNodes = default(int?), int? currentLowPriorityNodes = default(int?), AutoScaleRun autoScaleRun = default(AutoScaleRun), InterNodeCommunicationState? interNodeCommunication = default(InterNodeCommunicationState?), int? taskSlotsPerNode = default(int?), TaskSchedulingPolicy taskSchedulingPolicy = default(TaskSchedulingPolicy), System.Collections.Generic.IList userAccounts = default(System.Collections.Generic.IList), System.Collections.Generic.IList metadata = default(System.Collections.Generic.IList), System.Collections.Generic.IList certificates = default(System.Collections.Generic.IList), System.Collections.Generic.IList applicationPackages = default(System.Collections.Generic.IList), System.Collections.Generic.IList applicationLicenses = default(System.Collections.Generic.IList), ResizeOperationStatus resizeOperationStatus = default(ResizeOperationStatus), System.Collections.Generic.IList mountConfiguration = default(System.Collections.Generic.IList), NodeCommunicationMode? targetNodeCommunicationMode = default(NodeCommunicationMode?), NodeCommunicationMode? currentNodeCommunicationMode = default(NodeCommunicationMode?), System.Collections.Generic.IDictionary resourceTags = default(System.Collections.Generic.IDictionary)) + public Pool(string id = default(string), string name = default(string), string type = default(string), string etag = default(string), System.Collections.Generic.IDictionary tags = default(System.Collections.Generic.IDictionary), BatchPoolIdentity identity = default(BatchPoolIdentity), AllocationState? allocationState = default(AllocationState?), DeploymentConfiguration deploymentConfiguration = default(DeploymentConfiguration), ScaleSettings scaleSettings = default(ScaleSettings), NetworkConfiguration networkConfiguration = default(NetworkConfiguration), StartTask startTask = default(StartTask), UpgradePolicy upgradePolicy = default(UpgradePolicy), string displayName = default(string), System.DateTime? lastModified = default(System.DateTime?), System.DateTime? creationTime = default(System.DateTime?), PoolProvisioningState? provisioningState = default(PoolProvisioningState?), System.DateTime? provisioningStateTransitionTime = default(System.DateTime?), System.DateTime? allocationStateTransitionTime = default(System.DateTime?), string vmSize = default(string), int? currentDedicatedNodes = default(int?), int? currentLowPriorityNodes = default(int?), AutoScaleRun autoScaleRun = default(AutoScaleRun), InterNodeCommunicationState? interNodeCommunication = default(InterNodeCommunicationState?), int? taskSlotsPerNode = default(int?), TaskSchedulingPolicy taskSchedulingPolicy = default(TaskSchedulingPolicy), System.Collections.Generic.IList userAccounts = default(System.Collections.Generic.IList), System.Collections.Generic.IList metadata = default(System.Collections.Generic.IList), System.Collections.Generic.IList certificates = default(System.Collections.Generic.IList), System.Collections.Generic.IList applicationPackages = default(System.Collections.Generic.IList), System.Collections.Generic.IList applicationLicenses = default(System.Collections.Generic.IList), ResizeOperationStatus resizeOperationStatus = default(ResizeOperationStatus), System.Collections.Generic.IList mountConfiguration = default(System.Collections.Generic.IList), NodeCommunicationMode? targetNodeCommunicationMode = default(NodeCommunicationMode?), NodeCommunicationMode? currentNodeCommunicationMode = default(NodeCommunicationMode?), System.Collections.Generic.IDictionary resourceTags = default(System.Collections.Generic.IDictionary)) - : base(id, name, type, etag) + : base(id, name, type, etag, tags) { this.Identity = identity; this.AllocationState = allocationState; @@ -232,9 +224,7 @@ public Pool() public AllocationState? AllocationState {get; private set; } /// - /// Gets or sets using CloudServiceConfiguration specifies that the nodes - /// should be creating using Azure Cloud Services (PaaS), while - /// VirtualMachineConfiguration uses Azure Virtual Machines (IaaS). + /// Gets or sets deployment configuration properties. /// [Newtonsoft.Json.JsonProperty(PropertyName = "properties.deploymentConfiguration")] public DeploymentConfiguration DeploymentConfiguration {get; set; } @@ -308,18 +298,10 @@ public Pool() public System.DateTime? AllocationStateTransitionTime {get; private set; } /// - /// Gets or sets for information about available sizes of virtual machines for - /// Cloud Services pools (pools created with cloudServiceConfiguration), see - /// Sizes for Cloud Services - /// (https://azure.microsoft.com/documentation/articles/cloud-services-sizes-specs/). - /// Batch supports all Cloud Services VM sizes except ExtraSmall. For - /// information about available VM sizes for pools using images from the - /// Virtual Machines Marketplace (pools created with - /// virtualMachineConfiguration) see Sizes for Virtual Machines (Linux) - /// (https://azure.microsoft.com/documentation/articles/virtual-machines-linux-sizes/) - /// or Sizes for Virtual Machines (Windows) - /// (https://azure.microsoft.com/documentation/articles/virtual-machines-windows-sizes/). - /// Batch supports all Azure VM sizes except STANDARD_A0 and those with premium + /// Gets or sets 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). /// [Newtonsoft.Json.JsonProperty(PropertyName = "properties.vmSize")] diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/PoolProperties.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/PoolProperties.cs index 405aef15f1c5..7d21554e9bc7 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/PoolProperties.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/PoolProperties.cs @@ -48,24 +48,13 @@ public PoolProperties() /// The time at which the pool entered its current allocation state. /// - /// For information about available sizes of virtual machines for Cloud - /// Services pools (pools created with cloudServiceConfiguration), see Sizes - /// for Cloud Services - /// (https://azure.microsoft.com/documentation/articles/cloud-services-sizes-specs/). - /// Batch supports all Cloud Services VM sizes except ExtraSmall. For - /// information about available VM sizes for pools using images from the - /// Virtual Machines Marketplace (pools created with - /// virtualMachineConfiguration) see Sizes for Virtual Machines (Linux) - /// (https://azure.microsoft.com/documentation/articles/virtual-machines-linux-sizes/) - /// or Sizes for Virtual Machines (Windows) - /// (https://azure.microsoft.com/documentation/articles/virtual-machines-windows-sizes/). + /// 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). /// - /// Using CloudServiceConfiguration specifies that the nodes should be creating - /// using Azure Cloud Services (PaaS), while VirtualMachineConfiguration uses - /// Azure Virtual Machines (IaaS). + /// Deployment configuration properties. /// /// The number of dedicated compute nodes currently in the pool. @@ -247,27 +236,17 @@ public PoolProperties() public System.DateTime? AllocationStateTransitionTime {get; private set; } /// - /// Gets or sets for information about available sizes of virtual machines for - /// Cloud Services pools (pools created with cloudServiceConfiguration), see - /// Sizes for Cloud Services - /// (https://azure.microsoft.com/documentation/articles/cloud-services-sizes-specs/). - /// Batch supports all Cloud Services VM sizes except ExtraSmall. For - /// information about available VM sizes for pools using images from the - /// Virtual Machines Marketplace (pools created with - /// virtualMachineConfiguration) see Sizes for Virtual Machines (Linux) - /// (https://azure.microsoft.com/documentation/articles/virtual-machines-linux-sizes/) - /// or Sizes for Virtual Machines (Windows) - /// (https://azure.microsoft.com/documentation/articles/virtual-machines-windows-sizes/). - /// Batch supports all Azure VM sizes except STANDARD_A0 and those with premium + /// Gets or sets 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). /// [Newtonsoft.Json.JsonProperty(PropertyName = "vmSize")] public string VMSize {get; set; } /// - /// Gets or sets using CloudServiceConfiguration specifies that the nodes - /// should be creating using Azure Cloud Services (PaaS), while - /// VirtualMachineConfiguration uses Azure Virtual Machines (IaaS). + /// Gets or sets deployment configuration properties. /// [Newtonsoft.Json.JsonProperty(PropertyName = "deploymentConfiguration")] public DeploymentConfiguration DeploymentConfiguration {get; set; } diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/PrivateEndpointConnection.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/PrivateEndpointConnection.cs index 4d64a0b175fd..5577ba145701 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/PrivateEndpointConnection.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/PrivateEndpointConnection.cs @@ -11,7 +11,7 @@ namespace Microsoft.Azure.Management.Batch.Models /// Contains information about a private link resource. /// [Microsoft.Rest.Serialization.JsonTransformation] - public partial class PrivateEndpointConnection : ProxyResource + public partial class PrivateEndpointConnection : AzureProxyResource { /// /// Initializes a new instance of the PrivateEndpointConnection class. @@ -37,6 +37,9 @@ public PrivateEndpointConnection() /// The ETag of the resource, used for concurrency statements. /// + /// The tags of the resource. + /// + /// The private endpoint of the private endpoint connection. /// @@ -50,9 +53,9 @@ public PrivateEndpointConnection() /// The private link service connection state of the private endpoint /// connection /// - public PrivateEndpointConnection(string id = default(string), string name = default(string), string type = default(string), string etag = default(string), PrivateEndpoint privateEndpoint = default(PrivateEndpoint), PrivateEndpointConnectionProvisioningState provisioningState = default(PrivateEndpointConnectionProvisioningState), System.Collections.Generic.IList groupIds = default(System.Collections.Generic.IList), PrivateLinkServiceConnectionState privateLinkServiceConnectionState = default(PrivateLinkServiceConnectionState)) + public PrivateEndpointConnection(string id = default(string), string name = default(string), string type = default(string), string etag = default(string), System.Collections.Generic.IDictionary tags = default(System.Collections.Generic.IDictionary), PrivateEndpoint privateEndpoint = default(PrivateEndpoint), PrivateEndpointConnectionProvisioningState provisioningState = default(PrivateEndpointConnectionProvisioningState), System.Collections.Generic.IList groupIds = default(System.Collections.Generic.IList), PrivateLinkServiceConnectionState privateLinkServiceConnectionState = default(PrivateLinkServiceConnectionState)) - : base(id, name, type, etag) + : base(id, name, type, etag, tags) { this.PrivateEndpoint = privateEndpoint; this.ProvisioningState = provisioningState; diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/PrivateLinkResource.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/PrivateLinkResource.cs index d4a5fd1a64fc..4a98efcdd566 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/PrivateLinkResource.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/PrivateLinkResource.cs @@ -11,7 +11,7 @@ namespace Microsoft.Azure.Management.Batch.Models /// Contains information about a private link resource. /// [Microsoft.Rest.Serialization.JsonTransformation] - public partial class PrivateLinkResource : ProxyResource + public partial class PrivateLinkResource : AzureProxyResource { /// /// Initializes a new instance of the PrivateLinkResource class. @@ -37,6 +37,9 @@ public PrivateLinkResource() /// The ETag of the resource, used for concurrency statements. /// + /// The tags of the resource. + /// + /// The group id is used to establish the private link connection. /// @@ -46,9 +49,9 @@ public PrivateLinkResource() /// The list of required zone names for the private DNS resource name /// - public PrivateLinkResource(string id = default(string), string name = default(string), string type = default(string), string etag = default(string), string groupId = default(string), System.Collections.Generic.IList requiredMembers = default(System.Collections.Generic.IList), System.Collections.Generic.IList requiredZoneNames = default(System.Collections.Generic.IList)) + public PrivateLinkResource(string id = default(string), string name = default(string), string type = default(string), string etag = default(string), System.Collections.Generic.IDictionary tags = default(System.Collections.Generic.IDictionary), string groupId = default(string), System.Collections.Generic.IList requiredMembers = default(System.Collections.Generic.IList), System.Collections.Generic.IList requiredZoneNames = default(System.Collections.Generic.IList)) - : base(id, name, type, etag) + : base(id, name, type, etag, tags) { this.GroupId = groupId; this.RequiredMembers = requiredMembers; diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/ProvisioningIssue.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/ProvisioningIssue.cs new file mode 100644 index 000000000000..6b2df0c005d2 --- /dev/null +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/ProvisioningIssue.cs @@ -0,0 +1,67 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.Management.Batch.Models +{ + using System.Linq; + + /// + /// Describes a provisioning issue for a network security perimeter + /// configuration + /// + public partial class ProvisioningIssue + { + /// + /// Initializes a new instance of the ProvisioningIssue class. + /// + public ProvisioningIssue() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the ProvisioningIssue class. + /// + + /// Name of the issue + /// + + /// Details of a provisioning issue for a network security perimeter (NSP) + /// configuration. Resource providers should generate separate provisioning + /// issue elements for each separate issue detected, and include a meaningful + /// and distinctive description, as well as any appropriate + /// suggestedResourceIds and suggestedAccessRules + /// + public ProvisioningIssue(string name = default(string), ProvisioningIssueProperties properties = default(ProvisioningIssueProperties)) + + { + this.Name = name; + this.Properties = properties; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + + /// + /// Gets name of the issue + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "name")] + public string Name {get; private set; } + + /// + /// Gets details of a provisioning issue for a network security perimeter (NSP) + /// configuration. Resource providers should generate separate provisioning + /// issue elements for each separate issue detected, and include a meaningful + /// and distinctive description, as well as any appropriate + /// suggestedResourceIds and suggestedAccessRules + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "properties")] + public ProvisioningIssueProperties Properties {get; private set; } + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/ProvisioningIssueProperties.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/ProvisioningIssueProperties.cs new file mode 100644 index 000000000000..f488d64e66f7 --- /dev/null +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/ProvisioningIssueProperties.cs @@ -0,0 +1,97 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.Management.Batch.Models +{ + using System.Linq; + + /// + /// Details of a provisioning issue for a network security perimeter (NSP) + /// configuration. Resource providers should generate separate provisioning + /// issue elements for each separate issue detected, and include a meaningful + /// and distinctive description, as well as any appropriate + /// suggestedResourceIds and suggestedAccessRules + /// + public partial class ProvisioningIssueProperties + { + /// + /// Initializes a new instance of the ProvisioningIssueProperties class. + /// + public ProvisioningIssueProperties() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the ProvisioningIssueProperties class. + /// + + /// Type of issue + /// Possible values include: 'Unknown', 'ConfigurationPropagationFailure', + /// 'MissingPerimeterConfiguration', 'MissingIdentityConfiguration' + + /// Severity of the issue. + /// Possible values include: 'Warning', 'Error' + + /// Description of the issue + /// + + /// Fully qualified resource IDs of suggested resources that can be associated + /// to the network security perimeter (NSP) to remediate the issue. + /// + + /// Access rules that can be added to the network security profile (NSP) to + /// remediate the issue. + /// + public ProvisioningIssueProperties(string issueType = default(string), string severity = default(string), string description = default(string), System.Collections.Generic.IList suggestedResourceIds = default(System.Collections.Generic.IList), System.Collections.Generic.IList suggestedAccessRules = default(System.Collections.Generic.IList)) + + { + this.IssueType = issueType; + this.Severity = severity; + this.Description = description; + this.SuggestedResourceIds = suggestedResourceIds; + this.SuggestedAccessRules = suggestedAccessRules; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + + /// + /// Gets type of issue Possible values include: 'Unknown', 'ConfigurationPropagationFailure', 'MissingPerimeterConfiguration', 'MissingIdentityConfiguration' + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "issueType")] + public string IssueType {get; private set; } + + /// + /// Gets severity of the issue. Possible values include: 'Warning', 'Error' + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "severity")] + public string Severity {get; private set; } + + /// + /// Gets description of the issue + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "description")] + public string Description {get; private set; } + + /// + /// Gets fully qualified resource IDs of suggested resources that can be + /// associated to the network security perimeter (NSP) to remediate the issue. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "suggestedResourceIds")] + public System.Collections.Generic.IList SuggestedResourceIds {get; private set; } + + /// + /// Gets access rules that can be added to the network security profile (NSP) + /// to remediate the issue. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "suggestedAccessRules")] + public System.Collections.Generic.IList SuggestedAccessRules {get; private set; } + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/ProxyResource.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/ProxyResource.cs index e7f09870da88..ab83fa5d6336 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/ProxyResource.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/ProxyResource.cs @@ -8,9 +8,14 @@ namespace Microsoft.Azure.Management.Batch.Models using System.Linq; /// - /// A definition of an Azure resource. + /// The resource model definition for a Azure Resource Manager proxy resource. + /// It will not have tags and a location /// - public partial class ProxyResource : Microsoft.Rest.Azure.IResource + /// + /// The resource model definition for a Azure Resource Manager proxy resource. + /// It will not have tags and a location + /// + public partial class ProxyResource : Resource { /// /// Initializes a new instance of the ProxyResource class. @@ -24,24 +29,24 @@ public ProxyResource() /// Initializes a new instance of the ProxyResource class. /// - /// The ID of the resource. + /// Fully qualified resource ID for the resource. E.g. + /// "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}" /// - /// The name of the resource. + /// The name of the resource /// - /// The type of the resource. + /// The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + /// "Microsoft.Storage/storageAccounts" /// - /// The ETag of the resource, used for concurrency statements. + /// Azure Resource Manager metadata containing createdBy and modifiedBy + /// information. /// - public ProxyResource(string id = default(string), string name = default(string), string type = default(string), string etag = default(string)) + public ProxyResource(string id = default(string), string name = default(string), string type = default(string), SystemData systemData = default(SystemData)) + : base(id, name, type, systemData) { - this.Id = id; - this.Name = name; - this.Type = type; - this.Etag = etag; CustomInit(); } @@ -50,29 +55,5 @@ public ProxyResource() /// partial void CustomInit(); - - /// - /// Gets the ID of the resource. - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "id")] - public string Id {get; private set; } - - /// - /// Gets the name of the resource. - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "name")] - public string Name {get; private set; } - - /// - /// Gets the type of the resource. - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "type")] - public string Type {get; private set; } - - /// - /// Gets the ETag of the resource, used for concurrency statements. - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "etag")] - public string Etag {get; private set; } } } \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/PublicNetworkAccessType.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/PublicNetworkAccessType.cs index b5ad2a4843e6..6a9b3b1839c8 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/PublicNetworkAccessType.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/PublicNetworkAccessType.cs @@ -24,7 +24,12 @@ public enum PublicNetworkAccessType /// Batch Service through private endpoint resource. /// [System.Runtime.Serialization.EnumMember(Value = "Disabled")] - Disabled + Disabled, + /// + /// Secures connectivity to Azure Batch through NSP configuration. + /// + [System.Runtime.Serialization.EnumMember(Value = "SecuredByPerimeter")] + SecuredByPerimeter } internal static class PublicNetworkAccessTypeEnumExtension { @@ -40,6 +45,8 @@ internal static string ToSerializedValue(this PublicNetworkAccessType value) return "Enabled"; case PublicNetworkAccessType.Disabled: return "Disabled"; + case PublicNetworkAccessType.SecuredByPerimeter: + return "SecuredByPerimeter"; } return null; } @@ -51,6 +58,8 @@ internal static string ToSerializedValue(this PublicNetworkAccessType value) return PublicNetworkAccessType.Enabled; case "Disabled": return PublicNetworkAccessType.Disabled; + case "SecuredByPerimeter": + return PublicNetworkAccessType.SecuredByPerimeter; } return null; } diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/Resource.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/Resource.cs index 25175ff79f3c..180289d8e4f4 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/Resource.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/Resource.cs @@ -8,8 +8,13 @@ namespace Microsoft.Azure.Management.Batch.Models using System.Linq; /// - /// A definition of an Azure resource. + /// Common fields that are returned in the response for all Azure Resource + /// Manager resources /// + /// + /// Common fields that are returned in the response for all Azure Resource + /// Manager resources + /// public partial class Resource : Microsoft.Rest.Azure.IResource { /// @@ -24,28 +29,27 @@ public Resource() /// Initializes a new instance of the Resource class. /// - /// The ID of the resource. + /// Fully qualified resource ID for the resource. E.g. + /// "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}" /// - /// The name of the resource. + /// The name of the resource /// - /// The type of the resource. + /// The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + /// "Microsoft.Storage/storageAccounts" /// - /// The location of the resource. + /// Azure Resource Manager metadata containing createdBy and modifiedBy + /// information. /// - - /// The tags of the resource. - /// - public Resource(string id = default(string), string name = default(string), string type = default(string), string location = default(string), System.Collections.Generic.IDictionary tags = default(System.Collections.Generic.IDictionary)) + public Resource(string id = default(string), string name = default(string), string type = default(string), SystemData systemData = default(SystemData)) { this.Id = id; this.Name = name; this.Type = type; - this.Location = location; - this.Tags = tags; + this.SystemData = systemData; CustomInit(); } @@ -56,33 +60,30 @@ public Resource() /// - /// Gets the ID of the resource. + /// Gets fully qualified resource ID for the resource. E.g. + /// "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}" /// [Newtonsoft.Json.JsonProperty(PropertyName = "id")] public string Id {get; private set; } /// - /// Gets the name of the resource. + /// Gets the name of the resource /// [Newtonsoft.Json.JsonProperty(PropertyName = "name")] public string Name {get; private set; } /// - /// Gets the type of the resource. + /// Gets the type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + /// "Microsoft.Storage/storageAccounts" /// [Newtonsoft.Json.JsonProperty(PropertyName = "type")] public string Type {get; private set; } /// - /// Gets the location of the resource. - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "location")] - public string Location {get; private set; } - - /// - /// Gets the tags of the resource. + /// Gets azure Resource Manager metadata containing createdBy and modifiedBy + /// information. /// - [Newtonsoft.Json.JsonProperty(PropertyName = "tags")] - public System.Collections.Generic.IDictionary Tags {get; private set; } + [Newtonsoft.Json.JsonProperty(PropertyName = "systemData")] + public SystemData SystemData {get; private set; } } } \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/ResourceAssociation.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/ResourceAssociation.cs new file mode 100644 index 000000000000..4d4f84be10e9 --- /dev/null +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/ResourceAssociation.cs @@ -0,0 +1,58 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.Management.Batch.Models +{ + using System.Linq; + + /// + /// Information about resource association + /// + public partial class ResourceAssociation + { + /// + /// Initializes a new instance of the ResourceAssociation class. + /// + public ResourceAssociation() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the ResourceAssociation class. + /// + + /// Name of the resource association + /// + + /// Access mode of the resource association + /// Possible values include: 'Enforced', 'Learning', 'Audit' + public ResourceAssociation(string name = default(string), string accessMode = default(string)) + + { + this.Name = name; + this.AccessMode = accessMode; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + + /// + /// Gets or sets name of the resource association + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "name")] + public string Name {get; set; } + + /// + /// Gets or sets access mode of the resource association Possible values include: 'Enforced', 'Learning', 'Audit' + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "accessMode")] + public string AccessMode {get; set; } + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/ResourceAssociationAccessMode.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/ResourceAssociationAccessMode.cs new file mode 100644 index 000000000000..e907269f6851 --- /dev/null +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/ResourceAssociationAccessMode.cs @@ -0,0 +1,32 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.Management.Batch.Models +{ + + /// + /// Defines values for ResourceAssociationAccessMode. + /// + + + public static class ResourceAssociationAccessMode + { + /// + /// Enforced access mode - traffic to the resource that failed access checks is + /// blocked + /// + public const string Enforced = "Enforced"; + /// + /// Learning access mode - traffic to the resource is enabled for analysis but + /// not blocked + /// + public const string Learning = "Learning"; + /// + /// Audit access mode - traffic to the resource that fails access checks is + /// logged but not blocked + /// + public const string Audit = "Audit"; + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/SecurityEncryptionTypes.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/SecurityEncryptionTypes.cs new file mode 100644 index 000000000000..f0e77ece1f69 --- /dev/null +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/SecurityEncryptionTypes.cs @@ -0,0 +1,19 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.Management.Batch.Models +{ + + /// + /// Defines values for SecurityEncryptionTypes. + /// + + + public static class SecurityEncryptionTypes + { + public const string NonPersistedTPM = "NonPersistedTPM"; + public const string VMGuestStateOnly = "VMGuestStateOnly"; + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/SecurityProfile.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/SecurityProfile.cs index 236a63ac3d83..682fb4443df2 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/SecurityProfile.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/SecurityProfile.cs @@ -27,7 +27,7 @@ public SecurityProfile() /// Specifies the SecurityType of the virtual machine. It has to be set to any /// specified value to enable UefiSettings. - /// Possible values include: 'trustedLaunch' + /// Possible values include: 'trustedLaunch', 'confidentialVM' /// 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 @@ -55,7 +55,7 @@ public SecurityProfile() /// /// Gets or sets specifies the SecurityType of the virtual machine. It has to - /// be set to any specified value to enable UefiSettings. Possible values include: 'trustedLaunch' + /// be set to any specified value to enable UefiSettings. Possible values include: 'trustedLaunch', 'confidentialVM' /// [Newtonsoft.Json.JsonProperty(PropertyName = "securityType")] public SecurityTypes? SecurityType {get; set; } diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/SecurityTypes.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/SecurityTypes.cs index 4e56a6a42dc9..4e7aad8c9ca1 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/SecurityTypes.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/SecurityTypes.cs @@ -18,7 +18,16 @@ public enum SecurityTypes /// Trusted launch protects against advanced and persistent attack techniques. /// [System.Runtime.Serialization.EnumMember(Value = "trustedLaunch")] - TrustedLaunch + TrustedLaunch, + /// + /// Azure confidential computing offers confidential VMs are for tenants with + /// high security and confidentiality requirements. These VMs provide a strong, + /// hardware-enforced boundary to help meet your security needs. You can use + /// confidential VMs for migrations without making changes to your code, with + /// the platform protecting your VM's state from being read or modified. + /// + [System.Runtime.Serialization.EnumMember(Value = "confidentialVM")] + ConfidentialVM } internal static class SecurityTypesEnumExtension { @@ -32,6 +41,8 @@ internal static string ToSerializedValue(this SecurityTypes value) { case SecurityTypes.TrustedLaunch: return "trustedLaunch"; + case SecurityTypes.ConfidentialVM: + return "confidentialVM"; } return null; } @@ -41,6 +52,8 @@ internal static string ToSerializedValue(this SecurityTypes value) { case "trustedLaunch": return SecurityTypes.TrustedLaunch; + case "confidentialVM": + return SecurityTypes.ConfidentialVM; } return null; } diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/Severity.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/Severity.cs new file mode 100644 index 000000000000..30e4a7245e63 --- /dev/null +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/Severity.cs @@ -0,0 +1,19 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.Management.Batch.Models +{ + + /// + /// Defines values for Severity. + /// + + + public static class Severity + { + public const string Warning = "Warning"; + public const string Error = "Error"; + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/SystemData.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/SystemData.cs new file mode 100644 index 000000000000..abdbf6e3e228 --- /dev/null +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/SystemData.cs @@ -0,0 +1,98 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.Management.Batch.Models +{ + using System.Linq; + + /// + /// Metadata pertaining to creation and last modification of the resource. + /// + public partial class SystemData + { + /// + /// Initializes a new instance of the SystemData class. + /// + public SystemData() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the SystemData class. + /// + + /// The identity that created the resource. + /// + + /// The type of identity that created the resource. + /// Possible values include: 'User', 'Application', 'ManagedIdentity', 'Key' + + /// The timestamp of resource creation (UTC). + /// + + /// The identity that last modified the resource. + /// + + /// The type of identity that last modified the resource. + /// Possible values include: 'User', 'Application', 'ManagedIdentity', 'Key' + + /// The timestamp of resource last modification (UTC) + /// + public SystemData(string createdBy = default(string), string createdByType = default(string), System.DateTime? createdAt = default(System.DateTime?), string lastModifiedBy = default(string), string lastModifiedByType = default(string), System.DateTime? lastModifiedAt = default(System.DateTime?)) + + { + this.CreatedBy = createdBy; + this.CreatedByType = createdByType; + this.CreatedAt = createdAt; + this.LastModifiedBy = lastModifiedBy; + this.LastModifiedByType = lastModifiedByType; + this.LastModifiedAt = lastModifiedAt; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + + /// + /// Gets or sets the identity that created the resource. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "createdBy")] + public string CreatedBy {get; set; } + + /// + /// Gets or sets the type of identity that created the resource. Possible values include: 'User', 'Application', 'ManagedIdentity', 'Key' + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "createdByType")] + public string CreatedByType {get; set; } + + /// + /// Gets or sets the timestamp of resource creation (UTC). + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "createdAt")] + public System.DateTime? CreatedAt {get; set; } + + /// + /// Gets or sets the identity that last modified the resource. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "lastModifiedBy")] + public string LastModifiedBy {get; set; } + + /// + /// Gets or sets the type of identity that last modified the resource. Possible values include: 'User', 'Application', 'ManagedIdentity', 'Key' + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "lastModifiedByType")] + public string LastModifiedByType {get; set; } + + /// + /// Gets or sets the timestamp of resource last modification (UTC) + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "lastModifiedAt")] + public System.DateTime? LastModifiedAt {get; set; } + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/TaskContainerSettings.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/TaskContainerSettings.cs index df502c074326..fd90ddbababa 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/TaskContainerSettings.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/TaskContainerSettings.cs @@ -42,13 +42,19 @@ public TaskContainerSettings() /// A flag to indicate where the container task working directory is. The /// default is 'taskWorkingDirectory'. /// Possible values include: 'TaskWorkingDirectory', 'ContainerImageDefault' - public TaskContainerSettings(string imageName, string containerRunOptions = default(string), ContainerRegistry registry = default(ContainerRegistry), ContainerWorkingDirectory? workingDirectory = default(ContainerWorkingDirectory?)) + + /// If this array is null or be not present, container task will mount entire + /// temporary disk drive in windows (or AZ_BATCH_NODE_ROOT_DIR in Linux). It + /// won't' mount any data paths into container if this array is set as empty. + /// + public TaskContainerSettings(string imageName, string containerRunOptions = default(string), ContainerRegistry registry = default(ContainerRegistry), ContainerWorkingDirectory? workingDirectory = default(ContainerWorkingDirectory?), System.Collections.Generic.IList containerHostBatchBindMounts = default(System.Collections.Generic.IList)) { this.ContainerRunOptions = containerRunOptions; this.ImageName = imageName; this.Registry = registry; this.WorkingDirectory = workingDirectory; + this.ContainerHostBatchBindMounts = containerHostBatchBindMounts; CustomInit(); } @@ -87,6 +93,15 @@ public TaskContainerSettings() /// [Newtonsoft.Json.JsonProperty(PropertyName = "workingDirectory")] public ContainerWorkingDirectory? WorkingDirectory {get; set; } + + /// + /// Gets or sets if this array is null or be not present, container task will + /// mount entire temporary disk drive in windows (or AZ_BATCH_NODE_ROOT_DIR in + /// Linux). It won't' mount any data paths into container if this array is set + /// as empty. + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "containerHostBatchBindMounts")] + public System.Collections.Generic.IList ContainerHostBatchBindMounts {get; set; } /// /// Validate the object. /// @@ -103,6 +118,7 @@ public virtual void Validate() + } } } \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/UpgradePolicy.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/UpgradePolicy.cs index 0811d01b7acd..64855c36ccfe 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/UpgradePolicy.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/UpgradePolicy.cs @@ -36,8 +36,7 @@ public UpgradePolicy() /// The configuration parameters used for performing automatic OS upgrade. /// - /// This property is only supported on Pools with the - /// virtualMachineConfiguration property. + /// The configuration parameters used while performing a rolling upgrade. /// public UpgradePolicy(UpgradeMode mode, AutomaticOSUpgradePolicy automaticOSUpgradePolicy = default(AutomaticOSUpgradePolicy), RollingUpgradePolicy rollingUpgradePolicy = default(RollingUpgradePolicy)) @@ -74,8 +73,8 @@ public UpgradePolicy() public AutomaticOSUpgradePolicy AutomaticOSUpgradePolicy {get; set; } /// - /// Gets or sets this property is only supported on Pools with the - /// virtualMachineConfiguration property. + /// Gets or sets the configuration parameters used while performing a rolling + /// upgrade. /// [Newtonsoft.Json.JsonProperty(PropertyName = "rollingUpgradePolicy")] public RollingUpgradePolicy RollingUpgradePolicy {get; set; } diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/VMDiskSecurityProfile.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/VMDiskSecurityProfile.cs new file mode 100644 index 000000000000..9fa165f24981 --- /dev/null +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/VMDiskSecurityProfile.cs @@ -0,0 +1,58 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.Management.Batch.Models +{ + using System.Linq; + + /// + /// Specifies the security profile settings for the managed disk. **Note**: It + /// can only be set for Confidential VMs and is required when using + /// Confidential VMs. + /// + public partial class VMDiskSecurityProfile + { + /// + /// Initializes a new instance of the VMDiskSecurityProfile class. + /// + public VMDiskSecurityProfile() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the VMDiskSecurityProfile class. + /// + + /// 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 required when using + /// Confidential VMs. + /// Possible values include: 'NonPersistedTPM', 'VMGuestStateOnly' + public VMDiskSecurityProfile(string securityEncryptionType = default(string)) + + { + this.SecurityEncryptionType = securityEncryptionType; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + + /// + /// Gets or sets 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 required when using + /// Confidential VMs. Possible values include: 'NonPersistedTPM', 'VMGuestStateOnly' + /// + [Newtonsoft.Json.JsonProperty(PropertyName = "securityEncryptionType")] + public string SecurityEncryptionType {get; set; } + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/WindowsUserConfiguration.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/WindowsUserConfiguration.cs index 15971a578e48..a7a4a2fc7c35 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/WindowsUserConfiguration.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/WindowsUserConfiguration.cs @@ -27,9 +27,7 @@ public WindowsUserConfiguration() /// Initializes a new instance of the WindowsUserConfiguration class. /// - /// Specifies login mode for the user. The default value for - /// VirtualMachineConfiguration pools is interactive mode and for - /// CloudServiceConfiguration pools is batch mode. + /// Specifies login mode for the user. The default value is Interactive. /// Possible values include: 'Batch', 'Interactive' public WindowsUserConfiguration(LoginMode? loginMode = default(LoginMode?)) @@ -45,9 +43,8 @@ public WindowsUserConfiguration() /// - /// Gets or sets specifies login mode for the user. The default value for - /// VirtualMachineConfiguration pools is interactive mode and for - /// CloudServiceConfiguration pools is batch mode. Possible values include: 'Batch', 'Interactive' + /// Gets or sets specifies login mode for the user. The default value is + /// Interactive. Possible values include: 'Batch', 'Interactive' /// [Newtonsoft.Json.JsonProperty(PropertyName = "loginMode")] public LoginMode? LoginMode {get; set; } diff --git a/src/Batch/Batch.Management.Sdk/Generated/NetworkSecurityPerimeterOperations.cs b/src/Batch/Batch.Management.Sdk/Generated/NetworkSecurityPerimeterOperations.cs new file mode 100644 index 000000000000..3b6dcd3f218f --- /dev/null +++ b/src/Batch/Batch.Management.Sdk/Generated/NetworkSecurityPerimeterOperations.cs @@ -0,0 +1,949 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.Management.Batch +{ + using System.Linq; + using Microsoft.Rest; + using Microsoft.Rest.Azure; + using Models; + + /// + /// NetworkSecurityPerimeterOperations operations. + /// + internal partial class NetworkSecurityPerimeterOperations : Microsoft.Rest.IServiceOperations, INetworkSecurityPerimeterOperations + { + /// + /// Initializes a new instance of the NetworkSecurityPerimeterOperations class. + /// + /// + /// Reference to the service client. + /// + /// + /// Thrown when a required parameter is null + /// + internal NetworkSecurityPerimeterOperations (BatchManagementClient client) + { + if (client == null) + { + throw new System.ArgumentNullException("client"); + } + this.Client = client; + } + + /// + /// Gets a reference to the BatchManagementClient + /// + public BatchManagementClient Client { get; private set; } + + /// + /// Lists all of the NSP configurations in the specified account. + /// + /// + /// The name of the resource group that contains the Batch account. + /// + /// + /// The name of the Batch account. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async System.Threading.Tasks.Task>> ListConfigurationsWithHttpMessagesAsync(string resourceGroupName, string accountName, System.Collections.Generic.Dictionary> customHeaders = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + { + + + + + if (this.Client.SubscriptionId == null) + { + throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.CannotBeNull, "this.Client.SubscriptionId"); + } + + if (resourceGroupName == null) + { + throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.CannotBeNull, "resourceGroupName"); + } + + if (accountName == null) + { + throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.CannotBeNull, "accountName"); + } + if (accountName != null) + { + if (accountName.Length > 24) + { + throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.MaxLength, "accountName", 24); + } + if (accountName.Length < 3) + { + throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.MinLength, "accountName", 3); + } + if (!System.Text.RegularExpressions.Regex.IsMatch(accountName, "^[a-zA-Z0-9]+$")) + { + throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.Pattern, "accountName", "^[a-zA-Z0-9]+$"); + } + } + if (this.Client.ApiVersion == null) + { + throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.CannotBeNull, "this.Client.ApiVersion"); + } + + // Tracing + bool _shouldTrace = Microsoft.Rest.ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = Microsoft.Rest.ServiceClientTracing.NextInvocationId.ToString(); + System.Collections.Generic.Dictionary tracingParameters = new System.Collections.Generic.Dictionary(); + tracingParameters.Add("resourceGroupName", resourceGroupName); + tracingParameters.Add("accountName", accountName); + + + tracingParameters.Add("cancellationToken", cancellationToken); + Microsoft.Rest.ServiceClientTracing.Enter(_invocationId, this, "ListConfigurations", tracingParameters); + } + // Construct URL + + var _baseUrl = this.Client.BaseUri.AbsoluteUri; + var _url = new System.Uri(new System.Uri(_baseUrl + (_baseUrl.EndsWith("/") ? "" : "/")), "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/networkSecurityPerimeterConfigurations").ToString(); + _url = _url.Replace("{subscriptionId}", System.Uri.EscapeDataString(this.Client.SubscriptionId)); + _url = _url.Replace("{resourceGroupName}", System.Uri.EscapeDataString(resourceGroupName)); + _url = _url.Replace("{accountName}", System.Uri.EscapeDataString(accountName)); + + System.Collections.Generic.List _queryParameters = new System.Collections.Generic.List(); + if (this.Client.ApiVersion != null) + { + _queryParameters.Add(string.Format("api-version={0}", System.Uri.EscapeDataString(this.Client.ApiVersion))); + } + if (_queryParameters.Count > 0) + { + _url += (_url.Contains("?") ? "&" : "?") + string.Join("&", _queryParameters); + } + // Create HTTP transport objects + var _httpRequest = new System.Net.Http.HttpRequestMessage(); + System.Net.Http.HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new System.Net.Http.HttpMethod("GET"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (this.Client.GenerateClientRequestId != null && this.Client.GenerateClientRequestId.Value) + { + _httpRequest.Headers.TryAddWithoutValidation("x-ms-client-request-id", System.Guid.NewGuid().ToString()); + } + if (this.Client.AcceptLanguage != null) + { + if (_httpRequest.Headers.Contains("accept-language")) + { + _httpRequest.Headers.Remove("accept-language"); + } + _httpRequest.Headers.TryAddWithoutValidation("accept-language", this.Client.AcceptLanguage); + } + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + // Serialize Request + string _requestContent = null; + // Set Credentials + if (this.Client.Credentials != null) + { + cancellationToken.ThrowIfCancellationRequested(); + await this.Client.Credentials.ProcessHttpRequestAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + } + // Send Request + if (_shouldTrace) + { + Microsoft.Rest.ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await this.Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + Microsoft.Rest.ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + + System.Net.HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + + if ((int)_statusCode != 200) + { + var ex = new Microsoft.Rest.Azure.CloudException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + CloudError _errorBody = Microsoft.Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, this.Client.DeserializationSettings); + if (_errorBody != null) + { + ex = new Microsoft.Rest.Azure.CloudException(_errorBody.Message); + ex.Body = _errorBody; + } + } + catch (Newtonsoft.Json.JsonException) + { + // Ignore the exception + } + ex.Request = new Microsoft.Rest.HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new Microsoft.Rest.HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_httpResponse.Headers.Contains("x-ms-request-id")) + { + ex.RequestId = _httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault(); + } + if (_shouldTrace) + { + Microsoft.Rest.ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new Microsoft.Rest.Azure.AzureOperationResponse>(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + + if (_httpResponse.Headers.Contains("x-ms-request-id")) + { + _result.RequestId = _httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault(); + } + // Deserialize Response + if ((int)_statusCode == 200) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = Microsoft.Rest.Serialization.SafeJsonConvert.DeserializeObject>(_responseContent, this.Client.DeserializationSettings); + } + catch (Newtonsoft.Json.JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new Microsoft.Rest.SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + if (_shouldTrace) + { + Microsoft.Rest.ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + + + + + + } + /// + /// Gets information about the specified NSP configuration. + /// + /// + /// The name of the resource group that contains the Batch account. + /// + /// + /// The name of the Batch account. + /// + /// + /// The name for Network Security Perimeter configuration + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async System.Threading.Tasks.Task> GetConfigurationWithHttpMessagesAsync(string resourceGroupName, string accountName, string networkSecurityPerimeterConfigurationName, System.Collections.Generic.Dictionary> customHeaders = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + { + + + + + if (this.Client.SubscriptionId == null) + { + throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.CannotBeNull, "this.Client.SubscriptionId"); + } + + if (resourceGroupName == null) + { + throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.CannotBeNull, "resourceGroupName"); + } + + if (accountName == null) + { + throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.CannotBeNull, "accountName"); + } + if (accountName != null) + { + if (accountName.Length > 24) + { + throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.MaxLength, "accountName", 24); + } + if (accountName.Length < 3) + { + throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.MinLength, "accountName", 3); + } + if (!System.Text.RegularExpressions.Regex.IsMatch(accountName, "^[a-zA-Z0-9]+$")) + { + throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.Pattern, "accountName", "^[a-zA-Z0-9]+$"); + } + } + if (networkSecurityPerimeterConfigurationName == null) + { + throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.CannotBeNull, "networkSecurityPerimeterConfigurationName"); + } + if (networkSecurityPerimeterConfigurationName != null) + { + if (!System.Text.RegularExpressions.Regex.IsMatch(networkSecurityPerimeterConfigurationName, "^.*$")) + { + throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.Pattern, "networkSecurityPerimeterConfigurationName", "^.*$"); + } + } + if (this.Client.ApiVersion == null) + { + throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.CannotBeNull, "this.Client.ApiVersion"); + } + + // Tracing + bool _shouldTrace = Microsoft.Rest.ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = Microsoft.Rest.ServiceClientTracing.NextInvocationId.ToString(); + System.Collections.Generic.Dictionary tracingParameters = new System.Collections.Generic.Dictionary(); + tracingParameters.Add("resourceGroupName", resourceGroupName); + tracingParameters.Add("accountName", accountName); + tracingParameters.Add("networkSecurityPerimeterConfigurationName", networkSecurityPerimeterConfigurationName); + + + tracingParameters.Add("cancellationToken", cancellationToken); + Microsoft.Rest.ServiceClientTracing.Enter(_invocationId, this, "GetConfiguration", tracingParameters); + } + // Construct URL + + var _baseUrl = this.Client.BaseUri.AbsoluteUri; + var _url = new System.Uri(new System.Uri(_baseUrl + (_baseUrl.EndsWith("/") ? "" : "/")), "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/networkSecurityPerimeterConfigurations/{networkSecurityPerimeterConfigurationName}").ToString(); + _url = _url.Replace("{subscriptionId}", System.Uri.EscapeDataString(this.Client.SubscriptionId)); + _url = _url.Replace("{resourceGroupName}", System.Uri.EscapeDataString(resourceGroupName)); + _url = _url.Replace("{accountName}", System.Uri.EscapeDataString(accountName)); + _url = _url.Replace("{networkSecurityPerimeterConfigurationName}", System.Uri.EscapeDataString(networkSecurityPerimeterConfigurationName)); + + System.Collections.Generic.List _queryParameters = new System.Collections.Generic.List(); + if (this.Client.ApiVersion != null) + { + _queryParameters.Add(string.Format("api-version={0}", System.Uri.EscapeDataString(this.Client.ApiVersion))); + } + if (_queryParameters.Count > 0) + { + _url += (_url.Contains("?") ? "&" : "?") + string.Join("&", _queryParameters); + } + // Create HTTP transport objects + var _httpRequest = new System.Net.Http.HttpRequestMessage(); + System.Net.Http.HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new System.Net.Http.HttpMethod("GET"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (this.Client.GenerateClientRequestId != null && this.Client.GenerateClientRequestId.Value) + { + _httpRequest.Headers.TryAddWithoutValidation("x-ms-client-request-id", System.Guid.NewGuid().ToString()); + } + if (this.Client.AcceptLanguage != null) + { + if (_httpRequest.Headers.Contains("accept-language")) + { + _httpRequest.Headers.Remove("accept-language"); + } + _httpRequest.Headers.TryAddWithoutValidation("accept-language", this.Client.AcceptLanguage); + } + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + // Serialize Request + string _requestContent = null; + // Set Credentials + if (this.Client.Credentials != null) + { + cancellationToken.ThrowIfCancellationRequested(); + await this.Client.Credentials.ProcessHttpRequestAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + } + // Send Request + if (_shouldTrace) + { + Microsoft.Rest.ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await this.Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + Microsoft.Rest.ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + + System.Net.HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + + if ((int)_statusCode != 200) + { + var ex = new Microsoft.Rest.Azure.CloudException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + CloudError _errorBody = Microsoft.Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, this.Client.DeserializationSettings); + if (_errorBody != null) + { + ex = new Microsoft.Rest.Azure.CloudException(_errorBody.Message); + ex.Body = _errorBody; + } + } + catch (Newtonsoft.Json.JsonException) + { + // Ignore the exception + } + ex.Request = new Microsoft.Rest.HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new Microsoft.Rest.HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_httpResponse.Headers.Contains("x-ms-request-id")) + { + ex.RequestId = _httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault(); + } + if (_shouldTrace) + { + Microsoft.Rest.ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new Microsoft.Rest.Azure.AzureOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + + if (_httpResponse.Headers.Contains("x-ms-request-id")) + { + _result.RequestId = _httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault(); + } + // Deserialize Response + if ((int)_statusCode == 200) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = Microsoft.Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, this.Client.DeserializationSettings); + } + catch (Newtonsoft.Json.JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new Microsoft.Rest.SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + if (_shouldTrace) + { + Microsoft.Rest.ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + + + + + + } + /// + /// Reconciles the specified NSP configuration. + /// + /// + /// The name of the resource group that contains the Batch account. + /// + /// + /// The name of the Batch account. + /// + /// + /// The name for Network Security Perimeter configuration + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + public async System.Threading.Tasks.Task> ReconcileConfigurationWithHttpMessagesAsync(string resourceGroupName, string accountName, string networkSecurityPerimeterConfigurationName, System.Collections.Generic.Dictionary> customHeaders = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + { + // Send Request + Microsoft.Rest.Azure.AzureOperationHeaderResponse _response = await BeginReconcileConfigurationWithHttpMessagesAsync(resourceGroupName, accountName, networkSecurityPerimeterConfigurationName, customHeaders, cancellationToken).ConfigureAwait(false); + return await this.Client.GetPostOrDeleteOperationResultAsync(_response, customHeaders, cancellationToken).ConfigureAwait(false); + } + + /// + /// Reconciles the specified NSP configuration. + /// + /// + /// The name of the resource group that contains the Batch account. + /// + /// + /// The name of the Batch account. + /// + /// + /// The name for Network Security Perimeter configuration + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async System.Threading.Tasks.Task> BeginReconcileConfigurationWithHttpMessagesAsync(string resourceGroupName, string accountName, string networkSecurityPerimeterConfigurationName, System.Collections.Generic.Dictionary> customHeaders = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + { + + + + + if (this.Client.SubscriptionId == null) + { + throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.CannotBeNull, "this.Client.SubscriptionId"); + } + + if (resourceGroupName == null) + { + throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.CannotBeNull, "resourceGroupName"); + } + + if (accountName == null) + { + throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.CannotBeNull, "accountName"); + } + if (accountName != null) + { + if (accountName.Length > 24) + { + throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.MaxLength, "accountName", 24); + } + if (accountName.Length < 3) + { + throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.MinLength, "accountName", 3); + } + if (!System.Text.RegularExpressions.Regex.IsMatch(accountName, "^[a-zA-Z0-9]+$")) + { + throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.Pattern, "accountName", "^[a-zA-Z0-9]+$"); + } + } + if (networkSecurityPerimeterConfigurationName == null) + { + throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.CannotBeNull, "networkSecurityPerimeterConfigurationName"); + } + if (networkSecurityPerimeterConfigurationName != null) + { + if (!System.Text.RegularExpressions.Regex.IsMatch(networkSecurityPerimeterConfigurationName, "^.*$")) + { + throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.Pattern, "networkSecurityPerimeterConfigurationName", "^.*$"); + } + } + if (this.Client.ApiVersion == null) + { + throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.CannotBeNull, "this.Client.ApiVersion"); + } + + // Tracing + bool _shouldTrace = Microsoft.Rest.ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = Microsoft.Rest.ServiceClientTracing.NextInvocationId.ToString(); + System.Collections.Generic.Dictionary tracingParameters = new System.Collections.Generic.Dictionary(); + tracingParameters.Add("resourceGroupName", resourceGroupName); + tracingParameters.Add("accountName", accountName); + tracingParameters.Add("networkSecurityPerimeterConfigurationName", networkSecurityPerimeterConfigurationName); + + + tracingParameters.Add("cancellationToken", cancellationToken); + Microsoft.Rest.ServiceClientTracing.Enter(_invocationId, this, "BeginReconcileConfiguration", tracingParameters); + } + // Construct URL + + var _baseUrl = this.Client.BaseUri.AbsoluteUri; + var _url = new System.Uri(new System.Uri(_baseUrl + (_baseUrl.EndsWith("/") ? "" : "/")), "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/networkSecurityPerimeterConfigurations/{networkSecurityPerimeterConfigurationName}/reconcile").ToString(); + _url = _url.Replace("{subscriptionId}", System.Uri.EscapeDataString(this.Client.SubscriptionId)); + _url = _url.Replace("{resourceGroupName}", System.Uri.EscapeDataString(resourceGroupName)); + _url = _url.Replace("{accountName}", System.Uri.EscapeDataString(accountName)); + _url = _url.Replace("{networkSecurityPerimeterConfigurationName}", System.Uri.EscapeDataString(networkSecurityPerimeterConfigurationName)); + + System.Collections.Generic.List _queryParameters = new System.Collections.Generic.List(); + if (this.Client.ApiVersion != null) + { + _queryParameters.Add(string.Format("api-version={0}", System.Uri.EscapeDataString(this.Client.ApiVersion))); + } + if (_queryParameters.Count > 0) + { + _url += (_url.Contains("?") ? "&" : "?") + string.Join("&", _queryParameters); + } + // Create HTTP transport objects + var _httpRequest = new System.Net.Http.HttpRequestMessage(); + System.Net.Http.HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new System.Net.Http.HttpMethod("POST"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (this.Client.GenerateClientRequestId != null && this.Client.GenerateClientRequestId.Value) + { + _httpRequest.Headers.TryAddWithoutValidation("x-ms-client-request-id", System.Guid.NewGuid().ToString()); + } + if (this.Client.AcceptLanguage != null) + { + if (_httpRequest.Headers.Contains("accept-language")) + { + _httpRequest.Headers.Remove("accept-language"); + } + _httpRequest.Headers.TryAddWithoutValidation("accept-language", this.Client.AcceptLanguage); + } + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + // Serialize Request + string _requestContent = null; + // Set Credentials + if (this.Client.Credentials != null) + { + cancellationToken.ThrowIfCancellationRequested(); + await this.Client.Credentials.ProcessHttpRequestAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + } + // Send Request + if (_shouldTrace) + { + Microsoft.Rest.ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await this.Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + Microsoft.Rest.ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + + System.Net.HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + + if ((int)_statusCode != 202) + { + var ex = new ErrorResponseException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + ErrorResponse _errorBody = Microsoft.Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, this.Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (Newtonsoft.Json.JsonException) + { + // Ignore the exception + } + ex.Request = new Microsoft.Rest.HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new Microsoft.Rest.HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + Microsoft.Rest.ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new Microsoft.Rest.Azure.AzureOperationHeaderResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + + if (_httpResponse.Headers.Contains("x-ms-request-id")) + { + _result.RequestId = _httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault(); + } + try + { + _result.Headers = _httpResponse.GetHeadersAsJson().ToObject(Newtonsoft.Json.JsonSerializer.Create(this.Client.DeserializationSettings)); + } + catch (Newtonsoft.Json.JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new Microsoft.Rest.SerializationException("Unable to deserialize the headers.", _httpResponse.GetHeadersAsJson().ToString(), ex); + } + if (_shouldTrace) + { + Microsoft.Rest.ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + + + + + + } + /// + /// Lists all of the NSP configurations in the specified account. + /// + /// + /// The NextLink from the previous successful call to List operation. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async System.Threading.Tasks.Task>> ListConfigurationsNextWithHttpMessagesAsync(string nextPageLink, System.Collections.Generic.Dictionary> customHeaders = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + { + + if (nextPageLink == null) + { + throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.CannotBeNull, "nextPageLink"); + } + // Tracing + bool _shouldTrace = Microsoft.Rest.ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = Microsoft.Rest.ServiceClientTracing.NextInvocationId.ToString(); + System.Collections.Generic.Dictionary tracingParameters = new System.Collections.Generic.Dictionary(); + tracingParameters.Add("nextPageLink", nextPageLink); + + + tracingParameters.Add("cancellationToken", cancellationToken); + Microsoft.Rest.ServiceClientTracing.Enter(_invocationId, this, "ListConfigurationsNext", tracingParameters); + } + // Construct URL + string _url = "{nextLink}"; + _url = _url.Replace("{nextLink}", nextPageLink); + + System.Collections.Generic.List _queryParameters = new System.Collections.Generic.List(); + if (_queryParameters.Count > 0) + { + _url += (_url.Contains("?") ? "&" : "?") + string.Join("&", _queryParameters); + } + // Create HTTP transport objects + var _httpRequest = new System.Net.Http.HttpRequestMessage(); + System.Net.Http.HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new System.Net.Http.HttpMethod("GET"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (this.Client.GenerateClientRequestId != null && this.Client.GenerateClientRequestId.Value) + { + _httpRequest.Headers.TryAddWithoutValidation("x-ms-client-request-id", System.Guid.NewGuid().ToString()); + } + if (this.Client.AcceptLanguage != null) + { + if (_httpRequest.Headers.Contains("accept-language")) + { + _httpRequest.Headers.Remove("accept-language"); + } + _httpRequest.Headers.TryAddWithoutValidation("accept-language", this.Client.AcceptLanguage); + } + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + // Serialize Request + string _requestContent = null; + // Set Credentials + if (this.Client.Credentials != null) + { + cancellationToken.ThrowIfCancellationRequested(); + await this.Client.Credentials.ProcessHttpRequestAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + } + // Send Request + if (_shouldTrace) + { + Microsoft.Rest.ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await this.Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + Microsoft.Rest.ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + + System.Net.HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + + if ((int)_statusCode != 200) + { + var ex = new Microsoft.Rest.Azure.CloudException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + CloudError _errorBody = Microsoft.Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, this.Client.DeserializationSettings); + if (_errorBody != null) + { + ex = new Microsoft.Rest.Azure.CloudException(_errorBody.Message); + ex.Body = _errorBody; + } + } + catch (Newtonsoft.Json.JsonException) + { + // Ignore the exception + } + ex.Request = new Microsoft.Rest.HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new Microsoft.Rest.HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_httpResponse.Headers.Contains("x-ms-request-id")) + { + ex.RequestId = _httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault(); + } + if (_shouldTrace) + { + Microsoft.Rest.ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new Microsoft.Rest.Azure.AzureOperationResponse>(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + + if (_httpResponse.Headers.Contains("x-ms-request-id")) + { + _result.RequestId = _httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault(); + } + // Deserialize Response + if ((int)_statusCode == 200) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = Microsoft.Rest.Serialization.SafeJsonConvert.DeserializeObject>(_responseContent, this.Client.DeserializationSettings); + } + catch (Newtonsoft.Json.JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new Microsoft.Rest.SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + if (_shouldTrace) + { + Microsoft.Rest.ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + + + + + + } + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Management.Sdk/Generated/NetworkSecurityPerimeterOperationsExtensions.cs b/src/Batch/Batch.Management.Sdk/Generated/NetworkSecurityPerimeterOperationsExtensions.cs new file mode 100644 index 000000000000..315f03e1344b --- /dev/null +++ b/src/Batch/Batch.Management.Sdk/Generated/NetworkSecurityPerimeterOperationsExtensions.cs @@ -0,0 +1,223 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. +namespace Microsoft.Azure.Management.Batch +{ + using Microsoft.Rest.Azure; + using Models; + + /// + /// Extension methods for NetworkSecurityPerimeterOperations + /// + public static partial class NetworkSecurityPerimeterOperationsExtensions + { + /// + /// Lists all of the NSP configurations in the specified account. + /// + /// + /// The operations group for this extension method. + /// + /// + /// The name of the resource group that contains the Batch account. + /// + /// + /// The name of the Batch account. + /// + public static Microsoft.Rest.Azure.IPage ListConfigurations(this INetworkSecurityPerimeterOperations operations, string resourceGroupName, string accountName) + { + return ((INetworkSecurityPerimeterOperations)operations).ListConfigurationsAsync(resourceGroupName, accountName).GetAwaiter().GetResult(); + } + + /// + /// Lists all of the NSP configurations in the specified account. + /// + /// + /// The operations group for this extension method. + /// + /// + /// The name of the resource group that contains the Batch account. + /// + /// + /// The name of the Batch account. + /// + /// + /// The cancellation token. + /// + public static async System.Threading.Tasks.Task> ListConfigurationsAsync(this INetworkSecurityPerimeterOperations operations, string resourceGroupName, string accountName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + { + using (var _result = await operations.ListConfigurationsWithHttpMessagesAsync(resourceGroupName, accountName, null, cancellationToken).ConfigureAwait(false)) + { + return _result.Body; + } + } + /// + /// Gets information about the specified NSP configuration. + /// + /// + /// The operations group for this extension method. + /// + /// + /// The name of the resource group that contains the Batch account. + /// + /// + /// The name of the Batch account. + /// + /// + /// The name for Network Security Perimeter configuration + /// + public static NetworkSecurityPerimeterConfiguration GetConfiguration(this INetworkSecurityPerimeterOperations operations, string resourceGroupName, string accountName, string networkSecurityPerimeterConfigurationName) + { + return ((INetworkSecurityPerimeterOperations)operations).GetConfigurationAsync(resourceGroupName, accountName, networkSecurityPerimeterConfigurationName).GetAwaiter().GetResult(); + } + + /// + /// Gets information about the specified NSP configuration. + /// + /// + /// The operations group for this extension method. + /// + /// + /// The name of the resource group that contains the Batch account. + /// + /// + /// The name of the Batch account. + /// + /// + /// The name for Network Security Perimeter configuration + /// + /// + /// The cancellation token. + /// + public static async System.Threading.Tasks.Task GetConfigurationAsync(this INetworkSecurityPerimeterOperations operations, string resourceGroupName, string accountName, string networkSecurityPerimeterConfigurationName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + { + using (var _result = await operations.GetConfigurationWithHttpMessagesAsync(resourceGroupName, accountName, networkSecurityPerimeterConfigurationName, null, cancellationToken).ConfigureAwait(false)) + { + return _result.Body; + } + } + /// + /// Reconciles the specified NSP configuration. + /// + /// + /// The operations group for this extension method. + /// + /// + /// The name of the resource group that contains the Batch account. + /// + /// + /// The name of the Batch account. + /// + /// + /// The name for Network Security Perimeter configuration + /// + public static NetworkSecurityPerimeterReconcileConfigurationHeaders ReconcileConfiguration(this INetworkSecurityPerimeterOperations operations, string resourceGroupName, string accountName, string networkSecurityPerimeterConfigurationName) + { + return ((INetworkSecurityPerimeterOperations)operations).ReconcileConfigurationAsync(resourceGroupName, accountName, networkSecurityPerimeterConfigurationName).GetAwaiter().GetResult(); + } + + /// + /// Reconciles the specified NSP configuration. + /// + /// + /// The operations group for this extension method. + /// + /// + /// The name of the resource group that contains the Batch account. + /// + /// + /// The name of the Batch account. + /// + /// + /// The name for Network Security Perimeter configuration + /// + /// + /// The cancellation token. + /// + public static async System.Threading.Tasks.Task ReconcileConfigurationAsync(this INetworkSecurityPerimeterOperations operations, string resourceGroupName, string accountName, string networkSecurityPerimeterConfigurationName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + { + using (var _result = await operations.ReconcileConfigurationWithHttpMessagesAsync(resourceGroupName, accountName, networkSecurityPerimeterConfigurationName, null, cancellationToken).ConfigureAwait(false)) + { + return _result.Headers; + } + } + /// + /// Reconciles the specified NSP configuration. + /// + /// + /// The operations group for this extension method. + /// + /// + /// The name of the resource group that contains the Batch account. + /// + /// + /// The name of the Batch account. + /// + /// + /// The name for Network Security Perimeter configuration + /// + public static NetworkSecurityPerimeterReconcileConfigurationHeaders BeginReconcileConfiguration(this INetworkSecurityPerimeterOperations operations, string resourceGroupName, string accountName, string networkSecurityPerimeterConfigurationName) + { + return ((INetworkSecurityPerimeterOperations)operations).BeginReconcileConfigurationAsync(resourceGroupName, accountName, networkSecurityPerimeterConfigurationName).GetAwaiter().GetResult(); + } + + /// + /// Reconciles the specified NSP configuration. + /// + /// + /// The operations group for this extension method. + /// + /// + /// The name of the resource group that contains the Batch account. + /// + /// + /// The name of the Batch account. + /// + /// + /// The name for Network Security Perimeter configuration + /// + /// + /// The cancellation token. + /// + public static async System.Threading.Tasks.Task BeginReconcileConfigurationAsync(this INetworkSecurityPerimeterOperations operations, string resourceGroupName, string accountName, string networkSecurityPerimeterConfigurationName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + { + using (var _result = await operations.BeginReconcileConfigurationWithHttpMessagesAsync(resourceGroupName, accountName, networkSecurityPerimeterConfigurationName, null, cancellationToken).ConfigureAwait(false)) + { + return _result.Headers; + } + } + /// + /// Lists all of the NSP configurations in the specified account. + /// + /// + /// The operations group for this extension method. + /// + /// + /// The NextLink from the previous successful call to List operation. + /// + public static Microsoft.Rest.Azure.IPage ListConfigurationsNext(this INetworkSecurityPerimeterOperations operations, string nextPageLink) + { + return ((INetworkSecurityPerimeterOperations)operations).ListConfigurationsNextAsync(nextPageLink).GetAwaiter().GetResult(); + } + + /// + /// Lists all of the NSP configurations in the specified account. + /// + /// + /// The operations group for this extension method. + /// + /// + /// The NextLink from the previous successful call to List operation. + /// + /// + /// The cancellation token. + /// + public static async System.Threading.Tasks.Task> ListConfigurationsNextAsync(this INetworkSecurityPerimeterOperations operations, string nextPageLink, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + { + using (var _result = await operations.ListConfigurationsNextWithHttpMessagesAsync(nextPageLink, null, cancellationToken).ConfigureAwait(false)) + { + return _result.Body; + } + } + } +} diff --git a/src/Batch/Batch.Management.Sdk/Generated/PrivateEndpointConnectionOperations.cs b/src/Batch/Batch.Management.Sdk/Generated/PrivateEndpointConnectionOperations.cs index 9b5f9c18a875..8fdf94961de6 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/PrivateEndpointConnectionOperations.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/PrivateEndpointConnectionOperations.cs @@ -543,9 +543,10 @@ internal PrivateEndpointConnectionOperations (BatchManagementClient client) /// The state (ETag) version of the private endpoint connection to update. This /// value can be omitted or set to "*" to apply the operation unconditionally. /// - /// - /// The private link service connection state of the private endpoint - /// connection + /// + /// PrivateEndpointConnection properties that should be updated. Properties + /// that are supplied will be updated, any property not supplied will be + /// unchanged. /// /// /// Headers that will be added to request. @@ -553,10 +554,10 @@ internal PrivateEndpointConnectionOperations (BatchManagementClient client) /// /// The cancellation token. /// - public async System.Threading.Tasks.Task> UpdateWithHttpMessagesAsync(string resourceGroupName, string accountName, string privateEndpointConnectionName, PrivateLinkServiceConnectionState privateLinkServiceConnectionState = default(PrivateLinkServiceConnectionState), string ifMatch = default(string), System.Collections.Generic.Dictionary> customHeaders = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + public async System.Threading.Tasks.Task> UpdateWithHttpMessagesAsync(string resourceGroupName, string accountName, string privateEndpointConnectionName, PrivateEndpointConnection parameters, string ifMatch = default(string), System.Collections.Generic.Dictionary> customHeaders = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { // Send Request - Microsoft.Rest.Azure.AzureOperationResponse _response = await BeginUpdateWithHttpMessagesAsync(resourceGroupName, accountName, privateEndpointConnectionName, privateLinkServiceConnectionState, ifMatch, customHeaders, cancellationToken).ConfigureAwait(false); + Microsoft.Rest.Azure.AzureOperationResponse _response = await BeginUpdateWithHttpMessagesAsync(resourceGroupName, accountName, privateEndpointConnectionName, parameters, ifMatch, customHeaders, cancellationToken).ConfigureAwait(false); return await this.Client.GetPutOrPatchOperationResultAsync(_response, customHeaders, cancellationToken).ConfigureAwait(false); } @@ -603,9 +604,10 @@ internal PrivateEndpointConnectionOperations (BatchManagementClient client) /// The state (ETag) version of the private endpoint connection to update. This /// value can be omitted or set to "*" to apply the operation unconditionally. /// - /// - /// The private link service connection state of the private endpoint - /// connection + /// + /// PrivateEndpointConnection properties that should be updated. Properties + /// that are supplied will be updated, any property not supplied will be + /// unchanged. /// /// /// Headers that will be added to request. @@ -628,12 +630,16 @@ internal PrivateEndpointConnectionOperations (BatchManagementClient client) /// /// A response object containing the response body and response headers. /// - public async System.Threading.Tasks.Task> BeginUpdateWithHttpMessagesAsync(string resourceGroupName, string accountName, string privateEndpointConnectionName, PrivateLinkServiceConnectionState privateLinkServiceConnectionState = default(PrivateLinkServiceConnectionState), string ifMatch = default(string), System.Collections.Generic.Dictionary> customHeaders = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + public async System.Threading.Tasks.Task> BeginUpdateWithHttpMessagesAsync(string resourceGroupName, string accountName, string privateEndpointConnectionName, PrivateEndpointConnection parameters, string ifMatch = default(string), System.Collections.Generic.Dictionary> customHeaders = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { + if (parameters == null) + { + throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.CannotBeNull, "parameters"); + } if (this.Client.SubscriptionId == null) { throw new Microsoft.Rest.ValidationException(Microsoft.Rest.ValidationRules.CannotBeNull, "this.Client.SubscriptionId"); @@ -688,11 +694,6 @@ internal PrivateEndpointConnectionOperations (BatchManagementClient client) } - PrivateEndpointConnection parameters = new PrivateEndpointConnection(); - if(privateLinkServiceConnectionState != null) - { - parameters.PrivateLinkServiceConnectionState = privateLinkServiceConnectionState; - } // Tracing bool _shouldTrace = Microsoft.Rest.ServiceClientTracing.IsEnabled; string _invocationId = null; diff --git a/src/Batch/Batch.Management.Sdk/Generated/PrivateEndpointConnectionOperationsExtensions.cs b/src/Batch/Batch.Management.Sdk/Generated/PrivateEndpointConnectionOperationsExtensions.cs index f899f7b19201..9a28f05d3131 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/PrivateEndpointConnectionOperationsExtensions.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/PrivateEndpointConnectionOperationsExtensions.cs @@ -124,9 +124,9 @@ public static PrivateEndpointConnection Get(this IPrivateEndpointConnectionOpera /// The state (ETag) version of the private endpoint connection to update. This /// value can be omitted or set to "*" to apply the operation unconditionally. /// - public static PrivateEndpointConnection Update(this IPrivateEndpointConnectionOperations operations, string resourceGroupName, string accountName, string privateEndpointConnectionName, PrivateLinkServiceConnectionState privateLinkServiceConnectionState = default(PrivateLinkServiceConnectionState), string ifMatch = default(string)) + public static PrivateEndpointConnection Update(this IPrivateEndpointConnectionOperations operations, string resourceGroupName, string accountName, string privateEndpointConnectionName, PrivateEndpointConnection parameters, string ifMatch = default(string)) { - return ((IPrivateEndpointConnectionOperations)operations).UpdateAsync(resourceGroupName, accountName, privateEndpointConnectionName, privateLinkServiceConnectionState, ifMatch).GetAwaiter().GetResult(); + return ((IPrivateEndpointConnectionOperations)operations).UpdateAsync(resourceGroupName, accountName, privateEndpointConnectionName, parameters, ifMatch).GetAwaiter().GetResult(); } /// @@ -152,9 +152,9 @@ public static PrivateEndpointConnection Get(this IPrivateEndpointConnectionOpera /// /// The cancellation token. /// - public static async System.Threading.Tasks.Task UpdateAsync(this IPrivateEndpointConnectionOperations operations, string resourceGroupName, string accountName, string privateEndpointConnectionName, PrivateLinkServiceConnectionState privateLinkServiceConnectionState = default(PrivateLinkServiceConnectionState), string ifMatch = default(string), System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + public static async System.Threading.Tasks.Task UpdateAsync(this IPrivateEndpointConnectionOperations operations, string resourceGroupName, string accountName, string privateEndpointConnectionName, PrivateEndpointConnection parameters, string ifMatch = default(string), System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { - using (var _result = await operations.UpdateWithHttpMessagesAsync(resourceGroupName, accountName, privateEndpointConnectionName, privateLinkServiceConnectionState, ifMatch, null, cancellationToken).ConfigureAwait(false)) + using (var _result = await operations.UpdateWithHttpMessagesAsync(resourceGroupName, accountName, privateEndpointConnectionName, parameters, ifMatch, null, cancellationToken).ConfigureAwait(false)) { return _result.Body; } @@ -226,9 +226,9 @@ public static PrivateEndpointConnectionDeleteHeaders Delete(this IPrivateEndpoin /// The state (ETag) version of the private endpoint connection to update. This /// value can be omitted or set to "*" to apply the operation unconditionally. /// - public static PrivateEndpointConnection BeginUpdate(this IPrivateEndpointConnectionOperations operations, string resourceGroupName, string accountName, string privateEndpointConnectionName, PrivateLinkServiceConnectionState privateLinkServiceConnectionState = default(PrivateLinkServiceConnectionState), string ifMatch = default(string)) + public static PrivateEndpointConnection BeginUpdate(this IPrivateEndpointConnectionOperations operations, string resourceGroupName, string accountName, string privateEndpointConnectionName, PrivateEndpointConnection parameters, string ifMatch = default(string)) { - return ((IPrivateEndpointConnectionOperations)operations).BeginUpdateAsync(resourceGroupName, accountName, privateEndpointConnectionName, privateLinkServiceConnectionState, ifMatch).GetAwaiter().GetResult(); + return ((IPrivateEndpointConnectionOperations)operations).BeginUpdateAsync(resourceGroupName, accountName, privateEndpointConnectionName, parameters, ifMatch).GetAwaiter().GetResult(); } /// @@ -254,9 +254,9 @@ public static PrivateEndpointConnectionDeleteHeaders Delete(this IPrivateEndpoin /// /// The cancellation token. /// - public static async System.Threading.Tasks.Task BeginUpdateAsync(this IPrivateEndpointConnectionOperations operations, string resourceGroupName, string accountName, string privateEndpointConnectionName, PrivateLinkServiceConnectionState privateLinkServiceConnectionState = default(PrivateLinkServiceConnectionState), string ifMatch = default(string), System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) + public static async System.Threading.Tasks.Task BeginUpdateAsync(this IPrivateEndpointConnectionOperations operations, string resourceGroupName, string accountName, string privateEndpointConnectionName, PrivateEndpointConnection parameters, string ifMatch = default(string), System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { - using (var _result = await operations.BeginUpdateWithHttpMessagesAsync(resourceGroupName, accountName, privateEndpointConnectionName, privateLinkServiceConnectionState, ifMatch, null, cancellationToken).ConfigureAwait(false)) + using (var _result = await operations.BeginUpdateWithHttpMessagesAsync(resourceGroupName, accountName, privateEndpointConnectionName, parameters, ifMatch, null, cancellationToken).ConfigureAwait(false)) { return _result.Body; } diff --git a/src/Batch/Batch.Management.Sdk/README.md b/src/Batch/Batch.Management.Sdk/README.md index d7c344775c63..663884d5cc90 100644 --- a/src/Batch/Batch.Management.Sdk/README.md +++ b/src/Batch/Batch.Management.Sdk/README.md @@ -21,9 +21,11 @@ license-header: MICROSOFT_MIT_NO_VERSION payload-flattening-threshold: 1 # title: BatchManagementClient -commit: d6fcc46341f274b8af42a4cdcfa14e1f8d472619 +commit: f9391dfd43360c636a5d7428734f86afe316bbb9 input-file: - - https://github.com/Azure/azure-rest-api-specs/blob/$(commit)/specification/batch/resource-manager/Microsoft.Batch/stable/2024-02-01/BatchManagement.json + - https://github.com/Azure/azure-rest-api-specs/blob/$(commit)/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/BatchManagement.json + - https://github.com/Azure/azure-rest-api-specs/blob/$(commit)/specification/batch/resource-manager/Microsoft.Batch/stable/2024-07-01/NetworkSecurityPerimeter.json + output-folder: Generated diff --git a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchAccountTests/TestBatchAccountEndToEnd.json b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchAccountTests/TestBatchAccountEndToEnd.json index 341f7e7b64dc..e30362d1364c 100644 --- a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchAccountTests/TestBatchAccountEndToEnd.json +++ b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchAccountTests/TestBatchAccountEndToEnd.json @@ -145,7 +145,7 @@ "StatusCode": 201 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437?api-version=2024-02-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437?api-version=2024-07-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL3BzMzY5OC9wcm92aWRlcnMvTWljcm9zb2Z0LkJhdGNoL2JhdGNoQWNjb3VudHMvcHM4NDM3P2FwaS12ZXJzaW9uPTIwMjMtMDUtMDE=", "RequestMethod": "PUT", "RequestHeaders": { @@ -226,7 +226,7 @@ "StatusCode": 202 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437?api-version=2024-02-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437?api-version=2024-07-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL3BzMzY5OC9wcm92aWRlcnMvTWljcm9zb2Z0LkJhdGNoL2JhdGNoQWNjb3VudHMvcHM4NDM3P2FwaS12ZXJzaW9uPTIwMjMtMDUtMDE=", "RequestMethod": "PUT", "RequestHeaders": { @@ -385,7 +385,7 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437?api-version=2024-02-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437?api-version=2024-07-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL3BzMzY5OC9wcm92aWRlcnMvTWljcm9zb2Z0LkJhdGNoL2JhdGNoQWNjb3VudHMvcHM4NDM3P2FwaS12ZXJzaW9uPTIwMjMtMDUtMDE=", "RequestMethod": "GET", "RequestHeaders": { @@ -460,7 +460,7 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437?api-version=2024-02-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437?api-version=2024-07-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL3BzMzY5OC9wcm92aWRlcnMvTWljcm9zb2Z0LkJhdGNoL2JhdGNoQWNjb3VudHMvcHM4NDM3P2FwaS12ZXJzaW9uPTIwMjMtMDUtMDE=", "RequestMethod": "GET", "RequestHeaders": { @@ -535,7 +535,7 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437?api-version=2024-02-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437?api-version=2024-07-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL3BzMzY5OC9wcm92aWRlcnMvTWljcm9zb2Z0LkJhdGNoL2JhdGNoQWNjb3VudHMvcHM4NDM3P2FwaS12ZXJzaW9uPTIwMjMtMDUtMDE=", "RequestMethod": "GET", "RequestHeaders": { @@ -610,7 +610,7 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437?api-version=2024-02-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437?api-version=2024-07-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL3BzMzY5OC9wcm92aWRlcnMvTWljcm9zb2Z0LkJhdGNoL2JhdGNoQWNjb3VudHMvcHM4NDM3P2FwaS12ZXJzaW9uPTIwMjMtMDUtMDE=", "RequestMethod": "GET", "RequestHeaders": { @@ -685,7 +685,7 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437?api-version=2024-02-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437?api-version=2024-07-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL3BzMzY5OC9wcm92aWRlcnMvTWljcm9zb2Z0LkJhdGNoL2JhdGNoQWNjb3VudHMvcHM4NDM3P2FwaS12ZXJzaW9uPTIwMjMtMDUtMDE=", "RequestMethod": "GET", "RequestHeaders": { @@ -760,7 +760,7 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437?api-version=2024-02-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437?api-version=2024-07-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL3BzMzY5OC9wcm92aWRlcnMvTWljcm9zb2Z0LkJhdGNoL2JhdGNoQWNjb3VudHMvcHM4NDM3P2FwaS12ZXJzaW9uPTIwMjMtMDUtMDE=", "RequestMethod": "GET", "RequestHeaders": { @@ -898,7 +898,7 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437/listKeys?api-version=2024-02-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437/listKeys?api-version=2024-07-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL3BzMzY5OC9wcm92aWRlcnMvTWljcm9zb2Z0LkJhdGNoL2JhdGNoQWNjb3VudHMvcHM4NDM3L2xpc3RLZXlzP2FwaS12ZXJzaW9uPTIwMjMtMDUtMDE=", "RequestMethod": "POST", "RequestHeaders": { @@ -970,7 +970,7 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437/listKeys?api-version=2024-02-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437/listKeys?api-version=2024-07-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL3BzMzY5OC9wcm92aWRlcnMvTWljcm9zb2Z0LkJhdGNoL2JhdGNoQWNjb3VudHMvcHM4NDM3L2xpc3RLZXlzP2FwaS12ZXJzaW9uPTIwMjMtMDUtMDE=", "RequestMethod": "POST", "RequestHeaders": { @@ -1042,7 +1042,7 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437/regenerateKeys?api-version=2024-02-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437/regenerateKeys?api-version=2024-07-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL3BzMzY5OC9wcm92aWRlcnMvTWljcm9zb2Z0LkJhdGNoL2JhdGNoQWNjb3VudHMvcHM4NDM3L3JlZ2VuZXJhdGVLZXlzP2FwaS12ZXJzaW9uPTIwMjMtMDUtMDE=", "RequestMethod": "POST", "RequestHeaders": { @@ -1120,7 +1120,7 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437?api-version=2024-02-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437?api-version=2024-07-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL3BzMzY5OC9wcm92aWRlcnMvTWljcm9zb2Z0LkJhdGNoL2JhdGNoQWNjb3VudHMvcHM4NDM3P2FwaS12ZXJzaW9uPTIwMjMtMDUtMDE=", "RequestMethod": "DELETE", "RequestHeaders": { diff --git a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchAccountTests/TestCreateNewBatchAccountWithNoPublicIp.json b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchAccountTests/TestCreateNewBatchAccountWithNoPublicIp.json index 672f9323d567..db108c07533c 100644 --- a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchAccountTests/TestCreateNewBatchAccountWithNoPublicIp.json +++ b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchAccountTests/TestCreateNewBatchAccountWithNoPublicIp.json @@ -145,7 +145,7 @@ "StatusCode": 201 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps2289/providers/Microsoft.Batch/batchAccounts/ps5017?api-version=2024-02-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps2289/providers/Microsoft.Batch/batchAccounts/ps5017?api-version=2024-07-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL3BzMjI4OS9wcm92aWRlcnMvTWljcm9zb2Z0LkJhdGNoL2JhdGNoQWNjb3VudHMvcHM1MDE3P2FwaS12ZXJzaW9uPTIwMjMtMDUtMDE=", "RequestMethod": "PUT", "RequestHeaders": { diff --git a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchAccountTests/TestCreateNewBatchAccountWithSystemIdentity.json b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchAccountTests/TestCreateNewBatchAccountWithSystemIdentity.json index c7e0d05e3b29..e1fc32704b50 100644 --- a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchAccountTests/TestCreateNewBatchAccountWithSystemIdentity.json +++ b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchAccountTests/TestCreateNewBatchAccountWithSystemIdentity.json @@ -145,7 +145,7 @@ "StatusCode": 201 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps2521/providers/Microsoft.Batch/batchAccounts/ps3606?api-version=2024-02-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps2521/providers/Microsoft.Batch/batchAccounts/ps3606?api-version=2024-07-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL3BzMjUyMS9wcm92aWRlcnMvTWljcm9zb2Z0LkJhdGNoL2JhdGNoQWNjb3VudHMvcHMzNjA2P2FwaS12ZXJzaW9uPTIwMjMtMDUtMDE=", "RequestMethod": "PUT", "RequestHeaders": { diff --git a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchApplicationPackageTests/TestCreatePoolWithApplicationPackage.json b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchApplicationPackageTests/TestCreatePoolWithApplicationPackage.json index 106567d54dec..10680807909a 100644 --- a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchApplicationPackageTests/TestCreatePoolWithApplicationPackage.json +++ b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchApplicationPackageTests/TestCreatePoolWithApplicationPackage.json @@ -1,7 +1,7 @@ { "Entries": [ { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/createPoolWithApplicationPackage/versions/foo?api-version=2024-02-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/createPoolWithApplicationPackage/versions/foo?api-version=2024-07-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvYXBwbGljYXRpb25zL2NyZWF0ZVBvb2xXaXRoQXBwbGljYXRpb25QYWNrYWdlL3ZlcnNpb25zL2Zvbz9hcGktdmVyc2lvbj0yMDIzLTA1LTAx", "RequestMethod": "PUT", "RequestHeaders": { @@ -85,7 +85,7 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/createPoolWithApplicationPackage/versions/foo/activate?api-version=2024-02-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/createPoolWithApplicationPackage/versions/foo/activate?api-version=2024-07-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvYXBwbGljYXRpb25zL2NyZWF0ZVBvb2xXaXRoQXBwbGljYXRpb25QYWNrYWdlL3ZlcnNpb25zL2Zvby9hY3RpdmF0ZT9hcGktdmVyc2lvbj0yMDIzLTA1LTAx", "RequestMethod": "POST", "RequestHeaders": { @@ -169,7 +169,7 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/createPoolWithApplicationPackage/versions/foo?api-version=2024-02-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/createPoolWithApplicationPackage/versions/foo?api-version=2024-07-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvYXBwbGljYXRpb25zL2NyZWF0ZVBvb2xXaXRoQXBwbGljYXRpb25QYWNrYWdlL3ZlcnNpb25zL2Zvbz9hcGktdmVyc2lvbj0yMDIzLTA1LTAx", "RequestMethod": "GET", "RequestHeaders": { @@ -317,7 +317,7 @@ "StatusCode": 201 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/createPoolWithApplicationPackage/versions/foo?api-version=2024-02-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/createPoolWithApplicationPackage/versions/foo?api-version=2024-07-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvYXBwbGljYXRpb25zL2NyZWF0ZVBvb2xXaXRoQXBwbGljYXRpb25QYWNrYWdlL3ZlcnNpb25zL2Zvbz9hcGktdmVyc2lvbj0yMDIzLTA1LTAx", "RequestMethod": "DELETE", "RequestHeaders": { @@ -386,7 +386,7 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/createPoolWithApplicationPackage?api-version=2024-02-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/createPoolWithApplicationPackage?api-version=2024-07-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvYXBwbGljYXRpb25zL2NyZWF0ZVBvb2xXaXRoQXBwbGljYXRpb25QYWNrYWdlP2FwaS12ZXJzaW9uPTIwMjMtMDUtMDE=", "RequestMethod": "DELETE", "RequestHeaders": { diff --git a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchApplicationPackageTests/TestUpdateApplicationPackage.json b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchApplicationPackageTests/TestUpdateApplicationPackage.json index e1460b1015a9..1d771eb669cf 100644 --- a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchApplicationPackageTests/TestUpdateApplicationPackage.json +++ b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchApplicationPackageTests/TestUpdateApplicationPackage.json @@ -1,7 +1,7 @@ { "Entries": [ { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/updateApplicationPackage/versions/foo?api-version=2024-02-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/updateApplicationPackage/versions/foo?api-version=2024-07-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvYXBwbGljYXRpb25zL3VwZGF0ZUFwcGxpY2F0aW9uUGFja2FnZS92ZXJzaW9ucy9mb28/YXBpLXZlcnNpb249MjAyMy0wNS0wMQ==", "RequestMethod": "PUT", "RequestHeaders": { @@ -85,7 +85,7 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/updateApplicationPackage?api-version=2024-02-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/updateApplicationPackage?api-version=2024-07-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvYXBwbGljYXRpb25zL3VwZGF0ZUFwcGxpY2F0aW9uUGFja2FnZT9hcGktdmVyc2lvbj0yMDIzLTA1LTAx", "RequestMethod": "GET", "RequestHeaders": { @@ -163,7 +163,7 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/updateApplicationPackage?api-version=2024-02-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/updateApplicationPackage?api-version=2024-07-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvYXBwbGljYXRpb25zL3VwZGF0ZUFwcGxpY2F0aW9uUGFja2FnZT9hcGktdmVyc2lvbj0yMDIzLTA1LTAx", "RequestMethod": "GET", "RequestHeaders": { @@ -241,7 +241,7 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/updateApplicationPackage/versions/foo/activate?api-version=2024-02-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/updateApplicationPackage/versions/foo/activate?api-version=2024-07-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvYXBwbGljYXRpb25zL3VwZGF0ZUFwcGxpY2F0aW9uUGFja2FnZS92ZXJzaW9ucy9mb28vYWN0aXZhdGU/YXBpLXZlcnNpb249MjAyMy0wNS0wMQ==", "RequestMethod": "POST", "RequestHeaders": { @@ -325,7 +325,7 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/updateApplicationPackage/versions/foo?api-version=2024-02-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/updateApplicationPackage/versions/foo?api-version=2024-07-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvYXBwbGljYXRpb25zL3VwZGF0ZUFwcGxpY2F0aW9uUGFja2FnZS92ZXJzaW9ucy9mb28/YXBpLXZlcnNpb249MjAyMy0wNS0wMQ==", "RequestMethod": "GET", "RequestHeaders": { @@ -403,7 +403,7 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/updateApplicationPackage?api-version=2024-02-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/updateApplicationPackage?api-version=2024-07-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvYXBwbGljYXRpb25zL3VwZGF0ZUFwcGxpY2F0aW9uUGFja2FnZT9hcGktdmVyc2lvbj0yMDIzLTA1LTAx", "RequestMethod": "PATCH", "RequestHeaders": { @@ -487,7 +487,7 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/updateApplicationPackage/versions/foo?api-version=2024-02-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/updateApplicationPackage/versions/foo?api-version=2024-07-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvYXBwbGljYXRpb25zL3VwZGF0ZUFwcGxpY2F0aW9uUGFja2FnZS92ZXJzaW9ucy9mb28/YXBpLXZlcnNpb249MjAyMy0wNS0wMQ==", "RequestMethod": "DELETE", "RequestHeaders": { @@ -556,7 +556,7 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/updateApplicationPackage?api-version=2024-02-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/updateApplicationPackage?api-version=2024-07-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvYXBwbGljYXRpb25zL3VwZGF0ZUFwcGxpY2F0aW9uUGFja2FnZT9hcGktdmVyc2lvbj0yMDIzLTA1LTAx", "RequestMethod": "DELETE", "RequestHeaders": { diff --git a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchApplicationPackageTests/TestUpdatePoolWithApplicationPackage.json b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchApplicationPackageTests/TestUpdatePoolWithApplicationPackage.json index 852d78c38cd7..e296eda8a41f 100644 --- a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchApplicationPackageTests/TestUpdatePoolWithApplicationPackage.json +++ b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchApplicationPackageTests/TestUpdatePoolWithApplicationPackage.json @@ -1,7 +1,7 @@ { "Entries": [ { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/updatePoolWithApplicationPackage/versions/foo?api-version=2024-02-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/updatePoolWithApplicationPackage/versions/foo?api-version=2024-07-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvYXBwbGljYXRpb25zL3VwZGF0ZVBvb2xXaXRoQXBwbGljYXRpb25QYWNrYWdlL3ZlcnNpb25zL2Zvbz9hcGktdmVyc2lvbj0yMDIzLTA1LTAx", "RequestMethod": "PUT", "RequestHeaders": { @@ -152,7 +152,7 @@ "StatusCode": 201 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/updatePoolWithApplicationPackage/versions/foo/activate?api-version=2024-02-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/updatePoolWithApplicationPackage/versions/foo/activate?api-version=2024-07-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvYXBwbGljYXRpb25zL3VwZGF0ZVBvb2xXaXRoQXBwbGljYXRpb25QYWNrYWdlL3ZlcnNpb25zL2Zvby9hY3RpdmF0ZT9hcGktdmVyc2lvbj0yMDIzLTA1LTAx", "RequestMethod": "POST", "RequestHeaders": { @@ -236,7 +236,7 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/updatePoolWithApplicationPackage/versions/foo?api-version=2024-02-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/updatePoolWithApplicationPackage/versions/foo?api-version=2024-07-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvYXBwbGljYXRpb25zL3VwZGF0ZVBvb2xXaXRoQXBwbGljYXRpb25QYWNrYWdlL3ZlcnNpb25zL2Zvbz9hcGktdmVyc2lvbj0yMDIzLTA1LTAx", "RequestMethod": "GET", "RequestHeaders": { @@ -503,7 +503,7 @@ "StatusCode": 204 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/updatePoolWithApplicationPackage/versions/foo?api-version=2024-02-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/updatePoolWithApplicationPackage/versions/foo?api-version=2024-07-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvYXBwbGljYXRpb25zL3VwZGF0ZVBvb2xXaXRoQXBwbGljYXRpb25QYWNrYWdlL3ZlcnNpb25zL2Zvbz9hcGktdmVyc2lvbj0yMDIzLTA1LTAx", "RequestMethod": "DELETE", "RequestHeaders": { @@ -572,7 +572,7 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/updatePoolWithApplicationPackage?api-version=2024-02-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/updatePoolWithApplicationPackage?api-version=2024-07-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvYXBwbGljYXRpb25zL3VwZGF0ZVBvb2xXaXRoQXBwbGljYXRpb25QYWNrYWdlP2FwaS12ZXJzaW9uPTIwMjMtMDUtMDE=", "RequestMethod": "DELETE", "RequestHeaders": { diff --git a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchApplicationPackageTests/TestUploadApplicationPackage.json b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchApplicationPackageTests/TestUploadApplicationPackage.json index 773ff1e81c54..5c54596977e5 100644 --- a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchApplicationPackageTests/TestUploadApplicationPackage.json +++ b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchApplicationPackageTests/TestUploadApplicationPackage.json @@ -1,7 +1,7 @@ { "Entries": [ { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/newApplicationPackage/versions/foo?api-version=2024-02-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/newApplicationPackage/versions/foo?api-version=2024-07-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvYXBwbGljYXRpb25zL25ld0FwcGxpY2F0aW9uUGFja2FnZS92ZXJzaW9ucy9mb28/YXBpLXZlcnNpb249MjAyMy0wNS0wMQ==", "RequestMethod": "PUT", "RequestHeaders": { @@ -85,7 +85,7 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/newApplicationPackage/versions/foo/activate?api-version=2024-02-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/newApplicationPackage/versions/foo/activate?api-version=2024-07-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvYXBwbGljYXRpb25zL25ld0FwcGxpY2F0aW9uUGFja2FnZS92ZXJzaW9ucy9mb28vYWN0aXZhdGU/YXBpLXZlcnNpb249MjAyMy0wNS0wMQ==", "RequestMethod": "POST", "RequestHeaders": { @@ -169,7 +169,7 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/newApplicationPackage/versions/foo?api-version=2024-02-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/newApplicationPackage/versions/foo?api-version=2024-07-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvYXBwbGljYXRpb25zL25ld0FwcGxpY2F0aW9uUGFja2FnZS92ZXJzaW9ucy9mb28/YXBpLXZlcnNpb249MjAyMy0wNS0wMQ==", "RequestMethod": "GET", "RequestHeaders": { @@ -247,7 +247,7 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/newApplicationPackage/versions/foo?api-version=2024-02-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/newApplicationPackage/versions/foo?api-version=2024-07-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvYXBwbGljYXRpb25zL25ld0FwcGxpY2F0aW9uUGFja2FnZS92ZXJzaW9ucy9mb28/YXBpLXZlcnNpb249MjAyMy0wNS0wMQ==", "RequestMethod": "DELETE", "RequestHeaders": { @@ -316,7 +316,7 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/newApplicationPackage?api-version=2024-02-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/newApplicationPackage?api-version=2024-07-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvYXBwbGljYXRpb25zL25ld0FwcGxpY2F0aW9uUGFja2FnZT9hcGktdmVyc2lvbj0yMDIzLTA1LTAx", "RequestMethod": "DELETE", "RequestHeaders": { diff --git a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchApplicationTests/TestAddApplication.json b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchApplicationTests/TestAddApplication.json index 24d7396664c1..417a9573bf9b 100644 --- a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchApplicationTests/TestAddApplication.json +++ b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchApplicationTests/TestAddApplication.json @@ -1,7 +1,7 @@ { "Entries": [ { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/test?api-version=2024-02-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/test?api-version=2024-07-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvYXBwbGljYXRpb25zL3Rlc3Q/YXBpLXZlcnNpb249MjAyMy0wNS0wMQ==", "RequestMethod": "PUT", "RequestHeaders": { @@ -85,7 +85,7 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/test?api-version=2024-02-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/test?api-version=2024-07-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvYXBwbGljYXRpb25zL3Rlc3Q/YXBpLXZlcnNpb249MjAyMy0wNS0wMQ==", "RequestMethod": "GET", "RequestHeaders": { @@ -163,7 +163,7 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/test?api-version=2024-02-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/applications/test?api-version=2024-07-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvYXBwbGljYXRpb25zL3Rlc3Q/YXBpLXZlcnNpb249MjAyMy0wNS0wMQ==", "RequestMethod": "DELETE", "RequestHeaders": { diff --git a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.LocationTests/TestGetLocationQuotas.json b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.LocationTests/TestGetLocationQuotas.json index 06846e9e82ee..bf70348aa538 100644 --- a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.LocationTests/TestGetLocationQuotas.json +++ b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.LocationTests/TestGetLocationQuotas.json @@ -70,7 +70,7 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/providers/Microsoft.Batch/locations/westus2/quotas?api-version=2024-02-01", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/providers/Microsoft.Batch/locations/westus2/quotas?api-version=2024-07-01", "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Byb3ZpZGVycy9NaWNyb3NvZnQuQmF0Y2gvbG9jYXRpb25zL3dlc3R1czIvcXVvdGFzP2FwaS12ZXJzaW9uPTIwMjMtMDUtMDE=", "RequestMethod": "GET", "RequestHeaders": { diff --git a/src/Batch/Batch/Models/BatchClient.PrivateEndpointConnection.cs b/src/Batch/Batch/Models/BatchClient.PrivateEndpointConnection.cs index 3dcd7f8e6582..054ab031aa7d 100644 --- a/src/Batch/Batch/Models/BatchClient.PrivateEndpointConnection.cs +++ b/src/Batch/Batch/Models/BatchClient.PrivateEndpointConnection.cs @@ -76,7 +76,7 @@ public virtual PSPrivateEndpointConnection GetPrivateEndpointConnection(string r return result; } - public virtual void UpdatePrivateEndpointConnection(string resourceGroup, string accountName, string name, PrivateLinkServiceConnectionStatus status, string description) + public virtual void UpdatePrivateEndpointConnection(string resourceGroup, string accountName, string name, PrivateLinkServiceConnectionStatus status, string description, PrivateEndpoint privateEndpoint, PrivateEndpointConnectionProvisioningState provisioningState, System.Collections.Generic.IList groupIds) { if (resourceGroup == null) { @@ -92,8 +92,11 @@ public virtual void UpdatePrivateEndpointConnection(string resourceGroup, string } PrivateLinkServiceConnectionState state = new PrivateLinkServiceConnectionState(status: status, description: description); - - BatchManagementClient.PrivateEndpointConnection.Update(resourceGroup, accountName, name, state, default); + PrivateEndpointConnection parameters = new PrivateEndpointConnection() + { + PrivateLinkServiceConnectionState = state, + }; + BatchManagementClient.PrivateEndpointConnection.Update(resourceGroup, accountName, name, parameters, default); } internal IEnumerable ListAllPrivateEndpointConnections(string resourceGroup, string accountName, int? maxResults = null) From 9be9efce9cab6daad2efbd45a72959d1e3620fe3 Mon Sep 17 00:00:00 2001 From: "REDMOND\\wiboris" Date: Tue, 16 Sep 2025 14:48:24 -0700 Subject: [PATCH 07/13] Update Dataplane to 16.3.1 --- src/Batch/Batch.Test/Batch.Test.csproj | 16 +- src/Batch/Batch.Test/BatchTestHelpers.cs | 11 - ...chRemoteDesktopProtocolFileCommandTests.cs | 85 -------- .../Jobs/NewBatchJobCommandTests.cs | 10 +- .../GetBatchPoolNodeCountsCommandTests.cs | 26 ++- .../Pools/NewBatchPoolCommandTests.cs | 8 +- .../ScenarioTests/ScenarioTestHelpers.cs | 9 +- src/Batch/Batch/Batch.csproj | 12 +- ...etBatchRemoteDesktopProtocolFileCommand.cs | 71 ------ .../Batch/Models.Generated/PSCloudPool.cs | 76 ------- ... => PSContainerHostBatchBindMountEntry.cs} | 22 +- .../Models.Generated/PSImageReference.cs | 44 ++++ .../PSJobNetworkConfiguration.cs | 20 +- .../Batch/Models.Generated/PSManagedDisk.cs | 36 ++- .../Batch/Models.Generated/PSNodeCounts.cs | 16 ++ .../Models.Generated/PSPoolSpecification.cs | 64 ------ .../PSTaskContainerSettings.cs | 41 +++- .../PSVMDiskSecurityProfile.cs | 63 ++++++ src/Batch/Batch/Models/BatchClient.Files.cs | 42 ---- src/Batch/Batch/Models/BatchClient.Pools.cs | 10 - ...ownloadRemoteDesktopProtocolFileOptions.cs | 47 ---- src/Batch/Batch/Models/NewPoolParameters.cs | 5 - src/Batch/Batch/Pools/NewBatchPoolCommand.cs | 1 - .../Get-AzBatchRemoteDesktopProtocolFile.md | 206 ------------------ 24 files changed, 283 insertions(+), 658 deletions(-) delete mode 100644 src/Batch/Batch.Test/Files/GetBatchRemoteDesktopProtocolFileCommandTests.cs delete mode 100644 src/Batch/Batch/Files/GetBatchRemoteDesktopProtocolFileCommand.cs rename src/Batch/Batch/Models.Generated/{PSCloudServiceConfiguration.cs => PSContainerHostBatchBindMountEntry.cs} (73%) create mode 100644 src/Batch/Batch/Models.Generated/PSVMDiskSecurityProfile.cs delete mode 100644 src/Batch/Batch/Models/DownloadRemoteDesktopProtocolFileOptions.cs delete mode 100644 src/Batch/Batch/help/Get-AzBatchRemoteDesktopProtocolFile.md diff --git a/src/Batch/Batch.Test/Batch.Test.csproj b/src/Batch/Batch.Test/Batch.Test.csproj index 31ac7612207f..a12ec685f417 100644 --- a/src/Batch/Batch.Test/Batch.Test.csproj +++ b/src/Batch/Batch.Test/Batch.Test.csproj @@ -1,4 +1,4 @@ - + Batch @@ -13,8 +13,8 @@ - - + + @@ -29,5 +29,15 @@ + + + + + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + \ No newline at end of file diff --git a/src/Batch/Batch.Test/BatchTestHelpers.cs b/src/Batch/Batch.Test/BatchTestHelpers.cs index 9dc7541e190e..5027f912bfed 100644 --- a/src/Batch/Batch.Test/BatchTestHelpers.cs +++ b/src/Batch/Batch.Test/BatchTestHelpers.cs @@ -842,17 +842,6 @@ public static AzureOperationResponse< return response; } - /// - /// Builds a NodeFileGetPropertiesResponse object - /// - public static AzureOperationResponse CreateGetRemoteDesktOperationResponse() - { - var response = new AzureOperationResponse(); - response.Headers = new ProxyModels.ComputeNodeGetRemoteDesktopHeaders(); - response.Body = new MemoryStream(); - return response; - } - /// /// Builds a NodeFileGetPropertiesFromTaskResponse object /// diff --git a/src/Batch/Batch.Test/Files/GetBatchRemoteDesktopProtocolFileCommandTests.cs b/src/Batch/Batch.Test/Files/GetBatchRemoteDesktopProtocolFileCommandTests.cs deleted file mode 100644 index ad3feea79008..000000000000 --- a/src/Batch/Batch.Test/Files/GetBatchRemoteDesktopProtocolFileCommandTests.cs +++ /dev/null @@ -1,85 +0,0 @@ -// ---------------------------------------------------------------------------------- -// -// Copyright Microsoft Corporation -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// http://www.apache.org/licenses/LICENSE-2.0 -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// ---------------------------------------------------------------------------------- - -using Microsoft.Azure.Batch; -using Microsoft.Azure.Batch.Protocol; -using Microsoft.Azure.Batch.Protocol.Models; -using Microsoft.Rest.Azure; -using Microsoft.WindowsAzure.Commands.ScenarioTest; -using Moq; -using System; -using System.Collections.Generic; -using System.IO; -using System.Management.Automation; -using Xunit; -using BatchClient = Microsoft.Azure.Commands.Batch.Models.BatchClient; - -namespace Microsoft.Azure.Commands.Batch.Test.Files -{ - public class GetBatchRemoteDesktopProtocolFileCommandTests : WindowsAzure.Commands.Test.Utilities.Common.RMTestBase - { - private GetBatchRemoteDesktopProtocolFileCommand cmdlet; - private Mock batchClientMock; - private Mock commandRuntimeMock; - - public GetBatchRemoteDesktopProtocolFileCommandTests(Xunit.Abstractions.ITestOutputHelper output) - { - ServiceManagement.Common.Models.XunitTracingInterceptor.AddToContext(new ServiceManagement.Common.Models.XunitTracingInterceptor(output)); - batchClientMock = new Mock(); - commandRuntimeMock = new Mock(); - cmdlet = new GetBatchRemoteDesktopProtocolFileCommand() - { - CommandRuntime = commandRuntimeMock.Object, - BatchClient = batchClientMock.Object, - }; - } - - [Fact] - [Trait(Category.AcceptanceType, Category.CheckIn)] - public void GetBatchRemoteDesktopProtocolFileParametersTest() - { - // Setup cmdlet without required parameters - BatchAccountContext context = BatchTestHelpers.CreateBatchContextWithKeys(); - cmdlet.BatchContext = context; - cmdlet.PoolId = null; - cmdlet.ComputeNodeId = null; - cmdlet.ComputeNode = null; - cmdlet.DestinationPath = null; - - AzureOperationResponse response = BatchTestHelpers.CreateGetRemoteDesktOperationResponse(); - - // Don't go to the service on a Get ComputeNode Remote Desktop call - RequestInterceptor interceptor = BatchTestHelpers.CreateFakeServiceResponseInterceptor< - ComputeNodeGetRemoteDesktopOptions, - AzureOperationResponse>(response); - - cmdlet.AdditionalBehaviors = new List() { interceptor }; - - using (MemoryStream memStream = new MemoryStream()) - { - // Don't hit the file system during unit tests - cmdlet.DestinationStream = memStream; - - Assert.Throws(() => cmdlet.ExecuteCmdlet()); - - // Fill required compute node details - cmdlet.PoolId = "pool"; - cmdlet.ComputeNodeId = "computeNode1"; - - // Verify no exceptions occur - cmdlet.ExecuteCmdlet(); - } - } - } -} diff --git a/src/Batch/Batch.Test/Jobs/NewBatchJobCommandTests.cs b/src/Batch/Batch.Test/Jobs/NewBatchJobCommandTests.cs index 771d289d3a01..9ba3c285b99f 100644 --- a/src/Batch/Batch.Test/Jobs/NewBatchJobCommandTests.cs +++ b/src/Batch/Batch.Test/Jobs/NewBatchJobCommandTests.cs @@ -181,7 +181,15 @@ public void NewBatchJobPoolUserAccountsGetPassedToRequest() PoolLifetimeOption = Azure.Batch.Common.PoolLifetimeOption.Job, PoolSpecification = new PSPoolSpecification { - CloudServiceConfiguration = new PSCloudServiceConfiguration("4", "*"), + VirtualMachineConfiguration = new PSVirtualMachineConfiguration( + new PSImageReference + { + Publisher = "Canonical", + Offer = "UbuntuServer", + Sku = "18.04-LTS", + Version = "latest" + }, + "batch.node.ubuntu 18.04"), UserAccounts = new List() { adminUser, nonAdminUser, sshUser } } } diff --git a/src/Batch/Batch.Test/Pools/GetBatchPoolNodeCountsCommandTests.cs b/src/Batch/Batch.Test/Pools/GetBatchPoolNodeCountsCommandTests.cs index 714cbd0503c2..7c9307a17885 100644 --- a/src/Batch/Batch.Test/Pools/GetBatchPoolNodeCountsCommandTests.cs +++ b/src/Batch/Batch.Test/Pools/GetBatchPoolNodeCountsCommandTests.cs @@ -75,7 +75,9 @@ public void WhenGetBatchPoolNodeCountsCommandIsCalledWithoutFilter_ShouldReturnA unusable: 12, waitingForStartTask: 13, total: 91, - upgradingOS: 1), // Total + upgradingOS: 1, + deallocated: 1, + deallocating: 1), // Total LowPriority = new ProxyModels.NodeCounts( creating: 1, idle: 2, @@ -91,7 +93,9 @@ public void WhenGetBatchPoolNodeCountsCommandIsCalledWithoutFilter_ShouldReturnA unusable: 12, waitingForStartTask: 13, total: 91, - upgradingOS: 1), // Total + upgradingOS: 1, + deallocated: 1, + deallocating: 1), // Total }; var poolNodeCounts2 = new ProxyModels.PoolNodeCounts() @@ -112,7 +116,9 @@ public void WhenGetBatchPoolNodeCountsCommandIsCalledWithoutFilter_ShouldReturnA unusable: 22, waitingForStartTask: 23, total: 221, - upgradingOS: 1), // Total + upgradingOS: 1, + deallocated: 1, + deallocating: 1), // Total LowPriority = new ProxyModels.NodeCounts( creating: 11, idle: 12, @@ -128,7 +134,9 @@ public void WhenGetBatchPoolNodeCountsCommandIsCalledWithoutFilter_ShouldReturnA unusable: 22, waitingForStartTask: 23, total: 221, - upgradingOS: 1), // Total + upgradingOS: 1, + deallocated: 1, + deallocating: 1), // Total }; // Simulate node state counts for two pools are returned @@ -251,6 +259,8 @@ public void WhenPSNodeCountsFormatObjectIsCalled_ShouldSerlializeNodeCountsToStr const int waitingForStartTask = 13; const int total = 91; const int upgradingOS = 1; + const int deallocated = 1; + const int deallocating = 1; var poolNodeCounts = new ProxyModels.PoolNodeCounts() { @@ -271,7 +281,9 @@ public void WhenPSNodeCountsFormatObjectIsCalled_ShouldSerlializeNodeCountsToStr unusable: unusable, waitingForStartTask: waitingForStartTask, total: total, - upgradingOS: upgradingOS), // Total + upgradingOS: upgradingOS, + deallocated: deallocated, + deallocating: deallocating), // Total // all zero properties LowPriority = new ProxyModels.NodeCounts( creating: 0, @@ -288,7 +300,9 @@ public void WhenPSNodeCountsFormatObjectIsCalled_ShouldSerlializeNodeCountsToStr unusable: 0, waitingForStartTask: 0, total: 0, - upgradingOS: 0), // Total + upgradingOS: 0, + deallocated: 0, + deallocating: 0), // Total }; BatchAccountContext context = BatchTestHelpers.CreateBatchContextWithKeys(); diff --git a/src/Batch/Batch.Test/Pools/NewBatchPoolCommandTests.cs b/src/Batch/Batch.Test/Pools/NewBatchPoolCommandTests.cs index a02bf8c72dd8..ecd65f388e25 100644 --- a/src/Batch/Batch.Test/Pools/NewBatchPoolCommandTests.cs +++ b/src/Batch/Batch.Test/Pools/NewBatchPoolCommandTests.cs @@ -91,7 +91,6 @@ public void NewBatchPoolParametersGetPassedToRequestTest() Visibility = Azure.Batch.Common.CertificateVisibility.StartTask } }; - cmdlet.CloudServiceConfiguration = new PSCloudServiceConfiguration("4", "*"); cmdlet.DisplayName = "display name"; cmdlet.InterComputeNodeCommunicationEnabled = true; cmdlet.TaskSlotsPerNode = 4; @@ -138,14 +137,11 @@ public void NewBatchPoolParametersGetPassedToRequestTest() cmdlet.ExecuteCmdlet(); // Verify the request parameters match the cmdlet parameters - Assert.Equal(cmdlet.ApplicationLicenses[0], requestParameters.ApplicationLicenses[0]); - Assert.Equal(cmdlet.ApplicationLicenses[1], requestParameters.ApplicationLicenses[1]); Assert.Equal(cmdlet.CertificateReferences.Length, requestParameters.CertificateReferences.Count); Assert.Equal(cmdlet.CertificateReferences[0].StoreName, requestParameters.CertificateReferences[0].StoreName); Assert.Equal(cmdlet.CertificateReferences[0].Thumbprint, requestParameters.CertificateReferences[0].Thumbprint); Assert.Equal(cmdlet.CertificateReferences[0].ThumbprintAlgorithm, requestParameters.CertificateReferences[0].ThumbprintAlgorithm); - Assert.Equal(cmdlet.CloudServiceConfiguration.OSFamily, requestParameters.CloudServiceConfiguration.OsFamily); - Assert.Equal(cmdlet.CloudServiceConfiguration.OSVersion, requestParameters.CloudServiceConfiguration.OsVersion); + Assert.Equal(cmdlet.VirtualMachineConfiguration.ImageReference.Version, requestParameters.VirtualMachineConfiguration.ImageReference.Version); Assert.Equal(cmdlet.DisplayName, requestParameters.DisplayName); Assert.Equal(cmdlet.InterComputeNodeCommunicationEnabled, requestParameters.EnableInterNodeCommunication); Assert.Equal(cmdlet.TaskSlotsPerNode, requestParameters.TaskSlotsPerNode); @@ -263,7 +259,7 @@ public void NewBatchPoolUserAccountsGetPassedToRequest() cmdlet.BatchContext = context; cmdlet.Id = "testPool"; - cmdlet.CloudServiceConfiguration = new PSCloudServiceConfiguration("4", "*"); + cmdlet.VirtualMachineConfiguration = new PSVirtualMachineConfiguration(new PSImageReference("offer", "publisher", "sku"), "node agent"); cmdlet.TargetDedicatedComputeNodes = 3; PSUserAccount adminUser = new PSUserAccount("admin", "password1", Azure.Batch.Common.ElevationLevel.Admin); diff --git a/src/Batch/Batch.Test/ScenarioTests/ScenarioTestHelpers.cs b/src/Batch/Batch.Test/ScenarioTests/ScenarioTestHelpers.cs index e5c0cb55a111..203063e3bb1d 100644 --- a/src/Batch/Batch.Test/ScenarioTests/ScenarioTestHelpers.cs +++ b/src/Batch/Batch.Test/ScenarioTests/ScenarioTestHelpers.cs @@ -38,6 +38,7 @@ using BatchAccountKeys = Microsoft.Azure.Management.Batch.Models.BatchAccountKeys; using ApplicationPackage = Microsoft.Azure.Management.Batch.Models.ApplicationPackage; using System.Security.Policy; +using System.Management.Automation; namespace Microsoft.Azure.Commands.Batch.Test.ScenarioTests @@ -215,12 +216,12 @@ public static void CreateTestPool( psUpgradePolicy = new PSUpgradePolicy(upgradePolicy); } - PSCloudServiceConfiguration paasConfiguration = new PSCloudServiceConfiguration("4", "*"); - + PSVirtualMachineConfiguration virtualMachineConfiguration = new PSVirtualMachineConfiguration(new PSImageReference("offer", "publisher", "sku"), "node agent"); + NewPoolParameters parameters = new NewPoolParameters(context, poolId) { VirtualMachineSize = "standard_d1_v2", - CloudServiceConfiguration = paasConfiguration, + VirtualMachineConfiguration = virtualMachineConfiguration, TargetDedicatedComputeNodes = targetDedicated, TargetLowPriorityComputeNodes = targetLowPriority, CertificateReferences = certReferences, @@ -510,7 +511,7 @@ public static PSCloudJob WaitForJobCompletion(BatchTestRunner runner, BatchAccou DateTime timeout = DateTime.Now.AddMinutes(10); - while (job.State != JobState.Completed && DateTime.Now < timeout) + while (job.State != Azure.Batch.Common.JobState.Completed && DateTime.Now < timeout) { job = client.ListJobs(new ListJobOptions(context)).First(cloudJob => cloudJob.Id == jobId); diff --git a/src/Batch/Batch/Batch.csproj b/src/Batch/Batch/Batch.csproj index 6054ea798036..1b47f19ab842 100644 --- a/src/Batch/Batch/Batch.csproj +++ b/src/Batch/Batch/Batch.csproj @@ -1,4 +1,4 @@ - + Batch @@ -12,8 +12,8 @@ - - + + @@ -26,6 +26,12 @@ + + + + + + diff --git a/src/Batch/Batch/Files/GetBatchRemoteDesktopProtocolFileCommand.cs b/src/Batch/Batch/Files/GetBatchRemoteDesktopProtocolFileCommand.cs deleted file mode 100644 index 5f2a33ebc5ac..000000000000 --- a/src/Batch/Batch/Files/GetBatchRemoteDesktopProtocolFileCommand.cs +++ /dev/null @@ -1,71 +0,0 @@ -// ---------------------------------------------------------------------------------- -// -// Copyright Microsoft Corporation -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// http://www.apache.org/licenses/LICENSE-2.0 -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// ---------------------------------------------------------------------------------- - -using Microsoft.Azure.Commands.Batch.Models; -using Microsoft.WindowsAzure.Commands.Common.CustomAttributes; -using System.IO; -using System.Management.Automation; -using Constants = Microsoft.Azure.Commands.Batch.Utils.Constants; - -namespace Microsoft.Azure.Commands.Batch -{ - [CmdletDeprecationWithVersion("15.0.0", "4.0.0", ReplacementCmdletName = "Get-AzBatchRemoteLoginSettings")] - [Cmdlet("Get", ResourceManager.Common.AzureRMConstants.AzurePrefix + "BatchRemoteDesktopProtocolFile", DefaultParameterSetName = IdAndPathParameterSet), OutputType(typeof(void))] - public class GetBatchRemoteDesktopProtocolFileCommand : BatchObjectModelCmdletBase - { - internal const string IdAndPathParameterSet = "Id_Path"; - internal const string IdAndStreamParameterSet = "Id_Stream"; - - [Parameter(Position = 0, ParameterSetName = IdAndPathParameterSet, Mandatory = true, - ValueFromPipelineByPropertyName = true, HelpMessage = "The id of the pool which contains the compute node.")] - [Parameter(Position = 0, ParameterSetName = IdAndStreamParameterSet, Mandatory = true, - ValueFromPipelineByPropertyName = true)] - [ValidateNotNullOrEmpty] - public string PoolId { get; set; } - - [Parameter(Position = 1, ParameterSetName = IdAndPathParameterSet, Mandatory = true, - ValueFromPipelineByPropertyName = true, HelpMessage = "The id of the compute node to which the Remote Desktop Protocol file will point.")] - [Parameter(Position = 1, ParameterSetName = IdAndStreamParameterSet, Mandatory = true, - ValueFromPipelineByPropertyName = true)] - [ValidateNotNullOrEmpty] - public string ComputeNodeId { get; set; } - - [Parameter(Position = 0, ParameterSetName = Constants.InputObjectAndPathParameterSet, - ValueFromPipeline = true)] - [Parameter(Position = 0, ParameterSetName = Constants.InputObjectAndStreamParameterSet, - ValueFromPipeline = true)] - [ValidateNotNullOrEmpty] - public PSComputeNode ComputeNode { get; set; } - - [Parameter(ParameterSetName = IdAndPathParameterSet, Mandatory = true, - HelpMessage = "The file path where the Remote Desktop Protocol file will be downloaded.")] - [Parameter(ParameterSetName = Constants.InputObjectAndPathParameterSet, Mandatory = true)] - [ValidateNotNullOrEmpty] - public string DestinationPath { get; set; } - - [Parameter(ParameterSetName = IdAndStreamParameterSet, Mandatory = true, - HelpMessage = "The Stream into which the Remote Desktop Protocol file data will be written. This stream will not be closed or rewound by this call.")] - [Parameter(ParameterSetName = Constants.InputObjectAndStreamParameterSet, Mandatory = true)] - [ValidateNotNullOrEmpty] - public Stream DestinationStream { get; set; } - - protected override void ExecuteCmdletImpl() - { - DownloadRemoteDesktopProtocolFileOptions options = new DownloadRemoteDesktopProtocolFileOptions(this.BatchContext, this.PoolId, this.ComputeNodeId, - this.ComputeNode, this.DestinationPath, this.DestinationStream, this.AdditionalBehaviors); - - this.BatchClient.DownloadRemoteDesktopProtocolFile(options); - } - } -} diff --git a/src/Batch/Batch/Models.Generated/PSCloudPool.cs b/src/Batch/Batch/Models.Generated/PSCloudPool.cs index 843332d762d2..f39bcfb0a1c5 100644 --- a/src/Batch/Batch/Models.Generated/PSCloudPool.cs +++ b/src/Batch/Batch/Models.Generated/PSCloudPool.cs @@ -34,16 +34,12 @@ public partial class PSCloudPool internal Microsoft.Azure.Batch.CloudPool omObject; - private IList applicationLicenses; - private IList applicationPackageReferences; private PSAutoScaleRun autoScaleRun; private IList certificateReferences; - private PSCloudServiceConfiguration cloudServiceConfiguration; - private PSBatchPoolIdentity identity; private IDictionary metadata; @@ -93,41 +89,6 @@ public System.DateTime? AllocationStateTransitionTime } } - public IList ApplicationLicenses - { - get - { - if (((this.applicationLicenses == null) - && (this.omObject.ApplicationLicenses != null))) - { - List list; - list = new List(); - IEnumerator enumerator; - enumerator = this.omObject.ApplicationLicenses.GetEnumerator(); - for ( - ; enumerator.MoveNext(); - ) - { - list.Add(enumerator.Current); - } - this.applicationLicenses = list; - } - return this.applicationLicenses; - } - set - { - if ((value == null)) - { - this.omObject.ApplicationLicenses = null; - } - else - { - this.omObject.ApplicationLicenses = new List(); - } - this.applicationLicenses = value; - } - } - public IList ApplicationPackageReferences { get @@ -247,31 +208,6 @@ public IList CertificateReferences } } - public PSCloudServiceConfiguration CloudServiceConfiguration - { - get - { - if (((this.cloudServiceConfiguration == null) - && (this.omObject.CloudServiceConfiguration != null))) - { - this.cloudServiceConfiguration = new PSCloudServiceConfiguration(this.omObject.CloudServiceConfiguration); - } - return this.cloudServiceConfiguration; - } - set - { - if ((value == null)) - { - this.omObject.CloudServiceConfiguration = null; - } - else - { - this.omObject.CloudServiceConfiguration = value.omObject; - } - this.cloudServiceConfiguration = value; - } - } - public System.DateTime? CreationTime { get @@ -347,18 +283,6 @@ public PSBatchPoolIdentity Identity } return this.identity; } - set - { - if ((value == null)) - { - this.omObject.Identity = null; - } - else - { - this.omObject.Identity = value.omObject; - } - this.identity = value; - } } public System.Boolean? InterComputeNodeCommunicationEnabled diff --git a/src/Batch/Batch/Models.Generated/PSCloudServiceConfiguration.cs b/src/Batch/Batch/Models.Generated/PSContainerHostBatchBindMountEntry.cs similarity index 73% rename from src/Batch/Batch/Models.Generated/PSCloudServiceConfiguration.cs rename to src/Batch/Batch/Models.Generated/PSContainerHostBatchBindMountEntry.cs index 681734c67079..ca93f905d727 100644 --- a/src/Batch/Batch/Models.Generated/PSCloudServiceConfiguration.cs +++ b/src/Batch/Batch/Models.Generated/PSContainerHostBatchBindMountEntry.cs @@ -29,17 +29,17 @@ namespace Microsoft.Azure.Commands.Batch.Models using Microsoft.Azure.Batch; - public partial class PSCloudServiceConfiguration + public partial class PSContainerHostBatchBindMountEntry { - internal Microsoft.Azure.Batch.CloudServiceConfiguration omObject; + internal Microsoft.Azure.Batch.ContainerHostBatchBindMountEntry omObject; - public PSCloudServiceConfiguration(string osFamily, string osVersion = null) + public PSContainerHostBatchBindMountEntry() { - this.omObject = new Microsoft.Azure.Batch.CloudServiceConfiguration(osFamily, osVersion); + this.omObject = new Microsoft.Azure.Batch.ContainerHostBatchBindMountEntry(); } - internal PSCloudServiceConfiguration(Microsoft.Azure.Batch.CloudServiceConfiguration omObject) + internal PSContainerHostBatchBindMountEntry(Microsoft.Azure.Batch.ContainerHostBatchBindMountEntry omObject) { if ((omObject == null)) { @@ -48,27 +48,27 @@ internal PSCloudServiceConfiguration(Microsoft.Azure.Batch.CloudServiceConfigura this.omObject = omObject; } - public string OSFamily + public System.Boolean? IsReadOnly { get { - return this.omObject.OSFamily; + return this.omObject.IsReadOnly; } set { - this.omObject.OSFamily = value; + this.omObject.IsReadOnly = value; } } - public string OSVersion + public string Source { get { - return this.omObject.OSVersion; + return this.omObject.Source; } set { - this.omObject.OSVersion = value; + this.omObject.Source = value; } } } diff --git a/src/Batch/Batch/Models.Generated/PSImageReference.cs b/src/Batch/Batch/Models.Generated/PSImageReference.cs index 51fe589bbc94..a9397e81b9c3 100644 --- a/src/Batch/Batch/Models.Generated/PSImageReference.cs +++ b/src/Batch/Batch/Models.Generated/PSImageReference.cs @@ -58,6 +58,18 @@ internal PSImageReference(Microsoft.Azure.Batch.ImageReference omObject) this.omObject = omObject; } + public string CommunityGalleryImageId + { + get + { + return this.omObject.CommunityGalleryImageId; + } + set + { + this.omObject.CommunityGalleryImageId = value; + } + } + public string ExactVersion { get @@ -72,6 +84,10 @@ public string Offer { return this.omObject.Offer; } + set + { + this.omObject.Offer = value; + } } public string Publisher @@ -80,6 +96,22 @@ public string Publisher { return this.omObject.Publisher; } + set + { + this.omObject.Publisher = value; + } + } + + public string SharedGalleryImageId + { + get + { + return this.omObject.SharedGalleryImageId; + } + set + { + this.omObject.SharedGalleryImageId = value; + } } public string Sku @@ -88,6 +120,10 @@ public string Sku { return this.omObject.Sku; } + set + { + this.omObject.Sku = value; + } } public string Version @@ -96,6 +132,10 @@ public string Version { return this.omObject.Version; } + set + { + this.omObject.Version = value; + } } public string VirtualMachineImageId @@ -104,6 +144,10 @@ public string VirtualMachineImageId { return this.omObject.VirtualMachineImageId; } + set + { + this.omObject.VirtualMachineImageId = value; + } } } } diff --git a/src/Batch/Batch/Models.Generated/PSJobNetworkConfiguration.cs b/src/Batch/Batch/Models.Generated/PSJobNetworkConfiguration.cs index b104f37c4b1c..569ecc8cbd06 100644 --- a/src/Batch/Batch/Models.Generated/PSJobNetworkConfiguration.cs +++ b/src/Batch/Batch/Models.Generated/PSJobNetworkConfiguration.cs @@ -34,9 +34,9 @@ public partial class PSJobNetworkConfiguration internal Microsoft.Azure.Batch.JobNetworkConfiguration omObject; - public PSJobNetworkConfiguration(string subnetId = null) + public PSJobNetworkConfiguration(string subnetId, System.Nullable skipWithdrawFromVNet = null) { - this.omObject = new Microsoft.Azure.Batch.JobNetworkConfiguration(subnetId); + this.omObject = new Microsoft.Azure.Batch.JobNetworkConfiguration(subnetId, skipWithdrawFromVNet); } internal PSJobNetworkConfiguration(Microsoft.Azure.Batch.JobNetworkConfiguration omObject) @@ -48,12 +48,28 @@ internal PSJobNetworkConfiguration(Microsoft.Azure.Batch.JobNetworkConfiguration this.omObject = omObject; } + public System.Boolean? SkipWithdrawFromVNet + { + get + { + return this.omObject.SkipWithdrawFromVNet; + } + set + { + this.omObject.SkipWithdrawFromVNet = value; + } + } + public string SubnetId { get { return this.omObject.SubnetId; } + set + { + this.omObject.SubnetId = value; + } } } } diff --git a/src/Batch/Batch/Models.Generated/PSManagedDisk.cs b/src/Batch/Batch/Models.Generated/PSManagedDisk.cs index c23ef07cb13b..56e74adae8c2 100644 --- a/src/Batch/Batch/Models.Generated/PSManagedDisk.cs +++ b/src/Batch/Batch/Models.Generated/PSManagedDisk.cs @@ -34,9 +34,16 @@ public partial class PSManagedDisk internal Microsoft.Azure.Batch.ManagedDisk omObject; - public PSManagedDisk(System.Nullable storageAccountType = null) + private PSVMDiskSecurityProfile securityProfile; + + public PSManagedDisk(System.Nullable storageAccountType = null, PSVMDiskSecurityProfile securityProfile = default(PSVMDiskSecurityProfile)) { - this.omObject = new Microsoft.Azure.Batch.ManagedDisk(storageAccountType); + Microsoft.Azure.Batch.VMDiskSecurityProfile securityProfileOmObject = null; + if ((securityProfile != null)) + { + securityProfileOmObject = securityProfile.omObject; + } + this.omObject = new Microsoft.Azure.Batch.ManagedDisk(storageAccountType, securityProfileOmObject); } internal PSManagedDisk(Microsoft.Azure.Batch.ManagedDisk omObject) @@ -48,6 +55,31 @@ internal PSManagedDisk(Microsoft.Azure.Batch.ManagedDisk omObject) this.omObject = omObject; } + public PSVMDiskSecurityProfile SecurityProfile + { + get + { + if (((this.securityProfile == null) + && (this.omObject.SecurityProfile != null))) + { + this.securityProfile = new PSVMDiskSecurityProfile(this.omObject.SecurityProfile); + } + return this.securityProfile; + } + set + { + if ((value == null)) + { + this.omObject.SecurityProfile = null; + } + else + { + this.omObject.SecurityProfile = value.omObject; + } + this.securityProfile = value; + } + } + public Microsoft.Azure.Batch.Common.StorageAccountType? StorageAccountType { get diff --git a/src/Batch/Batch/Models.Generated/PSNodeCounts.cs b/src/Batch/Batch/Models.Generated/PSNodeCounts.cs index 1a485caae6e0..e16007f31948 100644 --- a/src/Batch/Batch/Models.Generated/PSNodeCounts.cs +++ b/src/Batch/Batch/Models.Generated/PSNodeCounts.cs @@ -51,6 +51,22 @@ public int Creating } } + public int Deallocated + { + get + { + return this.omObject.Deallocated; + } + } + + public int Deallocating + { + get + { + return this.omObject.Deallocating; + } + } + public int Idle { get diff --git a/src/Batch/Batch/Models.Generated/PSPoolSpecification.cs b/src/Batch/Batch/Models.Generated/PSPoolSpecification.cs index 03ee1bd686a4..47da320b1de1 100644 --- a/src/Batch/Batch/Models.Generated/PSPoolSpecification.cs +++ b/src/Batch/Batch/Models.Generated/PSPoolSpecification.cs @@ -34,14 +34,10 @@ public partial class PSPoolSpecification internal Microsoft.Azure.Batch.PoolSpecification omObject; - private IList applicationLicenses; - private IList applicationPackageReferences; private IList certificateReferences; - private PSCloudServiceConfiguration cloudServiceConfiguration; - private IDictionary metadata; private IList mountConfiguration; @@ -74,41 +70,6 @@ internal PSPoolSpecification(Microsoft.Azure.Batch.PoolSpecification omObject) this.omObject = omObject; } - public IList ApplicationLicenses - { - get - { - if (((this.applicationLicenses == null) - && (this.omObject.ApplicationLicenses != null))) - { - List list; - list = new List(); - IEnumerator enumerator; - enumerator = this.omObject.ApplicationLicenses.GetEnumerator(); - for ( - ; enumerator.MoveNext(); - ) - { - list.Add(enumerator.Current); - } - this.applicationLicenses = list; - } - return this.applicationLicenses; - } - set - { - if ((value == null)) - { - this.omObject.ApplicationLicenses = null; - } - else - { - this.omObject.ApplicationLicenses = new List(); - } - this.applicationLicenses = value; - } - } - public IList ApplicationPackageReferences { get @@ -215,31 +176,6 @@ public IList CertificateReferences } } - public PSCloudServiceConfiguration CloudServiceConfiguration - { - get - { - if (((this.cloudServiceConfiguration == null) - && (this.omObject.CloudServiceConfiguration != null))) - { - this.cloudServiceConfiguration = new PSCloudServiceConfiguration(this.omObject.CloudServiceConfiguration); - } - return this.cloudServiceConfiguration; - } - set - { - if ((value == null)) - { - this.omObject.CloudServiceConfiguration = null; - } - else - { - this.omObject.CloudServiceConfiguration = value.omObject; - } - this.cloudServiceConfiguration = value; - } - } - public string DisplayName { get diff --git a/src/Batch/Batch/Models.Generated/PSTaskContainerSettings.cs b/src/Batch/Batch/Models.Generated/PSTaskContainerSettings.cs index b2b32dc658eb..7548d700c2b0 100644 --- a/src/Batch/Batch/Models.Generated/PSTaskContainerSettings.cs +++ b/src/Batch/Batch/Models.Generated/PSTaskContainerSettings.cs @@ -34,16 +34,18 @@ public partial class PSTaskContainerSettings internal Microsoft.Azure.Batch.TaskContainerSettings omObject; + private IList containerHostBatchBindMounts; + private PSContainerRegistry registry; - public PSTaskContainerSettings(string imageName, string containerRunOptions = null, PSContainerRegistry registry = default(PSContainerRegistry), System.Nullable workingDirectory = null) + public PSTaskContainerSettings(string imageName, string containerRunOptions = null, PSContainerRegistry registry = default(PSContainerRegistry), System.Nullable workingDirectory = null, System.Collections.Generic.IList containerHostBatchBindMounts = null) { Microsoft.Azure.Batch.ContainerRegistry registryOmObject = null; if ((registry != null)) { registryOmObject = registry.omObject; } - this.omObject = new Microsoft.Azure.Batch.TaskContainerSettings(imageName, containerRunOptions, registryOmObject, workingDirectory); + this.omObject = new Microsoft.Azure.Batch.TaskContainerSettings(imageName, containerRunOptions, registryOmObject, workingDirectory, containerHostBatchBindMounts); } internal PSTaskContainerSettings(Microsoft.Azure.Batch.TaskContainerSettings omObject) @@ -55,6 +57,41 @@ internal PSTaskContainerSettings(Microsoft.Azure.Batch.TaskContainerSettings omO this.omObject = omObject; } + public IList ContainerHostBatchBindMounts + { + get + { + if (((this.containerHostBatchBindMounts == null) + && (this.omObject.ContainerHostBatchBindMounts != null))) + { + List list; + list = new List(); + IEnumerator enumerator; + enumerator = this.omObject.ContainerHostBatchBindMounts.GetEnumerator(); + for ( + ; enumerator.MoveNext(); + ) + { + list.Add(new PSContainerHostBatchBindMountEntry(enumerator.Current)); + } + this.containerHostBatchBindMounts = list; + } + return this.containerHostBatchBindMounts; + } + set + { + if ((value == null)) + { + this.omObject.ContainerHostBatchBindMounts = null; + } + else + { + this.omObject.ContainerHostBatchBindMounts = new List(); + } + this.containerHostBatchBindMounts = value; + } + } + public string ContainerRunOptions { get diff --git a/src/Batch/Batch/Models.Generated/PSVMDiskSecurityProfile.cs b/src/Batch/Batch/Models.Generated/PSVMDiskSecurityProfile.cs new file mode 100644 index 000000000000..4449aeef40a3 --- /dev/null +++ b/src/Batch/Batch/Models.Generated/PSVMDiskSecurityProfile.cs @@ -0,0 +1,63 @@ +// ----------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ----------------------------------------------------------------------------- +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:5.0.17 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Microsoft.Azure.Commands.Batch.Models +{ + using System; + using System.Collections; + using System.Collections.Generic; + using Microsoft.Azure.Batch; + + + public partial class PSVMDiskSecurityProfile + { + + internal Microsoft.Azure.Batch.VMDiskSecurityProfile omObject; + + public PSVMDiskSecurityProfile() + { + this.omObject = new Microsoft.Azure.Batch.VMDiskSecurityProfile(); + } + + internal PSVMDiskSecurityProfile(Microsoft.Azure.Batch.VMDiskSecurityProfile omObject) + { + if ((omObject == null)) + { + throw new System.ArgumentNullException("omObject"); + } + this.omObject = omObject; + } + + public string SecurityEncryptionType + { + get + { + return this.omObject.SecurityEncryptionType; + } + set + { + this.omObject.SecurityEncryptionType = value; + } + } + } +} diff --git a/src/Batch/Batch/Models/BatchClient.Files.cs b/src/Batch/Batch/Models/BatchClient.Files.cs index 0a43d455207f..761f6fbe9214 100644 --- a/src/Batch/Batch/Models/BatchClient.Files.cs +++ b/src/Batch/Batch/Models/BatchClient.Files.cs @@ -266,47 +266,5 @@ private void DownloadNodeFileByInstance(NodeFile file, string destinationPath, S } } } - - /// - /// Downloads a Remote Desktop Protocol file using the specified options. - /// - /// The download options. - public void DownloadRemoteDesktopProtocolFile(DownloadRemoteDesktopProtocolFileOptions options) - { - if (options == null) - { - throw new ArgumentNullException("options"); - } - - if (options.Stream != null) - { - // Don't dispose supplied Stream - CopyRDPStream(options.Stream, options.Context.BatchOMClient, options.PoolId, options.ComputeNodeId, options.ComputeNode, options.AdditionalBehaviors); - } - else - { - string computeNodeId = options.ComputeNode == null ? options.ComputeNodeId : options.ComputeNode.Id; - WriteVerbose(string.Format(Resources.DownloadingRDPFile, computeNodeId, options.DestinationPath)); - - using (FileStream fs = new FileStream(options.DestinationPath, FileMode.Create)) - { - CopyRDPStream(fs, options.Context.BatchOMClient, options.PoolId, options.ComputeNodeId, options.ComputeNode, options.AdditionalBehaviors); - } - } - } - - private void CopyRDPStream(Stream destinationStream, Microsoft.Azure.Batch.BatchClient client, string poolId, string computeNodeId, - PSComputeNode computeNode, IEnumerable additionalBehaviors = null) - { - if (computeNode == null) - { - PoolOperations poolOperations = client.PoolOperations; - poolOperations.GetRDPFile(poolId, computeNodeId, destinationStream, additionalBehaviors); - } - else - { - computeNode.omObject.GetRDPFile(destinationStream, additionalBehaviors); - } - } } } diff --git a/src/Batch/Batch/Models/BatchClient.Pools.cs b/src/Batch/Batch/Models/BatchClient.Pools.cs index 34c0cdcd771e..2fb37b2ed338 100644 --- a/src/Batch/Batch/Models/BatchClient.Pools.cs +++ b/src/Batch/Batch/Models/BatchClient.Pools.cs @@ -152,11 +152,6 @@ public void CreatePool(NewPoolParameters parameters) pool.ApplicationPackageReferences = parameters.ApplicationPackageReferences.ToList().ConvertAll(apr => apr.omObject); } - if (parameters.CloudServiceConfiguration != null) - { - pool.CloudServiceConfiguration = parameters.CloudServiceConfiguration.omObject; - } - if (parameters.VirtualMachineConfiguration != null) { Utils.Utils.VirtualMachineConfigurationSyncCollections(parameters.VirtualMachineConfiguration); @@ -182,11 +177,6 @@ public void CreatePool(NewPoolParameters parameters) pool.UserAccounts = parameters.UserAccounts.ToList().ConvertAll(user => user.omObject); } - if (parameters.ApplicationLicenses != null) - { - pool.ApplicationLicenses = parameters.ApplicationLicenses; - } - pool.TargetNodeCommunicationMode = (NodeCommunicationMode)parameters.TargetCommunicationMode; WriteVerbose(string.Format(Resources.CreatingPool, parameters.PoolId)); diff --git a/src/Batch/Batch/Models/DownloadRemoteDesktopProtocolFileOptions.cs b/src/Batch/Batch/Models/DownloadRemoteDesktopProtocolFileOptions.cs deleted file mode 100644 index 7f4d8b4e48ed..000000000000 --- a/src/Batch/Batch/Models/DownloadRemoteDesktopProtocolFileOptions.cs +++ /dev/null @@ -1,47 +0,0 @@ -// ---------------------------------------------------------------------------------- -// -// Copyright Microsoft Corporation -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// http://www.apache.org/licenses/LICENSE-2.0 -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// ---------------------------------------------------------------------------------- - -using Microsoft.Azure.Batch; -using Microsoft.Azure.Commands.Batch.Properties; -using System; -using System.Collections.Generic; -using System.IO; - -namespace Microsoft.Azure.Commands.Batch.Models -{ - public class DownloadRemoteDesktopProtocolFileOptions : ComputeNodeOperationParameters - { - public DownloadRemoteDesktopProtocolFileOptions(BatchAccountContext context, string poolId, string computeNodeId, PSComputeNode computeNode, string destinationPath, - Stream stream, IEnumerable additionalBehaviors = null) : base(context, poolId, computeNodeId, computeNode, additionalBehaviors) - { - if (string.IsNullOrWhiteSpace(destinationPath) && stream == null) - { - throw new ArgumentNullException(Resources.NoDownloadDestination); - } - - this.DestinationPath = destinationPath; - this.Stream = stream; - } - - /// - /// The path to the directory where the Remote Desktop Protocol file will be downloaded - /// - public string DestinationPath { get; set; } - - /// - /// The Stream into which the Remote Desktop Protocol file data will be written. This stream will not be closed or rewound by this call. - /// - public Stream Stream { get; set; } - } -} diff --git a/src/Batch/Batch/Models/NewPoolParameters.cs b/src/Batch/Batch/Models/NewPoolParameters.cs index 1f4aecee5a5a..97e124d739c5 100644 --- a/src/Batch/Batch/Models/NewPoolParameters.cs +++ b/src/Batch/Batch/Models/NewPoolParameters.cs @@ -53,11 +53,6 @@ public NewPoolParameters(BatchAccountContext context, string poolId, IEnumerable /// public PSVirtualMachineConfiguration VirtualMachineConfiguration { get; set; } - /// - /// Pool configuration settings for a pool based on the Azure cloud service platform - /// - public PSCloudServiceConfiguration CloudServiceConfiguration { get; set; } - /// /// The timeout for allocating compute nodes to the pool. /// diff --git a/src/Batch/Batch/Pools/NewBatchPoolCommand.cs b/src/Batch/Batch/Pools/NewBatchPoolCommand.cs index efa585cd0d14..0ab99c061b8b 100644 --- a/src/Batch/Batch/Pools/NewBatchPoolCommand.cs +++ b/src/Batch/Batch/Pools/NewBatchPoolCommand.cs @@ -169,7 +169,6 @@ protected override void ExecuteCmdletImpl() CertificateReferences = this.CertificateReferences, ApplicationPackageReferences = this.ApplicationPackageReferences, VirtualMachineConfiguration = this.VirtualMachineConfiguration, - CloudServiceConfiguration = this.CloudServiceConfiguration, NetworkConfiguration = this.NetworkConfiguration, UserAccounts = this.UserAccount, ApplicationLicenses = this.ApplicationLicenses, diff --git a/src/Batch/Batch/help/Get-AzBatchRemoteDesktopProtocolFile.md b/src/Batch/Batch/help/Get-AzBatchRemoteDesktopProtocolFile.md deleted file mode 100644 index 1b2d92b0e872..000000000000 --- a/src/Batch/Batch/help/Get-AzBatchRemoteDesktopProtocolFile.md +++ /dev/null @@ -1,206 +0,0 @@ ---- -external help file: Microsoft.Azure.PowerShell.Cmdlets.Batch.dll-Help.xml -Module Name: Az.Batch -ms.assetid: D077DB50-12BC-45AB-8EAC-57810DA83035 -online version: https://learn.microsoft.com/powershell/module/az.batch/get-azbatchremotedesktopprotocolfile -schema: 2.0.0 ---- - -# Get-AzBatchRemoteDesktopProtocolFile - -## SYNOPSIS -Gets an RDP file from a compute node. - -## SYNTAX - -### Id_Path (Default) -``` -Get-AzBatchRemoteDesktopProtocolFile [-PoolId] [-ComputeNodeId] -DestinationPath - -BatchContext [-DefaultProfile ] [] -``` - -### Id_Stream -``` -Get-AzBatchRemoteDesktopProtocolFile [-PoolId] [-ComputeNodeId] -DestinationStream - -BatchContext [-DefaultProfile ] [] -``` - -### InputObject_Path -``` -Get-AzBatchRemoteDesktopProtocolFile [[-ComputeNode] ] -DestinationPath - -BatchContext [-DefaultProfile ] [] -``` - -### InputObject_Stream -``` -Get-AzBatchRemoteDesktopProtocolFile [[-ComputeNode] ] -DestinationStream - -BatchContext [-DefaultProfile ] [] -``` - -## DESCRIPTION -The **Get-AzBatchRemoteDesktopProtocolFile** cmdlet gets a Remote Desktop Protocol (RDP) file from a compute node and saves it as a file or to a user supplied stream. - -## EXAMPLES - -### Example 1: Get an RDP file from a specified compute node and save the file -```powershell -Get-AzBatchRemoteDesktopProtocolFile -PoolId "Pool06" -ComputeNodeId "ComputeNode01" -DestinationPath "C:\PowerShell\ComputeNode01.rdp" -BatchContext $Context -``` - -This command gets an RDP file from the compute node that has the ID ComputeNode01 in the pool that has the ID Pool06. -The command saves the .rdp file as C:\PowerShell\MyComputeNode.rdp. -Use the Get-AzBatchAccountKey cmdlet to assign a context to the $Context variable. - -### Example 2: Get an RDP file from a compute node and save the file by using the pipeline -```powershell -Get-AzBatchComputeNode -PoolId "Pool06" -Id "ComputeNode02" -BatchContext $Context | Get-AzBatchRemoteDesktopProtocolFile -DestinationPath "C:\PowerShell\MyComputeNode02.rdp" -BatchContext $Context -``` - -This command gets the compute node that has the ID ComputeNode02 in the pool that has the ID Pool06. -The command passes that compute node to the current cmdlet by using the pipeline operator. -The current cmdlet gets an .rpd file from the compute node, and then saves the contents as a file that is named C:\PowerShell\MyComputeNode02.rdp. - -### Example 3: Get a RDP file from a specified compute node and direct it to a stream -```powershell -$Stream = New-Object -TypeName "System.IO.MemoryStream" -Get-AzBatchRemoteDesktopProtocolFile "Pool06" -ComputeNodeId "ComputeNode03" -DestinationStream $Stream -BatchContext $Context -``` - -The first command creates a stream by using the New-Object cmdlet, and then stores it in the $Stream variable. -The second command gets an .rdp file from the compute node that has the ID ComputeNode03 in the pool that has the ID Pool06. -The command directs file contents to the stream in $Stream. - -## PARAMETERS - -### -BatchContext -Specifies the **BatchAccountContext** instance that this cmdlet uses to interact with the Batch service. -If you use the Get-AzBatchAccount cmdlet to get your BatchAccountContext, then Microsoft Entra authentication will be used when interacting with the Batch service. To use shared key authentication instead, use the Get-AzBatchAccountKey cmdlet to get a BatchAccountContext object with its access keys populated. When using shared key authentication, the primary access key is used by default. To change the key to use, set the BatchAccountContext.KeyInUse property. - -```yaml -Type: Microsoft.Azure.Commands.Batch.BatchAccountContext -Parameter Sets: (All) -Aliases: - -Required: True -Position: Named -Default value: None -Accept pipeline input: True (ByValue) -Accept wildcard characters: False -``` - -### -ComputeNode -Specifies a compute node, as a **PSComputeNode** object, to which the .rdp file points. -To obtain a compute node object, use the Get-AzBatchComputeNode cmdlet. - -```yaml -Type: Microsoft.Azure.Commands.Batch.Models.PSComputeNode -Parameter Sets: InputObject_Path, InputObject_Stream -Aliases: - -Required: False -Position: 0 -Default value: None -Accept pipeline input: True (ByValue) -Accept wildcard characters: False -``` - -### -ComputeNodeId -Specifies the ID of the compute node to which the .rdp file points. - -```yaml -Type: System.String -Parameter Sets: Id_Path, Id_Stream -Aliases: - -Required: True -Position: 1 -Default value: None -Accept pipeline input: True (ByPropertyName) -Accept wildcard characters: False -``` - -### -DefaultProfile -The credentials, account, tenant, and subscription used for communication with azure. - -```yaml -Type: Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer -Parameter Sets: (All) -Aliases: AzContext, AzureRmContext, AzureCredential - -Required: False -Position: Named -Default value: None -Accept pipeline input: False -Accept wildcard characters: False -``` - -### -DestinationPath -Specifies the file path where this cmdlet saves the .rdp file. - -```yaml -Type: System.String -Parameter Sets: Id_Path, InputObject_Path -Aliases: - -Required: True -Position: Named -Default value: None -Accept pipeline input: False -Accept wildcard characters: False -``` - -### -DestinationStream -Specifies the stream into which this cmdlet directs the RDP data. -This cmdlet does not close or rewind this stream. - -```yaml -Type: System.IO.Stream -Parameter Sets: Id_Stream, InputObject_Stream -Aliases: - -Required: True -Position: Named -Default value: None -Accept pipeline input: False -Accept wildcard characters: False -``` - -### -PoolId -Specifies the ID of the pool that contains the compute node from which this cmdlet gets an .rdp file. - -```yaml -Type: System.String -Parameter Sets: Id_Path, Id_Stream -Aliases: - -Required: True -Position: 0 -Default value: None -Accept pipeline input: True (ByPropertyName) -Accept wildcard characters: False -``` - -### CommonParameters -This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). - -## INPUTS - -### System.String - -### Microsoft.Azure.Commands.Batch.Models.PSComputeNode - -### Microsoft.Azure.Commands.Batch.BatchAccountContext - -## OUTPUTS - -### System.Void - -## NOTES - -## RELATED LINKS - -[Get-AzBatchAccountKey](./Get-AzBatchAccountKey.md) - -[Get-AzBatchComputeNode](./Get-AzBatchComputeNode.md) - -[Azure Batch Cmdlets](/powershell/module/Az.Batch/) From b9fe58192e9e057c38d5aa195d4c64389ad933c7 Mon Sep 17 00:00:00 2001 From: "REDMOND\\wiboris" Date: Wed, 17 Sep 2025 21:11:06 -0700 Subject: [PATCH 08/13] removing of deprecated commands and properties --- src/Batch/Batch.Test/BatchTestHelpers.cs | 42 -- .../GetBatchCertificateCommandTests.cs | 234 --------- .../NewBatchCertificateCommandTests.cs | 153 ------ .../RemoveBatchCertificateCommandTests.cs | 74 --- ...topBatchCertificateDeletionCommandTests.cs | 73 --- .../Pools/NewBatchPoolCommandTests.cs | 20 - .../Pools/SetBatchPoolCommandTests.cs | 15 - .../Batch.Test/ScenarioTests/JobTests.ps1 | 51 -- .../Batch.Test/ScenarioTests/PoolTests.ps1 | 21 - .../ScenarioTests/ScenarioTestHelpers.cs | 110 +---- .../TestBatchAccountEndToEnd.json | 460 +++++++++--------- .../TestJobCRUD.json | 152 +++--- .../TestPoolCRUD.json | 150 +++--- src/Batch/Batch.Test/about.txt | 3 - src/Batch/Batch/Az.Batch.psd1 | 8 +- .../GetBatchCertificateCommand.cs | 75 --- .../NewBatchCertificateCommand.cs | 69 --- .../RemoveBatchCertificateCommand.cs | 49 -- .../StopBatchCertificateDeletionCommand.cs | 44 -- .../GetBatchJobScheduleCommand.cs | 1 - .../NewBatchJobScheduleCommand.cs | 1 - src/Batch/Batch/Jobs/GetBatchJobCommand.cs | 1 - src/Batch/Batch/Jobs/NewBatchJobCommand.cs | 1 - .../Batch/Models.Generated/PSCertificate.cs | 149 ------ .../PSCertificateReference.cs | 116 ----- .../Batch/Models.Generated/PSCloudPool.cs | 94 ---- .../Batch/Models.Generated/PSComputeNode.cs | 25 - .../PSDeleteCertificateError.cs | 87 ---- .../Models.Generated/PSPoolSpecification.cs | 86 ---- .../Batch/Models/BatchClient.Certificates.cs | 145 ------ src/Batch/Batch/Models/BatchClient.Pools.cs | 21 - .../Models/CertificateOperationParameters.cs | 50 -- .../Batch/Models/ListCertificateOptions.cs | 51 -- .../Batch/Models/NewCertificateParameters.cs | 61 --- src/Batch/Batch/Models/NewPoolParameters.cs | 16 - src/Batch/Batch/Models/PSCertificateKind.cs | 12 - src/Batch/Batch/Pools/GetBatchPoolCommand.cs | 1 - .../Pools/GetBatchPoolNodeCountCommand.cs | 1 - src/Batch/Batch/Pools/NewBatchPoolCommand.cs | 34 +- src/Batch/Batch/Pools/SetBatchPoolCommand.cs | 1 - .../Batch/Properties/Resources.Designer.cs | 72 --- src/Batch/Batch/Properties/Resources.resx | 24 - src/Batch/Batch/Tasks/GetBatchTaskCommand.cs | 1 - .../Batch/Tasks/GetBatchTaskCountCommand.cs | 1 - .../Tasks/GetBatchTaskSlotCountCommand.cs | 1 - src/Batch/Batch/Tasks/NewBatchTaskCommand.cs | 1 - src/Batch/Batch/Utils/Constants.cs | 2 - src/Batch/Batch/Utils/Utils.cs | 28 -- src/Batch/Batch/help/Az.Batch.md | 12 - .../Batch/help/Get-AzBatchCertificate.md | 231 --------- .../Batch/help/Get-AzBatchComputeNode.md | 5 - src/Batch/Batch/help/Get-AzBatchPool.md | 2 - .../Batch/help/New-AzBatchCertificate.md | 168 ------- src/Batch/Batch/help/New-AzBatchPool.md | 143 +----- .../Batch/help/Remove-AzBatchCertificate.md | 163 ------- .../help/Stop-AzBatchCertificateDeletion.md | 120 ----- 56 files changed, 403 insertions(+), 3328 deletions(-) delete mode 100644 src/Batch/Batch.Test/Certificates/GetBatchCertificateCommandTests.cs delete mode 100644 src/Batch/Batch.Test/Certificates/NewBatchCertificateCommandTests.cs delete mode 100644 src/Batch/Batch.Test/Certificates/RemoveBatchCertificateCommandTests.cs delete mode 100644 src/Batch/Batch.Test/Certificates/StopBatchCertificateDeletionCommandTests.cs delete mode 100644 src/Batch/Batch/Certificates/GetBatchCertificateCommand.cs delete mode 100644 src/Batch/Batch/Certificates/NewBatchCertificateCommand.cs delete mode 100644 src/Batch/Batch/Certificates/RemoveBatchCertificateCommand.cs delete mode 100644 src/Batch/Batch/Certificates/StopBatchCertificateDeletionCommand.cs delete mode 100644 src/Batch/Batch/Models.Generated/PSCertificate.cs delete mode 100644 src/Batch/Batch/Models.Generated/PSCertificateReference.cs delete mode 100644 src/Batch/Batch/Models.Generated/PSDeleteCertificateError.cs delete mode 100644 src/Batch/Batch/Models/BatchClient.Certificates.cs delete mode 100644 src/Batch/Batch/Models/CertificateOperationParameters.cs delete mode 100644 src/Batch/Batch/Models/ListCertificateOptions.cs delete mode 100644 src/Batch/Batch/Models/NewCertificateParameters.cs delete mode 100644 src/Batch/Batch/Models/PSCertificateKind.cs delete mode 100644 src/Batch/Batch/help/Get-AzBatchCertificate.md delete mode 100644 src/Batch/Batch/help/New-AzBatchCertificate.md delete mode 100644 src/Batch/Batch/help/Remove-AzBatchCertificate.md delete mode 100644 src/Batch/Batch/help/Stop-AzBatchCertificateDeletion.md diff --git a/src/Batch/Batch.Test/BatchTestHelpers.cs b/src/Batch/Batch.Test/BatchTestHelpers.cs index 5027f912bfed..ae0186e027c6 100644 --- a/src/Batch/Batch.Test/BatchTestHelpers.cs +++ b/src/Batch/Batch.Test/BatchTestHelpers.cs @@ -39,10 +39,6 @@ namespace Microsoft.Azure.Commands.Batch.Test /// public static class BatchTestHelpers { - internal static readonly string TestCertificateFileName = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Resources/BatchTestCert01.cer"); - internal const string TestCertificateAlgorithm = "sha1"; - // [SuppressMessage("Microsoft.Security", "CS002:SecretInNextLine", Justification="Fake password")] - internal const string TestCertificatePassword = "Passw0rd"; internal static readonly int DefaultQuotaCount = 20; /// @@ -337,44 +333,6 @@ public static RequestInterceptor ExamineRequestInterceptor(Action assertAc return interceptor; } - /// - /// Builds a CertificateGetResponse object - /// - public static AzureOperationResponse CreateCertificateGetResponse(string thumbprint) - { - var response = new AzureOperationResponse(); - response.Response = new HttpResponseMessage(HttpStatusCode.OK); - - ProxyModels.Certificate cert = new ProxyModels.Certificate(); - cert.Thumbprint = thumbprint; - - response.Body = cert; - - return response; - } - - /// - /// Builds a CertificateListResponse object - /// - public static AzureOperationResponse, ProxyModels.CertificateListHeaders> CreateCertificateListResponse(IEnumerable certThumbprints) - { - var response = new AzureOperationResponse, ProxyModels.CertificateListHeaders>(); - response.Response = new HttpResponseMessage(HttpStatusCode.OK); - - List certs = new List(); - - foreach (string t in certThumbprints) - { - ProxyModels.Certificate cert = new ProxyModels.Certificate(); - cert.Thumbprint = t; - certs.Add(cert); - } - - response.Body = new MockPagedEnumerable(certs); - - return response; - } - /// /// Builds a CloudPoolGetResponse object using a pool ID /// diff --git a/src/Batch/Batch.Test/Certificates/GetBatchCertificateCommandTests.cs b/src/Batch/Batch.Test/Certificates/GetBatchCertificateCommandTests.cs deleted file mode 100644 index 7f728c402b26..000000000000 --- a/src/Batch/Batch.Test/Certificates/GetBatchCertificateCommandTests.cs +++ /dev/null @@ -1,234 +0,0 @@ -// ---------------------------------------------------------------------------------- -// -// Copyright Microsoft Corporation -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// http://www.apache.org/licenses/LICENSE-2.0 -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// ---------------------------------------------------------------------------------- - -using Microsoft.Azure.Batch; -using Microsoft.Azure.Batch.Protocol; -using Microsoft.Azure.Commands.Batch.Models; -using Microsoft.Rest.Azure; -using Microsoft.WindowsAzure.Commands.ScenarioTest; -using Moq; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Management.Automation; -using System.Threading.Tasks; -using Xunit; -using BatchClient = Microsoft.Azure.Commands.Batch.Models.BatchClient; -using ProxyModels = Microsoft.Azure.Batch.Protocol.Models; - - -namespace Microsoft.Azure.Commands.Batch.Test.Certificates -{ - [Obsolete] - public class GetBatchCertificateCommandTests : WindowsAzure.Commands.Test.Utilities.Common.RMTestBase - { - private GetBatchCertificateCommand cmdlet; - private Mock batchClientMock; - private Mock commandRuntimeMock; - - public GetBatchCertificateCommandTests(Xunit.Abstractions.ITestOutputHelper output) - { - ServiceManagement.Common.Models.XunitTracingInterceptor.AddToContext(new ServiceManagement.Common.Models.XunitTracingInterceptor(output)); - batchClientMock = new Mock(); - commandRuntimeMock = new Mock(); - cmdlet = new GetBatchCertificateCommand() - { - CommandRuntime = commandRuntimeMock.Object, - BatchClient = batchClientMock.Object, - }; - } - - [Fact] - [Trait(Category.AcceptanceType, Category.CheckIn)] - public void GetBatchCertificateTest() - { - // Setup cmdlet to get a cert by its thumbprint - BatchAccountContext context = BatchTestHelpers.CreateBatchContextWithKeys(); - cmdlet.BatchContext = context; - cmdlet.ThumbprintAlgorithm = "sha1"; - cmdlet.Thumbprint = "123456789"; - cmdlet.Filter = null; - - // Build a Certificate instead of querying the service on a Get Certificate call - AzureOperationResponse response = BatchTestHelpers.CreateCertificateGetResponse(cmdlet.Thumbprint); - RequestInterceptor interceptor = BatchTestHelpers.CreateFakeServiceResponseInterceptor< - ProxyModels.CertificateGetOptions, - AzureOperationResponse>(response); - - cmdlet.AdditionalBehaviors = new List() { interceptor }; - - // Setup the cmdlet to write pipeline output to a list that can be examined later - List pipeline = new List(); - commandRuntimeMock.Setup(r => r.WriteObject(It.IsAny())).Callback(c => pipeline.Add((PSCertificate)c)); - - cmdlet.ExecuteCmdlet(); - - // Verify that the cmdlet wrote the cert returned from the OM to the pipeline - Assert.Single(pipeline); - Assert.Equal(cmdlet.Thumbprint, pipeline[0].Thumbprint); - } - - [Fact] - [Trait(Category.AcceptanceType, Category.CheckIn)] - public void GetBatchCertificateODataTest() - { - // Setup cmdlet to get a single certificate - BatchAccountContext context = BatchTestHelpers.CreateBatchContextWithKeys(); - cmdlet.BatchContext = context; - cmdlet.ThumbprintAlgorithm = "sha1"; - cmdlet.Thumbprint = "123456789"; - cmdlet.Select = "thumbprint,state"; - - string requestSelect = null; - - // Fetch the OData clauses off the request. The OData clauses are applied after user provided RequestInterceptors, so a ResponseInterceptor is used. - AzureOperationResponse getResponse = BatchTestHelpers.CreateCertificateGetResponse(cmdlet.Thumbprint); - RequestInterceptor requestInterceptor = BatchTestHelpers.CreateFakeServiceResponseInterceptor< - ProxyModels.CertificateGetOptions, - AzureOperationResponse>(getResponse); - ResponseInterceptor responseInterceptor = new ResponseInterceptor((response, request) => - { - ProxyModels.CertificateGetOptions certOptions = (ProxyModels.CertificateGetOptions)request.Options; - requestSelect = certOptions.Select; - - return Task.FromResult(response); - }); - cmdlet.AdditionalBehaviors = new List() { requestInterceptor, responseInterceptor }; - - cmdlet.ExecuteCmdlet(); - - Assert.Equal(cmdlet.Select, requestSelect); - } - - [Fact] - [Trait(Category.AcceptanceType, Category.CheckIn)] - public void ListBatchCertificatesODataTest() - { - // Setup cmdlet to list certs using an OData filter - BatchAccountContext context = BatchTestHelpers.CreateBatchContextWithKeys(); - cmdlet.BatchContext = context; - cmdlet.ThumbprintAlgorithm = null; - cmdlet.Thumbprint = null; - cmdlet.Filter = "state eq 'active'"; - cmdlet.Select = "id,state"; - - string requestFilter = null; - string requestSelect = null; - - AzureOperationResponse, ProxyModels.CertificateListHeaders> response = BatchTestHelpers.CreateGenericAzureOperationListResponse(); - - Action, ProxyModels.CertificateListHeaders>>> extractCertificateListAction = - (request) => - { - ProxyModels.CertificateListOptions options = request.Options; - requestFilter = options.Filter; - requestSelect = options.Select; - }; - - RequestInterceptor requestInterceptor = BatchTestHelpers.CreateFakeServiceResponseInterceptor(responseToUse: response, requestAction: extractCertificateListAction); - - cmdlet.AdditionalBehaviors = new List() { requestInterceptor }; - - cmdlet.ExecuteCmdlet(); - - Assert.Equal(cmdlet.Filter, requestFilter); - Assert.Equal(cmdlet.Select, requestSelect); - } - - [Fact] - [Trait(Category.AcceptanceType, Category.CheckIn)] - public void ListBatchCertificatesWithoutFiltersTest() - { - // Setup cmdlet to list certs without filters - BatchAccountContext context = BatchTestHelpers.CreateBatchContextWithKeys(); - cmdlet.BatchContext = context; - cmdlet.ThumbprintAlgorithm = null; - cmdlet.Thumbprint = null; - cmdlet.Filter = null; - - string[] thumbprintsOfConstructedCerts = new[] { "12345", "67890", "ABCDE" }; - - // Build some Certificates instead of querying the service on a List Certificates call - AzureOperationResponse, ProxyModels.CertificateListHeaders> response = BatchTestHelpers.CreateCertificateListResponse(thumbprintsOfConstructedCerts); - RequestInterceptor interceptor = BatchTestHelpers.CreateFakeServiceResponseInterceptor< - ProxyModels.CertificateListOptions, - AzureOperationResponse, ProxyModels.CertificateListHeaders>>(response); - - cmdlet.AdditionalBehaviors = new List() { interceptor }; - - // Setup the cmdlet to write pipeline output to a list that can be examined later - List pipeline = new List(); - commandRuntimeMock.Setup(r => - r.WriteObject(It.IsAny())) - .Callback(c => pipeline.Add((PSCertificate)c)); - - cmdlet.ExecuteCmdlet(); - - // Verify that the cmdlet wrote the constructed certs to the pipeline - Assert.Equal(3, pipeline.Count); - int poolCount = 0; - foreach (PSCertificate c in pipeline) - { - Assert.Contains(c.Thumbprint, thumbprintsOfConstructedCerts); - poolCount++; - } - Assert.Equal(thumbprintsOfConstructedCerts.Length, poolCount); - } - - [Fact] - [Trait(Category.AcceptanceType, Category.CheckIn)] - public void ListCertificatesMaxCountTest() - { - // Verify default max count - Assert.Equal(Microsoft.Azure.Commands.Batch.Utils.Constants.DefaultMaxCount, cmdlet.MaxCount); - - // Setup cmdlet to list pools without filters and a max count - BatchAccountContext context = BatchTestHelpers.CreateBatchContextWithKeys(); - cmdlet.BatchContext = context; - cmdlet.ThumbprintAlgorithm = null; - cmdlet.Thumbprint = null; - cmdlet.Filter = null; - int maxCount = 2; - cmdlet.MaxCount = maxCount; - - string[] thumbprintsOfConstructedCerts = new[] { "12345", "67890", "ABCDE" }; - - // Build some Certificates instead of querying the service on a List Certificates call - AzureOperationResponse, ProxyModels.CertificateListHeaders> response = BatchTestHelpers.CreateCertificateListResponse(thumbprintsOfConstructedCerts); - RequestInterceptor interceptor = BatchTestHelpers.CreateFakeServiceResponseInterceptor< - ProxyModels.CertificateListOptions, - AzureOperationResponse, ProxyModels.CertificateListHeaders>>(response); - - cmdlet.AdditionalBehaviors = new List() { interceptor }; - - // Setup the cmdlet to write pipeline output to a list that can be examined later - List pipeline = new List(); - commandRuntimeMock.Setup(r => - r.WriteObject(It.IsAny())) - .Callback(c => pipeline.Add((PSCertificate)c)); - - cmdlet.ExecuteCmdlet(); - - // Verify that the max count was respected - Assert.Equal(maxCount, pipeline.Count); - - // Verify setting max count <= 0 doesn't return nothing - cmdlet.MaxCount = -5; - pipeline.Clear(); - cmdlet.ExecuteCmdlet(); - - Assert.Equal(thumbprintsOfConstructedCerts.Length, pipeline.Count); - } - } -} diff --git a/src/Batch/Batch.Test/Certificates/NewBatchCertificateCommandTests.cs b/src/Batch/Batch.Test/Certificates/NewBatchCertificateCommandTests.cs deleted file mode 100644 index 9e9313204866..000000000000 --- a/src/Batch/Batch.Test/Certificates/NewBatchCertificateCommandTests.cs +++ /dev/null @@ -1,153 +0,0 @@ -// ---------------------------------------------------------------------------------- -// -// Copyright Microsoft Corporation -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// http://www.apache.org/licenses/LICENSE-2.0 -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// ---------------------------------------------------------------------------------- - -using Microsoft.Azure.Batch; -using Microsoft.Azure.Batch.Protocol; -using Microsoft.Azure.Batch.Protocol.BatchRequests; -using Microsoft.Azure.Batch.Protocol.Models; -using Microsoft.Rest.Azure; -using Microsoft.WindowsAzure.Commands.ScenarioTest; -using Moq; -using System; -using System.Collections.Generic; -using System.Management.Automation; -using System.Security.Cryptography.X509Certificates; -using System.Threading.Tasks; -using Microsoft.WindowsAzure.Commands.Common; -using Xunit; -using BatchClient = Microsoft.Azure.Commands.Batch.Models.BatchClient; - -namespace Microsoft.Azure.Commands.Batch.Test.Certificates -{ - [Obsolete] - public class NewBatchCertificateCommandTests : WindowsAzure.Commands.Test.Utilities.Common.RMTestBase - { - private NewBatchCertificateCommand cmdlet; - private Mock batchClientMock; - private Mock commandRuntimeMock; - - public NewBatchCertificateCommandTests(Xunit.Abstractions.ITestOutputHelper output) - { - ServiceManagement.Common.Models.XunitTracingInterceptor.AddToContext(new ServiceManagement.Common.Models.XunitTracingInterceptor(output)); - batchClientMock = new Mock(); - commandRuntimeMock = new Mock(); - cmdlet = new NewBatchCertificateCommand() - { - CommandRuntime = commandRuntimeMock.Object, - BatchClient = batchClientMock.Object, - }; - } - - [Fact] - [Trait(Category.AcceptanceType, Category.CheckIn)] - public void NewBatchCertificateRequiredParametersTest() - { - // Setup cmdlet without the required parameters - BatchAccountContext context = BatchTestHelpers.CreateBatchContextWithKeys(); - cmdlet.BatchContext = context; - - Assert.Throws(() => cmdlet.ExecuteCmdlet()); - - cmdlet.FilePath = BatchTestHelpers.TestCertificateFileName; - - // Don't go to the service on an Add Certificate call - RequestInterceptor interceptor = BatchTestHelpers.CreateFakeServiceResponseInterceptor< - CertificateAddParameter, - CertificateAddOptions, - AzureOperationHeaderResponse>(); - - cmdlet.AdditionalBehaviors = new List() { interceptor }; - - // Verify no exceptions when required parameters are set - cmdlet.ExecuteCmdlet(); - - // Use the RawData parameter set next - cmdlet.FilePath = null; - X509Certificate2 cert = new X509Certificate2(BatchTestHelpers.TestCertificateFileName); - cmdlet.RawData = cert.RawData; - - // Verify no exceptions when required parameters are set - cmdlet.ExecuteCmdlet(); - } - - [Fact] - [Trait(Category.AcceptanceType, Category.CheckIn)] - public void NewBatchCertificateRequestBodyTest() - { - BatchAccountContext context = BatchTestHelpers.CreateBatchContextWithKeys(); - cmdlet.BatchContext = context; - - X509Certificate2 cert = new X509Certificate2(BatchTestHelpers.TestCertificateFileName); - string certDataBase64String = Convert.ToBase64String(cert.RawData); - - CertificateAddParameter requestParameters = null; - - // Don't go to the service on an Add Certificate call - RequestInterceptor interceptor = new RequestInterceptor((baseRequest) => - { - CertificateAddBatchRequest request = (CertificateAddBatchRequest)baseRequest; - - request.ServiceRequestFunc = (cancellationToken) => - { - requestParameters = request.Parameters; - - var response = new AzureOperationHeaderResponse(); - Task> task = Task.FromResult(response); - return task; - }; - }); - - cmdlet.AdditionalBehaviors = new List() { interceptor }; - - // Verify that when just the raw data is specified, the request body matches expectations - cmdlet.RawData = cert.RawData; - cmdlet.ExecuteCmdlet(); - Assert.Equal(CertificateFormat.Cer, requestParameters.CertificateFormat); - Assert.Equal(BatchTestHelpers.TestCertificateAlgorithm, requestParameters.ThumbprintAlgorithm); - Assert.Equal(cert.Thumbprint.ToLowerInvariant(), requestParameters.Thumbprint.ToLowerInvariant()); - Assert.True(string.IsNullOrEmpty(requestParameters.Password)); - Assert.Equal(certDataBase64String, requestParameters.Data); - - // Verify that when the raw data is specified with a password, the request body matches expectations - cmdlet.RawData = cert.RawData; - cmdlet.Password = BatchTestHelpers.TestCertificatePassword.ConvertToSecureString(); - cmdlet.ExecuteCmdlet(); - Assert.Equal(CertificateFormat.Pfx, requestParameters.CertificateFormat); - Assert.Equal(BatchTestHelpers.TestCertificateAlgorithm, requestParameters.ThumbprintAlgorithm); - Assert.Equal(cert.Thumbprint.ToLowerInvariant(), requestParameters.Thumbprint.ToLowerInvariant()); - Assert.Equal(BatchTestHelpers.TestCertificatePassword, requestParameters.Password); - Assert.Equal(certDataBase64String, requestParameters.Data); - - // Verify that when just a file path is specified, the request body matches expectations - cmdlet.RawData = null; - cmdlet.Password = null; - cmdlet.FilePath = BatchTestHelpers.TestCertificateFileName; - cmdlet.ExecuteCmdlet(); - Assert.Equal(CertificateFormat.Cer, requestParameters.CertificateFormat); - Assert.Equal(BatchTestHelpers.TestCertificateAlgorithm, requestParameters.ThumbprintAlgorithm); - Assert.Equal(cert.Thumbprint.ToLowerInvariant(), requestParameters.Thumbprint.ToLowerInvariant()); - Assert.True(string.IsNullOrEmpty(requestParameters.Password)); - Assert.Equal(certDataBase64String, requestParameters.Data); - - // Verify that when a file path is specified with a password, the request body matches expectations - cmdlet.Password = BatchTestHelpers.TestCertificatePassword.ConvertToSecureString(); - cmdlet.ExecuteCmdlet(); - Assert.Equal(CertificateFormat.Pfx, requestParameters.CertificateFormat); - Assert.Equal(BatchTestHelpers.TestCertificateAlgorithm, requestParameters.ThumbprintAlgorithm); - Assert.Equal(cert.Thumbprint.ToLowerInvariant(), requestParameters.Thumbprint.ToLowerInvariant()); - Assert.Equal(BatchTestHelpers.TestCertificatePassword, requestParameters.Password); - Assert.Equal(certDataBase64String, requestParameters.Data); - } - } -} diff --git a/src/Batch/Batch.Test/Certificates/RemoveBatchCertificateCommandTests.cs b/src/Batch/Batch.Test/Certificates/RemoveBatchCertificateCommandTests.cs deleted file mode 100644 index ba8f77368b61..000000000000 --- a/src/Batch/Batch.Test/Certificates/RemoveBatchCertificateCommandTests.cs +++ /dev/null @@ -1,74 +0,0 @@ -// ---------------------------------------------------------------------------------- -// -// Copyright Microsoft Corporation -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// http://www.apache.org/licenses/LICENSE-2.0 -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// ---------------------------------------------------------------------------------- - -using Microsoft.Azure.Batch; -using Microsoft.Azure.Batch.Protocol; -using Microsoft.Azure.Batch.Protocol.Models; -using Microsoft.Rest.Azure; -using Microsoft.WindowsAzure.Commands.ScenarioTest; -using Moq; -using System; -using System.Collections.Generic; -using System.Management.Automation; -using Xunit; -using BatchClient = Microsoft.Azure.Commands.Batch.Models.BatchClient; - -namespace Microsoft.Azure.Commands.Batch.Test.Certificates -{ - public class RemoveBatchCertificateCommandTests : WindowsAzure.Commands.Test.Utilities.Common.RMTestBase - { - private RemoveBatchCertificateCommand cmdlet; - private Mock batchClientMock; - private Mock commandRuntimeMock; - - public RemoveBatchCertificateCommandTests(Xunit.Abstractions.ITestOutputHelper output) - { - ServiceManagement.Common.Models.XunitTracingInterceptor.AddToContext(new ServiceManagement.Common.Models.XunitTracingInterceptor(output)); - batchClientMock = new Mock(); - commandRuntimeMock = new Mock(); - cmdlet = new RemoveBatchCertificateCommand() - { - CommandRuntime = commandRuntimeMock.Object, - BatchClient = batchClientMock.Object, - }; - } - - [Fact] - [Trait(Category.AcceptanceType, Category.CheckIn)] - public void RemoveBatchCertificateParametersTest() - { - // Setup cmdlet without the required parameters - BatchAccountContext context = BatchTestHelpers.CreateBatchContextWithKeys(); - cmdlet.BatchContext = context; - - // Setup cmdlet to skip confirmation popup - commandRuntimeMock.Setup(f => f.ShouldProcess(It.IsAny(), It.IsAny())).Returns(true); - - Assert.Throws(() => cmdlet.ExecuteCmdlet()); - - cmdlet.ThumbprintAlgorithm = "sha1"; - - Assert.Throws(() => cmdlet.ExecuteCmdlet()); - - cmdlet.Thumbprint = "123456789"; - - // Don't go to the service on a Delete Certificate call - RequestInterceptor interceptor = BatchTestHelpers.CreateFakeServiceResponseInterceptor>(); - cmdlet.AdditionalBehaviors = new List() { interceptor }; - - // Verify no exceptions when required parameters are set - cmdlet.ExecuteCmdlet(); - } - } -} diff --git a/src/Batch/Batch.Test/Certificates/StopBatchCertificateDeletionCommandTests.cs b/src/Batch/Batch.Test/Certificates/StopBatchCertificateDeletionCommandTests.cs deleted file mode 100644 index 25adf124a789..000000000000 --- a/src/Batch/Batch.Test/Certificates/StopBatchCertificateDeletionCommandTests.cs +++ /dev/null @@ -1,73 +0,0 @@ -// ---------------------------------------------------------------------------------- -// -// Copyright Microsoft Corporation -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// http://www.apache.org/licenses/LICENSE-2.0 -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// ---------------------------------------------------------------------------------- - -using Microsoft.Azure.Batch; -using Microsoft.Azure.Batch.Protocol; -using Microsoft.Azure.Batch.Protocol.Models; -using Microsoft.Rest.Azure; -using Microsoft.WindowsAzure.Commands.ScenarioTest; -using Moq; -using System; -using System.Collections.Generic; -using System.Management.Automation; -using Xunit; -using BatchClient = Microsoft.Azure.Commands.Batch.Models.BatchClient; - -namespace Microsoft.Azure.Commands.Batch.Test.Certificates -{ - public class StopBatchCertificateDeletionCommandTests : WindowsAzure.Commands.Test.Utilities.Common.RMTestBase - { - private StopBatchCertificateDeletionCommand cmdlet; - private Mock batchClientMock; - private Mock commandRuntimeMock; - - public StopBatchCertificateDeletionCommandTests(Xunit.Abstractions.ITestOutputHelper output) - { - ServiceManagement.Common.Models.XunitTracingInterceptor.AddToContext(new ServiceManagement.Common.Models.XunitTracingInterceptor(output)); - batchClientMock = new Mock(); - commandRuntimeMock = new Mock(); - cmdlet = new StopBatchCertificateDeletionCommand() - { - CommandRuntime = commandRuntimeMock.Object, - BatchClient = batchClientMock.Object, - }; - } - - [Fact] - [Trait(Category.AcceptanceType, Category.CheckIn)] - public void StopCertificateDeletionParametersTest() - { - BatchAccountContext context = BatchTestHelpers.CreateBatchContextWithKeys(); - cmdlet.BatchContext = context; - - Assert.Throws(() => cmdlet.ExecuteCmdlet()); - - cmdlet.ThumbprintAlgorithm = "sha1"; - - Assert.Throws(() => cmdlet.ExecuteCmdlet()); - - cmdlet.Thumbprint = "123456789"; - - // Don't go to the service on a Certificate Cancel Deletion call - RequestInterceptor interceptor = BatchTestHelpers.CreateFakeServiceResponseInterceptor< - CertificateCancelDeletionOptions, - AzureOperationHeaderResponse>(); - - cmdlet.AdditionalBehaviors = new List() { interceptor }; - - // Verify no exceptions when required parameter is set - cmdlet.ExecuteCmdlet(); - } - } -} diff --git a/src/Batch/Batch.Test/Pools/NewBatchPoolCommandTests.cs b/src/Batch/Batch.Test/Pools/NewBatchPoolCommandTests.cs index ecd65f388e25..0cbe74beeb50 100644 --- a/src/Batch/Batch.Test/Pools/NewBatchPoolCommandTests.cs +++ b/src/Batch/Batch.Test/Pools/NewBatchPoolCommandTests.cs @@ -79,18 +79,6 @@ public void NewBatchPoolParametersGetPassedToRequestTest() cmdlet.BatchContext = context; cmdlet.Id = "testPool"; - cmdlet.ApplicationLicenses = new List() { "foo", "bar" }; - cmdlet.CertificateReferences = new PSCertificateReference[] - { - new PSCertificateReference() - { - StoreLocation = Azure.Batch.Common.CertStoreLocation.LocalMachine, - Thumbprint = "thumbprint", - ThumbprintAlgorithm = "sha1", - StoreName = "My", - Visibility = Azure.Batch.Common.CertificateVisibility.StartTask - } - }; cmdlet.DisplayName = "display name"; cmdlet.InterComputeNodeCommunicationEnabled = true; cmdlet.TaskSlotsPerNode = 4; @@ -100,7 +88,6 @@ public void NewBatchPoolParametersGetPassedToRequestTest() cmdlet.StartTask = new PSStartTask("cmd /c echo start task"); cmdlet.TargetDedicatedComputeNodes = 3; cmdlet.TargetLowPriorityComputeNodes = 2; - cmdlet.TargetNodeCommunicationMode = Microsoft.Azure.Batch.Common.NodeCommunicationMode.Simplified; cmdlet.TaskSchedulingPolicy = new PSTaskSchedulingPolicy(Azure.Batch.Common.ComputeNodeFillType.Spread); cmdlet.UpgradePolicy = new PSUpgradePolicy(Azure.Batch.Common.UpgradeMode.Automatic); cmdlet.VirtualMachineConfiguration = new PSVirtualMachineConfiguration(new PSImageReference("offer", "publisher", "sku"), "node agent"); @@ -137,25 +124,18 @@ public void NewBatchPoolParametersGetPassedToRequestTest() cmdlet.ExecuteCmdlet(); // Verify the request parameters match the cmdlet parameters - Assert.Equal(cmdlet.CertificateReferences.Length, requestParameters.CertificateReferences.Count); - Assert.Equal(cmdlet.CertificateReferences[0].StoreName, requestParameters.CertificateReferences[0].StoreName); - Assert.Equal(cmdlet.CertificateReferences[0].Thumbprint, requestParameters.CertificateReferences[0].Thumbprint); - Assert.Equal(cmdlet.CertificateReferences[0].ThumbprintAlgorithm, requestParameters.CertificateReferences[0].ThumbprintAlgorithm); Assert.Equal(cmdlet.VirtualMachineConfiguration.ImageReference.Version, requestParameters.VirtualMachineConfiguration.ImageReference.Version); Assert.Equal(cmdlet.DisplayName, requestParameters.DisplayName); Assert.Equal(cmdlet.InterComputeNodeCommunicationEnabled, requestParameters.EnableInterNodeCommunication); Assert.Equal(cmdlet.TaskSlotsPerNode, requestParameters.TaskSlotsPerNode); Assert.Equal(cmdlet.Metadata.Count, requestParameters.Metadata.Count); Assert.Equal(cmdlet.Metadata["meta1"], requestParameters.Metadata[0].Value); - Assert.Equal(cmdlet.ResourceTag.Count, requestParameters.ResourceTags.Count); - Assert.Equal(cmdlet.ResourceTag["resource1"], requestParameters.ResourceTags["resource1"]); Assert.Equal(cmdlet.ResizeTimeout, requestParameters.ResizeTimeout); Assert.Equal(cmdlet.StartTask.CommandLine, requestParameters.StartTask.CommandLine); Assert.Equal(cmdlet.TargetDedicatedComputeNodes, requestParameters.TargetDedicatedNodes); Assert.Equal(cmdlet.TargetLowPriorityComputeNodes, requestParameters.TargetLowPriorityNodes); Assert.Equal(cmdlet.TaskSchedulingPolicy.ComputeNodeFillType.ToString(), requestParameters.TaskSchedulingPolicy.NodeFillType.ToString()); Assert.Equal(cmdlet.UpgradePolicy.Mode.ToString(), requestParameters.UpgradePolicy.Mode.ToString()); - Assert.Equal(cmdlet.TargetNodeCommunicationMode.ToString(), NodeCommunicationMode.Simplified.ToString()); Assert.Equal(cmdlet.VirtualMachineConfiguration.NodeAgentSkuId, requestParameters.VirtualMachineConfiguration.NodeAgentSKUId); Assert.Equal(cmdlet.VirtualMachineConfiguration.ImageReference.Publisher, requestParameters.VirtualMachineConfiguration.ImageReference.Publisher); Assert.Equal(cmdlet.VirtualMachineConfiguration.ImageReference.Offer, requestParameters.VirtualMachineConfiguration.ImageReference.Offer); diff --git a/src/Batch/Batch.Test/Pools/SetBatchPoolCommandTests.cs b/src/Batch/Batch.Test/Pools/SetBatchPoolCommandTests.cs index b10abaf9a15d..2f18b1f50453 100644 --- a/src/Batch/Batch.Test/Pools/SetBatchPoolCommandTests.cs +++ b/src/Batch/Batch.Test/Pools/SetBatchPoolCommandTests.cs @@ -79,17 +79,6 @@ public void SetBatchPoolParametersGetPassedToRequestTest() // Update the pool cmdlet.Pool.StartTask = new PSStartTask("cmd /c echo start task"); - cmdlet.Pool.CertificateReferences = new List() - { - new PSCertificateReference() - { - StoreLocation = Azure.Batch.Common.CertStoreLocation.LocalMachine, - Thumbprint = "thumbprint", - ThumbprintAlgorithm = "sha1", - StoreName = "My", - Visibility = Azure.Batch.Common.CertificateVisibility.StartTask - } - }; cmdlet.Pool.ApplicationPackageReferences = new List() { new PSApplicationPackageReference() @@ -118,10 +107,6 @@ public void SetBatchPoolParametersGetPassedToRequestTest() // Verify the request parameters match the cmdlet parameters Assert.Equal(cmdlet.Pool.StartTask.CommandLine, requestParameters.StartTask.CommandLine); - Assert.Equal(cmdlet.Pool.CertificateReferences.Count, requestParameters.CertificateReferences.Count); - Assert.Equal(cmdlet.Pool.CertificateReferences[0].StoreName, requestParameters.CertificateReferences[0].StoreName); - Assert.Equal(cmdlet.Pool.CertificateReferences[0].Thumbprint, requestParameters.CertificateReferences[0].Thumbprint); - Assert.Equal(cmdlet.Pool.CertificateReferences[0].ThumbprintAlgorithm, requestParameters.CertificateReferences[0].ThumbprintAlgorithm); Assert.Equal(cmdlet.Pool.ApplicationPackageReferences.Count, requestParameters.ApplicationPackageReferences.Count); Assert.Equal(cmdlet.Pool.ApplicationPackageReferences[0].ApplicationId, requestParameters.ApplicationPackageReferences[0].ApplicationId); Assert.Equal(cmdlet.Pool.ApplicationPackageReferences[0].Version, requestParameters.ApplicationPackageReferences[0].Version); diff --git a/src/Batch/Batch.Test/ScenarioTests/JobTests.ps1 b/src/Batch/Batch.Test/ScenarioTests/JobTests.ps1 index 680215d58eba..837c8b476326 100644 --- a/src/Batch/Batch.Test/ScenarioTests/JobTests.ps1 +++ b/src/Batch/Batch.Test/ScenarioTests/JobTests.ps1 @@ -98,57 +98,6 @@ function Test-DisableEnableTerminateJob Assert-True { ($job.State.ToString().ToLower() -eq 'terminating') -or ($job.State.ToString().ToLower() -eq 'completed') } } -<# -.SYNOPSIS -Tests create job with TaskDependencies -#> -function Test-JobWithTaskDependencies -{ - $context = New-Object Microsoft.Azure.Commands.Batch.Test.ScenarioTests.ScenarioTestContext - $jobId = "testJob4" - - try - { - $osFamily = 4 - $targetOS = "*" - $cmd = "cmd /c dir /s" - $taskId = "taskId1" - - $paasConfiguration = New-Object Microsoft.Azure.Commands.Batch.Models.PSCloudServiceConfiguration -ArgumentList @($osFamily, $targetOSVersion) - - $poolSpec = New-Object Microsoft.Azure.Commands.Batch.Models.PSPoolSpecification - $poolSpec.TargetDedicated = $targetDedicated = 3 - $poolSpec.VirtualMachineSize = $vmSize = "standard_d1_v2" - $poolSpec.CloudServiceConfiguration = $paasConfiguration - $autoPoolSpec = New-Object Microsoft.Azure.Commands.Batch.Models.PSAutoPoolSpecification - $autoPoolSpec.PoolSpecification = $poolSpec - $autoPoolSpec.AutoPoolIdPrefix = $autoPoolIdPrefix = "TestSpecPrefix" - $autoPoolSpec.KeepAlive = $FALSE - $autoPoolSpec.PoolLifeTimeOption = $poolLifeTime = ([Microsoft.Azure.Batch.Common.PoolLifeTimeOption]::Job) - $poolInformation = New-Object Microsoft.Azure.Commands.Batch.Models.PSPoolInformation - $poolInformation.AutoPoolSpecification = $autoPoolSpec - - $taskIds = @("2","3") - $taskIdRange = New-Object Microsoft.Azure.Batch.TaskIdRange(1,10) - $dependsOn = New-Object Microsoft.Azure.Batch.TaskDependencies -ArgumentList @([string[]]$taskIds, [Microsoft.Azure.Batch.TaskIdRange[]]$taskIdRange) - New-AzBatchJob -Id $jobId -BatchContext $context -PoolInformation $poolInformation -usesTaskDependencies - New-AzBatchTask -Id $taskId -CommandLine $cmd -BatchContext $context -DependsOn $dependsOn -JobId $jobId - $job = Get-AzBatchJob -Id $jobId -BatchContext $context - - Assert-AreEqual $job.UsesTaskDependencies $TRUE - $task = Get-AzBatchTask -JobId $jobId -Id $taskId -BatchContext $context - Assert-AreEqual $task.DependsOn.TaskIdRanges.End 10 - Assert-AreEqual $task.DependsOn.TaskIdRanges.Start 1 - Assert-AreEqual $task.DependsOn.TaskIds[0] 2 - Assert-AreEqual $task.DependsOn.TaskIds[1] 3 - } - finally - { - Remove-AzBatchJob -Id $jobId -Force -BatchContext $context - } -} - - <# .SYNOPSIS Tests create job completes when any task fails diff --git a/src/Batch/Batch.Test/ScenarioTests/PoolTests.ps1 b/src/Batch/Batch.Test/ScenarioTests/PoolTests.ps1 index 3cde52497b6d..48456aa794e1 100644 --- a/src/Batch/Batch.Test/ScenarioTests/PoolTests.ps1 +++ b/src/Batch/Batch.Test/ScenarioTests/PoolTests.ps1 @@ -160,25 +160,4 @@ function Test-AutoScaleActions # Verify that autoscale was disabled $pool = Get-AzBatchPool $poolId -BatchContext $context Assert-False { $pool.AutoScaleEnabled } -} - -<# -.SYNOPSIS -Tests changing the pool OS version -#> -function Test-ChangeOSVersion -{ - param([string]$poolId, [string]$specificOSVersion) - - $context = New-Object Microsoft.Azure.Commands.Batch.Test.ScenarioTests.ScenarioTestContext - - # Pool should be using the default target OS version - $pool = Get-AzBatchPool $poolId -BatchContext $context - Assert-AreNotEqual $specificOSVersion $pool.CloudServiceConfiguration.TargetOSVersion - - $pool | Set-AzBatchPoolOSVersion -TargetOSVersion $specificOSVersion -BatchContext $context - - # Verify the target OS version changed - $pool = Get-AzBatchPool $poolId -BatchContext $context - Assert-AreEqual $specificOSVersion $pool.CloudServiceConfiguration.TargetOSVersion } \ No newline at end of file diff --git a/src/Batch/Batch.Test/ScenarioTests/ScenarioTestHelpers.cs b/src/Batch/Batch.Test/ScenarioTests/ScenarioTestHelpers.cs index 203063e3bb1d..f1796feade94 100644 --- a/src/Batch/Batch.Test/ScenarioTests/ScenarioTestHelpers.cs +++ b/src/Batch/Batch.Test/ScenarioTests/ScenarioTestHelpers.cs @@ -29,7 +29,6 @@ using System.IO; #endif using System.Linq; -using System.Security.Cryptography.X509Certificates; using System.Threading; using BatchClient = Microsoft.Azure.Commands.Batch.Models.BatchClient; using Constants = Microsoft.Azure.Commands.Batch.Utils.Constants; @@ -94,98 +93,6 @@ public static void CleanupTestAccount(BatchTestRunner runner, string resourceGro runner.ResourceManagementClient.ResourceGroups.Delete(resourceGroupName); } - /// - /// Adds a test certificate for use in Scenario tests. Returns the thumbprint of the cert. - /// - [Obsolete] - public static string AddTestCertificate(BatchTestRunner runner, BatchAccountContext context, string filePath) - { - BatchClient client = new BatchClient(runner.BatchManagementClient, runner.ResourceManagementClient); - - X509Certificate2 cert = new X509Certificate2(filePath); - ListCertificateOptions getParameters = new ListCertificateOptions(context) - { - ThumbprintAlgorithm = BatchTestHelpers.TestCertificateAlgorithm, - Thumbprint = cert.Thumbprint, - Select = "thumbprint,state" - }; - - try - { - PSCertificate existingCert = client.ListCertificates(getParameters).FirstOrDefault(); - DateTime start = DateTime.Now; - TimeSpan timeout = GetTimeout(TimeSpan.FromMinutes(5)); - DateTime end = start.Add(timeout); - - // Cert might still be deleting from other tests, so we wait for the delete to finish. - while (existingCert != null && existingCert.State == CertificateState.Deleting) - { - if (DateTime.Now > end) - { - throw new TimeoutException("Timed out waiting for existing cert to be deleted."); - } - Sleep(5000); - existingCert = client.ListCertificates(getParameters).FirstOrDefault(); - } - } - catch (BatchException ex) - { - // When the cert doesn't exist, we get a 404 error. For all other errors, throw. - if (ex == null || !ex.Message.Contains("NotFound")) - { - throw; - } - } - - NewCertificateParameters parameters = new NewCertificateParameters( - context, null, cert.RawData, PSCertificateKind.Cer); - - client.AddCertificate(parameters); - - return cert.Thumbprint; - } - - /// - /// Deletes a certificate. - /// - public static void DeleteTestCertificate(BatchTestRunner runner, BatchAccountContext context, string thumbprintAlgorithm, string thumbprint) - { - BatchClient client = new BatchClient(runner.BatchManagementClient, runner.ResourceManagementClient); - - CertificateOperationParameters parameters = new CertificateOperationParameters(context, thumbprintAlgorithm, - thumbprint); - - client.DeleteCertificate(parameters); - } - - /// - /// Deletes a certificate. - /// - [Obsolete] - public static void WaitForCertificateToFailDeletion(BatchTestRunner runner, BatchAccountContext context, string thumbprintAlgorithm, string thumbprint) - { - BatchClient client = new BatchClient(runner.BatchManagementClient, runner.ResourceManagementClient); - - ListCertificateOptions parameters = new ListCertificateOptions(context) - { - ThumbprintAlgorithm = BatchTestHelpers.TestCertificateAlgorithm, - Thumbprint = thumbprint - }; - - PSCertificate cert = client.ListCertificates(parameters).First(); - - DateTime timeout = DateTime.Now.Add(GetTimeout(TimeSpan.FromMinutes(2))); - while (cert.State != CertificateState.DeleteFailed) - { - if (DateTime.Now > timeout) - { - throw new TimeoutException("Timed out waiting for failed certificate deletion"); - } - Sleep(10000); - cert = client.ListCertificates(parameters).First(); - } - } - /// /// Creates a test pool for use in Scenario tests. /// @@ -195,15 +102,9 @@ public static void CreateTestPool( string poolId, int? targetDedicated, int? targetLowPriority, - CertificateReference certReference = null, StartTask startTask = null, UpgradePolicy upgradePolicy = null) { - PSCertificateReference[] certReferences = null; - if (certReference != null) - { - certReferences = new PSCertificateReference[] { new PSCertificateReference(certReference) }; - } PSStartTask psStartTask = null; if (startTask != null) { @@ -224,11 +125,9 @@ public static void CreateTestPool( VirtualMachineConfiguration = virtualMachineConfiguration, TargetDedicatedComputeNodes = targetDedicated, TargetLowPriorityComputeNodes = targetLowPriority, - CertificateReferences = certReferences, UpgradePolicy = psUpgradePolicy, StartTask = psStartTask, - InterComputeNodeCommunicationEnabled = true, - TargetCommunicationMode = NodeCommunicationMode.Classic + InterComputeNodeCommunicationEnabled = true }; CreatePoolIfNotExists(runner, parameters); @@ -243,15 +142,9 @@ public static void CreateTestPoolVirtualMachine( string poolId, int? targetDedicated, int? targetLowPriority, - CertificateReference certReference = null, StartTask startTask = null, UpgradePolicy upgradePolicy = null) { - PSCertificateReference[] certReferences = null; - if (certReference != null) - { - certReferences = new PSCertificateReference[] { new PSCertificateReference(certReference) }; - } PSStartTask psStartTask = null; if (startTask != null) { @@ -280,7 +173,6 @@ public static void CreateTestPoolVirtualMachine( VirtualMachineConfiguration = vmConfiguration, TargetDedicatedComputeNodes = targetDedicated, TargetLowPriorityComputeNodes = targetLowPriority, - CertificateReferences = certReferences, UpgradePolicy = psUpgradePolicy, StartTask = psStartTask, TaskSlotsPerNode = 1, diff --git a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchAccountTests/TestBatchAccountEndToEnd.json b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchAccountTests/TestBatchAccountEndToEnd.json index e30362d1364c..534140647d0b 100644 --- a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchAccountTests/TestBatchAccountEndToEnd.json +++ b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.BatchAccountTests/TestBatchAccountEndToEnd.json @@ -6,7 +6,7 @@ "RequestMethod": "GET", "RequestHeaders": { "x-ms-client-request-id": [ - "a4b523a0-4b2b-4021-a42e-0333b5188cda" + "901fea12-bd32-49f1-ac19-16372f426e35" ], "Accept-Language": [ "en-US" @@ -15,7 +15,7 @@ "FxVersion/8.0.2025.41914", "OSName/Windows", "OSVersion/Microsoft.Windows.10.0.26100", - "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.109" + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.110" ] }, "RequestBody": "", @@ -33,13 +33,13 @@ "16499" ], "x-ms-request-id": [ - "49ffb008-7613-4915-9d93-14b0a947c97e" + "8fe89329-8e8f-4a22-8712-6095ca881642" ], "x-ms-correlation-request-id": [ - "49ffb008-7613-4915-9d93-14b0a947c97e" + "8fe89329-8e8f-4a22-8712-6095ca881642" ], "x-ms-routing-request-id": [ - "WESTUS2:20250911T201138Z:49ffb008-7613-4915-9d93-14b0a947c97e" + "WESTUS2:20250917T221204Z:8fe89329-8e8f-4a22-8712-6095ca881642" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -51,10 +51,10 @@ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: D3A4FD17B8C646709AA9C866AF58DEE4 Ref B: CO6AA3150219035 Ref C: 2025-09-11T20:11:37Z" + "Ref A: A23FA1E2907E4EEF8F1A2E00B99F239A Ref B: MWH011020809054 Ref C: 2025-09-17T22:12:03Z" ], "Date": [ - "Thu, 11 Sep 2025 20:11:38 GMT" + "Wed, 17 Sep 2025 22:12:03 GMT" ], "Content-Length": [ "19143" @@ -70,12 +70,12 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourcegroups/ps3698?api-version=2016-09-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlZ3JvdXBzL3BzMzY5OD9hcGktdmVyc2lvbj0yMDE2LTA5LTAx", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourcegroups/ps7310?api-version=2016-09-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlZ3JvdXBzL3BzNzMxMD9hcGktdmVyc2lvbj0yMDE2LTA5LTAx", "RequestMethod": "PUT", "RequestHeaders": { "x-ms-client-request-id": [ - "c4999e19-2464-419b-a10c-678493d0857d" + "ccb491a7-3863-4ba5-a90f-d541b4f1adaa" ], "Accept-Language": [ "en-US" @@ -84,7 +84,7 @@ "FxVersion/8.0.2025.41914", "OSName/Windows", "OSVersion/Microsoft.Windows.10.0.26100", - "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.109" + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.110" ], "Content-Type": [ "application/json; charset=utf-8" @@ -108,13 +108,13 @@ "11999" ], "x-ms-request-id": [ - "62b48328-6371-48b2-97bf-2427acdf25fd" + "1269cea5-7af0-4462-83c4-1a48f2ac8a12" ], "x-ms-correlation-request-id": [ - "62b48328-6371-48b2-97bf-2427acdf25fd" + "1269cea5-7af0-4462-83c4-1a48f2ac8a12" ], "x-ms-routing-request-id": [ - "WESTUS2:20250911T201139Z:62b48328-6371-48b2-97bf-2427acdf25fd" + "WESTUS2:20250917T221205Z:1269cea5-7af0-4462-83c4-1a48f2ac8a12" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -126,10 +126,10 @@ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: 18143FA111B541C7999E824AEFD97399 Ref B: CO6AA3150219035 Ref C: 2025-09-11T20:11:38Z" + "Ref A: B0347CD7A1A746A9BE64049814EE48A7 Ref B: MWH011020809054 Ref C: 2025-09-17T22:12:04Z" ], "Date": [ - "Thu, 11 Sep 2025 20:11:39 GMT" + "Wed, 17 Sep 2025 22:12:04 GMT" ], "Content-Length": [ "166" @@ -141,25 +141,25 @@ "-1" ] }, - "ResponseBody": "{\r\n \"id\": \"/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698\",\r\n \"name\": \"ps3698\",\r\n \"location\": \"westus2\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\"\r\n }\r\n}", + "ResponseBody": "{\r\n \"id\": \"/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps7310\",\r\n \"name\": \"ps7310\",\r\n \"location\": \"westus2\",\r\n \"properties\": {\r\n \"provisioningState\": \"Succeeded\"\r\n }\r\n}", "StatusCode": 201 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437?api-version=2024-07-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL3BzMzY5OC9wcm92aWRlcnMvTWljcm9zb2Z0LkJhdGNoL2JhdGNoQWNjb3VudHMvcHM4NDM3P2FwaS12ZXJzaW9uPTIwMjMtMDUtMDE=", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps7310/providers/Microsoft.Batch/batchAccounts/ps4278?api-version=2024-07-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL3BzNzMxMC9wcm92aWRlcnMvTWljcm9zb2Z0LkJhdGNoL2JhdGNoQWNjb3VudHMvcHM0Mjc4P2FwaS12ZXJzaW9uPTIwMjQtMDctMDE=", "RequestMethod": "PUT", "RequestHeaders": { "Accept-Language": [ "en-US" ], "x-ms-client-request-id": [ - "696ce114-29af-432c-9c70-d6c5dda20d7e" + "9979c640-d599-498e-a7a7-3674fb7a60b5" ], "User-Agent": [ "FxVersion/8.0.2025.41914", "OSName/Windows", "OSVersion/Microsoft.Windows.10.0.26100", - "Microsoft.Azure.Management.Batch.BatchManagementClient/3.7.0" + "Microsoft.Azure.Management.Batch.BatchManagementClient/3.7.1" ], "Content-Type": [ "application/json; charset=utf-8" @@ -177,13 +177,13 @@ "no-cache" ], "Location": [ - "https://management.azure.com/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437/operationResults/f591e7a1-746e-4f19-9fd5-aa0142592be4?api-version=2024-02-01&t=638932183004851134&c=MIIIpTCCBo2gAwIBAgITFgGsmnj73LBE7PaBtQABAayaeDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDMwHhcNMjUwNzE4MTIwNDI4WhcNMjYwMTE0MTIwNDI4WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKYwXiklImL5-WfPWj2FX3_Y-JxCd3XXEOuNXx5ggHubZZamujLTqEBSFsFYiH_9NCaqKTiATXu6fBpzW3ghgYhwr0PL071fQT15KnnNUFjd5hFXB7SYti9IwWu1lxSAz-De7HivujKdlsgcmfoV6upRQ0eva9e74EwLV9pCn4WQAhs-6T8p0CytQsi81qHMWybAbNvfom0ox78IEWdS_6g_d4Jl_I4ccYLMyRTOV2NioM96cRECWCZhbpLl1zwoYGSbU5H0MZaiCBjPlhXN40BqagpamZfP98sPYSBfreh6-iMGU5tNTRkh8RiJqzjhzIUpEv3PqLtWTyPUB8JS7aUCAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9BTTNQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAzKDEpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MB0GA1UdDgQWBBTxzPCXgPzIUiTz94us0y0CCMf8BzAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBRIo61gdWpv7GDzaVXRALEyV_xs5DAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggIBAAqNK9Ejzdnb9L4TyakCpJByRYVTN_6nCGbtUd2E2sELjuJGRGiRmujp_jqNyIofO_ghSaP_tqH-3WRTRUbnt5xM8aBYoYJSOgKgTsNrB6clspdhCCmzhJy6EQuOqfUDm3C7hDru1_bN3DwXt3VpDqfuYtM3MAabKg0oCYVWgFwnAKYmZLZMWMQh7k_hZxy1gOCQmE9U08tf_pU21aI0El6n5A5uG2FT0placwchheFmXAtoPjT7nU53HVmRissxUR_vRCDj_ZCFo3K3nZNXCQOKPAMc9-LC0prb9Slg6siKtSHB3iGjNQlT9-nbSnDgifI8zC1cvT8CdaNLOmUywRIB4wvRn1z123NuyfJaIz95igW9P189vBTJEZREF-MgJEboWKdlGNn6bbBtu0waqAmUU7WVLeZKdtUI6EEKF7wRGYuY_BhZx1ipyXnBHZpsufuH4AwgOO289QKmqg8QAy7HFD9c8H8fNCtR7sTZ4YNP2AhEaES0rkMSQUCNVEz42YEBi2GgrSpnI94SPdb3J3PkCMZ4OgFRjztLO7nrgbPtflhSOo_VOE0_7Y74km43WAMQPKL3-44vQrEQ61Hd_24IcFh_ChNXvUDqp39GzYlO3D0zlau4ozll8BeLUZrJwHTQWZS8XR-EifCl4MW5Y3Y1SxOLrIxnukCzQxL7aGmc&s=SPR_g8AydHAx2fRbsISNByRsbJGhJLU6-JUt3D1bzIt6yWDz76_77_MQpuUYZDqcBHaHYnieVy7BTQbdojj0-BnLt4w3o-3Ul0i16Rq0zaHreZkfbQchwflOTzx-g3kWK3WYg2yyZJrhd66aWzfffKVB1SPfxNWeb8cEvc3WaWw1sUy9OhEt3Sn75jwsn6xtz0FuT_DdyAHimQ-2mU7-shV8A0-y8V4rYc4dGgA6jlym1CrcafhQTwSnlwu0vR9q_P7wTn_zJB4FVh-Eocokah_ZbHWdLyKwhfNaHbokXvup8A5Q0XcbdlJ63LvspRj244TD4xo9hQ0aORw8InShVQ&h=NhZWEsIi8Cy5R1wXWXcLTn-B44Mq4vZHPaf5F7W8dQw" + "https://management.azure.com/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps7310/providers/Microsoft.Batch/batchAccounts/ps4278/operationResults/d5a8411a-f9e2-46a6-84df-dbe566cd4aea?api-version=2024-07-01&t=638937439322533712&c=MIII5zCCBs-gAwIBAgITFgHDlIazKjDMn0SpNgABAcOUhjANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDMwHhcNMjUwODA1MjIyMzU4WhcNMjYwMjAxMjIyMzU4WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOT-ZylV2tGobKl8RUF-gqsAyBUVb7g97876DX0ZJ_I61ybfyPQYk7pjhepOo9UeiSULt0-Acmpg-Ml-2OCYId5J7okZCJgBo9y8lQOcodfoofsurgedLMDszGnDepUk7UicEsblff4IzmmtY4bz5pIn3TOFOIYHBlDb13lHOhDfMniSuAxlQflu1N2UHmyZIWZXPRkZ2yVddH0AlRRxChGlWQUNaXHwy6w3ZRpt_uiJc2qX24QJUhQcumwX6ElyqRZ2d_JmVrZwksMAAiDNLHTAb2KdfNX3up4AhnyJkhmYPtbBCHJMNNK_u-JVdGJ5-1HgYgk3I2ZehSK24tVo_80CAwEAAaOCBNQwggTQMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9BTTNQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAzKDEpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MB0GA1UdDgQWBBTLWGmoorNquGVDo0bPP9871G-BLDAOBgNVHQ8BAf8EBAMCBaAwQAYDVR0RBDkwN4I1YXN5bmNvcGVyYXRpb25zaWduaW5nY2VydGlmaWNhdGUubWFuYWdlbWVudC5henVyZS5jb20wggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBRIo61gdWpv7GDzaVXRALEyV_xs5DAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggIBAIjIydiw12Z9o3gWBAMiIcrcfYk3eGJS9GyAycwq17XJPJ5uKAMUGDOotg4sVHH3VLtPweMHSpH-RPJoL1UKTPxTamhsr5NEo-ca7v1tWmIt2ICLtUqmz4B1wmjlbXnwwyLGm8mLlyj-Yu-zeEph9QpKCqNwSm0jQvpI_W04AUQmAH49OqHJzUCOKRESj0TdBvd1yaDovGBamUOvZqmAH7yrv9cdPvMsLI7FvbixTyFaPWnG4Fhgl2NvkK5hX6Z5M2O9sYigbAh4-vePyCshfVfaE1BePH5whqwfZzuw0jY89XAT5OAjPHGg7ud0HeWTs9ume_Y1d-5hbEgtLmxdKuwUeNQ-XA9xJBtuSF47AVURhSGzNA9TBGV71tupS0KKGkbccZ_SuYvUCpYRXXAeFSGFxC4jb_wee6m3Aj3wnVKzPxeSbcl6YTj9HTDmWrQZKAcBS6Yh7Vc0BNvPGIr8DiVlSWkJ9S89LOpTsFLNplGHT8KIcRdy7TbztdYjWfp_mSWNsco5LPVIJmlZWMvKPCEwG-LXcNnynNk0CMXvMPeyvhcRB1OK6khehpls_mz-Irs3uh6VxENFPw_Vo9Ucmi1s_V9VWCu6s64Z6P5oDhbLzUOMq7wY6oyQFdcsw6ZNc7JBVEvJLeEjP3oKqdvUxmlwYVGbqgRk6NUSqYFM1FkN&s=iDppmH8KbqLySm_hMvHmOPm2wTF0x4pQv7G4vSyPLIDqM4omHncQtbwOgSMMi2ifAvf8Aj4WaHWuD--hG3KQpJvD_8mlnD1WMOOjsM3ugUeXCsY9N7LDbWtBKWzhFlj4JwvimNvvWlR4svqd6qrmjiS2PkCHXS5zdjjC1ou0bBz8FuQ511adNsuKIfj0oFeInM3r1iAyCJCBIGzbi3WpHv63an_PV_n0cR10AOKldHsECpsPKl_6QozDGF_da206Il4Sxq_GJOeijlMUr8cG0kWAry0CgNfhxdA5PoBaqqfErxeH1kSm6lfjp0Zlwtf-8hAELml26Uw3RW8xNdq3YQ&h=iWKz6w5keZ1kVc5MQtTsf0enjhvQrYGRznKobZdgglM" ], "Retry-After": [ "15" ], "x-ms-request-id": [ - "f591e7a1-746e-4f19-9fd5-aa0142592be4" + "d5a8411a-f9e2-46a6-84df-dbe566cd4aea" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -192,7 +192,7 @@ "nosniff" ], "x-ms-operation-identifier": [ - "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=ac839cc2-33ee-4879-a5b5-2895202ccb29/westus2/f03b05a6-5650-4ed0-93c2-914e6d09a44a" + "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=ac839cc2-33ee-4879-a5b5-2895202ccb29/israelcentral/d4083adc-3180-4585-b881-68f44efdbc8c" ], "x-ms-ratelimit-remaining-subscription-writes": [ "799" @@ -201,19 +201,19 @@ "11999" ], "x-ms-correlation-request-id": [ - "32605037-6654-4ba1-9cd6-dc1eec3dfd6e" + "96ae9291-98b1-4d54-8999-ee6bd7770430" ], "x-ms-routing-request-id": [ - "WESTUS2:20250911T201140Z:32605037-6654-4ba1-9cd6-dc1eec3dfd6e" + "ISRAELCENTRAL:20250917T221212Z:96ae9291-98b1-4d54-8999-ee6bd7770430" ], "X-Cache": [ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: 364CFBBA767B4E1D80E32E4522BCD734 Ref B: CO6AA3150217025 Ref C: 2025-09-11T20:11:39Z" + "Ref A: 03375A0E50C246F0A4D03FE14E593E00 Ref B: MWH011020807036 Ref C: 2025-09-17T22:12:05Z" ], "Date": [ - "Thu, 11 Sep 2025 20:11:40 GMT" + "Wed, 17 Sep 2025 22:12:11 GMT" ], "Expires": [ "-1" @@ -226,21 +226,21 @@ "StatusCode": 202 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437?api-version=2024-07-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL3BzMzY5OC9wcm92aWRlcnMvTWljcm9zb2Z0LkJhdGNoL2JhdGNoQWNjb3VudHMvcHM4NDM3P2FwaS12ZXJzaW9uPTIwMjMtMDUtMDE=", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps7310/providers/Microsoft.Batch/batchAccounts/ps4278?api-version=2024-07-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL3BzNzMxMC9wcm92aWRlcnMvTWljcm9zb2Z0LkJhdGNoL2JhdGNoQWNjb3VudHMvcHM0Mjc4P2FwaS12ZXJzaW9uPTIwMjQtMDctMDE=", "RequestMethod": "PUT", "RequestHeaders": { "Accept-Language": [ "en-US" ], "x-ms-client-request-id": [ - "16f37d88-0e75-4a4e-a801-809a1d18de0c" + "0f6866e3-7cce-4b7b-90f7-28609f0dcae0" ], "User-Agent": [ "FxVersion/8.0.2025.41914", "OSName/Windows", "OSVersion/Microsoft.Windows.10.0.26100", - "Microsoft.Azure.Management.Batch.BatchManagementClient/3.7.0" + "Microsoft.Azure.Management.Batch.BatchManagementClient/3.7.1" ], "Content-Type": [ "application/json; charset=utf-8" @@ -258,10 +258,10 @@ "no-cache" ], "ETag": [ - "\"0x8DDF16F758B0122\"" + "\"0x8DDF6374F45EBAE\"" ], "x-ms-request-id": [ - "2c645818-793a-4fc6-ba71-98f94396db1b" + "7311c7ec-1129-4603-be26-0f9981e2aa82" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -270,28 +270,28 @@ "nosniff" ], "x-ms-operation-identifier": [ - "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=ac839cc2-33ee-4879-a5b5-2895202ccb29/westus2/6f3638dd-4cf6-4d50-aebd-475b5d061ed3" + "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=ac839cc2-33ee-4879-a5b5-2895202ccb29/israelcentral/b9f4a7b5-851f-4d1d-aee3-0d91b549472f" ], "x-ms-ratelimit-remaining-subscription-writes": [ - "799" + "800" ], "x-ms-ratelimit-remaining-subscription-global-writes": [ - "11999" + "12000" ], "x-ms-correlation-request-id": [ - "ba2ed37a-e1b0-4dc8-98be-e78a07dae7f9" + "d8a1ac9d-d37a-48b2-a26a-53c5df032e6b" ], "x-ms-routing-request-id": [ - "WESTUS2:20250911T201157Z:ba2ed37a-e1b0-4dc8-98be-e78a07dae7f9" + "ISRAELCENTRAL:20250917T221238Z:d8a1ac9d-d37a-48b2-a26a-53c5df032e6b" ], "X-Cache": [ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: C604102A326048C4A13ED7BA25A7181C Ref B: CO6AA3150217025 Ref C: 2025-09-11T20:11:56Z" + "Ref A: 5296EEDA36B84B3D9BF56B9CD127D817 Ref B: MWH011020807036 Ref C: 2025-09-17T22:12:30Z" ], "Date": [ - "Thu, 11 Sep 2025 20:11:57 GMT" + "Wed, 17 Sep 2025 22:12:38 GMT" ], "Content-Length": [ "4815" @@ -303,25 +303,25 @@ "-1" ], "Last-Modified": [ - "Thu, 11 Sep 2025 20:11:57 GMT" + "Wed, 17 Sep 2025 22:12:37 GMT" ] }, - "ResponseBody": "{\r\n \"id\": \"/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437\",\r\n \"name\": \"ps8437\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"westus2\",\r\n \"properties\": {\r\n \"accountEndpoint\": \"ps8437.westus2.batch.azure.com\",\r\n \"nodeManagementEndpoint\": \"4963f5e0-8504-4d02-afd7-90d37a155977.westus2.service.batch.azure.com\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"dedicatedCoreQuota\": 0,\r\n \"dedicatedCoreQuotaPerVMFamily\": [\r\n {\r\n \"name\": \"standardAv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardESv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardA0_A7Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardA8_A11Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardGFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"basicAFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVPromoFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCPromoFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHPromoFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardMSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardGSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNDSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHCSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBrsv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDAv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDASv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEAv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEASv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardMSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEIv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"Standard NCASv3_T4 Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardXEIDSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"Standard NDASv4_A100 Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standard NDAMSv4_A100Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDCSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNPSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFXMDVSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCADSA100v4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDADSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEADSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardNVADSA10v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEBDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHXFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLASv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCADSH100v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNGADSV620v1Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNDMI300Xv5IBFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCCadsH100v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardECasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardECadsv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDCasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDCadsv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVadsV710v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDlsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardDasv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardDalsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardEsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEav6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardFasv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardFalsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardFamsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEiasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDasv5Family\",\r\n \"coreQuota\": 0\r\n }\r\n ],\r\n \"dedicatedCoreQuotaPerVMFamilyEnforced\": true,\r\n \"lowPriorityCoreQuota\": 0,\r\n \"poolQuota\": 100,\r\n \"activeJobAndJobScheduleQuota\": 300,\r\n \"poolAllocationMode\": \"BatchService\",\r\n \"publicNetworkAccess\": \"Enabled\",\r\n \"privateEndpointConnections\": [],\r\n \"encryption\": {\r\n \"keySource\": \"Microsoft.Batch\"\r\n },\r\n \"allowedAuthenticationModes\": [\r\n \"SharedKey\",\r\n \"AAD\",\r\n \"TaskAuthenticationToken\"\r\n ]\r\n },\r\n \"tags\": {\r\n \"tag2\": \"tagValue2\"\r\n },\r\n \"identity\": {\r\n \"type\": \"None\"\r\n }\r\n}", + "ResponseBody": "{\r\n \"id\": \"/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps7310/providers/Microsoft.Batch/batchAccounts/ps4278\",\r\n \"name\": \"ps4278\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"westus2\",\r\n \"properties\": {\r\n \"accountEndpoint\": \"ps4278.westus2.batch.azure.com\",\r\n \"nodeManagementEndpoint\": \"6733d0d1-106d-4016-a564-adfc4f77f9e9.westus2.service.batch.azure.com\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"dedicatedCoreQuota\": 0,\r\n \"dedicatedCoreQuotaPerVMFamily\": [\r\n {\r\n \"name\": \"standardAv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardESv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardA0_A7Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardA8_A11Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardGFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"basicAFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVPromoFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCPromoFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHPromoFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardMSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardGSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNDSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHCSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBrsv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDAv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDASv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEAv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEASv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardMSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEIv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"Standard NCASv3_T4 Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardXEIDSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"Standard NDASv4_A100 Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standard NDAMSv4_A100Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDCSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNPSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFXMDVSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCADSA100v4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDADSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEADSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardNVADSA10v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEBDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHXFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLASv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCADSH100v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNGADSV620v1Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNDMI300Xv5IBFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCCadsH100v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardECasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardECadsv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDCasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDCadsv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVadsV710v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDlsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardDasv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardDalsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardEsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEav6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardFasv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardFalsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardFamsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEiasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDasv5Family\",\r\n \"coreQuota\": 0\r\n }\r\n ],\r\n \"dedicatedCoreQuotaPerVMFamilyEnforced\": true,\r\n \"lowPriorityCoreQuota\": 0,\r\n \"poolQuota\": 100,\r\n \"activeJobAndJobScheduleQuota\": 300,\r\n \"poolAllocationMode\": \"BatchService\",\r\n \"publicNetworkAccess\": \"Enabled\",\r\n \"privateEndpointConnections\": [],\r\n \"encryption\": {\r\n \"keySource\": \"Microsoft.Batch\"\r\n },\r\n \"allowedAuthenticationModes\": [\r\n \"SharedKey\",\r\n \"AAD\",\r\n \"TaskAuthenticationToken\"\r\n ]\r\n },\r\n \"tags\": {\r\n \"tag2\": \"tagValue2\"\r\n },\r\n \"identity\": {\r\n \"type\": \"None\"\r\n }\r\n}", "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437/operationResults/f591e7a1-746e-4f19-9fd5-aa0142592be4?api-version=2024-02-01&t=638932183004851134&c=MIIIpTCCBo2gAwIBAgITFgGsmnj73LBE7PaBtQABAayaeDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDMwHhcNMjUwNzE4MTIwNDI4WhcNMjYwMTE0MTIwNDI4WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKYwXiklImL5-WfPWj2FX3_Y-JxCd3XXEOuNXx5ggHubZZamujLTqEBSFsFYiH_9NCaqKTiATXu6fBpzW3ghgYhwr0PL071fQT15KnnNUFjd5hFXB7SYti9IwWu1lxSAz-De7HivujKdlsgcmfoV6upRQ0eva9e74EwLV9pCn4WQAhs-6T8p0CytQsi81qHMWybAbNvfom0ox78IEWdS_6g_d4Jl_I4ccYLMyRTOV2NioM96cRECWCZhbpLl1zwoYGSbU5H0MZaiCBjPlhXN40BqagpamZfP98sPYSBfreh6-iMGU5tNTRkh8RiJqzjhzIUpEv3PqLtWTyPUB8JS7aUCAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9BTTNQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAzKDEpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MB0GA1UdDgQWBBTxzPCXgPzIUiTz94us0y0CCMf8BzAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBRIo61gdWpv7GDzaVXRALEyV_xs5DAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggIBAAqNK9Ejzdnb9L4TyakCpJByRYVTN_6nCGbtUd2E2sELjuJGRGiRmujp_jqNyIofO_ghSaP_tqH-3WRTRUbnt5xM8aBYoYJSOgKgTsNrB6clspdhCCmzhJy6EQuOqfUDm3C7hDru1_bN3DwXt3VpDqfuYtM3MAabKg0oCYVWgFwnAKYmZLZMWMQh7k_hZxy1gOCQmE9U08tf_pU21aI0El6n5A5uG2FT0placwchheFmXAtoPjT7nU53HVmRissxUR_vRCDj_ZCFo3K3nZNXCQOKPAMc9-LC0prb9Slg6siKtSHB3iGjNQlT9-nbSnDgifI8zC1cvT8CdaNLOmUywRIB4wvRn1z123NuyfJaIz95igW9P189vBTJEZREF-MgJEboWKdlGNn6bbBtu0waqAmUU7WVLeZKdtUI6EEKF7wRGYuY_BhZx1ipyXnBHZpsufuH4AwgOO289QKmqg8QAy7HFD9c8H8fNCtR7sTZ4YNP2AhEaES0rkMSQUCNVEz42YEBi2GgrSpnI94SPdb3J3PkCMZ4OgFRjztLO7nrgbPtflhSOo_VOE0_7Y74km43WAMQPKL3-44vQrEQ61Hd_24IcFh_ChNXvUDqp39GzYlO3D0zlau4ozll8BeLUZrJwHTQWZS8XR-EifCl4MW5Y3Y1SxOLrIxnukCzQxL7aGmc&s=SPR_g8AydHAx2fRbsISNByRsbJGhJLU6-JUt3D1bzIt6yWDz76_77_MQpuUYZDqcBHaHYnieVy7BTQbdojj0-BnLt4w3o-3Ul0i16Rq0zaHreZkfbQchwflOTzx-g3kWK3WYg2yyZJrhd66aWzfffKVB1SPfxNWeb8cEvc3WaWw1sUy9OhEt3Sn75jwsn6xtz0FuT_DdyAHimQ-2mU7-shV8A0-y8V4rYc4dGgA6jlym1CrcafhQTwSnlwu0vR9q_P7wTn_zJB4FVh-Eocokah_ZbHWdLyKwhfNaHbokXvup8A5Q0XcbdlJ63LvspRj244TD4xo9hQ0aORw8InShVQ&h=NhZWEsIi8Cy5R1wXWXcLTn-B44Mq4vZHPaf5F7W8dQw", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL3BzMzY5OC9wcm92aWRlcnMvTWljcm9zb2Z0LkJhdGNoL2JhdGNoQWNjb3VudHMvcHM4NDM3L29wZXJhdGlvblJlc3VsdHMvZjU5MWU3YTEtNzQ2ZS00ZjE5LTlmZDUtYWEwMTQyNTkyYmU0P2FwaS12ZXJzaW9uPTIwMjMtMDUtMDEmdD02Mzg5MzIxODMwMDQ4NTExMzQmYz1NSUlJcFRDQ0JvMmdBd0lCQWdJVEZnR3Ntbmo3M0xCRTdQYUJ0UUFCQWF5YWVEQU5CZ2txaGtpRzl3MEJBUXNGQURCRU1STXdFUVlLQ1pJbWlaUHlMR1FCR1JZRFIwSk1NUk13RVFZS0NaSW1pWlB5TEdRQkdSWURRVTFGTVJnd0ZnWURWUVFERXc5QlRVVWdTVzVtY21FZ1EwRWdNRE13SGhjTk1qVXdOekU0TVRJd05ESTRXaGNOTWpZd01URTBNVEl3TkRJNFdqQkFNVDR3UEFZRFZRUURFelZoYzNsdVkyOXdaWEpoZEdsdmJuTnBaMjVwYm1kalpYSjBhV1pwWTJGMFpTNXRZVzVoWjJWdFpXNTBMbUY2ZFhKbExtTnZiVENDQVNJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dFUEFEQ0NBUW9DZ2dFQkFLWXdYaWtsSW1MNS1XZlBXajJGWDNfWS1KeENkM1hYRU91Tlh4NWdnSHViWlphbXVqTFRxRUJTRnNGWWlIXzlOQ2FxS1RpQVRYdTZmQnB6VzNnaGdZaHdyMFBMMDcxZlFUMTVLbm5OVUZqZDVoRlhCN1NZdGk5SXdXdTFseFNBei1EZTdIaXZ1aktkbHNnY21mb1Y2dXBSUTBldmE5ZTc0RXdMVjlwQ240V1FBaHMtNlQ4cDBDeXRRc2k4MXFITVd5YkFiTnZmb20wb3g3OElFV2RTXzZnX2Q0SmxfSTRjY1lMTXlSVE9WMk5pb005NmNSRUNXQ1poYnBMbDF6d29ZR1NiVTVIME1aYWlDQmpQbGhYTjQwQnFhZ3BhbVpmUDk4c1BZU0JmcmVoNi1pTUdVNXROVFJraDhSaUpxempoeklVcEV2M1BxTHRXVHlQVUI4SlM3YVVDQXdFQUFhT0NCSkl3Z2dTT01DY0dDU3NHQVFRQmdqY1ZDZ1FhTUJnd0NnWUlLd1lCQlFVSEF3RXdDZ1lJS3dZQkJRVUhBd0l3UFFZSkt3WUJCQUdDTnhVSEJEQXdMZ1ltS3dZQkJBR0NOeFVJaHBEakRZVFZ0SGlFOFlzLWhadmRGczZkRW9GZ2hmbVJTNFdzbVRRQ0FXUUNBUWN3Z2dIYUJnZ3JCZ0VGQlFjQkFRU0NBY3d3Z2dISU1HWUdDQ3NHQVFVRkJ6QUNobHBvZEhSd09pOHZZM0pzTG0xcFkzSnZjMjltZEM1amIyMHZjR3RwYVc1bWNtRXZRMlZ5ZEhNdlFVMHpVRXRKU1U1VVEwRXdNUzVCVFVVdVIwSk1YMEZOUlNVeU1FbHVabkpoSlRJd1EwRWxNakF3TXlneEtTNWpjblF3VmdZSUt3WUJCUVVITUFLR1NtaDBkSEE2THk5amNtd3hMbUZ0WlM1blltd3ZZV2xoTDBGTk0xQkxTVWxPVkVOQk1ERXVRVTFGTGtkQ1RGOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRE1vTVNrdVkzSjBNRllHQ0NzR0FRVUZCekFDaGtwb2RIUndPaTh2WTNKc01pNWhiV1V1WjJKc0wyRnBZUzlCVFROUVMwbEpUbFJEUVRBeExrRk5SUzVIUWt4ZlFVMUZKVEl3U1c1bWNtRWxNakJEUVNVeU1EQXpLREVwTG1OeWREQldCZ2dyQmdFRkJRY3dBb1pLYUhSMGNEb3ZMMk55YkRNdVlXMWxMbWRpYkM5aGFXRXZRVTB6VUV0SlNVNVVRMEV3TVM1QlRVVXVSMEpNWDBGTlJTVXlNRWx1Wm5KaEpUSXdRMEVsTWpBd015Z3hLUzVqY25Rd1ZnWUlLd1lCQlFVSE1BS0dTbWgwZEhBNkx5OWpjbXcwTG1GdFpTNW5ZbXd2WVdsaEwwRk5NMUJMU1VsT1ZFTkJNREV1UVUxRkxrZENURjlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURNb01Ta3VZM0owTUIwR0ExVWREZ1FXQkJUeHpQQ1hnUHpJVWlUejk0dXMweTBDQ01mOEJ6QU9CZ05WSFE4QkFmOEVCQU1DQmFBd2dnRTFCZ05WSFI4RWdnRXNNSUlCS0RDQ0FTU2dnZ0Vnb0lJQkhJWkNhSFIwY0RvdkwyTnliQzV0YVdOeWIzTnZablF1WTI5dEwzQnJhV2x1Wm5KaEwwTlNUQzlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURNb01Ta3VZM0pzaGpSb2RIUndPaTh2WTNKc01TNWhiV1V1WjJKc0wyTnliQzlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURNb01Ta3VZM0pzaGpSb2RIUndPaTh2WTNKc01pNWhiV1V1WjJKc0wyTnliQzlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURNb01Ta3VZM0pzaGpSb2RIUndPaTh2WTNKc015NWhiV1V1WjJKc0wyTnliQzlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURNb01Ta3VZM0pzaGpSb2RIUndPaTh2WTNKc05DNWhiV1V1WjJKc0wyTnliQzlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURNb01Ta3VZM0pzTUlHZEJnTlZIU0FFZ1pVd2daSXdEQVlLS3dZQkJBR0NOM3NCQVRCbUJnb3JCZ0VFQVlJM2V3SUNNRmd3VmdZSUt3WUJCUVVIQWdJd1NoNUlBRE1BTXdCbEFEQUFNUUE1QURJQU1RQXRBRFFBWkFBMkFEUUFMUUEwQUdZQU9BQmpBQzBBWVFBd0FEVUFOUUF0QURVQVlnQmtBR0VBWmdCbUFHUUFOUUJsQURNQU13QmtNQXdHQ2lzR0FRUUJnamQ3QXdJd0RBWUtLd1lCQkFHQ04zc0VBakFmQmdOVkhTTUVHREFXZ0JSSW82MWdkV3B2N0dEemFWWFJBTEV5Vl94czVEQWRCZ05WSFNVRUZqQVVCZ2dyQmdFRkJRY0RBUVlJS3dZQkJRVUhBd0l3RFFZSktvWklodmNOQVFFTEJRQURnZ0lCQUFxTks5RWp6ZG5iOUw0VHlha0NwSkJ5UllWVE5fNm5DR2J0VWQyRTJzRUxqdUpHUkdpUm11anBfanFOeUlvZk9fZ2hTYVBfdHFILTNXUlRSVWJudDV4TThhQllvWUpTT2dLZ1RzTnJCNmNsc3BkaENDbXpoSnk2RVF1T3FmVURtM0M3aERydTFfYk4zRHdYdDNWcERxZnVZdE0zTUFhYktnMG9DWVZXZ0Z3bkFLWW1aTFpNV01RaDdrX2haeHkxZ09DUW1FOVUwOHRmX3BVMjFhSTBFbDZuNUE1dUcyRlQwcGxhY3djaGhlRm1YQXRvUGpUN25VNTNIVm1SaXNzeFVSX3ZSQ0RqX1pDRm8zSzNuWk5YQ1FPS1BBTWM5LUxDMHByYjlTbGc2c2lLdFNIQjNpR2pOUWxUOS1uYlNuRGdpZkk4ekMxY3ZUOENkYU5MT21VeXdSSUI0d3ZSbjF6MTIzTnV5ZkphSXo5NWlnVzlQMTg5dkJUSkVaUkVGLU1nSkVib1dLZGxHTm42YmJCdHUwd2FxQW1VVTdXVkxlWktkdFVJNkVFS0Y3d1JHWXVZX0JoWngxaXB5WG5CSFpwc3VmdUg0QXdnT08yODlRS21xZzhRQXk3SEZEOWM4SDhmTkN0UjdzVFo0WU5QMkFoRWFFUzBya01TUVVDTlZFejQyWUVCaTJHZ3JTcG5JOTRTUGRiM0ozUGtDTVo0T2dGUmp6dExPN25yZ2JQdGZsaFNPb19WT0UwXzdZNzRrbTQzV0FNUVBLTDMtNDR2UXJFUTYxSGRfMjRJY0ZoX0NoTlh2VURxcDM5R3pZbE8zRDB6bGF1NG96bGw4QmVMVVpySndIVFFXWlM4WFItRWlmQ2w0TVc1WTNZMVN4T0xySXhudWtDelF4TDdhR21jJnM9U1BSX2c4QXlkSEF4MmZSYnNJU05CeVJzYkpHaEpMVTYtSlV0M0QxYnpJdDZ5V0R6NzZfNzdfTVFwdVVZWkRxY0JIYUhZbmllVnk3QlRRYmRvamowLUJuTHQ0dzNvLTNVbDBpMTZScTB6YUhyZVprZmJRY2h3ZmxPVHp4LWcza1dLM1dZZzJ5eVpKcmhkNjZhV3pmZmZLVkIxU1BmeE5XZWI4Y0V2YzNXYVd3MXNVeTlPaEV0M1NuNzVqd3NuNnh0ejBGdVRfRGR5QUhpbVEtMm1VNy1zaFY4QTAteThWNHJZYzRkR2dBNmpseW0xQ3JjYWZoUVR3U25sd3UwdlI5cV9QN3dUbl96SkI0RlZoLUVvY29rYWhfWmJIV2RMeUt3aGZOYUhib2tYdnVwOEE1UTBYY2JkbEo2M0x2c3BSajI0NFRENHhvOWhRMGFPUnc4SW5TaFZRJmg9TmhaV0VzSWk4Q3k1UjF3WFdYY0xUbi1CNDRNcTR2WkhQYWY1RjdXOGRRdw==", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps7310/providers/Microsoft.Batch/batchAccounts/ps4278/operationResults/d5a8411a-f9e2-46a6-84df-dbe566cd4aea?api-version=2024-07-01&t=638937439322533712&c=MIII5zCCBs-gAwIBAgITFgHDlIazKjDMn0SpNgABAcOUhjANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDMwHhcNMjUwODA1MjIyMzU4WhcNMjYwMjAxMjIyMzU4WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOT-ZylV2tGobKl8RUF-gqsAyBUVb7g97876DX0ZJ_I61ybfyPQYk7pjhepOo9UeiSULt0-Acmpg-Ml-2OCYId5J7okZCJgBo9y8lQOcodfoofsurgedLMDszGnDepUk7UicEsblff4IzmmtY4bz5pIn3TOFOIYHBlDb13lHOhDfMniSuAxlQflu1N2UHmyZIWZXPRkZ2yVddH0AlRRxChGlWQUNaXHwy6w3ZRpt_uiJc2qX24QJUhQcumwX6ElyqRZ2d_JmVrZwksMAAiDNLHTAb2KdfNX3up4AhnyJkhmYPtbBCHJMNNK_u-JVdGJ5-1HgYgk3I2ZehSK24tVo_80CAwEAAaOCBNQwggTQMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9BTTNQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAzKDEpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MB0GA1UdDgQWBBTLWGmoorNquGVDo0bPP9871G-BLDAOBgNVHQ8BAf8EBAMCBaAwQAYDVR0RBDkwN4I1YXN5bmNvcGVyYXRpb25zaWduaW5nY2VydGlmaWNhdGUubWFuYWdlbWVudC5henVyZS5jb20wggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBRIo61gdWpv7GDzaVXRALEyV_xs5DAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggIBAIjIydiw12Z9o3gWBAMiIcrcfYk3eGJS9GyAycwq17XJPJ5uKAMUGDOotg4sVHH3VLtPweMHSpH-RPJoL1UKTPxTamhsr5NEo-ca7v1tWmIt2ICLtUqmz4B1wmjlbXnwwyLGm8mLlyj-Yu-zeEph9QpKCqNwSm0jQvpI_W04AUQmAH49OqHJzUCOKRESj0TdBvd1yaDovGBamUOvZqmAH7yrv9cdPvMsLI7FvbixTyFaPWnG4Fhgl2NvkK5hX6Z5M2O9sYigbAh4-vePyCshfVfaE1BePH5whqwfZzuw0jY89XAT5OAjPHGg7ud0HeWTs9ume_Y1d-5hbEgtLmxdKuwUeNQ-XA9xJBtuSF47AVURhSGzNA9TBGV71tupS0KKGkbccZ_SuYvUCpYRXXAeFSGFxC4jb_wee6m3Aj3wnVKzPxeSbcl6YTj9HTDmWrQZKAcBS6Yh7Vc0BNvPGIr8DiVlSWkJ9S89LOpTsFLNplGHT8KIcRdy7TbztdYjWfp_mSWNsco5LPVIJmlZWMvKPCEwG-LXcNnynNk0CMXvMPeyvhcRB1OK6khehpls_mz-Irs3uh6VxENFPw_Vo9Ucmi1s_V9VWCu6s64Z6P5oDhbLzUOMq7wY6oyQFdcsw6ZNc7JBVEvJLeEjP3oKqdvUxmlwYVGbqgRk6NUSqYFM1FkN&s=iDppmH8KbqLySm_hMvHmOPm2wTF0x4pQv7G4vSyPLIDqM4omHncQtbwOgSMMi2ifAvf8Aj4WaHWuD--hG3KQpJvD_8mlnD1WMOOjsM3ugUeXCsY9N7LDbWtBKWzhFlj4JwvimNvvWlR4svqd6qrmjiS2PkCHXS5zdjjC1ou0bBz8FuQ511adNsuKIfj0oFeInM3r1iAyCJCBIGzbi3WpHv63an_PV_n0cR10AOKldHsECpsPKl_6QozDGF_da206Il4Sxq_GJOeijlMUr8cG0kWAry0CgNfhxdA5PoBaqqfErxeH1kSm6lfjp0Zlwtf-8hAELml26Uw3RW8xNdq3YQ&h=iWKz6w5keZ1kVc5MQtTsf0enjhvQrYGRznKobZdgglM", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL3BzNzMxMC9wcm92aWRlcnMvTWljcm9zb2Z0LkJhdGNoL2JhdGNoQWNjb3VudHMvcHM0Mjc4L29wZXJhdGlvblJlc3VsdHMvZDVhODQxMWEtZjllMi00NmE2LTg0ZGYtZGJlNTY2Y2Q0YWVhP2FwaS12ZXJzaW9uPTIwMjQtMDctMDEmdD02Mzg5Mzc0MzkzMjI1MzM3MTImYz1NSUlJNXpDQ0JzLWdBd0lCQWdJVEZnSERsSWF6S2pETW4wU3BOZ0FCQWNPVWhqQU5CZ2txaGtpRzl3MEJBUXNGQURCRU1STXdFUVlLQ1pJbWlaUHlMR1FCR1JZRFIwSk1NUk13RVFZS0NaSW1pWlB5TEdRQkdSWURRVTFGTVJnd0ZnWURWUVFERXc5QlRVVWdTVzVtY21FZ1EwRWdNRE13SGhjTk1qVXdPREExTWpJeU16VTRXaGNOTWpZd01qQXhNakl5TXpVNFdqQkFNVDR3UEFZRFZRUURFelZoYzNsdVkyOXdaWEpoZEdsdmJuTnBaMjVwYm1kalpYSjBhV1pwWTJGMFpTNXRZVzVoWjJWdFpXNTBMbUY2ZFhKbExtTnZiVENDQVNJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dFUEFEQ0NBUW9DZ2dFQkFPVC1aeWxWMnRHb2JLbDhSVUYtZ3FzQXlCVVZiN2c5Nzg3NkRYMFpKX0k2MXliZnlQUVlrN3BqaGVwT285VWVpU1VMdDAtQWNtcGctTWwtMk9DWUlkNUo3b2taQ0pnQm85eThsUU9jb2Rmb29mc3VyZ2VkTE1Ec3pHbkRlcFVrN1VpY0VzYmxmZjRJem1tdFk0Yno1cEluM1RPRk9JWUhCbERiMTNsSE9oRGZNbmlTdUF4bFFmbHUxTjJVSG15WklXWlhQUmtaMnlWZGRIMEFsUlJ4Q2hHbFdRVU5hWEh3eTZ3M1pScHRfdWlKYzJxWDI0UUpVaFFjdW13WDZFbHlxUloyZF9KbVZyWndrc01BQWlETkxIVEFiMktkZk5YM3VwNEFobnlKa2htWVB0YkJDSEpNTk5LX3UtSlZkR0o1LTFIZ1lnazNJMlplaFNLMjR0Vm9fODBDQXdFQUFhT0NCTlF3Z2dUUU1DY0dDU3NHQVFRQmdqY1ZDZ1FhTUJnd0NnWUlLd1lCQlFVSEF3RXdDZ1lJS3dZQkJRVUhBd0l3UFFZSkt3WUJCQUdDTnhVSEJEQXdMZ1ltS3dZQkJBR0NOeFVJaHBEakRZVFZ0SGlFOFlzLWhadmRGczZkRW9GZ2hmbVJTNFdzbVRRQ0FXUUNBUWN3Z2dIYUJnZ3JCZ0VGQlFjQkFRU0NBY3d3Z2dISU1HWUdDQ3NHQVFVRkJ6QUNobHBvZEhSd09pOHZZM0pzTG0xcFkzSnZjMjltZEM1amIyMHZjR3RwYVc1bWNtRXZRMlZ5ZEhNdlFVMHpVRXRKU1U1VVEwRXdNUzVCVFVVdVIwSk1YMEZOUlNVeU1FbHVabkpoSlRJd1EwRWxNakF3TXlneEtTNWpjblF3VmdZSUt3WUJCUVVITUFLR1NtaDBkSEE2THk5amNtd3hMbUZ0WlM1blltd3ZZV2xoTDBGTk0xQkxTVWxPVkVOQk1ERXVRVTFGTGtkQ1RGOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRE1vTVNrdVkzSjBNRllHQ0NzR0FRVUZCekFDaGtwb2RIUndPaTh2WTNKc01pNWhiV1V1WjJKc0wyRnBZUzlCVFROUVMwbEpUbFJEUVRBeExrRk5SUzVIUWt4ZlFVMUZKVEl3U1c1bWNtRWxNakJEUVNVeU1EQXpLREVwTG1OeWREQldCZ2dyQmdFRkJRY3dBb1pLYUhSMGNEb3ZMMk55YkRNdVlXMWxMbWRpYkM5aGFXRXZRVTB6VUV0SlNVNVVRMEV3TVM1QlRVVXVSMEpNWDBGTlJTVXlNRWx1Wm5KaEpUSXdRMEVsTWpBd015Z3hLUzVqY25Rd1ZnWUlLd1lCQlFVSE1BS0dTbWgwZEhBNkx5OWpjbXcwTG1GdFpTNW5ZbXd2WVdsaEwwRk5NMUJMU1VsT1ZFTkJNREV1UVUxRkxrZENURjlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURNb01Ta3VZM0owTUIwR0ExVWREZ1FXQkJUTFdHbW9vck5xdUdWRG8wYlBQOTg3MUctQkxEQU9CZ05WSFE4QkFmOEVCQU1DQmFBd1FBWURWUjBSQkRrd040STFZWE41Ym1OdmNHVnlZWFJwYjI1emFXZHVhVzVuWTJWeWRHbG1hV05oZEdVdWJXRnVZV2RsYldWdWRDNWhlblZ5WlM1amIyMHdnZ0UxQmdOVkhSOEVnZ0VzTUlJQktEQ0NBU1NnZ2dFZ29JSUJISVpDYUhSMGNEb3ZMMk55YkM1dGFXTnliM052Wm5RdVkyOXRMM0JyYVdsdVpuSmhMME5TVEM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc2hqUm9kSFJ3T2k4dlkzSnNNUzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc2hqUm9kSFJ3T2k4dlkzSnNNaTVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc2hqUm9kSFJ3T2k4dlkzSnNNeTVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc2hqUm9kSFJ3T2k4dlkzSnNOQzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc01JR2RCZ05WSFNBRWdaVXdnWkl3REFZS0t3WUJCQUdDTjNzQkFUQm1CZ29yQmdFRUFZSTNld0lDTUZnd1ZnWUlLd1lCQlFVSEFnSXdTaDVJQURNQU13QmxBREFBTVFBNUFESUFNUUF0QURRQVpBQTJBRFFBTFFBMEFHWUFPQUJqQUMwQVlRQXdBRFVBTlFBdEFEVUFZZ0JrQUdFQVpnQm1BR1FBTlFCbEFETUFNd0JrTUF3R0Npc0dBUVFCZ2pkN0F3SXdEQVlLS3dZQkJBR0NOM3NFQWpBZkJnTlZIU01FR0RBV2dCUklvNjFnZFdwdjdHRHphVlhSQUxFeVZfeHM1REFkQmdOVkhTVUVGakFVQmdnckJnRUZCUWNEQVFZSUt3WUJCUVVIQXdJd0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dJQkFJakl5ZGl3MTJaOW8zZ1dCQU1pSWNyY2ZZazNlR0pTOUd5QXljd3ExN1hKUEo1dUtBTVVHRE9vdGc0c1ZISDNWTHRQd2VNSFNwSC1SUEpvTDFVS1RQeFRhbWhzcjVORW8tY2E3djF0V21JdDJJQ0x0VXFtejRCMXdtamxiWG53d3lMR204bUxseWotWXUtemVFcGg5UXBLQ3FOd1NtMGpRdnBJX1cwNEFVUW1BSDQ5T3FISnpVQ09LUkVTajBUZEJ2ZDF5YURvdkdCYW1VT3ZacW1BSDd5cnY5Y2RQdk1zTEk3RnZiaXhUeUZhUFduRzRGaGdsMk52a0s1aFg2WjVNMk85c1lpZ2JBaDQtdmVQeUNzaGZWZmFFMUJlUEg1d2hxd2ZaenV3MGpZODlYQVQ1T0FqUEhHZzd1ZDBIZVdUczl1bWVfWTFkLTVoYkVndExteGRLdXdVZU5RLVhBOXhKQnR1U0Y0N0FWVVJoU0d6TkE5VEJHVjcxdHVwUzBLS0drYmNjWl9TdVl2VUNwWVJYWEFlRlNHRnhDNGpiX3dlZTZtM0FqM3duVkt6UHhlU2JjbDZZVGo5SFREbVdyUVpLQWNCUzZZaDdWYzBCTnZQR0lyOERpVmxTV2tKOVM4OUxPcFRzRkxOcGxHSFQ4S0ljUmR5N1RienRkWWpXZnBfbVNXTnNjbzVMUFZJSm1sWldNdktQQ0V3Ry1MWGNObnluTmswQ01Ydk1QZXl2aGNSQjFPSzZraGVocGxzX216LUlyczN1aDZWeEVORlB3X1ZvOVVjbWkxc19WOVZXQ3U2czY0WjZQNW9EaGJMelVPTXE3d1k2b3lRRmRjc3c2Wk5jN0pCVkV2SkxlRWpQM29LcWR2VXhtbHdZVkdicWdSazZOVVNxWUZNMUZrTiZzPWlEcHBtSDhLYnFMeVNtX2hNdkhtT1BtMndURjB4NHBRdjdHNHZTeVBMSURxTTRvbUhuY1F0YndPZ1NNTWkyaWZBdmY4QWo0V2FIV3VELS1oRzNLUXBKdkRfOG1sbkQxV01PT2pzTTN1Z1VlWENzWTlON0xEYld0QktXemhGbGo0Snd2aW1OdnZXbFI0c3ZxZDZxcm1qaVMyUGtDSFhTNXpkampDMW91MGJCejhGdVE1MTFhZE5zdUtJZmowb0ZlSW5NM3IxaUF5Q0pDQklHemJpM1dwSHY2M2FuX1BWX24wY1IxMEFPS2xkSHNFQ3BzUEtsXzZRb3pER0ZfZGEyMDZJbDRTeHFfR0pPZWlqbE1VcjhjRzBrV0FyeTBDZ05maHhkQTVQb0JhcXFmRXJ4ZUgxa1NtNmxmanAwWmx3dGYtOGhBRUxtbDI2VXczUlc4eE5kcTNZUSZoPWlXS3o2dzVrZVoxa1ZjNU1RdFRzZjBlbmpodlFyWUdSem5Lb2JaZGdnbE0=", "RequestMethod": "GET", "RequestHeaders": { "x-ms-client-request-id": [ - "696ce114-29af-432c-9c70-d6c5dda20d7e" + "9979c640-d599-498e-a7a7-3674fb7a60b5" ], "User-Agent": [ "FxVersion/8.0.2025.41914", "OSName/Windows", "OSVersion/Microsoft.Windows.10.0.26100", - "Microsoft.Azure.Management.Batch.BatchManagementClient/3.7.0" + "Microsoft.Azure.Management.Batch.BatchManagementClient/3.7.1" ] }, "RequestBody": "", @@ -333,10 +333,10 @@ "no-cache" ], "ETag": [ - "\"0x8DDF16F749BDCC3\"" + "\"0x8DDF6374A7E175E\"" ], "x-ms-request-id": [ - "4541979c-5585-4065-ac63-25c8b7863d46" + "ed0965e2-6917-4c10-8711-2ef554d6f71d" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -345,7 +345,7 @@ "nosniff" ], "x-ms-operation-identifier": [ - "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=ac839cc2-33ee-4879-a5b5-2895202ccb29/westus2/9486ee6b-acdf-4aa4-ad0b-e05d9ccd4e11" + "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=ac839cc2-33ee-4879-a5b5-2895202ccb29/israelcentral/447de8b6-7860-4b53-8482-bb471be9f03f" ], "x-ms-ratelimit-remaining-subscription-reads": [ "1099" @@ -354,19 +354,19 @@ "16499" ], "x-ms-correlation-request-id": [ - "3181d01d-0016-45f2-8b58-b19feb255319" + "43406430-e997-456b-b487-a6ed1399b9d7" ], "x-ms-routing-request-id": [ - "WESTUS2:20250911T201155Z:3181d01d-0016-45f2-8b58-b19feb255319" + "ISRAELCENTRAL:20250917T221229Z:43406430-e997-456b-b487-a6ed1399b9d7" ], "X-Cache": [ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: 2454AD5E15C04CB8A405D78A10E72DAD Ref B: CO6AA3150217025 Ref C: 2025-09-11T20:11:55Z" + "Ref A: 21A096CF802C4CC2AA89C166E3A2E46C Ref B: MWH011020807036 Ref C: 2025-09-17T22:12:27Z" ], "Date": [ - "Thu, 11 Sep 2025 20:11:55 GMT" + "Wed, 17 Sep 2025 22:12:28 GMT" ], "Content-Length": [ "4815" @@ -378,28 +378,28 @@ "-1" ], "Last-Modified": [ - "Thu, 11 Sep 2025 20:11:55 GMT" + "Wed, 17 Sep 2025 22:12:28 GMT" ] }, - "ResponseBody": "{\r\n \"id\": \"/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437\",\r\n \"name\": \"ps8437\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"westus2\",\r\n \"properties\": {\r\n \"accountEndpoint\": \"ps8437.westus2.batch.azure.com\",\r\n \"nodeManagementEndpoint\": \"4963f5e0-8504-4d02-afd7-90d37a155977.westus2.service.batch.azure.com\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"dedicatedCoreQuota\": 0,\r\n \"dedicatedCoreQuotaPerVMFamily\": [\r\n {\r\n \"name\": \"standardAv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardESv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardA0_A7Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardA8_A11Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardGFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"basicAFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVPromoFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCPromoFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHPromoFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardMSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardGSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNDSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHCSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBrsv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDAv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDASv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEAv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEASv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardMSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEIv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"Standard NCASv3_T4 Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardXEIDSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"Standard NDASv4_A100 Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standard NDAMSv4_A100Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDCSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNPSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFXMDVSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCADSA100v4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDADSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEADSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardNVADSA10v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEBDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHXFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLASv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCADSH100v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNGADSV620v1Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNDMI300Xv5IBFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCCadsH100v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardECasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardECadsv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDCasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDCadsv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVadsV710v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDlsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardDasv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardDalsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardEsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEav6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardFasv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardFalsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardFamsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEiasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDasv5Family\",\r\n \"coreQuota\": 0\r\n }\r\n ],\r\n \"dedicatedCoreQuotaPerVMFamilyEnforced\": true,\r\n \"lowPriorityCoreQuota\": 0,\r\n \"poolQuota\": 100,\r\n \"activeJobAndJobScheduleQuota\": 300,\r\n \"poolAllocationMode\": \"BatchService\",\r\n \"publicNetworkAccess\": \"Enabled\",\r\n \"privateEndpointConnections\": [],\r\n \"encryption\": {\r\n \"keySource\": \"Microsoft.Batch\"\r\n },\r\n \"allowedAuthenticationModes\": [\r\n \"SharedKey\",\r\n \"AAD\",\r\n \"TaskAuthenticationToken\"\r\n ]\r\n },\r\n \"tags\": {\r\n \"tag1\": \"tagValue1\"\r\n },\r\n \"identity\": {\r\n \"type\": \"None\"\r\n }\r\n}", + "ResponseBody": "{\r\n \"id\": \"/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps7310/providers/Microsoft.Batch/batchAccounts/ps4278\",\r\n \"name\": \"ps4278\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"westus2\",\r\n \"properties\": {\r\n \"accountEndpoint\": \"ps4278.westus2.batch.azure.com\",\r\n \"nodeManagementEndpoint\": \"6733d0d1-106d-4016-a564-adfc4f77f9e9.westus2.service.batch.azure.com\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"dedicatedCoreQuota\": 0,\r\n \"dedicatedCoreQuotaPerVMFamily\": [\r\n {\r\n \"name\": \"standardAv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardESv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardA0_A7Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardA8_A11Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardGFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"basicAFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVPromoFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCPromoFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHPromoFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardMSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardGSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNDSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHCSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBrsv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDAv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDASv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEAv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEASv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardMSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEIv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"Standard NCASv3_T4 Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardXEIDSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"Standard NDASv4_A100 Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standard NDAMSv4_A100Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDCSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNPSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFXMDVSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCADSA100v4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDADSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEADSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardNVADSA10v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEBDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHXFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLASv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCADSH100v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNGADSV620v1Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNDMI300Xv5IBFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCCadsH100v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardECasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardECadsv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDCasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDCadsv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVadsV710v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDlsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardDasv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardDalsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardEsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEav6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardFasv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardFalsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardFamsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEiasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDasv5Family\",\r\n \"coreQuota\": 0\r\n }\r\n ],\r\n \"dedicatedCoreQuotaPerVMFamilyEnforced\": true,\r\n \"lowPriorityCoreQuota\": 0,\r\n \"poolQuota\": 100,\r\n \"activeJobAndJobScheduleQuota\": 300,\r\n \"poolAllocationMode\": \"BatchService\",\r\n \"publicNetworkAccess\": \"Enabled\",\r\n \"privateEndpointConnections\": [],\r\n \"encryption\": {\r\n \"keySource\": \"Microsoft.Batch\"\r\n },\r\n \"allowedAuthenticationModes\": [\r\n \"SharedKey\",\r\n \"AAD\",\r\n \"TaskAuthenticationToken\"\r\n ]\r\n },\r\n \"tags\": {\r\n \"tag1\": \"tagValue1\"\r\n },\r\n \"identity\": {\r\n \"type\": \"None\"\r\n }\r\n}", "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437?api-version=2024-07-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL3BzMzY5OC9wcm92aWRlcnMvTWljcm9zb2Z0LkJhdGNoL2JhdGNoQWNjb3VudHMvcHM4NDM3P2FwaS12ZXJzaW9uPTIwMjMtMDUtMDE=", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps7310/providers/Microsoft.Batch/batchAccounts/ps4278?api-version=2024-07-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL3BzNzMxMC9wcm92aWRlcnMvTWljcm9zb2Z0LkJhdGNoL2JhdGNoQWNjb3VudHMvcHM0Mjc4P2FwaS12ZXJzaW9uPTIwMjQtMDctMDE=", "RequestMethod": "GET", "RequestHeaders": { "Accept-Language": [ "en-US" ], "x-ms-client-request-id": [ - "16f37d88-0e75-4a4e-a801-809a1d18de0c" + "0f6866e3-7cce-4b7b-90f7-28609f0dcae0" ], "User-Agent": [ "FxVersion/8.0.2025.41914", "OSName/Windows", "OSVersion/Microsoft.Windows.10.0.26100", - "Microsoft.Azure.Management.Batch.BatchManagementClient/3.7.0" + "Microsoft.Azure.Management.Batch.BatchManagementClient/3.7.1" ] }, "RequestBody": "", @@ -411,10 +411,10 @@ "no-cache" ], "ETag": [ - "\"0x8DDF16F703E477D\"" + "\"0x8DDF637451CB860\"" ], "x-ms-request-id": [ - "dde9108c-886f-4efb-8f4b-25afb36f9b46" + "db8e0ea2-c709-4dda-a46d-988854f9bc6d" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -429,19 +429,19 @@ "16499" ], "x-ms-correlation-request-id": [ - "5aa0375b-61a5-4465-b760-b2df219baaa6" + "e77f53e7-5019-4fa4-bf1a-a98a457de7bb" ], "x-ms-routing-request-id": [ - "WESTUS2:20250911T201156Z:5aa0375b-61a5-4465-b760-b2df219baaa6" + "ISRAELCENTRAL:20250917T221230Z:e77f53e7-5019-4fa4-bf1a-a98a457de7bb" ], "X-Cache": [ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: E5B2E167185E41BD910032825606ED7C Ref B: CO6AA3150217025 Ref C: 2025-09-11T20:11:56Z" + "Ref A: 8114C69220264031ADFB6037BBFD8CFE Ref B: MWH011020807036 Ref C: 2025-09-17T22:12:30Z" ], "Date": [ - "Thu, 11 Sep 2025 20:11:56 GMT" + "Wed, 17 Sep 2025 22:12:29 GMT" ], "Content-Length": [ "4815" @@ -453,28 +453,28 @@ "-1" ], "Last-Modified": [ - "Thu, 11 Sep 2025 20:11:48 GMT" + "Wed, 17 Sep 2025 22:12:19 GMT" ] }, - "ResponseBody": "{\r\n \"id\": \"/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437\",\r\n \"name\": \"ps8437\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"westus2\",\r\n \"properties\": {\r\n \"accountEndpoint\": \"ps8437.westus2.batch.azure.com\",\r\n \"nodeManagementEndpoint\": \"4963f5e0-8504-4d02-afd7-90d37a155977.westus2.service.batch.azure.com\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"dedicatedCoreQuota\": 0,\r\n \"dedicatedCoreQuotaPerVMFamily\": [\r\n {\r\n \"name\": \"standardAv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardESv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardA0_A7Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardA8_A11Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardGFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"basicAFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVPromoFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCPromoFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHPromoFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardMSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardGSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNDSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHCSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBrsv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDAv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDASv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEAv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEASv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardMSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEIv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"Standard NCASv3_T4 Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardXEIDSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"Standard NDASv4_A100 Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standard NDAMSv4_A100Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDCSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNPSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFXMDVSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCADSA100v4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDADSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEADSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardNVADSA10v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEBDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHXFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLASv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCADSH100v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNGADSV620v1Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNDMI300Xv5IBFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCCadsH100v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardECasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardECadsv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDCasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDCadsv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVadsV710v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDlsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardDasv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardDalsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardEsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEav6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardFasv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardFalsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardFamsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEiasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDasv5Family\",\r\n \"coreQuota\": 0\r\n }\r\n ],\r\n \"dedicatedCoreQuotaPerVMFamilyEnforced\": true,\r\n \"lowPriorityCoreQuota\": 0,\r\n \"poolQuota\": 100,\r\n \"activeJobAndJobScheduleQuota\": 300,\r\n \"poolAllocationMode\": \"BatchService\",\r\n \"publicNetworkAccess\": \"Enabled\",\r\n \"privateEndpointConnections\": [],\r\n \"encryption\": {\r\n \"keySource\": \"Microsoft.Batch\"\r\n },\r\n \"allowedAuthenticationModes\": [\r\n \"SharedKey\",\r\n \"AAD\",\r\n \"TaskAuthenticationToken\"\r\n ]\r\n },\r\n \"tags\": {\r\n \"tag1\": \"tagValue1\"\r\n },\r\n \"identity\": {\r\n \"type\": \"None\"\r\n }\r\n}", + "ResponseBody": "{\r\n \"id\": \"/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps7310/providers/Microsoft.Batch/batchAccounts/ps4278\",\r\n \"name\": \"ps4278\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"westus2\",\r\n \"properties\": {\r\n \"accountEndpoint\": \"ps4278.westus2.batch.azure.com\",\r\n \"nodeManagementEndpoint\": \"6733d0d1-106d-4016-a564-adfc4f77f9e9.westus2.service.batch.azure.com\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"dedicatedCoreQuota\": 0,\r\n \"dedicatedCoreQuotaPerVMFamily\": [\r\n {\r\n \"name\": \"standardAv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardESv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardA0_A7Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardA8_A11Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardGFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"basicAFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVPromoFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCPromoFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHPromoFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardMSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardGSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNDSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHCSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBrsv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDAv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDASv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEAv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEASv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardMSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEIv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"Standard NCASv3_T4 Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardXEIDSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"Standard NDASv4_A100 Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standard NDAMSv4_A100Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDCSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNPSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFXMDVSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCADSA100v4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDADSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEADSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardNVADSA10v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEBDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHXFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLASv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCADSH100v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNGADSV620v1Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNDMI300Xv5IBFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCCadsH100v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardECasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardECadsv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDCasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDCadsv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVadsV710v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDlsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardDasv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardDalsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardEsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEav6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardFasv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardFalsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardFamsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEiasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDasv5Family\",\r\n \"coreQuota\": 0\r\n }\r\n ],\r\n \"dedicatedCoreQuotaPerVMFamilyEnforced\": true,\r\n \"lowPriorityCoreQuota\": 0,\r\n \"poolQuota\": 100,\r\n \"activeJobAndJobScheduleQuota\": 300,\r\n \"poolAllocationMode\": \"BatchService\",\r\n \"publicNetworkAccess\": \"Enabled\",\r\n \"privateEndpointConnections\": [],\r\n \"encryption\": {\r\n \"keySource\": \"Microsoft.Batch\"\r\n },\r\n \"allowedAuthenticationModes\": [\r\n \"SharedKey\",\r\n \"AAD\",\r\n \"TaskAuthenticationToken\"\r\n ]\r\n },\r\n \"tags\": {\r\n \"tag1\": \"tagValue1\"\r\n },\r\n \"identity\": {\r\n \"type\": \"None\"\r\n }\r\n}", "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437?api-version=2024-07-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL3BzMzY5OC9wcm92aWRlcnMvTWljcm9zb2Z0LkJhdGNoL2JhdGNoQWNjb3VudHMvcHM4NDM3P2FwaS12ZXJzaW9uPTIwMjMtMDUtMDE=", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps7310/providers/Microsoft.Batch/batchAccounts/ps4278?api-version=2024-07-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL3BzNzMxMC9wcm92aWRlcnMvTWljcm9zb2Z0LkJhdGNoL2JhdGNoQWNjb3VudHMvcHM0Mjc4P2FwaS12ZXJzaW9uPTIwMjQtMDctMDE=", "RequestMethod": "GET", "RequestHeaders": { "Accept-Language": [ "en-US" ], "x-ms-client-request-id": [ - "b2b55042-661c-40d5-956f-1783af394332" + "87cadc54-4947-4da5-ab73-b56dfb3e5bea" ], "User-Agent": [ "FxVersion/8.0.2025.41914", "OSName/Windows", "OSVersion/Microsoft.Windows.10.0.26100", - "Microsoft.Azure.Management.Batch.BatchManagementClient/3.7.0" + "Microsoft.Azure.Management.Batch.BatchManagementClient/3.7.1" ] }, "RequestBody": "", @@ -486,10 +486,10 @@ "no-cache" ], "ETag": [ - "\"0x8DDF16F758694BA\"" + "\"0x8DDF6374F415673\"" ], "x-ms-request-id": [ - "fecdc009-84a0-4dd6-ba50-989219262d85" + "a4a7df3a-461e-43ac-b7cf-519099095ea9" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -504,19 +504,19 @@ "16499" ], "x-ms-correlation-request-id": [ - "7268ea84-50e9-4075-ae7c-d7259512d468" + "f22e9bd5-e75c-4a9d-afb5-8f1c3f79b0d4" ], "x-ms-routing-request-id": [ - "WESTUS2:20250911T201157Z:7268ea84-50e9-4075-ae7c-d7259512d468" + "ISRAELCENTRAL:20250917T221240Z:f22e9bd5-e75c-4a9d-afb5-8f1c3f79b0d4" ], "X-Cache": [ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: CB19196F938E47C98C2504669750D06C Ref B: CO6AA3150217025 Ref C: 2025-09-11T20:11:57Z" + "Ref A: 388D45662AFD4655AF456AAA3448F7FE Ref B: MWH011020807036 Ref C: 2025-09-17T22:12:39Z" ], "Date": [ - "Thu, 11 Sep 2025 20:11:57 GMT" + "Wed, 17 Sep 2025 22:12:40 GMT" ], "Content-Length": [ "4815" @@ -528,28 +528,28 @@ "-1" ], "Last-Modified": [ - "Thu, 11 Sep 2025 20:11:57 GMT" + "Wed, 17 Sep 2025 22:12:36 GMT" ] }, - "ResponseBody": "{\r\n \"id\": \"/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437\",\r\n \"name\": \"ps8437\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"westus2\",\r\n \"properties\": {\r\n \"accountEndpoint\": \"ps8437.westus2.batch.azure.com\",\r\n \"nodeManagementEndpoint\": \"4963f5e0-8504-4d02-afd7-90d37a155977.westus2.service.batch.azure.com\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"dedicatedCoreQuota\": 0,\r\n \"dedicatedCoreQuotaPerVMFamily\": [\r\n {\r\n \"name\": \"standardAv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardESv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardA0_A7Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardA8_A11Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardGFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"basicAFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVPromoFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCPromoFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHPromoFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardMSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardGSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNDSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHCSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBrsv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDAv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDASv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEAv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEASv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardMSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEIv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"Standard NCASv3_T4 Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardXEIDSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"Standard NDASv4_A100 Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standard NDAMSv4_A100Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDCSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNPSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFXMDVSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCADSA100v4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDADSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEADSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardNVADSA10v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEBDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHXFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLASv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCADSH100v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNGADSV620v1Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNDMI300Xv5IBFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCCadsH100v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardECasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardECadsv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDCasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDCadsv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVadsV710v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDlsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardDasv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardDalsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardEsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEav6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardFasv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardFalsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardFamsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEiasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDasv5Family\",\r\n \"coreQuota\": 0\r\n }\r\n ],\r\n \"dedicatedCoreQuotaPerVMFamilyEnforced\": true,\r\n \"lowPriorityCoreQuota\": 0,\r\n \"poolQuota\": 100,\r\n \"activeJobAndJobScheduleQuota\": 300,\r\n \"poolAllocationMode\": \"BatchService\",\r\n \"publicNetworkAccess\": \"Enabled\",\r\n \"privateEndpointConnections\": [],\r\n \"encryption\": {\r\n \"keySource\": \"Microsoft.Batch\"\r\n },\r\n \"allowedAuthenticationModes\": [\r\n \"SharedKey\",\r\n \"AAD\",\r\n \"TaskAuthenticationToken\"\r\n ]\r\n },\r\n \"tags\": {\r\n \"tag2\": \"tagValue2\"\r\n },\r\n \"identity\": {\r\n \"type\": \"None\"\r\n }\r\n}", + "ResponseBody": "{\r\n \"id\": \"/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps7310/providers/Microsoft.Batch/batchAccounts/ps4278\",\r\n \"name\": \"ps4278\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"westus2\",\r\n \"properties\": {\r\n \"accountEndpoint\": \"ps4278.westus2.batch.azure.com\",\r\n \"nodeManagementEndpoint\": \"6733d0d1-106d-4016-a564-adfc4f77f9e9.westus2.service.batch.azure.com\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"dedicatedCoreQuota\": 0,\r\n \"dedicatedCoreQuotaPerVMFamily\": [\r\n {\r\n \"name\": \"standardAv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardESv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardA0_A7Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardA8_A11Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardGFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"basicAFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVPromoFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCPromoFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHPromoFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardMSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardGSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNDSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHCSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBrsv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDAv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDASv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEAv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEASv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardMSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEIv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"Standard NCASv3_T4 Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardXEIDSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"Standard NDASv4_A100 Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standard NDAMSv4_A100Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDCSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNPSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFXMDVSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCADSA100v4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDADSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEADSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardNVADSA10v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEBDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHXFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLASv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCADSH100v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNGADSV620v1Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNDMI300Xv5IBFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCCadsH100v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardECasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardECadsv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDCasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDCadsv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVadsV710v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDlsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardDasv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardDalsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardEsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEav6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardFasv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardFalsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardFamsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEiasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDasv5Family\",\r\n \"coreQuota\": 0\r\n }\r\n ],\r\n \"dedicatedCoreQuotaPerVMFamilyEnforced\": true,\r\n \"lowPriorityCoreQuota\": 0,\r\n \"poolQuota\": 100,\r\n \"activeJobAndJobScheduleQuota\": 300,\r\n \"poolAllocationMode\": \"BatchService\",\r\n \"publicNetworkAccess\": \"Enabled\",\r\n \"privateEndpointConnections\": [],\r\n \"encryption\": {\r\n \"keySource\": \"Microsoft.Batch\"\r\n },\r\n \"allowedAuthenticationModes\": [\r\n \"SharedKey\",\r\n \"AAD\",\r\n \"TaskAuthenticationToken\"\r\n ]\r\n },\r\n \"tags\": {\r\n \"tag2\": \"tagValue2\"\r\n },\r\n \"identity\": {\r\n \"type\": \"None\"\r\n }\r\n}", "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437?api-version=2024-07-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL3BzMzY5OC9wcm92aWRlcnMvTWljcm9zb2Z0LkJhdGNoL2JhdGNoQWNjb3VudHMvcHM4NDM3P2FwaS12ZXJzaW9uPTIwMjMtMDUtMDE=", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps7310/providers/Microsoft.Batch/batchAccounts/ps4278?api-version=2024-07-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL3BzNzMxMC9wcm92aWRlcnMvTWljcm9zb2Z0LkJhdGNoL2JhdGNoQWNjb3VudHMvcHM0Mjc4P2FwaS12ZXJzaW9uPTIwMjQtMDctMDE=", "RequestMethod": "GET", "RequestHeaders": { "Accept-Language": [ "en-US" ], "x-ms-client-request-id": [ - "a3a31097-908b-4387-977a-4ac220575229" + "1750bc03-a15b-4b98-9c29-4063349b64e7" ], "User-Agent": [ "FxVersion/8.0.2025.41914", "OSName/Windows", "OSVersion/Microsoft.Windows.10.0.26100", - "Microsoft.Azure.Management.Batch.BatchManagementClient/3.7.0" + "Microsoft.Azure.Management.Batch.BatchManagementClient/3.7.1" ] }, "RequestBody": "", @@ -561,10 +561,10 @@ "no-cache" ], "ETag": [ - "\"0x8DDF16F758694BA\"" + "\"0x8DDF6374F415673\"" ], "x-ms-request-id": [ - "c89c5b0a-8261-43d7-8207-b7d4c3736ea5" + "8676618b-7370-438f-a6ad-8a4ab666aa83" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -579,19 +579,19 @@ "16499" ], "x-ms-correlation-request-id": [ - "8a7229b7-0b69-4b02-b610-0bed83f70fe6" + "b098fbf4-4d1e-487b-82c9-320cf1357c86" ], "x-ms-routing-request-id": [ - "WESTUS2:20250911T201157Z:8a7229b7-0b69-4b02-b610-0bed83f70fe6" + "ISRAELCENTRAL:20250917T221241Z:b098fbf4-4d1e-487b-82c9-320cf1357c86" ], "X-Cache": [ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: FD2CE00B6B57498582A408F1CB2CAFF6 Ref B: CO6AA3150217025 Ref C: 2025-09-11T20:11:57Z" + "Ref A: CBF38F088193450C9ED6B59F409D92B4 Ref B: MWH011020807036 Ref C: 2025-09-17T22:12:40Z" ], "Date": [ - "Thu, 11 Sep 2025 20:11:57 GMT" + "Wed, 17 Sep 2025 22:12:41 GMT" ], "Content-Length": [ "4815" @@ -603,28 +603,28 @@ "-1" ], "Last-Modified": [ - "Thu, 11 Sep 2025 20:11:57 GMT" + "Wed, 17 Sep 2025 22:12:36 GMT" ] }, - "ResponseBody": "{\r\n \"id\": \"/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437\",\r\n \"name\": \"ps8437\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"westus2\",\r\n \"properties\": {\r\n \"accountEndpoint\": \"ps8437.westus2.batch.azure.com\",\r\n \"nodeManagementEndpoint\": \"4963f5e0-8504-4d02-afd7-90d37a155977.westus2.service.batch.azure.com\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"dedicatedCoreQuota\": 0,\r\n \"dedicatedCoreQuotaPerVMFamily\": [\r\n {\r\n \"name\": \"standardAv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardESv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardA0_A7Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardA8_A11Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardGFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"basicAFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVPromoFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCPromoFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHPromoFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardMSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardGSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNDSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHCSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBrsv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDAv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDASv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEAv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEASv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardMSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEIv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"Standard NCASv3_T4 Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardXEIDSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"Standard NDASv4_A100 Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standard NDAMSv4_A100Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDCSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNPSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFXMDVSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCADSA100v4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDADSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEADSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardNVADSA10v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEBDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHXFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLASv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCADSH100v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNGADSV620v1Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNDMI300Xv5IBFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCCadsH100v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardECasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardECadsv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDCasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDCadsv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVadsV710v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDlsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardDasv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardDalsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardEsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEav6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardFasv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardFalsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardFamsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEiasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDasv5Family\",\r\n \"coreQuota\": 0\r\n }\r\n ],\r\n \"dedicatedCoreQuotaPerVMFamilyEnforced\": true,\r\n \"lowPriorityCoreQuota\": 0,\r\n \"poolQuota\": 100,\r\n \"activeJobAndJobScheduleQuota\": 300,\r\n \"poolAllocationMode\": \"BatchService\",\r\n \"publicNetworkAccess\": \"Enabled\",\r\n \"privateEndpointConnections\": [],\r\n \"encryption\": {\r\n \"keySource\": \"Microsoft.Batch\"\r\n },\r\n \"allowedAuthenticationModes\": [\r\n \"SharedKey\",\r\n \"AAD\",\r\n \"TaskAuthenticationToken\"\r\n ]\r\n },\r\n \"tags\": {\r\n \"tag2\": \"tagValue2\"\r\n },\r\n \"identity\": {\r\n \"type\": \"None\"\r\n }\r\n}", + "ResponseBody": "{\r\n \"id\": \"/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps7310/providers/Microsoft.Batch/batchAccounts/ps4278\",\r\n \"name\": \"ps4278\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"westus2\",\r\n \"properties\": {\r\n \"accountEndpoint\": \"ps4278.westus2.batch.azure.com\",\r\n \"nodeManagementEndpoint\": \"6733d0d1-106d-4016-a564-adfc4f77f9e9.westus2.service.batch.azure.com\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"dedicatedCoreQuota\": 0,\r\n \"dedicatedCoreQuotaPerVMFamily\": [\r\n {\r\n \"name\": \"standardAv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardESv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardA0_A7Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardA8_A11Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardGFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"basicAFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVPromoFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCPromoFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHPromoFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardMSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardGSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNDSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHCSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBrsv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDAv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDASv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEAv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEASv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardMSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEIv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"Standard NCASv3_T4 Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardXEIDSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"Standard NDASv4_A100 Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standard NDAMSv4_A100Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDCSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNPSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFXMDVSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCADSA100v4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDADSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEADSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardNVADSA10v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEBDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHXFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLASv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCADSH100v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNGADSV620v1Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNDMI300Xv5IBFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCCadsH100v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardECasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardECadsv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDCasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDCadsv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVadsV710v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDlsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardDasv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardDalsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardEsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEav6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardFasv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardFalsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardFamsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEiasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDasv5Family\",\r\n \"coreQuota\": 0\r\n }\r\n ],\r\n \"dedicatedCoreQuotaPerVMFamilyEnforced\": true,\r\n \"lowPriorityCoreQuota\": 0,\r\n \"poolQuota\": 100,\r\n \"activeJobAndJobScheduleQuota\": 300,\r\n \"poolAllocationMode\": \"BatchService\",\r\n \"publicNetworkAccess\": \"Enabled\",\r\n \"privateEndpointConnections\": [],\r\n \"encryption\": {\r\n \"keySource\": \"Microsoft.Batch\"\r\n },\r\n \"allowedAuthenticationModes\": [\r\n \"SharedKey\",\r\n \"AAD\",\r\n \"TaskAuthenticationToken\"\r\n ]\r\n },\r\n \"tags\": {\r\n \"tag2\": \"tagValue2\"\r\n },\r\n \"identity\": {\r\n \"type\": \"None\"\r\n }\r\n}", "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437?api-version=2024-07-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL3BzMzY5OC9wcm92aWRlcnMvTWljcm9zb2Z0LkJhdGNoL2JhdGNoQWNjb3VudHMvcHM4NDM3P2FwaS12ZXJzaW9uPTIwMjMtMDUtMDE=", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps7310/providers/Microsoft.Batch/batchAccounts/ps4278?api-version=2024-07-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL3BzNzMxMC9wcm92aWRlcnMvTWljcm9zb2Z0LkJhdGNoL2JhdGNoQWNjb3VudHMvcHM0Mjc4P2FwaS12ZXJzaW9uPTIwMjQtMDctMDE=", "RequestMethod": "GET", "RequestHeaders": { "Accept-Language": [ "en-US" ], "x-ms-client-request-id": [ - "56540c4b-4e6d-4b19-ae91-9b677b12df0a" + "ab25d053-a215-43fd-a56a-677f4bd77144" ], "User-Agent": [ "FxVersion/8.0.2025.41914", "OSName/Windows", "OSVersion/Microsoft.Windows.10.0.26100", - "Microsoft.Azure.Management.Batch.BatchManagementClient/3.7.0" + "Microsoft.Azure.Management.Batch.BatchManagementClient/3.7.1" ] }, "RequestBody": "", @@ -636,10 +636,10 @@ "no-cache" ], "ETag": [ - "\"0x8DDF16F758694BA\"" + "\"0x8DDF6374F415673\"" ], "x-ms-request-id": [ - "2735a0d6-e13c-4987-8148-8f6639e9f38f" + "440fef39-6d21-4ea4-a139-f86c1a4874f6" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -654,19 +654,19 @@ "16499" ], "x-ms-correlation-request-id": [ - "6689e271-c4d9-403c-b238-7bb2f743a75b" + "7f580a58-4bdf-481a-ad94-0f38cbdae2d8" ], "x-ms-routing-request-id": [ - "WESTUS2:20250911T201157Z:6689e271-c4d9-403c-b238-7bb2f743a75b" + "ISRAELCENTRAL:20250917T221243Z:7f580a58-4bdf-481a-ad94-0f38cbdae2d8" ], "X-Cache": [ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: 361B4E3B4F304652962FDDD8988289D1 Ref B: CO6AA3150217025 Ref C: 2025-09-11T20:11:57Z" + "Ref A: 0AAE1997A29D4C2B814C1CC3F0F2DCDD Ref B: MWH011020807036 Ref C: 2025-09-17T22:12:42Z" ], "Date": [ - "Thu, 11 Sep 2025 20:11:57 GMT" + "Wed, 17 Sep 2025 22:12:44 GMT" ], "Content-Length": [ "4815" @@ -678,28 +678,28 @@ "-1" ], "Last-Modified": [ - "Thu, 11 Sep 2025 20:11:57 GMT" + "Wed, 17 Sep 2025 22:12:36 GMT" ] }, - "ResponseBody": "{\r\n \"id\": \"/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437\",\r\n \"name\": \"ps8437\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"westus2\",\r\n \"properties\": {\r\n \"accountEndpoint\": \"ps8437.westus2.batch.azure.com\",\r\n \"nodeManagementEndpoint\": \"4963f5e0-8504-4d02-afd7-90d37a155977.westus2.service.batch.azure.com\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"dedicatedCoreQuota\": 0,\r\n \"dedicatedCoreQuotaPerVMFamily\": [\r\n {\r\n \"name\": \"standardAv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardESv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardA0_A7Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardA8_A11Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardGFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"basicAFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVPromoFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCPromoFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHPromoFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardMSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardGSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNDSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHCSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBrsv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDAv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDASv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEAv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEASv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardMSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEIv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"Standard NCASv3_T4 Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardXEIDSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"Standard NDASv4_A100 Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standard NDAMSv4_A100Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDCSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNPSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFXMDVSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCADSA100v4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDADSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEADSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardNVADSA10v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEBDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHXFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLASv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCADSH100v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNGADSV620v1Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNDMI300Xv5IBFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCCadsH100v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardECasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardECadsv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDCasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDCadsv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVadsV710v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDlsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardDasv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardDalsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardEsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEav6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardFasv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardFalsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardFamsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEiasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDasv5Family\",\r\n \"coreQuota\": 0\r\n }\r\n ],\r\n \"dedicatedCoreQuotaPerVMFamilyEnforced\": true,\r\n \"lowPriorityCoreQuota\": 0,\r\n \"poolQuota\": 100,\r\n \"activeJobAndJobScheduleQuota\": 300,\r\n \"poolAllocationMode\": \"BatchService\",\r\n \"publicNetworkAccess\": \"Enabled\",\r\n \"privateEndpointConnections\": [],\r\n \"encryption\": {\r\n \"keySource\": \"Microsoft.Batch\"\r\n },\r\n \"allowedAuthenticationModes\": [\r\n \"SharedKey\",\r\n \"AAD\",\r\n \"TaskAuthenticationToken\"\r\n ]\r\n },\r\n \"tags\": {\r\n \"tag2\": \"tagValue2\"\r\n },\r\n \"identity\": {\r\n \"type\": \"None\"\r\n }\r\n}", + "ResponseBody": "{\r\n \"id\": \"/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps7310/providers/Microsoft.Batch/batchAccounts/ps4278\",\r\n \"name\": \"ps4278\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"westus2\",\r\n \"properties\": {\r\n \"accountEndpoint\": \"ps4278.westus2.batch.azure.com\",\r\n \"nodeManagementEndpoint\": \"6733d0d1-106d-4016-a564-adfc4f77f9e9.westus2.service.batch.azure.com\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"dedicatedCoreQuota\": 0,\r\n \"dedicatedCoreQuotaPerVMFamily\": [\r\n {\r\n \"name\": \"standardAv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardESv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardA0_A7Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardA8_A11Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardGFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"basicAFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVPromoFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCPromoFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHPromoFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardMSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardGSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNDSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHCSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBrsv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDAv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDASv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEAv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEASv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardMSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEIv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"Standard NCASv3_T4 Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardXEIDSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"Standard NDASv4_A100 Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standard NDAMSv4_A100Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDCSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNPSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFXMDVSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCADSA100v4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDADSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEADSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardNVADSA10v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEBDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHXFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLASv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCADSH100v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNGADSV620v1Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNDMI300Xv5IBFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCCadsH100v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardECasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardECadsv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDCasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDCadsv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVadsV710v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDlsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardDasv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardDalsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardEsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEav6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardFasv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardFalsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardFamsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEiasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDasv5Family\",\r\n \"coreQuota\": 0\r\n }\r\n ],\r\n \"dedicatedCoreQuotaPerVMFamilyEnforced\": true,\r\n \"lowPriorityCoreQuota\": 0,\r\n \"poolQuota\": 100,\r\n \"activeJobAndJobScheduleQuota\": 300,\r\n \"poolAllocationMode\": \"BatchService\",\r\n \"publicNetworkAccess\": \"Enabled\",\r\n \"privateEndpointConnections\": [],\r\n \"encryption\": {\r\n \"keySource\": \"Microsoft.Batch\"\r\n },\r\n \"allowedAuthenticationModes\": [\r\n \"SharedKey\",\r\n \"AAD\",\r\n \"TaskAuthenticationToken\"\r\n ]\r\n },\r\n \"tags\": {\r\n \"tag2\": \"tagValue2\"\r\n },\r\n \"identity\": {\r\n \"type\": \"None\"\r\n }\r\n}", "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437?api-version=2024-07-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL3BzMzY5OC9wcm92aWRlcnMvTWljcm9zb2Z0LkJhdGNoL2JhdGNoQWNjb3VudHMvcHM4NDM3P2FwaS12ZXJzaW9uPTIwMjMtMDUtMDE=", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps7310/providers/Microsoft.Batch/batchAccounts/ps4278?api-version=2024-07-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL3BzNzMxMC9wcm92aWRlcnMvTWljcm9zb2Z0LkJhdGNoL2JhdGNoQWNjb3VudHMvcHM0Mjc4P2FwaS12ZXJzaW9uPTIwMjQtMDctMDE=", "RequestMethod": "GET", "RequestHeaders": { "Accept-Language": [ "en-US" ], "x-ms-client-request-id": [ - "14210daf-0b00-4333-b4c8-f3ba6bf44198" + "6ddd96c2-4b31-4843-8853-831a1df19444" ], "User-Agent": [ "FxVersion/8.0.2025.41914", "OSName/Windows", "OSVersion/Microsoft.Windows.10.0.26100", - "Microsoft.Azure.Management.Batch.BatchManagementClient/3.7.0" + "Microsoft.Azure.Management.Batch.BatchManagementClient/3.7.1" ] }, "RequestBody": "", @@ -711,10 +711,10 @@ "no-cache" ], "ETag": [ - "\"0x8DDF16F76261216\"" + "\"0x8DDF637548C46FB\"" ], "x-ms-request-id": [ - "2a3bd4c5-46a3-4a83-862b-e80aa9fa17e0" + "691e1d77-c774-45c6-a482-4393b4b7140f" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -723,25 +723,25 @@ "nosniff" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "1099" + "1098" ], "x-ms-ratelimit-remaining-subscription-global-reads": [ - "16499" + "16498" ], "x-ms-correlation-request-id": [ - "d8903f6b-0812-45c8-8337-dacd7c4671fc" + "367af399-5f12-46b2-a329-e8e2ab4119df" ], "x-ms-routing-request-id": [ - "WESTUS2:20250911T201158Z:d8903f6b-0812-45c8-8337-dacd7c4671fc" + "ISRAELCENTRAL:20250917T221246Z:367af399-5f12-46b2-a329-e8e2ab4119df" ], "X-Cache": [ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: 1BE6CA2199E047739FE9659134D1F1A5 Ref B: CO6AA3150217025 Ref C: 2025-09-11T20:11:58Z" + "Ref A: 3C6628E280BA45AEADCCA5C9D5E61EF2 Ref B: MWH011020807036 Ref C: 2025-09-17T22:12:46Z" ], "Date": [ - "Thu, 11 Sep 2025 20:11:58 GMT" + "Wed, 17 Sep 2025 22:12:46 GMT" ], "Content-Length": [ "4815" @@ -753,28 +753,28 @@ "-1" ], "Last-Modified": [ - "Thu, 11 Sep 2025 20:11:58 GMT" + "Wed, 17 Sep 2025 22:12:45 GMT" ] }, - "ResponseBody": "{\r\n \"id\": \"/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437\",\r\n \"name\": \"ps8437\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"westus2\",\r\n \"properties\": {\r\n \"accountEndpoint\": \"ps8437.westus2.batch.azure.com\",\r\n \"nodeManagementEndpoint\": \"4963f5e0-8504-4d02-afd7-90d37a155977.westus2.service.batch.azure.com\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"dedicatedCoreQuota\": 0,\r\n \"dedicatedCoreQuotaPerVMFamily\": [\r\n {\r\n \"name\": \"standardAv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardESv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardA0_A7Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardA8_A11Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardGFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"basicAFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVPromoFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCPromoFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHPromoFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardMSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardGSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNDSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHCSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBrsv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDAv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDASv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEAv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEASv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardMSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEIv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"Standard NCASv3_T4 Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardXEIDSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"Standard NDASv4_A100 Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standard NDAMSv4_A100Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDCSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNPSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFXMDVSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCADSA100v4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDADSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEADSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardNVADSA10v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEBDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHXFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLASv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCADSH100v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNGADSV620v1Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNDMI300Xv5IBFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCCadsH100v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardECasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardECadsv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDCasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDCadsv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVadsV710v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDlsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardDasv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardDalsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardEsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEav6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardFasv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardFalsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardFamsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEiasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDasv5Family\",\r\n \"coreQuota\": 0\r\n }\r\n ],\r\n \"dedicatedCoreQuotaPerVMFamilyEnforced\": true,\r\n \"lowPriorityCoreQuota\": 0,\r\n \"poolQuota\": 100,\r\n \"activeJobAndJobScheduleQuota\": 300,\r\n \"poolAllocationMode\": \"BatchService\",\r\n \"publicNetworkAccess\": \"Enabled\",\r\n \"privateEndpointConnections\": [],\r\n \"encryption\": {\r\n \"keySource\": \"Microsoft.Batch\"\r\n },\r\n \"allowedAuthenticationModes\": [\r\n \"SharedKey\",\r\n \"AAD\",\r\n \"TaskAuthenticationToken\"\r\n ]\r\n },\r\n \"tags\": {\r\n \"tag2\": \"tagValue2\"\r\n },\r\n \"identity\": {\r\n \"type\": \"None\"\r\n }\r\n}", + "ResponseBody": "{\r\n \"id\": \"/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps7310/providers/Microsoft.Batch/batchAccounts/ps4278\",\r\n \"name\": \"ps4278\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"westus2\",\r\n \"properties\": {\r\n \"accountEndpoint\": \"ps4278.westus2.batch.azure.com\",\r\n \"nodeManagementEndpoint\": \"6733d0d1-106d-4016-a564-adfc4f77f9e9.westus2.service.batch.azure.com\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"dedicatedCoreQuota\": 0,\r\n \"dedicatedCoreQuotaPerVMFamily\": [\r\n {\r\n \"name\": \"standardAv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardESv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardA0_A7Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardA8_A11Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardGFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"basicAFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVPromoFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCPromoFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHPromoFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardMSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardGSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNDSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHCSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBrsv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDAv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDASv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEAv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEASv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardMSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEIv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"Standard NCASv3_T4 Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardXEIDSv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"Standard NDASv4_A100 Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standard NDAMSv4_A100Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDCSv2Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNPSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardFXMDVSFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCADSA100v4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDADSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEADSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardNVADSA10v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEBDSv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHBv4Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardHXFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLSv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardLASv3Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCADSH100v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNGADSV620v1Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNDMI300Xv5IBFamily\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNCCadsH100v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardECasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardECadsv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDCasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDCadsv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardNVadsV710v5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDlsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardDasv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardDalsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardEsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEav6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardFasv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardFalsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"StandardFamsv6Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardEiasv5Family\",\r\n \"coreQuota\": 0\r\n },\r\n {\r\n \"name\": \"standardDasv5Family\",\r\n \"coreQuota\": 0\r\n }\r\n ],\r\n \"dedicatedCoreQuotaPerVMFamilyEnforced\": true,\r\n \"lowPriorityCoreQuota\": 0,\r\n \"poolQuota\": 100,\r\n \"activeJobAndJobScheduleQuota\": 300,\r\n \"poolAllocationMode\": \"BatchService\",\r\n \"publicNetworkAccess\": \"Enabled\",\r\n \"privateEndpointConnections\": [],\r\n \"encryption\": {\r\n \"keySource\": \"Microsoft.Batch\"\r\n },\r\n \"allowedAuthenticationModes\": [\r\n \"SharedKey\",\r\n \"AAD\",\r\n \"TaskAuthenticationToken\"\r\n ]\r\n },\r\n \"tags\": {\r\n \"tag2\": \"tagValue2\"\r\n },\r\n \"identity\": {\r\n \"type\": \"None\"\r\n }\r\n}", "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437?api-version=2024-07-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL3BzMzY5OC9wcm92aWRlcnMvTWljcm9zb2Z0LkJhdGNoL2JhdGNoQWNjb3VudHMvcHM4NDM3P2FwaS12ZXJzaW9uPTIwMjMtMDUtMDE=", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps7310/providers/Microsoft.Batch/batchAccounts/ps4278?api-version=2024-07-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL3BzNzMxMC9wcm92aWRlcnMvTWljcm9zb2Z0LkJhdGNoL2JhdGNoQWNjb3VudHMvcHM0Mjc4P2FwaS12ZXJzaW9uPTIwMjQtMDctMDE=", "RequestMethod": "GET", "RequestHeaders": { "Accept-Language": [ "en-US" ], "x-ms-client-request-id": [ - "e7011253-88e8-444d-8a04-3eb6134f314b" + "21adb8f0-1d7c-40ee-9d59-d03899a08ad5" ], "User-Agent": [ "FxVersion/8.0.2025.41914", "OSName/Windows", "OSVersion/Microsoft.Windows.10.0.26100", - "Microsoft.Azure.Management.Batch.BatchManagementClient/3.7.0" + "Microsoft.Azure.Management.Batch.BatchManagementClient/3.7.1" ] }, "RequestBody": "", @@ -786,10 +786,10 @@ "no-cache" ], "x-ms-ratelimit-remaining-subscription-reads": [ - "1099" + "1098" ], "x-ms-request-id": [ - "c8b0e226-1a8e-4a97-aaa6-74dd9611a071" + "57ff5b96-de4e-4d9d-bac6-40b7a5f000f2" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -798,22 +798,22 @@ "nosniff" ], "x-ms-ratelimit-remaining-subscription-global-reads": [ - "16499" + "16498" ], "x-ms-correlation-request-id": [ - "443917ef-97ae-4a3b-98b2-fe198dc71581" + "f31caaed-b9ee-48f3-bafa-b4fd37d6ddcb" ], "x-ms-routing-request-id": [ - "WESTUS2:20250911T201214Z:443917ef-97ae-4a3b-98b2-fe198dc71581" + "ISRAELCENTRAL:20250917T221310Z:f31caaed-b9ee-48f3-bafa-b4fd37d6ddcb" ], "X-Cache": [ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: 46C6A9B63A4C4F4BA5226FC8A5BC6444 Ref B: CO6AA3150217025 Ref C: 2025-09-11T20:12:14Z" + "Ref A: 0B77D568E4674130857678C45BEBFFC0 Ref B: MWH011020807036 Ref C: 2025-09-17T22:13:06Z" ], "Date": [ - "Thu, 11 Sep 2025 20:12:14 GMT" + "Wed, 17 Sep 2025 22:13:10 GMT" ], "Content-Length": [ "193" @@ -825,7 +825,7 @@ "-1" ] }, - "ResponseBody": "{\r\n \"error\": {\r\n \"code\": \"AccountNotFound\",\r\n \"message\": \"The specified account does not exist.\\nRequestId:c8b0e226-1a8e-4a97-aaa6-74dd9611a071\\nTime:2025-09-11T20:12:14.1250984Z\",\r\n \"target\": \"BatchAccount\"\r\n }\r\n}", + "ResponseBody": "{\r\n \"error\": {\r\n \"code\": \"AccountNotFound\",\r\n \"message\": \"The specified account does not exist.\\nRequestId:57ff5b96-de4e-4d9d-bac6-40b7a5f000f2\\nTime:2025-09-17T22:13:07.3186662Z\",\r\n \"target\": \"BatchAccount\"\r\n }\r\n}", "StatusCode": 404 }, { @@ -837,13 +837,13 @@ "en-US" ], "x-ms-client-request-id": [ - "a3a31097-908b-4387-977a-4ac220575229" + "1750bc03-a15b-4b98-9c29-4063349b64e7" ], "User-Agent": [ "FxVersion/8.0.2025.41914", "OSName/Windows", "OSVersion/Microsoft.Windows.10.0.26100", - "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.109" + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.110" ] }, "RequestBody": "", @@ -861,13 +861,13 @@ "16499" ], "x-ms-request-id": [ - "c6151e1e-e751-497c-b7c8-1a4fc1f52235" + "8d36ffd7-58d2-43ae-b432-e395f9f525a2" ], "x-ms-correlation-request-id": [ - "c6151e1e-e751-497c-b7c8-1a4fc1f52235" + "8d36ffd7-58d2-43ae-b432-e395f9f525a2" ], "x-ms-routing-request-id": [ - "WESTUS2:20250911T201157Z:c6151e1e-e751-497c-b7c8-1a4fc1f52235" + "WESTUS2:20250917T221240Z:8d36ffd7-58d2-43ae-b432-e395f9f525a2" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -879,10 +879,10 @@ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: 5C42901D62BD43359B4E2A8B06DA87B0 Ref B: CO6AA3150219035 Ref C: 2025-09-11T20:11:57Z" + "Ref A: C9B3AFCFC18A45D9A310B9446DB441E8 Ref B: MWH011020809054 Ref C: 2025-09-17T22:12:40Z" ], "Date": [ - "Thu, 11 Sep 2025 20:11:57 GMT" + "Wed, 17 Sep 2025 22:12:40 GMT" ], "Content-Length": [ "487" @@ -894,25 +894,25 @@ "-1" ] }, - "ResponseBody": "{\r\n \"value\": [\r\n {\r\n \"id\": \"/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2\",\r\n \"name\": \"dotnotsdkbatchaccount2\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"eastus2\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437\",\r\n \"name\": \"ps8437\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"westus2\",\r\n \"tags\": {\r\n \"tag2\": \"tagValue2\"\r\n }\r\n }\r\n ]\r\n}", + "ResponseBody": "{\r\n \"value\": [\r\n {\r\n \"id\": \"/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2\",\r\n \"name\": \"dotnotsdkbatchaccount2\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"eastus2\"\r\n },\r\n {\r\n \"id\": \"/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps7310/providers/Microsoft.Batch/batchAccounts/ps4278\",\r\n \"name\": \"ps4278\",\r\n \"type\": \"Microsoft.Batch/batchAccounts\",\r\n \"location\": \"westus2\",\r\n \"tags\": {\r\n \"tag2\": \"tagValue2\"\r\n }\r\n }\r\n ]\r\n}", "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437/listKeys?api-version=2024-07-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL3BzMzY5OC9wcm92aWRlcnMvTWljcm9zb2Z0LkJhdGNoL2JhdGNoQWNjb3VudHMvcHM4NDM3L2xpc3RLZXlzP2FwaS12ZXJzaW9uPTIwMjMtMDUtMDE=", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps7310/providers/Microsoft.Batch/batchAccounts/ps4278/listKeys?api-version=2024-07-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL3BzNzMxMC9wcm92aWRlcnMvTWljcm9zb2Z0LkJhdGNoL2JhdGNoQWNjb3VudHMvcHM0Mjc4L2xpc3RLZXlzP2FwaS12ZXJzaW9uPTIwMjQtMDctMDE=", "RequestMethod": "POST", "RequestHeaders": { "Accept-Language": [ "en-US" ], "x-ms-client-request-id": [ - "a3a31097-908b-4387-977a-4ac220575229" + "1750bc03-a15b-4b98-9c29-4063349b64e7" ], "User-Agent": [ "FxVersion/8.0.2025.41914", "OSName/Windows", "OSVersion/Microsoft.Windows.10.0.26100", - "Microsoft.Azure.Management.Batch.BatchManagementClient/3.7.0" + "Microsoft.Azure.Management.Batch.BatchManagementClient/3.7.1" ] }, "RequestBody": "", @@ -924,7 +924,7 @@ "no-cache" ], "x-ms-request-id": [ - "980e419d-3be0-472a-b410-7c97b9dece6c" + "665f2dfa-17d3-4839-a36b-5b0dde033913" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -933,7 +933,7 @@ "nosniff" ], "x-ms-operation-identifier": [ - "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=ac839cc2-33ee-4879-a5b5-2895202ccb29/westus2/7ad15d83-508f-478b-a33e-a8146c0b7810" + "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=ac839cc2-33ee-4879-a5b5-2895202ccb29/israelcentral/08dbb5ca-bd6e-418d-86c6-089b1a05af0f" ], "x-ms-ratelimit-remaining-subscription-writes": [ "799" @@ -942,19 +942,19 @@ "11999" ], "x-ms-correlation-request-id": [ - "390805ec-b469-4859-8a28-7460f2e12d34" + "b4bd598e-1bca-46d7-b728-f5758bf29d29" ], "x-ms-routing-request-id": [ - "WESTUS2:20250911T201157Z:390805ec-b469-4859-8a28-7460f2e12d34" + "ISRAELCENTRAL:20250917T221242Z:b4bd598e-1bca-46d7-b728-f5758bf29d29" ], "X-Cache": [ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: 830006567FAD4512B1A95083F6FBF2C5 Ref B: CO6AA3150217025 Ref C: 2025-09-11T20:11:57Z" + "Ref A: 9C15C0949BE245D5B3BF38E48900D772 Ref B: MWH011020807036 Ref C: 2025-09-17T22:12:41Z" ], "Date": [ - "Thu, 11 Sep 2025 20:11:57 GMT" + "Wed, 17 Sep 2025 22:12:42 GMT" ], "Content-Length": [ "228" @@ -966,25 +966,25 @@ "-1" ] }, - "ResponseBody": "{\r\n \"accountName\": \"ps8437\",\r\n \"primary\": \"Sanitized\",\r\n \"secondary\": \"Sanitized\"\r\n}", + "ResponseBody": "{\r\n \"accountName\": \"ps4278\",\r\n \"primary\": \"sanitized\",\r\n \"secondary\": \"sanitized\"\r\n}", "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437/listKeys?api-version=2024-07-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL3BzMzY5OC9wcm92aWRlcnMvTWljcm9zb2Z0LkJhdGNoL2JhdGNoQWNjb3VudHMvcHM4NDM3L2xpc3RLZXlzP2FwaS12ZXJzaW9uPTIwMjMtMDUtMDE=", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps7310/providers/Microsoft.Batch/batchAccounts/ps4278/listKeys?api-version=2024-07-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL3BzNzMxMC9wcm92aWRlcnMvTWljcm9zb2Z0LkJhdGNoL2JhdGNoQWNjb3VudHMvcHM0Mjc4L2xpc3RLZXlzP2FwaS12ZXJzaW9uPTIwMjQtMDctMDE=", "RequestMethod": "POST", "RequestHeaders": { "Accept-Language": [ "en-US" ], "x-ms-client-request-id": [ - "56540c4b-4e6d-4b19-ae91-9b677b12df0a" + "ab25d053-a215-43fd-a56a-677f4bd77144" ], "User-Agent": [ "FxVersion/8.0.2025.41914", "OSName/Windows", "OSVersion/Microsoft.Windows.10.0.26100", - "Microsoft.Azure.Management.Batch.BatchManagementClient/3.7.0" + "Microsoft.Azure.Management.Batch.BatchManagementClient/3.7.1" ] }, "RequestBody": "", @@ -996,7 +996,7 @@ "no-cache" ], "x-ms-request-id": [ - "544bcc6f-04a3-495e-9228-76d2d835537d" + "5badebe2-2dea-4586-98c0-ddec4634fe50" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -1005,7 +1005,7 @@ "nosniff" ], "x-ms-operation-identifier": [ - "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=ac839cc2-33ee-4879-a5b5-2895202ccb29/westus2/42425234-d4a3-4930-a973-ce9fefc45f7f" + "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=ac839cc2-33ee-4879-a5b5-2895202ccb29/israelcentral/126ce8e3-4d4c-4d57-b4af-77ff1a823657" ], "x-ms-ratelimit-remaining-subscription-writes": [ "799" @@ -1014,19 +1014,19 @@ "11999" ], "x-ms-correlation-request-id": [ - "74a3c7c6-0514-4a89-b033-e8fb9c123fed" + "47946ae2-f2e5-436d-a3c3-63af919ebca5" ], "x-ms-routing-request-id": [ - "WESTUS2:20250911T201158Z:74a3c7c6-0514-4a89-b033-e8fb9c123fed" + "ISRAELCENTRAL:20250917T221245Z:47946ae2-f2e5-436d-a3c3-63af919ebca5" ], "X-Cache": [ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: 7362027F4D5B43AD9223F7718D1B6667 Ref B: CO6AA3150217025 Ref C: 2025-09-11T20:11:57Z" + "Ref A: 5077EA5CC4F941B583BC3460F023B3B2 Ref B: MWH011020807036 Ref C: 2025-09-17T22:12:44Z" ], "Date": [ - "Thu, 11 Sep 2025 20:11:58 GMT" + "Wed, 17 Sep 2025 22:12:45 GMT" ], "Content-Length": [ "228" @@ -1038,25 +1038,25 @@ "-1" ] }, - "ResponseBody": "{\r\n \"accountName\": \"ps8437\",\r\n \"primary\": \"Sanitized\",\r\n \"secondary\": \"Sanitized\"\r\n}", + "ResponseBody": "{\r\n \"accountName\": \"ps4278\",\r\n \"primary\": \"sanitized\",\r\n \"secondary\": \"sanitized\"\r\n}", "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437/regenerateKeys?api-version=2024-07-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL3BzMzY5OC9wcm92aWRlcnMvTWljcm9zb2Z0LkJhdGNoL2JhdGNoQWNjb3VudHMvcHM4NDM3L3JlZ2VuZXJhdGVLZXlzP2FwaS12ZXJzaW9uPTIwMjMtMDUtMDE=", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps7310/providers/Microsoft.Batch/batchAccounts/ps4278/regenerateKeys?api-version=2024-07-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL3BzNzMxMC9wcm92aWRlcnMvTWljcm9zb2Z0LkJhdGNoL2JhdGNoQWNjb3VudHMvcHM0Mjc4L3JlZ2VuZXJhdGVLZXlzP2FwaS12ZXJzaW9uPTIwMjQtMDctMDE=", "RequestMethod": "POST", "RequestHeaders": { "Accept-Language": [ "en-US" ], "x-ms-client-request-id": [ - "14210daf-0b00-4333-b4c8-f3ba6bf44198" + "6ddd96c2-4b31-4843-8853-831a1df19444" ], "User-Agent": [ "FxVersion/8.0.2025.41914", "OSName/Windows", "OSVersion/Microsoft.Windows.10.0.26100", - "Microsoft.Azure.Management.Batch.BatchManagementClient/3.7.0" + "Microsoft.Azure.Management.Batch.BatchManagementClient/3.7.1" ], "Content-Type": [ "application/json; charset=utf-8" @@ -1074,7 +1074,7 @@ "no-cache" ], "x-ms-request-id": [ - "82f7be1f-d5c8-4b22-8c42-86544c32ed3d" + "236669b2-42a5-4284-b28d-41a1c7fd49d8" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -1083,7 +1083,7 @@ "nosniff" ], "x-ms-operation-identifier": [ - "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=ac839cc2-33ee-4879-a5b5-2895202ccb29/westus2/2a75be17-b98d-4b65-ac28-0f999a5fb94c" + "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=ac839cc2-33ee-4879-a5b5-2895202ccb29/israelcentral/70cfb2dd-234c-44ac-a865-8794d4c6d3f7" ], "x-ms-ratelimit-remaining-subscription-writes": [ "799" @@ -1092,19 +1092,19 @@ "11999" ], "x-ms-correlation-request-id": [ - "a7d91ca2-1ef9-4818-a14d-a25ab35ce3fe" + "e40bdf97-8200-4cbd-a625-0a9fd9efd53e" ], "x-ms-routing-request-id": [ - "WESTUS2:20250911T201158Z:a7d91ca2-1ef9-4818-a14d-a25ab35ce3fe" + "ISRAELCENTRAL:20250917T221245Z:e40bdf97-8200-4cbd-a625-0a9fd9efd53e" ], "X-Cache": [ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: 6E249C638DF44C1DB9A7F1654518EFA2 Ref B: CO6AA3150217025 Ref C: 2025-09-11T20:11:58Z" + "Ref A: 3F9292E8916C4752B307E6BBB67DD902 Ref B: MWH011020807036 Ref C: 2025-09-17T22:12:45Z" ], "Date": [ - "Thu, 11 Sep 2025 20:11:58 GMT" + "Wed, 17 Sep 2025 22:12:46 GMT" ], "Content-Length": [ "228" @@ -1116,25 +1116,25 @@ "-1" ] }, - "ResponseBody": "{\r\n \"accountName\": \"ps8437\",\r\n \"primary\": \"Sanitized\",\r\n \"secondary\": \"Sanitized\"\r\n}", + "ResponseBody": "{\r\n \"accountName\": \"ps4278\",\r\n \"primary\": \"sanitized\",\r\n \"secondary\": \"sanitized\"\r\n}", "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps3698/providers/Microsoft.Batch/batchAccounts/ps8437?api-version=2024-07-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL3BzMzY5OC9wcm92aWRlcnMvTWljcm9zb2Z0LkJhdGNoL2JhdGNoQWNjb3VudHMvcHM4NDM3P2FwaS12ZXJzaW9uPTIwMjMtMDUtMDE=", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/ps7310/providers/Microsoft.Batch/batchAccounts/ps4278?api-version=2024-07-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL3BzNzMxMC9wcm92aWRlcnMvTWljcm9zb2Z0LkJhdGNoL2JhdGNoQWNjb3VudHMvcHM0Mjc4P2FwaS12ZXJzaW9uPTIwMjQtMDctMDE=", "RequestMethod": "DELETE", "RequestHeaders": { "Accept-Language": [ "en-US" ], "x-ms-client-request-id": [ - "df482f8c-2bce-462a-a6e0-38e8820f3348" + "b582d12f-61f0-476e-80e6-c6d266a0aad0" ], "User-Agent": [ "FxVersion/8.0.2025.41914", "OSName/Windows", "OSVersion/Microsoft.Windows.10.0.26100", - "Microsoft.Azure.Management.Batch.BatchManagementClient/3.7.0" + "Microsoft.Azure.Management.Batch.BatchManagementClient/3.7.1" ] }, "RequestBody": "", @@ -1146,13 +1146,13 @@ "no-cache" ], "Location": [ - "https://management.azure.com/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/providers/Microsoft.Batch/locations/westus2/accountOperationResults/ps8437-7f030330-c3d1-42d2-88dc-6fa78252b612?api-version=2024-02-01&t=638932183186360780&c=MIIIpTCCBo2gAwIBAgITFgGsmnj73LBE7PaBtQABAayaeDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDMwHhcNMjUwNzE4MTIwNDI4WhcNMjYwMTE0MTIwNDI4WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKYwXiklImL5-WfPWj2FX3_Y-JxCd3XXEOuNXx5ggHubZZamujLTqEBSFsFYiH_9NCaqKTiATXu6fBpzW3ghgYhwr0PL071fQT15KnnNUFjd5hFXB7SYti9IwWu1lxSAz-De7HivujKdlsgcmfoV6upRQ0eva9e74EwLV9pCn4WQAhs-6T8p0CytQsi81qHMWybAbNvfom0ox78IEWdS_6g_d4Jl_I4ccYLMyRTOV2NioM96cRECWCZhbpLl1zwoYGSbU5H0MZaiCBjPlhXN40BqagpamZfP98sPYSBfreh6-iMGU5tNTRkh8RiJqzjhzIUpEv3PqLtWTyPUB8JS7aUCAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9BTTNQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAzKDEpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MB0GA1UdDgQWBBTxzPCXgPzIUiTz94us0y0CCMf8BzAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBRIo61gdWpv7GDzaVXRALEyV_xs5DAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggIBAAqNK9Ejzdnb9L4TyakCpJByRYVTN_6nCGbtUd2E2sELjuJGRGiRmujp_jqNyIofO_ghSaP_tqH-3WRTRUbnt5xM8aBYoYJSOgKgTsNrB6clspdhCCmzhJy6EQuOqfUDm3C7hDru1_bN3DwXt3VpDqfuYtM3MAabKg0oCYVWgFwnAKYmZLZMWMQh7k_hZxy1gOCQmE9U08tf_pU21aI0El6n5A5uG2FT0placwchheFmXAtoPjT7nU53HVmRissxUR_vRCDj_ZCFo3K3nZNXCQOKPAMc9-LC0prb9Slg6siKtSHB3iGjNQlT9-nbSnDgifI8zC1cvT8CdaNLOmUywRIB4wvRn1z123NuyfJaIz95igW9P189vBTJEZREF-MgJEboWKdlGNn6bbBtu0waqAmUU7WVLeZKdtUI6EEKF7wRGYuY_BhZx1ipyXnBHZpsufuH4AwgOO289QKmqg8QAy7HFD9c8H8fNCtR7sTZ4YNP2AhEaES0rkMSQUCNVEz42YEBi2GgrSpnI94SPdb3J3PkCMZ4OgFRjztLO7nrgbPtflhSOo_VOE0_7Y74km43WAMQPKL3-44vQrEQ61Hd_24IcFh_ChNXvUDqp39GzYlO3D0zlau4ozll8BeLUZrJwHTQWZS8XR-EifCl4MW5Y3Y1SxOLrIxnukCzQxL7aGmc&s=ENIYYOeR9tQXkYkicd_BX2Eh2gJYj6XtnBl6V2kh79ev8fOaZH8Jy1N4WfSAzvg5LSOv5UCHRhCbE6nH0OrCsSKDuxErHmcfv7H_yfkt-acdEoQwwtGCwPd-87-Yht2Nq2RefPWjN82BzfXDBpDWI3L7Nq78xmRB1RAMNFt9PElzG4ioxCJdU55N0nN0Wsp1BKTUwP6Enql3wu9g2tPDn7xBgx1TKSL3y3Qcz6R0AznDqv9bZ8JpBf7mLPbZ41Jhp0xVb7Ca6x_bs5GRj3ecgkSxXcn3AiGTTJiwjddCrZaNPoHFG750GviR1_QT9iRMvwbj7dgy2tP85G-AZhu7sA&h=CKs8IW2-k2gwB8WnRaGg_rhleAL5pbPIjZRT05ae0g0" + "https://management.azure.com/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/providers/Microsoft.Batch/locations/westus2/accountOperationResults/ps4278-a62131f1-615f-4615-b577-e5373f035070?api-version=2024-07-01&t=638937439708198989&c=MIII5zCCBs-gAwIBAgITFgHDlIazKjDMn0SpNgABAcOUhjANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDMwHhcNMjUwODA1MjIyMzU4WhcNMjYwMjAxMjIyMzU4WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOT-ZylV2tGobKl8RUF-gqsAyBUVb7g97876DX0ZJ_I61ybfyPQYk7pjhepOo9UeiSULt0-Acmpg-Ml-2OCYId5J7okZCJgBo9y8lQOcodfoofsurgedLMDszGnDepUk7UicEsblff4IzmmtY4bz5pIn3TOFOIYHBlDb13lHOhDfMniSuAxlQflu1N2UHmyZIWZXPRkZ2yVddH0AlRRxChGlWQUNaXHwy6w3ZRpt_uiJc2qX24QJUhQcumwX6ElyqRZ2d_JmVrZwksMAAiDNLHTAb2KdfNX3up4AhnyJkhmYPtbBCHJMNNK_u-JVdGJ5-1HgYgk3I2ZehSK24tVo_80CAwEAAaOCBNQwggTQMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9BTTNQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAzKDEpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MB0GA1UdDgQWBBTLWGmoorNquGVDo0bPP9871G-BLDAOBgNVHQ8BAf8EBAMCBaAwQAYDVR0RBDkwN4I1YXN5bmNvcGVyYXRpb25zaWduaW5nY2VydGlmaWNhdGUubWFuYWdlbWVudC5henVyZS5jb20wggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBRIo61gdWpv7GDzaVXRALEyV_xs5DAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggIBAIjIydiw12Z9o3gWBAMiIcrcfYk3eGJS9GyAycwq17XJPJ5uKAMUGDOotg4sVHH3VLtPweMHSpH-RPJoL1UKTPxTamhsr5NEo-ca7v1tWmIt2ICLtUqmz4B1wmjlbXnwwyLGm8mLlyj-Yu-zeEph9QpKCqNwSm0jQvpI_W04AUQmAH49OqHJzUCOKRESj0TdBvd1yaDovGBamUOvZqmAH7yrv9cdPvMsLI7FvbixTyFaPWnG4Fhgl2NvkK5hX6Z5M2O9sYigbAh4-vePyCshfVfaE1BePH5whqwfZzuw0jY89XAT5OAjPHGg7ud0HeWTs9ume_Y1d-5hbEgtLmxdKuwUeNQ-XA9xJBtuSF47AVURhSGzNA9TBGV71tupS0KKGkbccZ_SuYvUCpYRXXAeFSGFxC4jb_wee6m3Aj3wnVKzPxeSbcl6YTj9HTDmWrQZKAcBS6Yh7Vc0BNvPGIr8DiVlSWkJ9S89LOpTsFLNplGHT8KIcRdy7TbztdYjWfp_mSWNsco5LPVIJmlZWMvKPCEwG-LXcNnynNk0CMXvMPeyvhcRB1OK6khehpls_mz-Irs3uh6VxENFPw_Vo9Ucmi1s_V9VWCu6s64Z6P5oDhbLzUOMq7wY6oyQFdcsw6ZNc7JBVEvJLeEjP3oKqdvUxmlwYVGbqgRk6NUSqYFM1FkN&s=1bkYmPh13HDVB3th20wk-e6apu_I4EsloQPeWD2MQu7MQDGmXuWCZmJHuh0WAnhi-X9Bt4TTLoPfTCfHby-29eL00VLmhdEeUg6Z9QQqa4CSgBY8Ru2lD9z5wmLnx86u8KZRQLil1Jtig0s-aGRLfTpQ-ZQV-8cOveLI5UzubE0KvwmvuoBJXi58CUVKiBl0vioKXT2NeFVsQB0IffQUgSreDiCHicMOR-IlWDgwpt8exfei1Db-saWT-6xvK13Kj6pv-JtNUDCkmz_K19cjPsve2m8wtFuqC4K16Bvjih3Yks3-RdP6KACFVjqo1TgN6OZC90rh7DAPdNRwmB1TCg&h=ddrQLwEr0awL-aw6Flm3uemVfVpATvYz-D_HmDtgeBw" ], "Retry-After": [ "15" ], "x-ms-request-id": [ - "7f030330-c3d1-42d2-88dc-6fa78252b612" + "a62131f1-615f-4615-b577-e5373f035070" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -1161,7 +1161,7 @@ "nosniff" ], "x-ms-operation-identifier": [ - "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=ac839cc2-33ee-4879-a5b5-2895202ccb29/westus2/916575c7-1b3d-4490-a7bd-b1e1812c4521" + "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=ac839cc2-33ee-4879-a5b5-2895202ccb29/israelcentral/a376a26b-d594-400b-9686-8bc9dc386399" ], "x-ms-ratelimit-remaining-subscription-deletes": [ "799" @@ -1170,19 +1170,19 @@ "11999" ], "x-ms-correlation-request-id": [ - "1cc48afe-ec1c-4878-a103-63d841697624" + "44905280-3626-4e01-861f-0cf6f7d2d840" ], "x-ms-routing-request-id": [ - "WESTUS2:20250911T201158Z:1cc48afe-ec1c-4878-a103-63d841697624" + "ISRAELCENTRAL:20250917T221250Z:44905280-3626-4e01-861f-0cf6f7d2d840" ], "X-Cache": [ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: C06400BAE10644BEB858E5882577C279 Ref B: CO6AA3150217025 Ref C: 2025-09-11T20:11:58Z" + "Ref A: 74A0DC7F1F6749C2800ECBFA4CC4B266 Ref B: MWH011020807036 Ref C: 2025-09-17T22:12:46Z" ], "Date": [ - "Thu, 11 Sep 2025 20:11:58 GMT" + "Wed, 17 Sep 2025 22:12:50 GMT" ], "Expires": [ "-1" @@ -1195,18 +1195,18 @@ "StatusCode": 202 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/providers/Microsoft.Batch/locations/westus2/accountOperationResults/ps8437-7f030330-c3d1-42d2-88dc-6fa78252b612?api-version=2024-02-01&t=638932183186360780&c=MIIIpTCCBo2gAwIBAgITFgGsmnj73LBE7PaBtQABAayaeDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDMwHhcNMjUwNzE4MTIwNDI4WhcNMjYwMTE0MTIwNDI4WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKYwXiklImL5-WfPWj2FX3_Y-JxCd3XXEOuNXx5ggHubZZamujLTqEBSFsFYiH_9NCaqKTiATXu6fBpzW3ghgYhwr0PL071fQT15KnnNUFjd5hFXB7SYti9IwWu1lxSAz-De7HivujKdlsgcmfoV6upRQ0eva9e74EwLV9pCn4WQAhs-6T8p0CytQsi81qHMWybAbNvfom0ox78IEWdS_6g_d4Jl_I4ccYLMyRTOV2NioM96cRECWCZhbpLl1zwoYGSbU5H0MZaiCBjPlhXN40BqagpamZfP98sPYSBfreh6-iMGU5tNTRkh8RiJqzjhzIUpEv3PqLtWTyPUB8JS7aUCAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9BTTNQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAzKDEpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MB0GA1UdDgQWBBTxzPCXgPzIUiTz94us0y0CCMf8BzAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBRIo61gdWpv7GDzaVXRALEyV_xs5DAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggIBAAqNK9Ejzdnb9L4TyakCpJByRYVTN_6nCGbtUd2E2sELjuJGRGiRmujp_jqNyIofO_ghSaP_tqH-3WRTRUbnt5xM8aBYoYJSOgKgTsNrB6clspdhCCmzhJy6EQuOqfUDm3C7hDru1_bN3DwXt3VpDqfuYtM3MAabKg0oCYVWgFwnAKYmZLZMWMQh7k_hZxy1gOCQmE9U08tf_pU21aI0El6n5A5uG2FT0placwchheFmXAtoPjT7nU53HVmRissxUR_vRCDj_ZCFo3K3nZNXCQOKPAMc9-LC0prb9Slg6siKtSHB3iGjNQlT9-nbSnDgifI8zC1cvT8CdaNLOmUywRIB4wvRn1z123NuyfJaIz95igW9P189vBTJEZREF-MgJEboWKdlGNn6bbBtu0waqAmUU7WVLeZKdtUI6EEKF7wRGYuY_BhZx1ipyXnBHZpsufuH4AwgOO289QKmqg8QAy7HFD9c8H8fNCtR7sTZ4YNP2AhEaES0rkMSQUCNVEz42YEBi2GgrSpnI94SPdb3J3PkCMZ4OgFRjztLO7nrgbPtflhSOo_VOE0_7Y74km43WAMQPKL3-44vQrEQ61Hd_24IcFh_ChNXvUDqp39GzYlO3D0zlau4ozll8BeLUZrJwHTQWZS8XR-EifCl4MW5Y3Y1SxOLrIxnukCzQxL7aGmc&s=ENIYYOeR9tQXkYkicd_BX2Eh2gJYj6XtnBl6V2kh79ev8fOaZH8Jy1N4WfSAzvg5LSOv5UCHRhCbE6nH0OrCsSKDuxErHmcfv7H_yfkt-acdEoQwwtGCwPd-87-Yht2Nq2RefPWjN82BzfXDBpDWI3L7Nq78xmRB1RAMNFt9PElzG4ioxCJdU55N0nN0Wsp1BKTUwP6Enql3wu9g2tPDn7xBgx1TKSL3y3Qcz6R0AznDqv9bZ8JpBf7mLPbZ41Jhp0xVb7Ca6x_bs5GRj3ecgkSxXcn3AiGTTJiwjddCrZaNPoHFG750GviR1_QT9iRMvwbj7dgy2tP85G-AZhu7sA&h=CKs8IW2-k2gwB8WnRaGg_rhleAL5pbPIjZRT05ae0g0", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Byb3ZpZGVycy9NaWNyb3NvZnQuQmF0Y2gvbG9jYXRpb25zL3dlc3R1czIvYWNjb3VudE9wZXJhdGlvblJlc3VsdHMvcHM4NDM3LTdmMDMwMzMwLWMzZDEtNDJkMi04OGRjLTZmYTc4MjUyYjYxMj9hcGktdmVyc2lvbj0yMDIzLTA1LTAxJnQ9NjM4OTMyMTgzMTg2MzYwNzgwJmM9TUlJSXBUQ0NCbzJnQXdJQkFnSVRGZ0dzbW5qNzNMQkU3UGFCdFFBQkFheWFlREFOQmdrcWhraUc5dzBCQVFzRkFEQkVNUk13RVFZS0NaSW1pWlB5TEdRQkdSWURSMEpNTVJNd0VRWUtDWkltaVpQeUxHUUJHUllEUVUxRk1SZ3dGZ1lEVlFRREV3OUJUVVVnU1c1bWNtRWdRMEVnTURNd0hoY05NalV3TnpFNE1USXdOREk0V2hjTk1qWXdNVEUwTVRJd05ESTRXakJBTVQ0d1BBWURWUVFERXpWaGMzbHVZMjl3WlhKaGRHbHZibk5wWjI1cGJtZGpaWEowYVdacFkyRjBaUzV0WVc1aFoyVnRaVzUwTG1GNmRYSmxMbU52YlRDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBS1l3WGlrbEltTDUtV2ZQV2oyRlgzX1ktSnhDZDNYWEVPdU5YeDVnZ0h1YlpaYW11akxUcUVCU0ZzRllpSF85TkNhcUtUaUFUWHU2ZkJwelczZ2hnWWh3cjBQTDA3MWZRVDE1S25uTlVGamQ1aEZYQjdTWXRpOUl3V3UxbHhTQXotRGU3SGl2dWpLZGxzZ2NtZm9WNnVwUlEwZXZhOWU3NEV3TFY5cENuNFdRQWhzLTZUOHAwQ3l0UXNpODFxSE1XeWJBYk52Zm9tMG94NzhJRVdkU182Z19kNEpsX0k0Y2NZTE15UlRPVjJOaW9NOTZjUkVDV0NaaGJwTGwxendvWUdTYlU1SDBNWmFpQ0JqUGxoWE40MEJxYWdwYW1aZlA5OHNQWVNCZnJlaDYtaU1HVTV0TlRSa2g4UmlKcXpqaHpJVXBFdjNQcUx0V1R5UFVCOEpTN2FVQ0F3RUFBYU9DQkpJd2dnU09NQ2NHQ1NzR0FRUUJnamNWQ2dRYU1CZ3dDZ1lJS3dZQkJRVUhBd0V3Q2dZSUt3WUJCUVVIQXdJd1BRWUpLd1lCQkFHQ054VUhCREF3TGdZbUt3WUJCQUdDTnhVSWhwRGpEWVRWdEhpRThZcy1oWnZkRnM2ZEVvRmdoZm1SUzRXc21UUUNBV1FDQVFjd2dnSGFCZ2dyQmdFRkJRY0JBUVNDQWN3d2dnSElNR1lHQ0NzR0FRVUZCekFDaGxwb2RIUndPaTh2WTNKc0xtMXBZM0p2YzI5bWRDNWpiMjB2Y0d0cGFXNW1jbUV2UTJWeWRITXZRVTB6VUV0SlNVNVVRMEV3TVM1QlRVVXVSMEpNWDBGTlJTVXlNRWx1Wm5KaEpUSXdRMEVsTWpBd015Z3hLUzVqY25Rd1ZnWUlLd1lCQlFVSE1BS0dTbWgwZEhBNkx5OWpjbXd4TG1GdFpTNW5ZbXd2WVdsaEwwRk5NMUJMU1VsT1ZFTkJNREV1UVUxRkxrZENURjlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURNb01Ta3VZM0owTUZZR0NDc0dBUVVGQnpBQ2hrcG9kSFJ3T2k4dlkzSnNNaTVoYldVdVoySnNMMkZwWVM5QlRUTlFTMGxKVGxSRFFUQXhMa0ZOUlM1SFFreGZRVTFGSlRJd1NXNW1jbUVsTWpCRFFTVXlNREF6S0RFcExtTnlkREJXQmdnckJnRUZCUWN3QW9aS2FIUjBjRG92TDJOeWJETXVZVzFsTG1kaWJDOWhhV0V2UVUwelVFdEpTVTVVUTBFd01TNUJUVVV1UjBKTVgwRk5SU1V5TUVsdVpuSmhKVEl3UTBFbE1qQXdNeWd4S1M1amNuUXdWZ1lJS3dZQkJRVUhNQUtHU21oMGRIQTZMeTlqY213MExtRnRaUzVuWW13dllXbGhMMEZOTTFCTFNVbE9WRU5CTURFdVFVMUZMa2RDVEY5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKME1CMEdBMVVkRGdRV0JCVHh6UENYZ1B6SVVpVHo5NHVzMHkwQ0NNZjhCekFPQmdOVkhROEJBZjhFQkFNQ0JhQXdnZ0UxQmdOVkhSOEVnZ0VzTUlJQktEQ0NBU1NnZ2dFZ29JSUJISVpDYUhSMGNEb3ZMMk55YkM1dGFXTnliM052Wm5RdVkyOXRMM0JyYVdsdVpuSmhMME5TVEM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc2hqUm9kSFJ3T2k4dlkzSnNNUzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc2hqUm9kSFJ3T2k4dlkzSnNNaTVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc2hqUm9kSFJ3T2k4dlkzSnNNeTVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc2hqUm9kSFJ3T2k4dlkzSnNOQzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc01JR2RCZ05WSFNBRWdaVXdnWkl3REFZS0t3WUJCQUdDTjNzQkFUQm1CZ29yQmdFRUFZSTNld0lDTUZnd1ZnWUlLd1lCQlFVSEFnSXdTaDVJQURNQU13QmxBREFBTVFBNUFESUFNUUF0QURRQVpBQTJBRFFBTFFBMEFHWUFPQUJqQUMwQVlRQXdBRFVBTlFBdEFEVUFZZ0JrQUdFQVpnQm1BR1FBTlFCbEFETUFNd0JrTUF3R0Npc0dBUVFCZ2pkN0F3SXdEQVlLS3dZQkJBR0NOM3NFQWpBZkJnTlZIU01FR0RBV2dCUklvNjFnZFdwdjdHRHphVlhSQUxFeVZfeHM1REFkQmdOVkhTVUVGakFVQmdnckJnRUZCUWNEQVFZSUt3WUJCUVVIQXdJd0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dJQkFBcU5LOUVqemRuYjlMNFR5YWtDcEpCeVJZVlROXzZuQ0didFVkMkUyc0VManVKR1JHaVJtdWpwX2pxTnlJb2ZPX2doU2FQX3RxSC0zV1JUUlVibnQ1eE04YUJZb1lKU09nS2dUc05yQjZjbHNwZGhDQ216aEp5NkVRdU9xZlVEbTNDN2hEcnUxX2JOM0R3WHQzVnBEcWZ1WXRNM01BYWJLZzBvQ1lWV2dGd25BS1ltWkxaTVdNUWg3a19oWnh5MWdPQ1FtRTlVMDh0Zl9wVTIxYUkwRWw2bjVBNXVHMkZUMHBsYWN3Y2hoZUZtWEF0b1BqVDduVTUzSFZtUmlzc3hVUl92UkNEal9aQ0ZvM0szblpOWENRT0tQQU1jOS1MQzBwcmI5U2xnNnNpS3RTSEIzaUdqTlFsVDktbmJTbkRnaWZJOHpDMWN2VDhDZGFOTE9tVXl3UklCNHd2Um4xejEyM051eWZKYUl6OTVpZ1c5UDE4OXZCVEpFWlJFRi1NZ0pFYm9XS2RsR05uNmJiQnR1MHdhcUFtVVU3V1ZMZVpLZHRVSTZFRUtGN3dSR1l1WV9CaFp4MWlweVhuQkhacHN1ZnVINEF3Z09PMjg5UUttcWc4UUF5N0hGRDljOEg4Zk5DdFI3c1RaNFlOUDJBaEVhRVMwcmtNU1FVQ05WRXo0MllFQmkyR2dyU3BuSTk0U1BkYjNKM1BrQ01aNE9nRlJqenRMTzducmdiUHRmbGhTT29fVk9FMF83WTc0a200M1dBTVFQS0wzLTQ0dlFyRVE2MUhkXzI0SWNGaF9DaE5YdlVEcXAzOUd6WWxPM0QwemxhdTRvemxsOEJlTFVackp3SFRRV1pTOFhSLUVpZkNsNE1XNVkzWTFTeE9Mckl4bnVrQ3pReEw3YUdtYyZzPUVOSVlZT2VSOXRRWGtZa2ljZF9CWDJFaDJnSllqNlh0bkJsNlYya2g3OWV2OGZPYVpIOEp5MU40V2ZTQXp2ZzVMU092NVVDSFJoQ2JFNm5IME9yQ3NTS0R1eEVySG1jZnY3SF95Zmt0LWFjZEVvUXd3dEdDd1BkLTg3LVlodDJOcTJSZWZQV2pOODJCemZYREJwRFdJM0w3TnE3OHhtUkIxUkFNTkZ0OVBFbHpHNGlveENKZFU1NU4wbk4wV3NwMUJLVFV3UDZFbnFsM3d1OWcydFBEbjd4Qmd4MVRLU0wzeTNRY3o2UjBBem5EcXY5Ylo4SnBCZjdtTFBiWjQxSmhwMHhWYjdDYTZ4X2JzNUdSajNlY2drU3hYY24zQWlHVFRKaXdqZGRDclphTlBvSEZHNzUwR3ZpUjFfUVQ5aVJNdndiajdkZ3kydFA4NUctQVpodTdzQSZoPUNLczhJVzItazJnd0I4V25SYUdnX3JobGVBTDVwYlBJalpSVDA1YWUwZzA=", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/providers/Microsoft.Batch/locations/westus2/accountOperationResults/ps4278-a62131f1-615f-4615-b577-e5373f035070?api-version=2024-07-01&t=638937439708198989&c=MIII5zCCBs-gAwIBAgITFgHDlIazKjDMn0SpNgABAcOUhjANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDMwHhcNMjUwODA1MjIyMzU4WhcNMjYwMjAxMjIyMzU4WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOT-ZylV2tGobKl8RUF-gqsAyBUVb7g97876DX0ZJ_I61ybfyPQYk7pjhepOo9UeiSULt0-Acmpg-Ml-2OCYId5J7okZCJgBo9y8lQOcodfoofsurgedLMDszGnDepUk7UicEsblff4IzmmtY4bz5pIn3TOFOIYHBlDb13lHOhDfMniSuAxlQflu1N2UHmyZIWZXPRkZ2yVddH0AlRRxChGlWQUNaXHwy6w3ZRpt_uiJc2qX24QJUhQcumwX6ElyqRZ2d_JmVrZwksMAAiDNLHTAb2KdfNX3up4AhnyJkhmYPtbBCHJMNNK_u-JVdGJ5-1HgYgk3I2ZehSK24tVo_80CAwEAAaOCBNQwggTQMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9BTTNQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAzKDEpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MB0GA1UdDgQWBBTLWGmoorNquGVDo0bPP9871G-BLDAOBgNVHQ8BAf8EBAMCBaAwQAYDVR0RBDkwN4I1YXN5bmNvcGVyYXRpb25zaWduaW5nY2VydGlmaWNhdGUubWFuYWdlbWVudC5henVyZS5jb20wggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBRIo61gdWpv7GDzaVXRALEyV_xs5DAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggIBAIjIydiw12Z9o3gWBAMiIcrcfYk3eGJS9GyAycwq17XJPJ5uKAMUGDOotg4sVHH3VLtPweMHSpH-RPJoL1UKTPxTamhsr5NEo-ca7v1tWmIt2ICLtUqmz4B1wmjlbXnwwyLGm8mLlyj-Yu-zeEph9QpKCqNwSm0jQvpI_W04AUQmAH49OqHJzUCOKRESj0TdBvd1yaDovGBamUOvZqmAH7yrv9cdPvMsLI7FvbixTyFaPWnG4Fhgl2NvkK5hX6Z5M2O9sYigbAh4-vePyCshfVfaE1BePH5whqwfZzuw0jY89XAT5OAjPHGg7ud0HeWTs9ume_Y1d-5hbEgtLmxdKuwUeNQ-XA9xJBtuSF47AVURhSGzNA9TBGV71tupS0KKGkbccZ_SuYvUCpYRXXAeFSGFxC4jb_wee6m3Aj3wnVKzPxeSbcl6YTj9HTDmWrQZKAcBS6Yh7Vc0BNvPGIr8DiVlSWkJ9S89LOpTsFLNplGHT8KIcRdy7TbztdYjWfp_mSWNsco5LPVIJmlZWMvKPCEwG-LXcNnynNk0CMXvMPeyvhcRB1OK6khehpls_mz-Irs3uh6VxENFPw_Vo9Ucmi1s_V9VWCu6s64Z6P5oDhbLzUOMq7wY6oyQFdcsw6ZNc7JBVEvJLeEjP3oKqdvUxmlwYVGbqgRk6NUSqYFM1FkN&s=1bkYmPh13HDVB3th20wk-e6apu_I4EsloQPeWD2MQu7MQDGmXuWCZmJHuh0WAnhi-X9Bt4TTLoPfTCfHby-29eL00VLmhdEeUg6Z9QQqa4CSgBY8Ru2lD9z5wmLnx86u8KZRQLil1Jtig0s-aGRLfTpQ-ZQV-8cOveLI5UzubE0KvwmvuoBJXi58CUVKiBl0vioKXT2NeFVsQB0IffQUgSreDiCHicMOR-IlWDgwpt8exfei1Db-saWT-6xvK13Kj6pv-JtNUDCkmz_K19cjPsve2m8wtFuqC4K16Bvjih3Yks3-RdP6KACFVjqo1TgN6OZC90rh7DAPdNRwmB1TCg&h=ddrQLwEr0awL-aw6Flm3uemVfVpATvYz-D_HmDtgeBw", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Byb3ZpZGVycy9NaWNyb3NvZnQuQmF0Y2gvbG9jYXRpb25zL3dlc3R1czIvYWNjb3VudE9wZXJhdGlvblJlc3VsdHMvcHM0Mjc4LWE2MjEzMWYxLTYxNWYtNDYxNS1iNTc3LWU1MzczZjAzNTA3MD9hcGktdmVyc2lvbj0yMDI0LTA3LTAxJnQ9NjM4OTM3NDM5NzA4MTk4OTg5JmM9TUlJSTV6Q0NCcy1nQXdJQkFnSVRGZ0hEbElhektqRE1uMFNwTmdBQkFjT1VoakFOQmdrcWhraUc5dzBCQVFzRkFEQkVNUk13RVFZS0NaSW1pWlB5TEdRQkdSWURSMEpNTVJNd0VRWUtDWkltaVpQeUxHUUJHUllEUVUxRk1SZ3dGZ1lEVlFRREV3OUJUVVVnU1c1bWNtRWdRMEVnTURNd0hoY05NalV3T0RBMU1qSXlNelU0V2hjTk1qWXdNakF4TWpJeU16VTRXakJBTVQ0d1BBWURWUVFERXpWaGMzbHVZMjl3WlhKaGRHbHZibk5wWjI1cGJtZGpaWEowYVdacFkyRjBaUzV0WVc1aFoyVnRaVzUwTG1GNmRYSmxMbU52YlRDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBT1QtWnlsVjJ0R29iS2w4UlVGLWdxc0F5QlVWYjdnOTc4NzZEWDBaSl9JNjF5YmZ5UFFZazdwamhlcE9vOVVlaVNVTHQwLUFjbXBnLU1sLTJPQ1lJZDVKN29rWkNKZ0JvOXk4bFFPY29kZm9vZnN1cmdlZExNRHN6R25EZXBVazdVaWNFc2JsZmY0SXptbXRZNGJ6NXBJbjNUT0ZPSVlIQmxEYjEzbEhPaERmTW5pU3VBeGxRZmx1MU4yVUhteVpJV1pYUFJrWjJ5VmRkSDBBbFJSeENoR2xXUVVOYVhId3k2dzNaUnB0X3VpSmMycVgyNFFKVWhRY3Vtd1g2RWx5cVJaMmRfSm1Wclp3a3NNQUFpRE5MSFRBYjJLZGZOWDN1cDRBaG55SmtobVlQdGJCQ0hKTU5OS191LUpWZEdKNS0xSGdZZ2szSTJaZWhTSzI0dFZvXzgwQ0F3RUFBYU9DQk5Rd2dnVFFNQ2NHQ1NzR0FRUUJnamNWQ2dRYU1CZ3dDZ1lJS3dZQkJRVUhBd0V3Q2dZSUt3WUJCUVVIQXdJd1BRWUpLd1lCQkFHQ054VUhCREF3TGdZbUt3WUJCQUdDTnhVSWhwRGpEWVRWdEhpRThZcy1oWnZkRnM2ZEVvRmdoZm1SUzRXc21UUUNBV1FDQVFjd2dnSGFCZ2dyQmdFRkJRY0JBUVNDQWN3d2dnSElNR1lHQ0NzR0FRVUZCekFDaGxwb2RIUndPaTh2WTNKc0xtMXBZM0p2YzI5bWRDNWpiMjB2Y0d0cGFXNW1jbUV2UTJWeWRITXZRVTB6VUV0SlNVNVVRMEV3TVM1QlRVVXVSMEpNWDBGTlJTVXlNRWx1Wm5KaEpUSXdRMEVsTWpBd015Z3hLUzVqY25Rd1ZnWUlLd1lCQlFVSE1BS0dTbWgwZEhBNkx5OWpjbXd4TG1GdFpTNW5ZbXd2WVdsaEwwRk5NMUJMU1VsT1ZFTkJNREV1UVUxRkxrZENURjlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURNb01Ta3VZM0owTUZZR0NDc0dBUVVGQnpBQ2hrcG9kSFJ3T2k4dlkzSnNNaTVoYldVdVoySnNMMkZwWVM5QlRUTlFTMGxKVGxSRFFUQXhMa0ZOUlM1SFFreGZRVTFGSlRJd1NXNW1jbUVsTWpCRFFTVXlNREF6S0RFcExtTnlkREJXQmdnckJnRUZCUWN3QW9aS2FIUjBjRG92TDJOeWJETXVZVzFsTG1kaWJDOWhhV0V2UVUwelVFdEpTVTVVUTBFd01TNUJUVVV1UjBKTVgwRk5SU1V5TUVsdVpuSmhKVEl3UTBFbE1qQXdNeWd4S1M1amNuUXdWZ1lJS3dZQkJRVUhNQUtHU21oMGRIQTZMeTlqY213MExtRnRaUzVuWW13dllXbGhMMEZOTTFCTFNVbE9WRU5CTURFdVFVMUZMa2RDVEY5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKME1CMEdBMVVkRGdRV0JCVExXR21vb3JOcXVHVkRvMGJQUDk4NzFHLUJMREFPQmdOVkhROEJBZjhFQkFNQ0JhQXdRQVlEVlIwUkJEa3dONEkxWVhONWJtTnZjR1Z5WVhScGIyNXphV2R1YVc1blkyVnlkR2xtYVdOaGRHVXViV0Z1WVdkbGJXVnVkQzVoZW5WeVpTNWpiMjB3Z2dFMUJnTlZIUjhFZ2dFc01JSUJLRENDQVNTZ2dnRWdvSUlCSElaQ2FIUjBjRG92TDJOeWJDNXRhV055YjNOdlpuUXVZMjl0TDNCcmFXbHVabkpoTDBOU1RDOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRE1vTVNrdVkzSnNoalJvZEhSd09pOHZZM0pzTVM1aGJXVXVaMkpzTDJOeWJDOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRE1vTVNrdVkzSnNoalJvZEhSd09pOHZZM0pzTWk1aGJXVXVaMkpzTDJOeWJDOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRE1vTVNrdVkzSnNoalJvZEhSd09pOHZZM0pzTXk1aGJXVXVaMkpzTDJOeWJDOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRE1vTVNrdVkzSnNoalJvZEhSd09pOHZZM0pzTkM1aGJXVXVaMkpzTDJOeWJDOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRE1vTVNrdVkzSnNNSUdkQmdOVkhTQUVnWlV3Z1pJd0RBWUtLd1lCQkFHQ04zc0JBVEJtQmdvckJnRUVBWUkzZXdJQ01GZ3dWZ1lJS3dZQkJRVUhBZ0l3U2g1SUFETUFNd0JsQURBQU1RQTVBRElBTVFBdEFEUUFaQUEyQURRQUxRQTBBR1lBT0FCakFDMEFZUUF3QURVQU5RQXRBRFVBWWdCa0FHRUFaZ0JtQUdRQU5RQmxBRE1BTXdCa01Bd0dDaXNHQVFRQmdqZDdBd0l3REFZS0t3WUJCQUdDTjNzRUFqQWZCZ05WSFNNRUdEQVdnQlJJbzYxZ2RXcHY3R0R6YVZYUkFMRXlWX3hzNURBZEJnTlZIU1VFRmpBVUJnZ3JCZ0VGQlFjREFRWUlLd1lCQlFVSEF3SXdEUVlKS29aSWh2Y05BUUVMQlFBRGdnSUJBSWpJeWRpdzEyWjlvM2dXQkFNaUljcmNmWWszZUdKUzlHeUF5Y3dxMTdYSlBKNXVLQU1VR0RPb3RnNHNWSEgzVkx0UHdlTUhTcEgtUlBKb0wxVUtUUHhUYW1oc3I1TkVvLWNhN3YxdFdtSXQySUNMdFVxbXo0QjF3bWpsYlhud3d5TEdtOG1MbHlqLVl1LXplRXBoOVFwS0NxTndTbTBqUXZwSV9XMDRBVVFtQUg0OU9xSEp6VUNPS1JFU2owVGRCdmQxeWFEb3ZHQmFtVU92WnFtQUg3eXJ2OWNkUHZNc0xJN0Z2Yml4VHlGYVBXbkc0RmhnbDJOdmtLNWhYNlo1TTJPOXNZaWdiQWg0LXZlUHlDc2hmVmZhRTFCZVBINXdocXdmWnp1dzBqWTg5WEFUNU9BalBIR2c3dWQwSGVXVHM5dW1lX1kxZC01aGJFZ3RMbXhkS3V3VWVOUS1YQTl4SkJ0dVNGNDdBVlVSaFNHek5BOVRCR1Y3MXR1cFMwS0tHa2JjY1pfU3VZdlVDcFlSWFhBZUZTR0Z4QzRqYl93ZWU2bTNBajN3blZLelB4ZVNiY2w2WVRqOUhURG1XclFaS0FjQlM2WWg3VmMwQk52UEdJcjhEaVZsU1drSjlTODlMT3BUc0ZMTnBsR0hUOEtJY1JkeTdUYnp0ZFlqV2ZwX21TV05zY281TFBWSUptbFpXTXZLUENFd0ctTFhjTm55bk5rMENNWHZNUGV5dmhjUkIxT0s2a2hlaHBsc19tei1JcnMzdWg2VnhFTkZQd19WbzlVY21pMXNfVjlWV0N1NnM2NFo2UDVvRGhiTHpVT01xN3dZNm95UUZkY3N3NlpOYzdKQlZFdkpMZUVqUDNvS3FkdlV4bWx3WVZHYnFnUms2TlVTcVlGTTFGa04mcz0xYmtZbVBoMTNIRFZCM3RoMjB3ay1lNmFwdV9JNEVzbG9RUGVXRDJNUXU3TVFER21YdVdDWm1KSHVoMFdBbmhpLVg5QnQ0VFRMb1BmVENmSGJ5LTI5ZUwwMFZMbWhkRWVVZzZaOVFRcWE0Q1NnQlk4UnUybEQ5ejV3bUxueDg2dThLWlJRTGlsMUp0aWcwcy1hR1JMZlRwUS1aUVYtOGNPdmVMSTVVenViRTBLdndtdnVvQkpYaTU4Q1VWS2lCbDB2aW9LWFQyTmVGVnNRQjBJZmZRVWdTcmVEaUNIaWNNT1ItSWxXRGd3cHQ4ZXhmZWkxRGItc2FXVC02eHZLMTNLajZwdi1KdE5VRENrbXpfSzE5Y2pQc3ZlMm04d3RGdXFDNEsxNkJ2amloM1lrczMtUmRQNktBQ0ZWanFvMVRnTjZPWkM5MHJoN0RBUGROUndtQjFUQ2cmaD1kZHJRTHdFcjBhd0wtYXc2RmxtM3VlbVZmVnBBVHZZei1EX0htRHRnZUJ3", "RequestMethod": "GET", "RequestHeaders": { "x-ms-client-request-id": [ - "df482f8c-2bce-462a-a6e0-38e8820f3348" + "b582d12f-61f0-476e-80e6-c6d266a0aad0" ], "User-Agent": [ "FxVersion/8.0.2025.41914", "OSName/Windows", "OSVersion/Microsoft.Windows.10.0.26100", - "Microsoft.Azure.Management.Batch.BatchManagementClient/3.7.0" + "Microsoft.Azure.Management.Batch.BatchManagementClient/3.7.1" ] }, "RequestBody": "", @@ -1218,7 +1218,7 @@ "no-cache" ], "x-ms-request-id": [ - "dd995cac-7bba-429c-9c5f-92c2313fbef2" + "f130bebe-c713-4182-8112-b9eea07512d7" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -1227,7 +1227,7 @@ "nosniff" ], "x-ms-operation-identifier": [ - "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=ac839cc2-33ee-4879-a5b5-2895202ccb29/westus2/8c6ae39b-0eed-4e24-9d52-17d74e42de19" + "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=ac839cc2-33ee-4879-a5b5-2895202ccb29/israelcentral/f753a1d8-be8b-4efc-9b6a-e0e372c657fc" ], "x-ms-ratelimit-remaining-subscription-reads": [ "1099" @@ -1236,19 +1236,19 @@ "16499" ], "x-ms-correlation-request-id": [ - "e508ef39-18a1-4cf0-9773-05e3cc4c4702" + "6e4ac126-e6e8-4506-9431-263c8f759295" ], "x-ms-routing-request-id": [ - "WESTUS2:20250911T201213Z:e508ef39-18a1-4cf0-9773-05e3cc4c4702" + "ISRAELCENTRAL:20250917T221306Z:6e4ac126-e6e8-4506-9431-263c8f759295" ], "X-Cache": [ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: 425A45533F6843C29FFB7741D13E1CFC Ref B: CO6AA3150217025 Ref C: 2025-09-11T20:12:13Z" + "Ref A: D80A593067434396ACAE56BB276A609D Ref B: MWH011020807036 Ref C: 2025-09-17T22:13:05Z" ], "Date": [ - "Thu, 11 Sep 2025 20:12:13 GMT" + "Wed, 17 Sep 2025 22:13:06 GMT" ], "Expires": [ "-1" @@ -1261,18 +1261,18 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/providers/Microsoft.Batch/locations/westus2/accountOperationResults/ps8437-7f030330-c3d1-42d2-88dc-6fa78252b612?api-version=2024-02-01&t=638932183186360780&c=MIIIpTCCBo2gAwIBAgITFgGsmnj73LBE7PaBtQABAayaeDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDMwHhcNMjUwNzE4MTIwNDI4WhcNMjYwMTE0MTIwNDI4WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKYwXiklImL5-WfPWj2FX3_Y-JxCd3XXEOuNXx5ggHubZZamujLTqEBSFsFYiH_9NCaqKTiATXu6fBpzW3ghgYhwr0PL071fQT15KnnNUFjd5hFXB7SYti9IwWu1lxSAz-De7HivujKdlsgcmfoV6upRQ0eva9e74EwLV9pCn4WQAhs-6T8p0CytQsi81qHMWybAbNvfom0ox78IEWdS_6g_d4Jl_I4ccYLMyRTOV2NioM96cRECWCZhbpLl1zwoYGSbU5H0MZaiCBjPlhXN40BqagpamZfP98sPYSBfreh6-iMGU5tNTRkh8RiJqzjhzIUpEv3PqLtWTyPUB8JS7aUCAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9BTTNQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAzKDEpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MB0GA1UdDgQWBBTxzPCXgPzIUiTz94us0y0CCMf8BzAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBRIo61gdWpv7GDzaVXRALEyV_xs5DAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggIBAAqNK9Ejzdnb9L4TyakCpJByRYVTN_6nCGbtUd2E2sELjuJGRGiRmujp_jqNyIofO_ghSaP_tqH-3WRTRUbnt5xM8aBYoYJSOgKgTsNrB6clspdhCCmzhJy6EQuOqfUDm3C7hDru1_bN3DwXt3VpDqfuYtM3MAabKg0oCYVWgFwnAKYmZLZMWMQh7k_hZxy1gOCQmE9U08tf_pU21aI0El6n5A5uG2FT0placwchheFmXAtoPjT7nU53HVmRissxUR_vRCDj_ZCFo3K3nZNXCQOKPAMc9-LC0prb9Slg6siKtSHB3iGjNQlT9-nbSnDgifI8zC1cvT8CdaNLOmUywRIB4wvRn1z123NuyfJaIz95igW9P189vBTJEZREF-MgJEboWKdlGNn6bbBtu0waqAmUU7WVLeZKdtUI6EEKF7wRGYuY_BhZx1ipyXnBHZpsufuH4AwgOO289QKmqg8QAy7HFD9c8H8fNCtR7sTZ4YNP2AhEaES0rkMSQUCNVEz42YEBi2GgrSpnI94SPdb3J3PkCMZ4OgFRjztLO7nrgbPtflhSOo_VOE0_7Y74km43WAMQPKL3-44vQrEQ61Hd_24IcFh_ChNXvUDqp39GzYlO3D0zlau4ozll8BeLUZrJwHTQWZS8XR-EifCl4MW5Y3Y1SxOLrIxnukCzQxL7aGmc&s=ENIYYOeR9tQXkYkicd_BX2Eh2gJYj6XtnBl6V2kh79ev8fOaZH8Jy1N4WfSAzvg5LSOv5UCHRhCbE6nH0OrCsSKDuxErHmcfv7H_yfkt-acdEoQwwtGCwPd-87-Yht2Nq2RefPWjN82BzfXDBpDWI3L7Nq78xmRB1RAMNFt9PElzG4ioxCJdU55N0nN0Wsp1BKTUwP6Enql3wu9g2tPDn7xBgx1TKSL3y3Qcz6R0AznDqv9bZ8JpBf7mLPbZ41Jhp0xVb7Ca6x_bs5GRj3ecgkSxXcn3AiGTTJiwjddCrZaNPoHFG750GviR1_QT9iRMvwbj7dgy2tP85G-AZhu7sA&h=CKs8IW2-k2gwB8WnRaGg_rhleAL5pbPIjZRT05ae0g0", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Byb3ZpZGVycy9NaWNyb3NvZnQuQmF0Y2gvbG9jYXRpb25zL3dlc3R1czIvYWNjb3VudE9wZXJhdGlvblJlc3VsdHMvcHM4NDM3LTdmMDMwMzMwLWMzZDEtNDJkMi04OGRjLTZmYTc4MjUyYjYxMj9hcGktdmVyc2lvbj0yMDIzLTA1LTAxJnQ9NjM4OTMyMTgzMTg2MzYwNzgwJmM9TUlJSXBUQ0NCbzJnQXdJQkFnSVRGZ0dzbW5qNzNMQkU3UGFCdFFBQkFheWFlREFOQmdrcWhraUc5dzBCQVFzRkFEQkVNUk13RVFZS0NaSW1pWlB5TEdRQkdSWURSMEpNTVJNd0VRWUtDWkltaVpQeUxHUUJHUllEUVUxRk1SZ3dGZ1lEVlFRREV3OUJUVVVnU1c1bWNtRWdRMEVnTURNd0hoY05NalV3TnpFNE1USXdOREk0V2hjTk1qWXdNVEUwTVRJd05ESTRXakJBTVQ0d1BBWURWUVFERXpWaGMzbHVZMjl3WlhKaGRHbHZibk5wWjI1cGJtZGpaWEowYVdacFkyRjBaUzV0WVc1aFoyVnRaVzUwTG1GNmRYSmxMbU52YlRDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBS1l3WGlrbEltTDUtV2ZQV2oyRlgzX1ktSnhDZDNYWEVPdU5YeDVnZ0h1YlpaYW11akxUcUVCU0ZzRllpSF85TkNhcUtUaUFUWHU2ZkJwelczZ2hnWWh3cjBQTDA3MWZRVDE1S25uTlVGamQ1aEZYQjdTWXRpOUl3V3UxbHhTQXotRGU3SGl2dWpLZGxzZ2NtZm9WNnVwUlEwZXZhOWU3NEV3TFY5cENuNFdRQWhzLTZUOHAwQ3l0UXNpODFxSE1XeWJBYk52Zm9tMG94NzhJRVdkU182Z19kNEpsX0k0Y2NZTE15UlRPVjJOaW9NOTZjUkVDV0NaaGJwTGwxendvWUdTYlU1SDBNWmFpQ0JqUGxoWE40MEJxYWdwYW1aZlA5OHNQWVNCZnJlaDYtaU1HVTV0TlRSa2g4UmlKcXpqaHpJVXBFdjNQcUx0V1R5UFVCOEpTN2FVQ0F3RUFBYU9DQkpJd2dnU09NQ2NHQ1NzR0FRUUJnamNWQ2dRYU1CZ3dDZ1lJS3dZQkJRVUhBd0V3Q2dZSUt3WUJCUVVIQXdJd1BRWUpLd1lCQkFHQ054VUhCREF3TGdZbUt3WUJCQUdDTnhVSWhwRGpEWVRWdEhpRThZcy1oWnZkRnM2ZEVvRmdoZm1SUzRXc21UUUNBV1FDQVFjd2dnSGFCZ2dyQmdFRkJRY0JBUVNDQWN3d2dnSElNR1lHQ0NzR0FRVUZCekFDaGxwb2RIUndPaTh2WTNKc0xtMXBZM0p2YzI5bWRDNWpiMjB2Y0d0cGFXNW1jbUV2UTJWeWRITXZRVTB6VUV0SlNVNVVRMEV3TVM1QlRVVXVSMEpNWDBGTlJTVXlNRWx1Wm5KaEpUSXdRMEVsTWpBd015Z3hLUzVqY25Rd1ZnWUlLd1lCQlFVSE1BS0dTbWgwZEhBNkx5OWpjbXd4TG1GdFpTNW5ZbXd2WVdsaEwwRk5NMUJMU1VsT1ZFTkJNREV1UVUxRkxrZENURjlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURNb01Ta3VZM0owTUZZR0NDc0dBUVVGQnpBQ2hrcG9kSFJ3T2k4dlkzSnNNaTVoYldVdVoySnNMMkZwWVM5QlRUTlFTMGxKVGxSRFFUQXhMa0ZOUlM1SFFreGZRVTFGSlRJd1NXNW1jbUVsTWpCRFFTVXlNREF6S0RFcExtTnlkREJXQmdnckJnRUZCUWN3QW9aS2FIUjBjRG92TDJOeWJETXVZVzFsTG1kaWJDOWhhV0V2UVUwelVFdEpTVTVVUTBFd01TNUJUVVV1UjBKTVgwRk5SU1V5TUVsdVpuSmhKVEl3UTBFbE1qQXdNeWd4S1M1amNuUXdWZ1lJS3dZQkJRVUhNQUtHU21oMGRIQTZMeTlqY213MExtRnRaUzVuWW13dllXbGhMMEZOTTFCTFNVbE9WRU5CTURFdVFVMUZMa2RDVEY5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKME1CMEdBMVVkRGdRV0JCVHh6UENYZ1B6SVVpVHo5NHVzMHkwQ0NNZjhCekFPQmdOVkhROEJBZjhFQkFNQ0JhQXdnZ0UxQmdOVkhSOEVnZ0VzTUlJQktEQ0NBU1NnZ2dFZ29JSUJISVpDYUhSMGNEb3ZMMk55YkM1dGFXTnliM052Wm5RdVkyOXRMM0JyYVdsdVpuSmhMME5TVEM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc2hqUm9kSFJ3T2k4dlkzSnNNUzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc2hqUm9kSFJ3T2k4dlkzSnNNaTVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc2hqUm9kSFJ3T2k4dlkzSnNNeTVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc2hqUm9kSFJ3T2k4dlkzSnNOQzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc01JR2RCZ05WSFNBRWdaVXdnWkl3REFZS0t3WUJCQUdDTjNzQkFUQm1CZ29yQmdFRUFZSTNld0lDTUZnd1ZnWUlLd1lCQlFVSEFnSXdTaDVJQURNQU13QmxBREFBTVFBNUFESUFNUUF0QURRQVpBQTJBRFFBTFFBMEFHWUFPQUJqQUMwQVlRQXdBRFVBTlFBdEFEVUFZZ0JrQUdFQVpnQm1BR1FBTlFCbEFETUFNd0JrTUF3R0Npc0dBUVFCZ2pkN0F3SXdEQVlLS3dZQkJBR0NOM3NFQWpBZkJnTlZIU01FR0RBV2dCUklvNjFnZFdwdjdHRHphVlhSQUxFeVZfeHM1REFkQmdOVkhTVUVGakFVQmdnckJnRUZCUWNEQVFZSUt3WUJCUVVIQXdJd0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dJQkFBcU5LOUVqemRuYjlMNFR5YWtDcEpCeVJZVlROXzZuQ0didFVkMkUyc0VManVKR1JHaVJtdWpwX2pxTnlJb2ZPX2doU2FQX3RxSC0zV1JUUlVibnQ1eE04YUJZb1lKU09nS2dUc05yQjZjbHNwZGhDQ216aEp5NkVRdU9xZlVEbTNDN2hEcnUxX2JOM0R3WHQzVnBEcWZ1WXRNM01BYWJLZzBvQ1lWV2dGd25BS1ltWkxaTVdNUWg3a19oWnh5MWdPQ1FtRTlVMDh0Zl9wVTIxYUkwRWw2bjVBNXVHMkZUMHBsYWN3Y2hoZUZtWEF0b1BqVDduVTUzSFZtUmlzc3hVUl92UkNEal9aQ0ZvM0szblpOWENRT0tQQU1jOS1MQzBwcmI5U2xnNnNpS3RTSEIzaUdqTlFsVDktbmJTbkRnaWZJOHpDMWN2VDhDZGFOTE9tVXl3UklCNHd2Um4xejEyM051eWZKYUl6OTVpZ1c5UDE4OXZCVEpFWlJFRi1NZ0pFYm9XS2RsR05uNmJiQnR1MHdhcUFtVVU3V1ZMZVpLZHRVSTZFRUtGN3dSR1l1WV9CaFp4MWlweVhuQkhacHN1ZnVINEF3Z09PMjg5UUttcWc4UUF5N0hGRDljOEg4Zk5DdFI3c1RaNFlOUDJBaEVhRVMwcmtNU1FVQ05WRXo0MllFQmkyR2dyU3BuSTk0U1BkYjNKM1BrQ01aNE9nRlJqenRMTzducmdiUHRmbGhTT29fVk9FMF83WTc0a200M1dBTVFQS0wzLTQ0dlFyRVE2MUhkXzI0SWNGaF9DaE5YdlVEcXAzOUd6WWxPM0QwemxhdTRvemxsOEJlTFVackp3SFRRV1pTOFhSLUVpZkNsNE1XNVkzWTFTeE9Mckl4bnVrQ3pReEw3YUdtYyZzPUVOSVlZT2VSOXRRWGtZa2ljZF9CWDJFaDJnSllqNlh0bkJsNlYya2g3OWV2OGZPYVpIOEp5MU40V2ZTQXp2ZzVMU092NVVDSFJoQ2JFNm5IME9yQ3NTS0R1eEVySG1jZnY3SF95Zmt0LWFjZEVvUXd3dEdDd1BkLTg3LVlodDJOcTJSZWZQV2pOODJCemZYREJwRFdJM0w3TnE3OHhtUkIxUkFNTkZ0OVBFbHpHNGlveENKZFU1NU4wbk4wV3NwMUJLVFV3UDZFbnFsM3d1OWcydFBEbjd4Qmd4MVRLU0wzeTNRY3o2UjBBem5EcXY5Ylo4SnBCZjdtTFBiWjQxSmhwMHhWYjdDYTZ4X2JzNUdSajNlY2drU3hYY24zQWlHVFRKaXdqZGRDclphTlBvSEZHNzUwR3ZpUjFfUVQ5aVJNdndiajdkZ3kydFA4NUctQVpodTdzQSZoPUNLczhJVzItazJnd0I4V25SYUdnX3JobGVBTDVwYlBJalpSVDA1YWUwZzA=", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/providers/Microsoft.Batch/locations/westus2/accountOperationResults/ps4278-a62131f1-615f-4615-b577-e5373f035070?api-version=2024-07-01&t=638937439708198989&c=MIII5zCCBs-gAwIBAgITFgHDlIazKjDMn0SpNgABAcOUhjANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDMwHhcNMjUwODA1MjIyMzU4WhcNMjYwMjAxMjIyMzU4WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOT-ZylV2tGobKl8RUF-gqsAyBUVb7g97876DX0ZJ_I61ybfyPQYk7pjhepOo9UeiSULt0-Acmpg-Ml-2OCYId5J7okZCJgBo9y8lQOcodfoofsurgedLMDszGnDepUk7UicEsblff4IzmmtY4bz5pIn3TOFOIYHBlDb13lHOhDfMniSuAxlQflu1N2UHmyZIWZXPRkZ2yVddH0AlRRxChGlWQUNaXHwy6w3ZRpt_uiJc2qX24QJUhQcumwX6ElyqRZ2d_JmVrZwksMAAiDNLHTAb2KdfNX3up4AhnyJkhmYPtbBCHJMNNK_u-JVdGJ5-1HgYgk3I2ZehSK24tVo_80CAwEAAaOCBNQwggTQMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9BTTNQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAzKDEpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MB0GA1UdDgQWBBTLWGmoorNquGVDo0bPP9871G-BLDAOBgNVHQ8BAf8EBAMCBaAwQAYDVR0RBDkwN4I1YXN5bmNvcGVyYXRpb25zaWduaW5nY2VydGlmaWNhdGUubWFuYWdlbWVudC5henVyZS5jb20wggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBRIo61gdWpv7GDzaVXRALEyV_xs5DAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggIBAIjIydiw12Z9o3gWBAMiIcrcfYk3eGJS9GyAycwq17XJPJ5uKAMUGDOotg4sVHH3VLtPweMHSpH-RPJoL1UKTPxTamhsr5NEo-ca7v1tWmIt2ICLtUqmz4B1wmjlbXnwwyLGm8mLlyj-Yu-zeEph9QpKCqNwSm0jQvpI_W04AUQmAH49OqHJzUCOKRESj0TdBvd1yaDovGBamUOvZqmAH7yrv9cdPvMsLI7FvbixTyFaPWnG4Fhgl2NvkK5hX6Z5M2O9sYigbAh4-vePyCshfVfaE1BePH5whqwfZzuw0jY89XAT5OAjPHGg7ud0HeWTs9ume_Y1d-5hbEgtLmxdKuwUeNQ-XA9xJBtuSF47AVURhSGzNA9TBGV71tupS0KKGkbccZ_SuYvUCpYRXXAeFSGFxC4jb_wee6m3Aj3wnVKzPxeSbcl6YTj9HTDmWrQZKAcBS6Yh7Vc0BNvPGIr8DiVlSWkJ9S89LOpTsFLNplGHT8KIcRdy7TbztdYjWfp_mSWNsco5LPVIJmlZWMvKPCEwG-LXcNnynNk0CMXvMPeyvhcRB1OK6khehpls_mz-Irs3uh6VxENFPw_Vo9Ucmi1s_V9VWCu6s64Z6P5oDhbLzUOMq7wY6oyQFdcsw6ZNc7JBVEvJLeEjP3oKqdvUxmlwYVGbqgRk6NUSqYFM1FkN&s=1bkYmPh13HDVB3th20wk-e6apu_I4EsloQPeWD2MQu7MQDGmXuWCZmJHuh0WAnhi-X9Bt4TTLoPfTCfHby-29eL00VLmhdEeUg6Z9QQqa4CSgBY8Ru2lD9z5wmLnx86u8KZRQLil1Jtig0s-aGRLfTpQ-ZQV-8cOveLI5UzubE0KvwmvuoBJXi58CUVKiBl0vioKXT2NeFVsQB0IffQUgSreDiCHicMOR-IlWDgwpt8exfei1Db-saWT-6xvK13Kj6pv-JtNUDCkmz_K19cjPsve2m8wtFuqC4K16Bvjih3Yks3-RdP6KACFVjqo1TgN6OZC90rh7DAPdNRwmB1TCg&h=ddrQLwEr0awL-aw6Flm3uemVfVpATvYz-D_HmDtgeBw", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Byb3ZpZGVycy9NaWNyb3NvZnQuQmF0Y2gvbG9jYXRpb25zL3dlc3R1czIvYWNjb3VudE9wZXJhdGlvblJlc3VsdHMvcHM0Mjc4LWE2MjEzMWYxLTYxNWYtNDYxNS1iNTc3LWU1MzczZjAzNTA3MD9hcGktdmVyc2lvbj0yMDI0LTA3LTAxJnQ9NjM4OTM3NDM5NzA4MTk4OTg5JmM9TUlJSTV6Q0NCcy1nQXdJQkFnSVRGZ0hEbElhektqRE1uMFNwTmdBQkFjT1VoakFOQmdrcWhraUc5dzBCQVFzRkFEQkVNUk13RVFZS0NaSW1pWlB5TEdRQkdSWURSMEpNTVJNd0VRWUtDWkltaVpQeUxHUUJHUllEUVUxRk1SZ3dGZ1lEVlFRREV3OUJUVVVnU1c1bWNtRWdRMEVnTURNd0hoY05NalV3T0RBMU1qSXlNelU0V2hjTk1qWXdNakF4TWpJeU16VTRXakJBTVQ0d1BBWURWUVFERXpWaGMzbHVZMjl3WlhKaGRHbHZibk5wWjI1cGJtZGpaWEowYVdacFkyRjBaUzV0WVc1aFoyVnRaVzUwTG1GNmRYSmxMbU52YlRDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBT1QtWnlsVjJ0R29iS2w4UlVGLWdxc0F5QlVWYjdnOTc4NzZEWDBaSl9JNjF5YmZ5UFFZazdwamhlcE9vOVVlaVNVTHQwLUFjbXBnLU1sLTJPQ1lJZDVKN29rWkNKZ0JvOXk4bFFPY29kZm9vZnN1cmdlZExNRHN6R25EZXBVazdVaWNFc2JsZmY0SXptbXRZNGJ6NXBJbjNUT0ZPSVlIQmxEYjEzbEhPaERmTW5pU3VBeGxRZmx1MU4yVUhteVpJV1pYUFJrWjJ5VmRkSDBBbFJSeENoR2xXUVVOYVhId3k2dzNaUnB0X3VpSmMycVgyNFFKVWhRY3Vtd1g2RWx5cVJaMmRfSm1Wclp3a3NNQUFpRE5MSFRBYjJLZGZOWDN1cDRBaG55SmtobVlQdGJCQ0hKTU5OS191LUpWZEdKNS0xSGdZZ2szSTJaZWhTSzI0dFZvXzgwQ0F3RUFBYU9DQk5Rd2dnVFFNQ2NHQ1NzR0FRUUJnamNWQ2dRYU1CZ3dDZ1lJS3dZQkJRVUhBd0V3Q2dZSUt3WUJCUVVIQXdJd1BRWUpLd1lCQkFHQ054VUhCREF3TGdZbUt3WUJCQUdDTnhVSWhwRGpEWVRWdEhpRThZcy1oWnZkRnM2ZEVvRmdoZm1SUzRXc21UUUNBV1FDQVFjd2dnSGFCZ2dyQmdFRkJRY0JBUVNDQWN3d2dnSElNR1lHQ0NzR0FRVUZCekFDaGxwb2RIUndPaTh2WTNKc0xtMXBZM0p2YzI5bWRDNWpiMjB2Y0d0cGFXNW1jbUV2UTJWeWRITXZRVTB6VUV0SlNVNVVRMEV3TVM1QlRVVXVSMEpNWDBGTlJTVXlNRWx1Wm5KaEpUSXdRMEVsTWpBd015Z3hLUzVqY25Rd1ZnWUlLd1lCQlFVSE1BS0dTbWgwZEhBNkx5OWpjbXd4TG1GdFpTNW5ZbXd2WVdsaEwwRk5NMUJMU1VsT1ZFTkJNREV1UVUxRkxrZENURjlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURNb01Ta3VZM0owTUZZR0NDc0dBUVVGQnpBQ2hrcG9kSFJ3T2k4dlkzSnNNaTVoYldVdVoySnNMMkZwWVM5QlRUTlFTMGxKVGxSRFFUQXhMa0ZOUlM1SFFreGZRVTFGSlRJd1NXNW1jbUVsTWpCRFFTVXlNREF6S0RFcExtTnlkREJXQmdnckJnRUZCUWN3QW9aS2FIUjBjRG92TDJOeWJETXVZVzFsTG1kaWJDOWhhV0V2UVUwelVFdEpTVTVVUTBFd01TNUJUVVV1UjBKTVgwRk5SU1V5TUVsdVpuSmhKVEl3UTBFbE1qQXdNeWd4S1M1amNuUXdWZ1lJS3dZQkJRVUhNQUtHU21oMGRIQTZMeTlqY213MExtRnRaUzVuWW13dllXbGhMMEZOTTFCTFNVbE9WRU5CTURFdVFVMUZMa2RDVEY5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKME1CMEdBMVVkRGdRV0JCVExXR21vb3JOcXVHVkRvMGJQUDk4NzFHLUJMREFPQmdOVkhROEJBZjhFQkFNQ0JhQXdRQVlEVlIwUkJEa3dONEkxWVhONWJtTnZjR1Z5WVhScGIyNXphV2R1YVc1blkyVnlkR2xtYVdOaGRHVXViV0Z1WVdkbGJXVnVkQzVoZW5WeVpTNWpiMjB3Z2dFMUJnTlZIUjhFZ2dFc01JSUJLRENDQVNTZ2dnRWdvSUlCSElaQ2FIUjBjRG92TDJOeWJDNXRhV055YjNOdlpuUXVZMjl0TDNCcmFXbHVabkpoTDBOU1RDOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRE1vTVNrdVkzSnNoalJvZEhSd09pOHZZM0pzTVM1aGJXVXVaMkpzTDJOeWJDOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRE1vTVNrdVkzSnNoalJvZEhSd09pOHZZM0pzTWk1aGJXVXVaMkpzTDJOeWJDOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRE1vTVNrdVkzSnNoalJvZEhSd09pOHZZM0pzTXk1aGJXVXVaMkpzTDJOeWJDOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRE1vTVNrdVkzSnNoalJvZEhSd09pOHZZM0pzTkM1aGJXVXVaMkpzTDJOeWJDOUJUVVVsTWpCSmJtWnlZU1V5TUVOQkpUSXdNRE1vTVNrdVkzSnNNSUdkQmdOVkhTQUVnWlV3Z1pJd0RBWUtLd1lCQkFHQ04zc0JBVEJtQmdvckJnRUVBWUkzZXdJQ01GZ3dWZ1lJS3dZQkJRVUhBZ0l3U2g1SUFETUFNd0JsQURBQU1RQTVBRElBTVFBdEFEUUFaQUEyQURRQUxRQTBBR1lBT0FCakFDMEFZUUF3QURVQU5RQXRBRFVBWWdCa0FHRUFaZ0JtQUdRQU5RQmxBRE1BTXdCa01Bd0dDaXNHQVFRQmdqZDdBd0l3REFZS0t3WUJCQUdDTjNzRUFqQWZCZ05WSFNNRUdEQVdnQlJJbzYxZ2RXcHY3R0R6YVZYUkFMRXlWX3hzNURBZEJnTlZIU1VFRmpBVUJnZ3JCZ0VGQlFjREFRWUlLd1lCQlFVSEF3SXdEUVlKS29aSWh2Y05BUUVMQlFBRGdnSUJBSWpJeWRpdzEyWjlvM2dXQkFNaUljcmNmWWszZUdKUzlHeUF5Y3dxMTdYSlBKNXVLQU1VR0RPb3RnNHNWSEgzVkx0UHdlTUhTcEgtUlBKb0wxVUtUUHhUYW1oc3I1TkVvLWNhN3YxdFdtSXQySUNMdFVxbXo0QjF3bWpsYlhud3d5TEdtOG1MbHlqLVl1LXplRXBoOVFwS0NxTndTbTBqUXZwSV9XMDRBVVFtQUg0OU9xSEp6VUNPS1JFU2owVGRCdmQxeWFEb3ZHQmFtVU92WnFtQUg3eXJ2OWNkUHZNc0xJN0Z2Yml4VHlGYVBXbkc0RmhnbDJOdmtLNWhYNlo1TTJPOXNZaWdiQWg0LXZlUHlDc2hmVmZhRTFCZVBINXdocXdmWnp1dzBqWTg5WEFUNU9BalBIR2c3dWQwSGVXVHM5dW1lX1kxZC01aGJFZ3RMbXhkS3V3VWVOUS1YQTl4SkJ0dVNGNDdBVlVSaFNHek5BOVRCR1Y3MXR1cFMwS0tHa2JjY1pfU3VZdlVDcFlSWFhBZUZTR0Z4QzRqYl93ZWU2bTNBajN3blZLelB4ZVNiY2w2WVRqOUhURG1XclFaS0FjQlM2WWg3VmMwQk52UEdJcjhEaVZsU1drSjlTODlMT3BUc0ZMTnBsR0hUOEtJY1JkeTdUYnp0ZFlqV2ZwX21TV05zY281TFBWSUptbFpXTXZLUENFd0ctTFhjTm55bk5rMENNWHZNUGV5dmhjUkIxT0s2a2hlaHBsc19tei1JcnMzdWg2VnhFTkZQd19WbzlVY21pMXNfVjlWV0N1NnM2NFo2UDVvRGhiTHpVT01xN3dZNm95UUZkY3N3NlpOYzdKQlZFdkpMZUVqUDNvS3FkdlV4bWx3WVZHYnFnUms2TlVTcVlGTTFGa04mcz0xYmtZbVBoMTNIRFZCM3RoMjB3ay1lNmFwdV9JNEVzbG9RUGVXRDJNUXU3TVFER21YdVdDWm1KSHVoMFdBbmhpLVg5QnQ0VFRMb1BmVENmSGJ5LTI5ZUwwMFZMbWhkRWVVZzZaOVFRcWE0Q1NnQlk4UnUybEQ5ejV3bUxueDg2dThLWlJRTGlsMUp0aWcwcy1hR1JMZlRwUS1aUVYtOGNPdmVMSTVVenViRTBLdndtdnVvQkpYaTU4Q1VWS2lCbDB2aW9LWFQyTmVGVnNRQjBJZmZRVWdTcmVEaUNIaWNNT1ItSWxXRGd3cHQ4ZXhmZWkxRGItc2FXVC02eHZLMTNLajZwdi1KdE5VRENrbXpfSzE5Y2pQc3ZlMm04d3RGdXFDNEsxNkJ2amloM1lrczMtUmRQNktBQ0ZWanFvMVRnTjZPWkM5MHJoN0RBUGROUndtQjFUQ2cmaD1kZHJRTHdFcjBhd0wtYXc2RmxtM3VlbVZmVnBBVHZZei1EX0htRHRnZUJ3", "RequestMethod": "GET", "RequestHeaders": { "x-ms-client-request-id": [ - "df482f8c-2bce-462a-a6e0-38e8820f3348" + "b582d12f-61f0-476e-80e6-c6d266a0aad0" ], "User-Agent": [ "FxVersion/8.0.2025.41914", "OSName/Windows", "OSVersion/Microsoft.Windows.10.0.26100", - "Microsoft.Azure.Management.Batch.BatchManagementClient/3.7.0" + "Microsoft.Azure.Management.Batch.BatchManagementClient/3.7.1" ] }, "RequestBody": "", @@ -1284,7 +1284,7 @@ "no-cache" ], "x-ms-request-id": [ - "b2986c9c-5a7b-429d-854c-26951c49039c" + "67aff5ff-cea8-40d8-b347-f752c859e32a" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -1293,7 +1293,7 @@ "nosniff" ], "x-ms-operation-identifier": [ - "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=ac839cc2-33ee-4879-a5b5-2895202ccb29/westus2/64755487-a654-433a-ad29-3f133193cdcf" + "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=ac839cc2-33ee-4879-a5b5-2895202ccb29/israelcentral/3931175c-1b8e-4131-9a4a-538eb46f85f3" ], "x-ms-ratelimit-remaining-subscription-reads": [ "1099" @@ -1302,19 +1302,19 @@ "16499" ], "x-ms-correlation-request-id": [ - "613f4d51-21d4-4e3c-aa59-ab4954e5a7f3" + "e414212e-62c6-4d55-9669-dcbc1eb56a18" ], "x-ms-routing-request-id": [ - "WESTUS2:20250911T201213Z:613f4d51-21d4-4e3c-aa59-ab4954e5a7f3" + "ISRAELCENTRAL:20250917T221306Z:e414212e-62c6-4d55-9669-dcbc1eb56a18" ], "X-Cache": [ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: 3180231D7A804BFBA535F58EC2FB5C0A Ref B: CO6AA3150217025 Ref C: 2025-09-11T20:12:13Z" + "Ref A: 3DD910B8308D4B5588BA353EF56E4B1C Ref B: MWH011020807036 Ref C: 2025-09-17T22:13:06Z" ], "Date": [ - "Thu, 11 Sep 2025 20:12:13 GMT" + "Wed, 17 Sep 2025 22:13:06 GMT" ], "Expires": [ "-1" @@ -1327,12 +1327,12 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourcegroups/ps3698?api-version=2016-09-01", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlZ3JvdXBzL3BzMzY5OD9hcGktdmVyc2lvbj0yMDE2LTA5LTAx", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourcegroups/ps7310?api-version=2016-09-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlZ3JvdXBzL3BzNzMxMD9hcGktdmVyc2lvbj0yMDE2LTA5LTAx", "RequestMethod": "DELETE", "RequestHeaders": { "x-ms-client-request-id": [ - "decb7581-76f0-4942-8002-69b5904dc903" + "b44b0812-3ac2-4b8a-a8e3-19e75f990019" ], "Accept-Language": [ "en-US" @@ -1341,7 +1341,7 @@ "FxVersion/8.0.2025.41914", "OSName/Windows", "OSVersion/Microsoft.Windows.10.0.26100", - "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.109" + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.110" ] }, "RequestBody": "", @@ -1353,7 +1353,7 @@ "no-cache" ], "Location": [ - "https://management.azure.com/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QUzM2OTgtV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2016-09-01&t=638932183344055381&c=MIIIpTCCBo2gAwIBAgITFgGsmnj73LBE7PaBtQABAayaeDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDMwHhcNMjUwNzE4MTIwNDI4WhcNMjYwMTE0MTIwNDI4WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKYwXiklImL5-WfPWj2FX3_Y-JxCd3XXEOuNXx5ggHubZZamujLTqEBSFsFYiH_9NCaqKTiATXu6fBpzW3ghgYhwr0PL071fQT15KnnNUFjd5hFXB7SYti9IwWu1lxSAz-De7HivujKdlsgcmfoV6upRQ0eva9e74EwLV9pCn4WQAhs-6T8p0CytQsi81qHMWybAbNvfom0ox78IEWdS_6g_d4Jl_I4ccYLMyRTOV2NioM96cRECWCZhbpLl1zwoYGSbU5H0MZaiCBjPlhXN40BqagpamZfP98sPYSBfreh6-iMGU5tNTRkh8RiJqzjhzIUpEv3PqLtWTyPUB8JS7aUCAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9BTTNQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAzKDEpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MB0GA1UdDgQWBBTxzPCXgPzIUiTz94us0y0CCMf8BzAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBRIo61gdWpv7GDzaVXRALEyV_xs5DAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggIBAAqNK9Ejzdnb9L4TyakCpJByRYVTN_6nCGbtUd2E2sELjuJGRGiRmujp_jqNyIofO_ghSaP_tqH-3WRTRUbnt5xM8aBYoYJSOgKgTsNrB6clspdhCCmzhJy6EQuOqfUDm3C7hDru1_bN3DwXt3VpDqfuYtM3MAabKg0oCYVWgFwnAKYmZLZMWMQh7k_hZxy1gOCQmE9U08tf_pU21aI0El6n5A5uG2FT0placwchheFmXAtoPjT7nU53HVmRissxUR_vRCDj_ZCFo3K3nZNXCQOKPAMc9-LC0prb9Slg6siKtSHB3iGjNQlT9-nbSnDgifI8zC1cvT8CdaNLOmUywRIB4wvRn1z123NuyfJaIz95igW9P189vBTJEZREF-MgJEboWKdlGNn6bbBtu0waqAmUU7WVLeZKdtUI6EEKF7wRGYuY_BhZx1ipyXnBHZpsufuH4AwgOO289QKmqg8QAy7HFD9c8H8fNCtR7sTZ4YNP2AhEaES0rkMSQUCNVEz42YEBi2GgrSpnI94SPdb3J3PkCMZ4OgFRjztLO7nrgbPtflhSOo_VOE0_7Y74km43WAMQPKL3-44vQrEQ61Hd_24IcFh_ChNXvUDqp39GzYlO3D0zlau4ozll8BeLUZrJwHTQWZS8XR-EifCl4MW5Y3Y1SxOLrIxnukCzQxL7aGmc&s=oBeP9dw2YFSo2KLmM8vAVmmgaMFzgYYpfAax1Eq8cqoXaWge6SsFVgY-0-s_cY8ro2LO91pt4BvXHVPX_llRdCBoby05agABQvsS6wCqmRS4n4DPUUsJj8s-OZ6ox54eVDjk43tUsil_hUxZiZzwzuy29X6Qar5kpq6PBiUJbe0Xoxg4Zd7UYvTTbEMXYXiwRqzhvixg6xOrfr37V9F6lrtp-8ECYW8K0r3XZTZoeRENM9BcqC49YpILwn0H76AFCYHQGAQs-8EnxM_V51mRas5aJG4CrQLoQ4lAK21njcDFQvZjQCKnR67jPFmfLMAl7AFmqIcLpGA_SsihtJz19A&h=OGBaqLTK1H2PKJDJzFJPCQ3ICCoGk_C47BcDu0f9zJ0" + "https://management.azure.com/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QUzczMTAtV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2016-09-01&t=638937439904806611&c=MIIIpTCCBo2gAwIBAgITFgGsmnj73LBE7PaBtQABAayaeDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDMwHhcNMjUwNzE4MTIwNDI4WhcNMjYwMTE0MTIwNDI4WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKYwXiklImL5-WfPWj2FX3_Y-JxCd3XXEOuNXx5ggHubZZamujLTqEBSFsFYiH_9NCaqKTiATXu6fBpzW3ghgYhwr0PL071fQT15KnnNUFjd5hFXB7SYti9IwWu1lxSAz-De7HivujKdlsgcmfoV6upRQ0eva9e74EwLV9pCn4WQAhs-6T8p0CytQsi81qHMWybAbNvfom0ox78IEWdS_6g_d4Jl_I4ccYLMyRTOV2NioM96cRECWCZhbpLl1zwoYGSbU5H0MZaiCBjPlhXN40BqagpamZfP98sPYSBfreh6-iMGU5tNTRkh8RiJqzjhzIUpEv3PqLtWTyPUB8JS7aUCAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9BTTNQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAzKDEpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MB0GA1UdDgQWBBTxzPCXgPzIUiTz94us0y0CCMf8BzAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBRIo61gdWpv7GDzaVXRALEyV_xs5DAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggIBAAqNK9Ejzdnb9L4TyakCpJByRYVTN_6nCGbtUd2E2sELjuJGRGiRmujp_jqNyIofO_ghSaP_tqH-3WRTRUbnt5xM8aBYoYJSOgKgTsNrB6clspdhCCmzhJy6EQuOqfUDm3C7hDru1_bN3DwXt3VpDqfuYtM3MAabKg0oCYVWgFwnAKYmZLZMWMQh7k_hZxy1gOCQmE9U08tf_pU21aI0El6n5A5uG2FT0placwchheFmXAtoPjT7nU53HVmRissxUR_vRCDj_ZCFo3K3nZNXCQOKPAMc9-LC0prb9Slg6siKtSHB3iGjNQlT9-nbSnDgifI8zC1cvT8CdaNLOmUywRIB4wvRn1z123NuyfJaIz95igW9P189vBTJEZREF-MgJEboWKdlGNn6bbBtu0waqAmUU7WVLeZKdtUI6EEKF7wRGYuY_BhZx1ipyXnBHZpsufuH4AwgOO289QKmqg8QAy7HFD9c8H8fNCtR7sTZ4YNP2AhEaES0rkMSQUCNVEz42YEBi2GgrSpnI94SPdb3J3PkCMZ4OgFRjztLO7nrgbPtflhSOo_VOE0_7Y74km43WAMQPKL3-44vQrEQ61Hd_24IcFh_ChNXvUDqp39GzYlO3D0zlau4ozll8BeLUZrJwHTQWZS8XR-EifCl4MW5Y3Y1SxOLrIxnukCzQxL7aGmc&s=bFzP_S2Ijb3PnsOfwkkcTc20NbDRQFG9pRbthPpA4z1jfDY72RaOr_tIebJGfS6udh8HfYtRFOYRN-QEDqULQBUmBlsJssvkfLzKwxXu4FaSZcmzSLvctwaq2mwWvHHdrC7aTG1JPseZU9PDaJpNso9dC9Z2dir_d_TwYpy_ghFnCUhFjTFJK9DtOWuOxD7Cb6nkXbV_9VqVAhkLwxVQQW6bA00I3UTtgQka36An2l4cOwEDVK__nP2b-RswkHwEaPMkkayQGIZd06JPkmynsBjV6ETu9m9Z3-KRSoGBl4Ul7tRdnjqy_vreMLW5gnMhs8YInP8F89cVuy6OwU-UNA&h=I-uCx1EsPsfhldhThtUSwazzqo0QfhnvxenqUhA1W9Y" ], "Retry-After": [ "15" @@ -1365,13 +1365,13 @@ "11999" ], "x-ms-request-id": [ - "ddd2f0a3-5792-487b-963a-2d4e8f1f6b62" + "4cd59f52-d1f8-459a-83ac-46df8d523e17" ], "x-ms-correlation-request-id": [ - "ddd2f0a3-5792-487b-963a-2d4e8f1f6b62" + "4cd59f52-d1f8-459a-83ac-46df8d523e17" ], "x-ms-routing-request-id": [ - "WESTUS2:20250911T201214Z:ddd2f0a3-5792-487b-963a-2d4e8f1f6b62" + "WESTUS2:20250917T221310Z:4cd59f52-d1f8-459a-83ac-46df8d523e17" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -1383,10 +1383,10 @@ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: DD5911B48D91499585DC0D15F2B384FB Ref B: CO6AA3150219035 Ref C: 2025-09-11T20:12:14Z" + "Ref A: 81F87811180B43C296F9A1731EF6BEAC Ref B: MWH011020809054 Ref C: 2025-09-17T22:13:10Z" ], "Date": [ - "Thu, 11 Sep 2025 20:12:14 GMT" + "Wed, 17 Sep 2025 22:13:09 GMT" ], "Expires": [ "-1" @@ -1399,15 +1399,15 @@ "StatusCode": 202 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QUzM2OTgtV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2016-09-01&t=638932183344055381&c=MIIIpTCCBo2gAwIBAgITFgGsmnj73LBE7PaBtQABAayaeDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDMwHhcNMjUwNzE4MTIwNDI4WhcNMjYwMTE0MTIwNDI4WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKYwXiklImL5-WfPWj2FX3_Y-JxCd3XXEOuNXx5ggHubZZamujLTqEBSFsFYiH_9NCaqKTiATXu6fBpzW3ghgYhwr0PL071fQT15KnnNUFjd5hFXB7SYti9IwWu1lxSAz-De7HivujKdlsgcmfoV6upRQ0eva9e74EwLV9pCn4WQAhs-6T8p0CytQsi81qHMWybAbNvfom0ox78IEWdS_6g_d4Jl_I4ccYLMyRTOV2NioM96cRECWCZhbpLl1zwoYGSbU5H0MZaiCBjPlhXN40BqagpamZfP98sPYSBfreh6-iMGU5tNTRkh8RiJqzjhzIUpEv3PqLtWTyPUB8JS7aUCAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9BTTNQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAzKDEpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MB0GA1UdDgQWBBTxzPCXgPzIUiTz94us0y0CCMf8BzAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBRIo61gdWpv7GDzaVXRALEyV_xs5DAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggIBAAqNK9Ejzdnb9L4TyakCpJByRYVTN_6nCGbtUd2E2sELjuJGRGiRmujp_jqNyIofO_ghSaP_tqH-3WRTRUbnt5xM8aBYoYJSOgKgTsNrB6clspdhCCmzhJy6EQuOqfUDm3C7hDru1_bN3DwXt3VpDqfuYtM3MAabKg0oCYVWgFwnAKYmZLZMWMQh7k_hZxy1gOCQmE9U08tf_pU21aI0El6n5A5uG2FT0placwchheFmXAtoPjT7nU53HVmRissxUR_vRCDj_ZCFo3K3nZNXCQOKPAMc9-LC0prb9Slg6siKtSHB3iGjNQlT9-nbSnDgifI8zC1cvT8CdaNLOmUywRIB4wvRn1z123NuyfJaIz95igW9P189vBTJEZREF-MgJEboWKdlGNn6bbBtu0waqAmUU7WVLeZKdtUI6EEKF7wRGYuY_BhZx1ipyXnBHZpsufuH4AwgOO289QKmqg8QAy7HFD9c8H8fNCtR7sTZ4YNP2AhEaES0rkMSQUCNVEz42YEBi2GgrSpnI94SPdb3J3PkCMZ4OgFRjztLO7nrgbPtflhSOo_VOE0_7Y74km43WAMQPKL3-44vQrEQ61Hd_24IcFh_ChNXvUDqp39GzYlO3D0zlau4ozll8BeLUZrJwHTQWZS8XR-EifCl4MW5Y3Y1SxOLrIxnukCzQxL7aGmc&s=oBeP9dw2YFSo2KLmM8vAVmmgaMFzgYYpfAax1Eq8cqoXaWge6SsFVgY-0-s_cY8ro2LO91pt4BvXHVPX_llRdCBoby05agABQvsS6wCqmRS4n4DPUUsJj8s-OZ6ox54eVDjk43tUsil_hUxZiZzwzuy29X6Qar5kpq6PBiUJbe0Xoxg4Zd7UYvTTbEMXYXiwRqzhvixg6xOrfr37V9F6lrtp-8ECYW8K0r3XZTZoeRENM9BcqC49YpILwn0H76AFCYHQGAQs-8EnxM_V51mRas5aJG4CrQLoQ4lAK21njcDFQvZjQCKnR67jPFmfLMAl7AFmqIcLpGA_SsihtJz19A&h=OGBaqLTK1H2PKJDJzFJPCQ3ICCoGk_C47BcDu0f9zJ0", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVXpNMk9UZ3RWMFZUVkZWVE1pSXNJbXB2WWt4dlkyRjBhVzl1SWpvaWQyVnpkSFZ6TWlKOT9hcGktdmVyc2lvbj0yMDE2LTA5LTAxJnQ9NjM4OTMyMTgzMzQ0MDU1MzgxJmM9TUlJSXBUQ0NCbzJnQXdJQkFnSVRGZ0dzbW5qNzNMQkU3UGFCdFFBQkFheWFlREFOQmdrcWhraUc5dzBCQVFzRkFEQkVNUk13RVFZS0NaSW1pWlB5TEdRQkdSWURSMEpNTVJNd0VRWUtDWkltaVpQeUxHUUJHUllEUVUxRk1SZ3dGZ1lEVlFRREV3OUJUVVVnU1c1bWNtRWdRMEVnTURNd0hoY05NalV3TnpFNE1USXdOREk0V2hjTk1qWXdNVEUwTVRJd05ESTRXakJBTVQ0d1BBWURWUVFERXpWaGMzbHVZMjl3WlhKaGRHbHZibk5wWjI1cGJtZGpaWEowYVdacFkyRjBaUzV0WVc1aFoyVnRaVzUwTG1GNmRYSmxMbU52YlRDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBS1l3WGlrbEltTDUtV2ZQV2oyRlgzX1ktSnhDZDNYWEVPdU5YeDVnZ0h1YlpaYW11akxUcUVCU0ZzRllpSF85TkNhcUtUaUFUWHU2ZkJwelczZ2hnWWh3cjBQTDA3MWZRVDE1S25uTlVGamQ1aEZYQjdTWXRpOUl3V3UxbHhTQXotRGU3SGl2dWpLZGxzZ2NtZm9WNnVwUlEwZXZhOWU3NEV3TFY5cENuNFdRQWhzLTZUOHAwQ3l0UXNpODFxSE1XeWJBYk52Zm9tMG94NzhJRVdkU182Z19kNEpsX0k0Y2NZTE15UlRPVjJOaW9NOTZjUkVDV0NaaGJwTGwxendvWUdTYlU1SDBNWmFpQ0JqUGxoWE40MEJxYWdwYW1aZlA5OHNQWVNCZnJlaDYtaU1HVTV0TlRSa2g4UmlKcXpqaHpJVXBFdjNQcUx0V1R5UFVCOEpTN2FVQ0F3RUFBYU9DQkpJd2dnU09NQ2NHQ1NzR0FRUUJnamNWQ2dRYU1CZ3dDZ1lJS3dZQkJRVUhBd0V3Q2dZSUt3WUJCUVVIQXdJd1BRWUpLd1lCQkFHQ054VUhCREF3TGdZbUt3WUJCQUdDTnhVSWhwRGpEWVRWdEhpRThZcy1oWnZkRnM2ZEVvRmdoZm1SUzRXc21UUUNBV1FDQVFjd2dnSGFCZ2dyQmdFRkJRY0JBUVNDQWN3d2dnSElNR1lHQ0NzR0FRVUZCekFDaGxwb2RIUndPaTh2WTNKc0xtMXBZM0p2YzI5bWRDNWpiMjB2Y0d0cGFXNW1jbUV2UTJWeWRITXZRVTB6VUV0SlNVNVVRMEV3TVM1QlRVVXVSMEpNWDBGTlJTVXlNRWx1Wm5KaEpUSXdRMEVsTWpBd015Z3hLUzVqY25Rd1ZnWUlLd1lCQlFVSE1BS0dTbWgwZEhBNkx5OWpjbXd4TG1GdFpTNW5ZbXd2WVdsaEwwRk5NMUJMU1VsT1ZFTkJNREV1UVUxRkxrZENURjlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURNb01Ta3VZM0owTUZZR0NDc0dBUVVGQnpBQ2hrcG9kSFJ3T2k4dlkzSnNNaTVoYldVdVoySnNMMkZwWVM5QlRUTlFTMGxKVGxSRFFUQXhMa0ZOUlM1SFFreGZRVTFGSlRJd1NXNW1jbUVsTWpCRFFTVXlNREF6S0RFcExtTnlkREJXQmdnckJnRUZCUWN3QW9aS2FIUjBjRG92TDJOeWJETXVZVzFsTG1kaWJDOWhhV0V2UVUwelVFdEpTVTVVUTBFd01TNUJUVVV1UjBKTVgwRk5SU1V5TUVsdVpuSmhKVEl3UTBFbE1qQXdNeWd4S1M1amNuUXdWZ1lJS3dZQkJRVUhNQUtHU21oMGRIQTZMeTlqY213MExtRnRaUzVuWW13dllXbGhMMEZOTTFCTFNVbE9WRU5CTURFdVFVMUZMa2RDVEY5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKME1CMEdBMVVkRGdRV0JCVHh6UENYZ1B6SVVpVHo5NHVzMHkwQ0NNZjhCekFPQmdOVkhROEJBZjhFQkFNQ0JhQXdnZ0UxQmdOVkhSOEVnZ0VzTUlJQktEQ0NBU1NnZ2dFZ29JSUJISVpDYUhSMGNEb3ZMMk55YkM1dGFXTnliM052Wm5RdVkyOXRMM0JyYVdsdVpuSmhMME5TVEM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc2hqUm9kSFJ3T2k4dlkzSnNNUzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc2hqUm9kSFJ3T2k4dlkzSnNNaTVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc2hqUm9kSFJ3T2k4dlkzSnNNeTVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc2hqUm9kSFJ3T2k4dlkzSnNOQzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc01JR2RCZ05WSFNBRWdaVXdnWkl3REFZS0t3WUJCQUdDTjNzQkFUQm1CZ29yQmdFRUFZSTNld0lDTUZnd1ZnWUlLd1lCQlFVSEFnSXdTaDVJQURNQU13QmxBREFBTVFBNUFESUFNUUF0QURRQVpBQTJBRFFBTFFBMEFHWUFPQUJqQUMwQVlRQXdBRFVBTlFBdEFEVUFZZ0JrQUdFQVpnQm1BR1FBTlFCbEFETUFNd0JrTUF3R0Npc0dBUVFCZ2pkN0F3SXdEQVlLS3dZQkJBR0NOM3NFQWpBZkJnTlZIU01FR0RBV2dCUklvNjFnZFdwdjdHRHphVlhSQUxFeVZfeHM1REFkQmdOVkhTVUVGakFVQmdnckJnRUZCUWNEQVFZSUt3WUJCUVVIQXdJd0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dJQkFBcU5LOUVqemRuYjlMNFR5YWtDcEpCeVJZVlROXzZuQ0didFVkMkUyc0VManVKR1JHaVJtdWpwX2pxTnlJb2ZPX2doU2FQX3RxSC0zV1JUUlVibnQ1eE04YUJZb1lKU09nS2dUc05yQjZjbHNwZGhDQ216aEp5NkVRdU9xZlVEbTNDN2hEcnUxX2JOM0R3WHQzVnBEcWZ1WXRNM01BYWJLZzBvQ1lWV2dGd25BS1ltWkxaTVdNUWg3a19oWnh5MWdPQ1FtRTlVMDh0Zl9wVTIxYUkwRWw2bjVBNXVHMkZUMHBsYWN3Y2hoZUZtWEF0b1BqVDduVTUzSFZtUmlzc3hVUl92UkNEal9aQ0ZvM0szblpOWENRT0tQQU1jOS1MQzBwcmI5U2xnNnNpS3RTSEIzaUdqTlFsVDktbmJTbkRnaWZJOHpDMWN2VDhDZGFOTE9tVXl3UklCNHd2Um4xejEyM051eWZKYUl6OTVpZ1c5UDE4OXZCVEpFWlJFRi1NZ0pFYm9XS2RsR05uNmJiQnR1MHdhcUFtVVU3V1ZMZVpLZHRVSTZFRUtGN3dSR1l1WV9CaFp4MWlweVhuQkhacHN1ZnVINEF3Z09PMjg5UUttcWc4UUF5N0hGRDljOEg4Zk5DdFI3c1RaNFlOUDJBaEVhRVMwcmtNU1FVQ05WRXo0MllFQmkyR2dyU3BuSTk0U1BkYjNKM1BrQ01aNE9nRlJqenRMTzducmdiUHRmbGhTT29fVk9FMF83WTc0a200M1dBTVFQS0wzLTQ0dlFyRVE2MUhkXzI0SWNGaF9DaE5YdlVEcXAzOUd6WWxPM0QwemxhdTRvemxsOEJlTFVackp3SFRRV1pTOFhSLUVpZkNsNE1XNVkzWTFTeE9Mckl4bnVrQ3pReEw3YUdtYyZzPW9CZVA5ZHcyWUZTbzJLTG1NOHZBVm1tZ2FNRnpnWVlwZkFheDFFcThjcW9YYVdnZTZTc0ZWZ1ktMC1zX2NZOHJvMkxPOTFwdDRCdlhIVlBYX2xsUmRDQm9ieTA1YWdBQlF2c1M2d0NxbVJTNG40RFBVVXNKajhzLU9aNm94NTRlVkRqazQzdFVzaWxfaFV4Wmlaend6dXkyOVg2UWFyNWtwcTZQQmlVSmJlMFhveGc0WmQ3VVl2VFRiRU1YWVhpd1Jxemh2aXhnNnhPcmZyMzdWOUY2bHJ0cC04RUNZVzhLMHIzWFpUWm9lUkVOTTlCY3FDNDlZcElMd24wSDc2QUZDWUhRR0FRcy04RW54TV9WNTFtUmFzNWFKRzRDclFMb1E0bEFLMjFuamNERlF2WmpRQ0tuUjY3alBGbWZMTUFsN0FGbXFJY0xwR0FfU3NpaHRKejE5QSZoPU9HQmFxTFRLMUgyUEtKREp6RkpQQ1EzSUNDb0drX0M0N0JjRHUwZjl6SjA=", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QUzczMTAtV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2016-09-01&t=638937439904806611&c=MIIIpTCCBo2gAwIBAgITFgGsmnj73LBE7PaBtQABAayaeDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDMwHhcNMjUwNzE4MTIwNDI4WhcNMjYwMTE0MTIwNDI4WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKYwXiklImL5-WfPWj2FX3_Y-JxCd3XXEOuNXx5ggHubZZamujLTqEBSFsFYiH_9NCaqKTiATXu6fBpzW3ghgYhwr0PL071fQT15KnnNUFjd5hFXB7SYti9IwWu1lxSAz-De7HivujKdlsgcmfoV6upRQ0eva9e74EwLV9pCn4WQAhs-6T8p0CytQsi81qHMWybAbNvfom0ox78IEWdS_6g_d4Jl_I4ccYLMyRTOV2NioM96cRECWCZhbpLl1zwoYGSbU5H0MZaiCBjPlhXN40BqagpamZfP98sPYSBfreh6-iMGU5tNTRkh8RiJqzjhzIUpEv3PqLtWTyPUB8JS7aUCAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9BTTNQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAzKDEpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MB0GA1UdDgQWBBTxzPCXgPzIUiTz94us0y0CCMf8BzAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBRIo61gdWpv7GDzaVXRALEyV_xs5DAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggIBAAqNK9Ejzdnb9L4TyakCpJByRYVTN_6nCGbtUd2E2sELjuJGRGiRmujp_jqNyIofO_ghSaP_tqH-3WRTRUbnt5xM8aBYoYJSOgKgTsNrB6clspdhCCmzhJy6EQuOqfUDm3C7hDru1_bN3DwXt3VpDqfuYtM3MAabKg0oCYVWgFwnAKYmZLZMWMQh7k_hZxy1gOCQmE9U08tf_pU21aI0El6n5A5uG2FT0placwchheFmXAtoPjT7nU53HVmRissxUR_vRCDj_ZCFo3K3nZNXCQOKPAMc9-LC0prb9Slg6siKtSHB3iGjNQlT9-nbSnDgifI8zC1cvT8CdaNLOmUywRIB4wvRn1z123NuyfJaIz95igW9P189vBTJEZREF-MgJEboWKdlGNn6bbBtu0waqAmUU7WVLeZKdtUI6EEKF7wRGYuY_BhZx1ipyXnBHZpsufuH4AwgOO289QKmqg8QAy7HFD9c8H8fNCtR7sTZ4YNP2AhEaES0rkMSQUCNVEz42YEBi2GgrSpnI94SPdb3J3PkCMZ4OgFRjztLO7nrgbPtflhSOo_VOE0_7Y74km43WAMQPKL3-44vQrEQ61Hd_24IcFh_ChNXvUDqp39GzYlO3D0zlau4ozll8BeLUZrJwHTQWZS8XR-EifCl4MW5Y3Y1SxOLrIxnukCzQxL7aGmc&s=bFzP_S2Ijb3PnsOfwkkcTc20NbDRQFG9pRbthPpA4z1jfDY72RaOr_tIebJGfS6udh8HfYtRFOYRN-QEDqULQBUmBlsJssvkfLzKwxXu4FaSZcmzSLvctwaq2mwWvHHdrC7aTG1JPseZU9PDaJpNso9dC9Z2dir_d_TwYpy_ghFnCUhFjTFJK9DtOWuOxD7Cb6nkXbV_9VqVAhkLwxVQQW6bA00I3UTtgQka36An2l4cOwEDVK__nP2b-RswkHwEaPMkkayQGIZd06JPkmynsBjV6ETu9m9Z3-KRSoGBl4Ul7tRdnjqy_vreMLW5gnMhs8YInP8F89cVuy6OwU-UNA&h=I-uCx1EsPsfhldhThtUSwazzqo0QfhnvxenqUhA1W9Y", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVXpjek1UQXRWMFZUVkZWVE1pSXNJbXB2WWt4dlkyRjBhVzl1SWpvaWQyVnpkSFZ6TWlKOT9hcGktdmVyc2lvbj0yMDE2LTA5LTAxJnQ9NjM4OTM3NDM5OTA0ODA2NjExJmM9TUlJSXBUQ0NCbzJnQXdJQkFnSVRGZ0dzbW5qNzNMQkU3UGFCdFFBQkFheWFlREFOQmdrcWhraUc5dzBCQVFzRkFEQkVNUk13RVFZS0NaSW1pWlB5TEdRQkdSWURSMEpNTVJNd0VRWUtDWkltaVpQeUxHUUJHUllEUVUxRk1SZ3dGZ1lEVlFRREV3OUJUVVVnU1c1bWNtRWdRMEVnTURNd0hoY05NalV3TnpFNE1USXdOREk0V2hjTk1qWXdNVEUwTVRJd05ESTRXakJBTVQ0d1BBWURWUVFERXpWaGMzbHVZMjl3WlhKaGRHbHZibk5wWjI1cGJtZGpaWEowYVdacFkyRjBaUzV0WVc1aFoyVnRaVzUwTG1GNmRYSmxMbU52YlRDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBS1l3WGlrbEltTDUtV2ZQV2oyRlgzX1ktSnhDZDNYWEVPdU5YeDVnZ0h1YlpaYW11akxUcUVCU0ZzRllpSF85TkNhcUtUaUFUWHU2ZkJwelczZ2hnWWh3cjBQTDA3MWZRVDE1S25uTlVGamQ1aEZYQjdTWXRpOUl3V3UxbHhTQXotRGU3SGl2dWpLZGxzZ2NtZm9WNnVwUlEwZXZhOWU3NEV3TFY5cENuNFdRQWhzLTZUOHAwQ3l0UXNpODFxSE1XeWJBYk52Zm9tMG94NzhJRVdkU182Z19kNEpsX0k0Y2NZTE15UlRPVjJOaW9NOTZjUkVDV0NaaGJwTGwxendvWUdTYlU1SDBNWmFpQ0JqUGxoWE40MEJxYWdwYW1aZlA5OHNQWVNCZnJlaDYtaU1HVTV0TlRSa2g4UmlKcXpqaHpJVXBFdjNQcUx0V1R5UFVCOEpTN2FVQ0F3RUFBYU9DQkpJd2dnU09NQ2NHQ1NzR0FRUUJnamNWQ2dRYU1CZ3dDZ1lJS3dZQkJRVUhBd0V3Q2dZSUt3WUJCUVVIQXdJd1BRWUpLd1lCQkFHQ054VUhCREF3TGdZbUt3WUJCQUdDTnhVSWhwRGpEWVRWdEhpRThZcy1oWnZkRnM2ZEVvRmdoZm1SUzRXc21UUUNBV1FDQVFjd2dnSGFCZ2dyQmdFRkJRY0JBUVNDQWN3d2dnSElNR1lHQ0NzR0FRVUZCekFDaGxwb2RIUndPaTh2WTNKc0xtMXBZM0p2YzI5bWRDNWpiMjB2Y0d0cGFXNW1jbUV2UTJWeWRITXZRVTB6VUV0SlNVNVVRMEV3TVM1QlRVVXVSMEpNWDBGTlJTVXlNRWx1Wm5KaEpUSXdRMEVsTWpBd015Z3hLUzVqY25Rd1ZnWUlLd1lCQlFVSE1BS0dTbWgwZEhBNkx5OWpjbXd4TG1GdFpTNW5ZbXd2WVdsaEwwRk5NMUJMU1VsT1ZFTkJNREV1UVUxRkxrZENURjlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURNb01Ta3VZM0owTUZZR0NDc0dBUVVGQnpBQ2hrcG9kSFJ3T2k4dlkzSnNNaTVoYldVdVoySnNMMkZwWVM5QlRUTlFTMGxKVGxSRFFUQXhMa0ZOUlM1SFFreGZRVTFGSlRJd1NXNW1jbUVsTWpCRFFTVXlNREF6S0RFcExtTnlkREJXQmdnckJnRUZCUWN3QW9aS2FIUjBjRG92TDJOeWJETXVZVzFsTG1kaWJDOWhhV0V2UVUwelVFdEpTVTVVUTBFd01TNUJUVVV1UjBKTVgwRk5SU1V5TUVsdVpuSmhKVEl3UTBFbE1qQXdNeWd4S1M1amNuUXdWZ1lJS3dZQkJRVUhNQUtHU21oMGRIQTZMeTlqY213MExtRnRaUzVuWW13dllXbGhMMEZOTTFCTFNVbE9WRU5CTURFdVFVMUZMa2RDVEY5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKME1CMEdBMVVkRGdRV0JCVHh6UENYZ1B6SVVpVHo5NHVzMHkwQ0NNZjhCekFPQmdOVkhROEJBZjhFQkFNQ0JhQXdnZ0UxQmdOVkhSOEVnZ0VzTUlJQktEQ0NBU1NnZ2dFZ29JSUJISVpDYUhSMGNEb3ZMMk55YkM1dGFXTnliM052Wm5RdVkyOXRMM0JyYVdsdVpuSmhMME5TVEM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc2hqUm9kSFJ3T2k4dlkzSnNNUzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc2hqUm9kSFJ3T2k4dlkzSnNNaTVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc2hqUm9kSFJ3T2k4dlkzSnNNeTVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc2hqUm9kSFJ3T2k4dlkzSnNOQzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc01JR2RCZ05WSFNBRWdaVXdnWkl3REFZS0t3WUJCQUdDTjNzQkFUQm1CZ29yQmdFRUFZSTNld0lDTUZnd1ZnWUlLd1lCQlFVSEFnSXdTaDVJQURNQU13QmxBREFBTVFBNUFESUFNUUF0QURRQVpBQTJBRFFBTFFBMEFHWUFPQUJqQUMwQVlRQXdBRFVBTlFBdEFEVUFZZ0JrQUdFQVpnQm1BR1FBTlFCbEFETUFNd0JrTUF3R0Npc0dBUVFCZ2pkN0F3SXdEQVlLS3dZQkJBR0NOM3NFQWpBZkJnTlZIU01FR0RBV2dCUklvNjFnZFdwdjdHRHphVlhSQUxFeVZfeHM1REFkQmdOVkhTVUVGakFVQmdnckJnRUZCUWNEQVFZSUt3WUJCUVVIQXdJd0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dJQkFBcU5LOUVqemRuYjlMNFR5YWtDcEpCeVJZVlROXzZuQ0didFVkMkUyc0VManVKR1JHaVJtdWpwX2pxTnlJb2ZPX2doU2FQX3RxSC0zV1JUUlVibnQ1eE04YUJZb1lKU09nS2dUc05yQjZjbHNwZGhDQ216aEp5NkVRdU9xZlVEbTNDN2hEcnUxX2JOM0R3WHQzVnBEcWZ1WXRNM01BYWJLZzBvQ1lWV2dGd25BS1ltWkxaTVdNUWg3a19oWnh5MWdPQ1FtRTlVMDh0Zl9wVTIxYUkwRWw2bjVBNXVHMkZUMHBsYWN3Y2hoZUZtWEF0b1BqVDduVTUzSFZtUmlzc3hVUl92UkNEal9aQ0ZvM0szblpOWENRT0tQQU1jOS1MQzBwcmI5U2xnNnNpS3RTSEIzaUdqTlFsVDktbmJTbkRnaWZJOHpDMWN2VDhDZGFOTE9tVXl3UklCNHd2Um4xejEyM051eWZKYUl6OTVpZ1c5UDE4OXZCVEpFWlJFRi1NZ0pFYm9XS2RsR05uNmJiQnR1MHdhcUFtVVU3V1ZMZVpLZHRVSTZFRUtGN3dSR1l1WV9CaFp4MWlweVhuQkhacHN1ZnVINEF3Z09PMjg5UUttcWc4UUF5N0hGRDljOEg4Zk5DdFI3c1RaNFlOUDJBaEVhRVMwcmtNU1FVQ05WRXo0MllFQmkyR2dyU3BuSTk0U1BkYjNKM1BrQ01aNE9nRlJqenRMTzducmdiUHRmbGhTT29fVk9FMF83WTc0a200M1dBTVFQS0wzLTQ0dlFyRVE2MUhkXzI0SWNGaF9DaE5YdlVEcXAzOUd6WWxPM0QwemxhdTRvemxsOEJlTFVackp3SFRRV1pTOFhSLUVpZkNsNE1XNVkzWTFTeE9Mckl4bnVrQ3pReEw3YUdtYyZzPWJGelBfUzJJamIzUG5zT2Z3a2tjVGMyME5iRFJRRkc5cFJidGhQcEE0ejFqZkRZNzJSYU9yX3RJZWJKR2ZTNnVkaDhIZll0UkZPWVJOLVFFRHFVTFFCVW1CbHNKc3N2a2ZMekt3eFh1NEZhU1pjbXpTTHZjdHdhcTJtd1d2SEhkckM3YVRHMUpQc2VaVTlQRGFKcE5zbzlkQzlaMmRpcl9kX1R3WXB5X2doRm5DVWhGalRGSks5RHRPV3VPeEQ3Q2I2bmtYYlZfOVZxVkFoa0x3eFZRUVc2YkEwMEkzVVR0Z1FrYTM2QW4ybDRjT3dFRFZLX19uUDJiLVJzd2tId0VhUE1ra2F5UUdJWmQwNkpQa215bnNCalY2RVR1OW05WjMtS1JTb0dCbDRVbDd0UmRuanF5X3ZyZU1MVzVnbk1oczhZSW5QOEY4OWNWdXk2T3dVLVVOQSZoPUktdUN4MUVzUHNmaGxkaFRodFVTd2F6enFvMFFmaG52eGVucVVoQTFXOVk=", "RequestMethod": "GET", "RequestHeaders": { "User-Agent": [ "FxVersion/8.0.2025.41914", "OSName/Windows", "OSVersion/Microsoft.Windows.10.0.26100", - "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.109" + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.110" ] }, "RequestBody": "", @@ -1425,13 +1425,13 @@ "16499" ], "x-ms-request-id": [ - "34476380-c128-40f2-bd25-c656be9d4b39" + "76fc3582-031c-4523-9006-b001b9e3d900" ], "x-ms-correlation-request-id": [ - "34476380-c128-40f2-bd25-c656be9d4b39" + "76fc3582-031c-4523-9006-b001b9e3d900" ], "x-ms-routing-request-id": [ - "WESTUS2:20250911T201229Z:34476380-c128-40f2-bd25-c656be9d4b39" + "WESTUS2:20250917T221325Z:76fc3582-031c-4523-9006-b001b9e3d900" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -1443,10 +1443,10 @@ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: E74D46DA57D745978FFFD400C177BABC Ref B: CO6AA3150219035 Ref C: 2025-09-11T20:12:29Z" + "Ref A: 6BEBE42A73A64146B587072512DC0523 Ref B: MWH011020809054 Ref C: 2025-09-17T22:13:25Z" ], "Date": [ - "Thu, 11 Sep 2025 20:12:29 GMT" + "Wed, 17 Sep 2025 22:13:24 GMT" ], "Expires": [ "-1" @@ -1459,15 +1459,15 @@ "StatusCode": 200 }, { - "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QUzM2OTgtV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2016-09-01&t=638932183344055381&c=MIIIpTCCBo2gAwIBAgITFgGsmnj73LBE7PaBtQABAayaeDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDMwHhcNMjUwNzE4MTIwNDI4WhcNMjYwMTE0MTIwNDI4WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKYwXiklImL5-WfPWj2FX3_Y-JxCd3XXEOuNXx5ggHubZZamujLTqEBSFsFYiH_9NCaqKTiATXu6fBpzW3ghgYhwr0PL071fQT15KnnNUFjd5hFXB7SYti9IwWu1lxSAz-De7HivujKdlsgcmfoV6upRQ0eva9e74EwLV9pCn4WQAhs-6T8p0CytQsi81qHMWybAbNvfom0ox78IEWdS_6g_d4Jl_I4ccYLMyRTOV2NioM96cRECWCZhbpLl1zwoYGSbU5H0MZaiCBjPlhXN40BqagpamZfP98sPYSBfreh6-iMGU5tNTRkh8RiJqzjhzIUpEv3PqLtWTyPUB8JS7aUCAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9BTTNQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAzKDEpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MB0GA1UdDgQWBBTxzPCXgPzIUiTz94us0y0CCMf8BzAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBRIo61gdWpv7GDzaVXRALEyV_xs5DAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggIBAAqNK9Ejzdnb9L4TyakCpJByRYVTN_6nCGbtUd2E2sELjuJGRGiRmujp_jqNyIofO_ghSaP_tqH-3WRTRUbnt5xM8aBYoYJSOgKgTsNrB6clspdhCCmzhJy6EQuOqfUDm3C7hDru1_bN3DwXt3VpDqfuYtM3MAabKg0oCYVWgFwnAKYmZLZMWMQh7k_hZxy1gOCQmE9U08tf_pU21aI0El6n5A5uG2FT0placwchheFmXAtoPjT7nU53HVmRissxUR_vRCDj_ZCFo3K3nZNXCQOKPAMc9-LC0prb9Slg6siKtSHB3iGjNQlT9-nbSnDgifI8zC1cvT8CdaNLOmUywRIB4wvRn1z123NuyfJaIz95igW9P189vBTJEZREF-MgJEboWKdlGNn6bbBtu0waqAmUU7WVLeZKdtUI6EEKF7wRGYuY_BhZx1ipyXnBHZpsufuH4AwgOO289QKmqg8QAy7HFD9c8H8fNCtR7sTZ4YNP2AhEaES0rkMSQUCNVEz42YEBi2GgrSpnI94SPdb3J3PkCMZ4OgFRjztLO7nrgbPtflhSOo_VOE0_7Y74km43WAMQPKL3-44vQrEQ61Hd_24IcFh_ChNXvUDqp39GzYlO3D0zlau4ozll8BeLUZrJwHTQWZS8XR-EifCl4MW5Y3Y1SxOLrIxnukCzQxL7aGmc&s=oBeP9dw2YFSo2KLmM8vAVmmgaMFzgYYpfAax1Eq8cqoXaWge6SsFVgY-0-s_cY8ro2LO91pt4BvXHVPX_llRdCBoby05agABQvsS6wCqmRS4n4DPUUsJj8s-OZ6ox54eVDjk43tUsil_hUxZiZzwzuy29X6Qar5kpq6PBiUJbe0Xoxg4Zd7UYvTTbEMXYXiwRqzhvixg6xOrfr37V9F6lrtp-8ECYW8K0r3XZTZoeRENM9BcqC49YpILwn0H76AFCYHQGAQs-8EnxM_V51mRas5aJG4CrQLoQ4lAK21njcDFQvZjQCKnR67jPFmfLMAl7AFmqIcLpGA_SsihtJz19A&h=OGBaqLTK1H2PKJDJzFJPCQ3ICCoGk_C47BcDu0f9zJ0", - "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVXpNMk9UZ3RWMFZUVkZWVE1pSXNJbXB2WWt4dlkyRjBhVzl1SWpvaWQyVnpkSFZ6TWlKOT9hcGktdmVyc2lvbj0yMDE2LTA5LTAxJnQ9NjM4OTMyMTgzMzQ0MDU1MzgxJmM9TUlJSXBUQ0NCbzJnQXdJQkFnSVRGZ0dzbW5qNzNMQkU3UGFCdFFBQkFheWFlREFOQmdrcWhraUc5dzBCQVFzRkFEQkVNUk13RVFZS0NaSW1pWlB5TEdRQkdSWURSMEpNTVJNd0VRWUtDWkltaVpQeUxHUUJHUllEUVUxRk1SZ3dGZ1lEVlFRREV3OUJUVVVnU1c1bWNtRWdRMEVnTURNd0hoY05NalV3TnpFNE1USXdOREk0V2hjTk1qWXdNVEUwTVRJd05ESTRXakJBTVQ0d1BBWURWUVFERXpWaGMzbHVZMjl3WlhKaGRHbHZibk5wWjI1cGJtZGpaWEowYVdacFkyRjBaUzV0WVc1aFoyVnRaVzUwTG1GNmRYSmxMbU52YlRDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBS1l3WGlrbEltTDUtV2ZQV2oyRlgzX1ktSnhDZDNYWEVPdU5YeDVnZ0h1YlpaYW11akxUcUVCU0ZzRllpSF85TkNhcUtUaUFUWHU2ZkJwelczZ2hnWWh3cjBQTDA3MWZRVDE1S25uTlVGamQ1aEZYQjdTWXRpOUl3V3UxbHhTQXotRGU3SGl2dWpLZGxzZ2NtZm9WNnVwUlEwZXZhOWU3NEV3TFY5cENuNFdRQWhzLTZUOHAwQ3l0UXNpODFxSE1XeWJBYk52Zm9tMG94NzhJRVdkU182Z19kNEpsX0k0Y2NZTE15UlRPVjJOaW9NOTZjUkVDV0NaaGJwTGwxendvWUdTYlU1SDBNWmFpQ0JqUGxoWE40MEJxYWdwYW1aZlA5OHNQWVNCZnJlaDYtaU1HVTV0TlRSa2g4UmlKcXpqaHpJVXBFdjNQcUx0V1R5UFVCOEpTN2FVQ0F3RUFBYU9DQkpJd2dnU09NQ2NHQ1NzR0FRUUJnamNWQ2dRYU1CZ3dDZ1lJS3dZQkJRVUhBd0V3Q2dZSUt3WUJCUVVIQXdJd1BRWUpLd1lCQkFHQ054VUhCREF3TGdZbUt3WUJCQUdDTnhVSWhwRGpEWVRWdEhpRThZcy1oWnZkRnM2ZEVvRmdoZm1SUzRXc21UUUNBV1FDQVFjd2dnSGFCZ2dyQmdFRkJRY0JBUVNDQWN3d2dnSElNR1lHQ0NzR0FRVUZCekFDaGxwb2RIUndPaTh2WTNKc0xtMXBZM0p2YzI5bWRDNWpiMjB2Y0d0cGFXNW1jbUV2UTJWeWRITXZRVTB6VUV0SlNVNVVRMEV3TVM1QlRVVXVSMEpNWDBGTlJTVXlNRWx1Wm5KaEpUSXdRMEVsTWpBd015Z3hLUzVqY25Rd1ZnWUlLd1lCQlFVSE1BS0dTbWgwZEhBNkx5OWpjbXd4TG1GdFpTNW5ZbXd2WVdsaEwwRk5NMUJMU1VsT1ZFTkJNREV1UVUxRkxrZENURjlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURNb01Ta3VZM0owTUZZR0NDc0dBUVVGQnpBQ2hrcG9kSFJ3T2k4dlkzSnNNaTVoYldVdVoySnNMMkZwWVM5QlRUTlFTMGxKVGxSRFFUQXhMa0ZOUlM1SFFreGZRVTFGSlRJd1NXNW1jbUVsTWpCRFFTVXlNREF6S0RFcExtTnlkREJXQmdnckJnRUZCUWN3QW9aS2FIUjBjRG92TDJOeWJETXVZVzFsTG1kaWJDOWhhV0V2UVUwelVFdEpTVTVVUTBFd01TNUJUVVV1UjBKTVgwRk5SU1V5TUVsdVpuSmhKVEl3UTBFbE1qQXdNeWd4S1M1amNuUXdWZ1lJS3dZQkJRVUhNQUtHU21oMGRIQTZMeTlqY213MExtRnRaUzVuWW13dllXbGhMMEZOTTFCTFNVbE9WRU5CTURFdVFVMUZMa2RDVEY5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKME1CMEdBMVVkRGdRV0JCVHh6UENYZ1B6SVVpVHo5NHVzMHkwQ0NNZjhCekFPQmdOVkhROEJBZjhFQkFNQ0JhQXdnZ0UxQmdOVkhSOEVnZ0VzTUlJQktEQ0NBU1NnZ2dFZ29JSUJISVpDYUhSMGNEb3ZMMk55YkM1dGFXTnliM052Wm5RdVkyOXRMM0JyYVdsdVpuSmhMME5TVEM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc2hqUm9kSFJ3T2k4dlkzSnNNUzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc2hqUm9kSFJ3T2k4dlkzSnNNaTVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc2hqUm9kSFJ3T2k4dlkzSnNNeTVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc2hqUm9kSFJ3T2k4dlkzSnNOQzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc01JR2RCZ05WSFNBRWdaVXdnWkl3REFZS0t3WUJCQUdDTjNzQkFUQm1CZ29yQmdFRUFZSTNld0lDTUZnd1ZnWUlLd1lCQlFVSEFnSXdTaDVJQURNQU13QmxBREFBTVFBNUFESUFNUUF0QURRQVpBQTJBRFFBTFFBMEFHWUFPQUJqQUMwQVlRQXdBRFVBTlFBdEFEVUFZZ0JrQUdFQVpnQm1BR1FBTlFCbEFETUFNd0JrTUF3R0Npc0dBUVFCZ2pkN0F3SXdEQVlLS3dZQkJBR0NOM3NFQWpBZkJnTlZIU01FR0RBV2dCUklvNjFnZFdwdjdHRHphVlhSQUxFeVZfeHM1REFkQmdOVkhTVUVGakFVQmdnckJnRUZCUWNEQVFZSUt3WUJCUVVIQXdJd0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dJQkFBcU5LOUVqemRuYjlMNFR5YWtDcEpCeVJZVlROXzZuQ0didFVkMkUyc0VManVKR1JHaVJtdWpwX2pxTnlJb2ZPX2doU2FQX3RxSC0zV1JUUlVibnQ1eE04YUJZb1lKU09nS2dUc05yQjZjbHNwZGhDQ216aEp5NkVRdU9xZlVEbTNDN2hEcnUxX2JOM0R3WHQzVnBEcWZ1WXRNM01BYWJLZzBvQ1lWV2dGd25BS1ltWkxaTVdNUWg3a19oWnh5MWdPQ1FtRTlVMDh0Zl9wVTIxYUkwRWw2bjVBNXVHMkZUMHBsYWN3Y2hoZUZtWEF0b1BqVDduVTUzSFZtUmlzc3hVUl92UkNEal9aQ0ZvM0szblpOWENRT0tQQU1jOS1MQzBwcmI5U2xnNnNpS3RTSEIzaUdqTlFsVDktbmJTbkRnaWZJOHpDMWN2VDhDZGFOTE9tVXl3UklCNHd2Um4xejEyM051eWZKYUl6OTVpZ1c5UDE4OXZCVEpFWlJFRi1NZ0pFYm9XS2RsR05uNmJiQnR1MHdhcUFtVVU3V1ZMZVpLZHRVSTZFRUtGN3dSR1l1WV9CaFp4MWlweVhuQkhacHN1ZnVINEF3Z09PMjg5UUttcWc4UUF5N0hGRDljOEg4Zk5DdFI3c1RaNFlOUDJBaEVhRVMwcmtNU1FVQ05WRXo0MllFQmkyR2dyU3BuSTk0U1BkYjNKM1BrQ01aNE9nRlJqenRMTzducmdiUHRmbGhTT29fVk9FMF83WTc0a200M1dBTVFQS0wzLTQ0dlFyRVE2MUhkXzI0SWNGaF9DaE5YdlVEcXAzOUd6WWxPM0QwemxhdTRvemxsOEJlTFVackp3SFRRV1pTOFhSLUVpZkNsNE1XNVkzWTFTeE9Mckl4bnVrQ3pReEw3YUdtYyZzPW9CZVA5ZHcyWUZTbzJLTG1NOHZBVm1tZ2FNRnpnWVlwZkFheDFFcThjcW9YYVdnZTZTc0ZWZ1ktMC1zX2NZOHJvMkxPOTFwdDRCdlhIVlBYX2xsUmRDQm9ieTA1YWdBQlF2c1M2d0NxbVJTNG40RFBVVXNKajhzLU9aNm94NTRlVkRqazQzdFVzaWxfaFV4Wmlaend6dXkyOVg2UWFyNWtwcTZQQmlVSmJlMFhveGc0WmQ3VVl2VFRiRU1YWVhpd1Jxemh2aXhnNnhPcmZyMzdWOUY2bHJ0cC04RUNZVzhLMHIzWFpUWm9lUkVOTTlCY3FDNDlZcElMd24wSDc2QUZDWUhRR0FRcy04RW54TV9WNTFtUmFzNWFKRzRDclFMb1E0bEFLMjFuamNERlF2WmpRQ0tuUjY3alBGbWZMTUFsN0FGbXFJY0xwR0FfU3NpaHRKejE5QSZoPU9HQmFxTFRLMUgyUEtKREp6RkpQQ1EzSUNDb0drX0M0N0JjRHUwZjl6SjA=", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1QUzczMTAtV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2016-09-01&t=638937439904806611&c=MIIIpTCCBo2gAwIBAgITFgGsmnj73LBE7PaBtQABAayaeDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDMwHhcNMjUwNzE4MTIwNDI4WhcNMjYwMTE0MTIwNDI4WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKYwXiklImL5-WfPWj2FX3_Y-JxCd3XXEOuNXx5ggHubZZamujLTqEBSFsFYiH_9NCaqKTiATXu6fBpzW3ghgYhwr0PL071fQT15KnnNUFjd5hFXB7SYti9IwWu1lxSAz-De7HivujKdlsgcmfoV6upRQ0eva9e74EwLV9pCn4WQAhs-6T8p0CytQsi81qHMWybAbNvfom0ox78IEWdS_6g_d4Jl_I4ccYLMyRTOV2NioM96cRECWCZhbpLl1zwoYGSbU5H0MZaiCBjPlhXN40BqagpamZfP98sPYSBfreh6-iMGU5tNTRkh8RiJqzjhzIUpEv3PqLtWTyPUB8JS7aUCAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9BTTNQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAzKDEpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQU0zUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMygxKS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0FNM1BLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3J0MB0GA1UdDgQWBBTxzPCXgPzIUiTz94us0y0CCMf8BzAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDMoMSkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwIwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBRIo61gdWpv7GDzaVXRALEyV_xs5DAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggIBAAqNK9Ejzdnb9L4TyakCpJByRYVTN_6nCGbtUd2E2sELjuJGRGiRmujp_jqNyIofO_ghSaP_tqH-3WRTRUbnt5xM8aBYoYJSOgKgTsNrB6clspdhCCmzhJy6EQuOqfUDm3C7hDru1_bN3DwXt3VpDqfuYtM3MAabKg0oCYVWgFwnAKYmZLZMWMQh7k_hZxy1gOCQmE9U08tf_pU21aI0El6n5A5uG2FT0placwchheFmXAtoPjT7nU53HVmRissxUR_vRCDj_ZCFo3K3nZNXCQOKPAMc9-LC0prb9Slg6siKtSHB3iGjNQlT9-nbSnDgifI8zC1cvT8CdaNLOmUywRIB4wvRn1z123NuyfJaIz95igW9P189vBTJEZREF-MgJEboWKdlGNn6bbBtu0waqAmUU7WVLeZKdtUI6EEKF7wRGYuY_BhZx1ipyXnBHZpsufuH4AwgOO289QKmqg8QAy7HFD9c8H8fNCtR7sTZ4YNP2AhEaES0rkMSQUCNVEz42YEBi2GgrSpnI94SPdb3J3PkCMZ4OgFRjztLO7nrgbPtflhSOo_VOE0_7Y74km43WAMQPKL3-44vQrEQ61Hd_24IcFh_ChNXvUDqp39GzYlO3D0zlau4ozll8BeLUZrJwHTQWZS8XR-EifCl4MW5Y3Y1SxOLrIxnukCzQxL7aGmc&s=bFzP_S2Ijb3PnsOfwkkcTc20NbDRQFG9pRbthPpA4z1jfDY72RaOr_tIebJGfS6udh8HfYtRFOYRN-QEDqULQBUmBlsJssvkfLzKwxXu4FaSZcmzSLvctwaq2mwWvHHdrC7aTG1JPseZU9PDaJpNso9dC9Z2dir_d_TwYpy_ghFnCUhFjTFJK9DtOWuOxD7Cb6nkXbV_9VqVAhkLwxVQQW6bA00I3UTtgQka36An2l4cOwEDVK__nP2b-RswkHwEaPMkkayQGIZd06JPkmynsBjV6ETu9m9Z3-KRSoGBl4Ul7tRdnjqy_vreMLW5gnMhs8YInP8F89cVuy6OwU-UNA&h=I-uCx1EsPsfhldhThtUSwazzqo0QfhnvxenqUhA1W9Y", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL29wZXJhdGlvbnJlc3VsdHMvZXlKcWIySkpaQ0k2SWxKRlUwOVZVa05GUjFKUFZWQkVSVXhGVkVsUFRrcFBRaTFRVXpjek1UQXRWMFZUVkZWVE1pSXNJbXB2WWt4dlkyRjBhVzl1SWpvaWQyVnpkSFZ6TWlKOT9hcGktdmVyc2lvbj0yMDE2LTA5LTAxJnQ9NjM4OTM3NDM5OTA0ODA2NjExJmM9TUlJSXBUQ0NCbzJnQXdJQkFnSVRGZ0dzbW5qNzNMQkU3UGFCdFFBQkFheWFlREFOQmdrcWhraUc5dzBCQVFzRkFEQkVNUk13RVFZS0NaSW1pWlB5TEdRQkdSWURSMEpNTVJNd0VRWUtDWkltaVpQeUxHUUJHUllEUVUxRk1SZ3dGZ1lEVlFRREV3OUJUVVVnU1c1bWNtRWdRMEVnTURNd0hoY05NalV3TnpFNE1USXdOREk0V2hjTk1qWXdNVEUwTVRJd05ESTRXakJBTVQ0d1BBWURWUVFERXpWaGMzbHVZMjl3WlhKaGRHbHZibk5wWjI1cGJtZGpaWEowYVdacFkyRjBaUzV0WVc1aFoyVnRaVzUwTG1GNmRYSmxMbU52YlRDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBS1l3WGlrbEltTDUtV2ZQV2oyRlgzX1ktSnhDZDNYWEVPdU5YeDVnZ0h1YlpaYW11akxUcUVCU0ZzRllpSF85TkNhcUtUaUFUWHU2ZkJwelczZ2hnWWh3cjBQTDA3MWZRVDE1S25uTlVGamQ1aEZYQjdTWXRpOUl3V3UxbHhTQXotRGU3SGl2dWpLZGxzZ2NtZm9WNnVwUlEwZXZhOWU3NEV3TFY5cENuNFdRQWhzLTZUOHAwQ3l0UXNpODFxSE1XeWJBYk52Zm9tMG94NzhJRVdkU182Z19kNEpsX0k0Y2NZTE15UlRPVjJOaW9NOTZjUkVDV0NaaGJwTGwxendvWUdTYlU1SDBNWmFpQ0JqUGxoWE40MEJxYWdwYW1aZlA5OHNQWVNCZnJlaDYtaU1HVTV0TlRSa2g4UmlKcXpqaHpJVXBFdjNQcUx0V1R5UFVCOEpTN2FVQ0F3RUFBYU9DQkpJd2dnU09NQ2NHQ1NzR0FRUUJnamNWQ2dRYU1CZ3dDZ1lJS3dZQkJRVUhBd0V3Q2dZSUt3WUJCUVVIQXdJd1BRWUpLd1lCQkFHQ054VUhCREF3TGdZbUt3WUJCQUdDTnhVSWhwRGpEWVRWdEhpRThZcy1oWnZkRnM2ZEVvRmdoZm1SUzRXc21UUUNBV1FDQVFjd2dnSGFCZ2dyQmdFRkJRY0JBUVNDQWN3d2dnSElNR1lHQ0NzR0FRVUZCekFDaGxwb2RIUndPaTh2WTNKc0xtMXBZM0p2YzI5bWRDNWpiMjB2Y0d0cGFXNW1jbUV2UTJWeWRITXZRVTB6VUV0SlNVNVVRMEV3TVM1QlRVVXVSMEpNWDBGTlJTVXlNRWx1Wm5KaEpUSXdRMEVsTWpBd015Z3hLUzVqY25Rd1ZnWUlLd1lCQlFVSE1BS0dTbWgwZEhBNkx5OWpjbXd4TG1GdFpTNW5ZbXd2WVdsaEwwRk5NMUJMU1VsT1ZFTkJNREV1UVUxRkxrZENURjlCVFVVbE1qQkpibVp5WVNVeU1FTkJKVEl3TURNb01Ta3VZM0owTUZZR0NDc0dBUVVGQnpBQ2hrcG9kSFJ3T2k4dlkzSnNNaTVoYldVdVoySnNMMkZwWVM5QlRUTlFTMGxKVGxSRFFUQXhMa0ZOUlM1SFFreGZRVTFGSlRJd1NXNW1jbUVsTWpCRFFTVXlNREF6S0RFcExtTnlkREJXQmdnckJnRUZCUWN3QW9aS2FIUjBjRG92TDJOeWJETXVZVzFsTG1kaWJDOWhhV0V2UVUwelVFdEpTVTVVUTBFd01TNUJUVVV1UjBKTVgwRk5SU1V5TUVsdVpuSmhKVEl3UTBFbE1qQXdNeWd4S1M1amNuUXdWZ1lJS3dZQkJRVUhNQUtHU21oMGRIQTZMeTlqY213MExtRnRaUzVuWW13dllXbGhMMEZOTTFCTFNVbE9WRU5CTURFdVFVMUZMa2RDVEY5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKME1CMEdBMVVkRGdRV0JCVHh6UENYZ1B6SVVpVHo5NHVzMHkwQ0NNZjhCekFPQmdOVkhROEJBZjhFQkFNQ0JhQXdnZ0UxQmdOVkhSOEVnZ0VzTUlJQktEQ0NBU1NnZ2dFZ29JSUJISVpDYUhSMGNEb3ZMMk55YkM1dGFXTnliM052Wm5RdVkyOXRMM0JyYVdsdVpuSmhMME5TVEM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc2hqUm9kSFJ3T2k4dlkzSnNNUzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc2hqUm9kSFJ3T2k4dlkzSnNNaTVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc2hqUm9kSFJ3T2k4dlkzSnNNeTVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc2hqUm9kSFJ3T2k4dlkzSnNOQzVoYldVdVoySnNMMk55YkM5QlRVVWxNakJKYm1aeVlTVXlNRU5CSlRJd01ETW9NU2t1WTNKc01JR2RCZ05WSFNBRWdaVXdnWkl3REFZS0t3WUJCQUdDTjNzQkFUQm1CZ29yQmdFRUFZSTNld0lDTUZnd1ZnWUlLd1lCQlFVSEFnSXdTaDVJQURNQU13QmxBREFBTVFBNUFESUFNUUF0QURRQVpBQTJBRFFBTFFBMEFHWUFPQUJqQUMwQVlRQXdBRFVBTlFBdEFEVUFZZ0JrQUdFQVpnQm1BR1FBTlFCbEFETUFNd0JrTUF3R0Npc0dBUVFCZ2pkN0F3SXdEQVlLS3dZQkJBR0NOM3NFQWpBZkJnTlZIU01FR0RBV2dCUklvNjFnZFdwdjdHRHphVlhSQUxFeVZfeHM1REFkQmdOVkhTVUVGakFVQmdnckJnRUZCUWNEQVFZSUt3WUJCUVVIQXdJd0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dJQkFBcU5LOUVqemRuYjlMNFR5YWtDcEpCeVJZVlROXzZuQ0didFVkMkUyc0VManVKR1JHaVJtdWpwX2pxTnlJb2ZPX2doU2FQX3RxSC0zV1JUUlVibnQ1eE04YUJZb1lKU09nS2dUc05yQjZjbHNwZGhDQ216aEp5NkVRdU9xZlVEbTNDN2hEcnUxX2JOM0R3WHQzVnBEcWZ1WXRNM01BYWJLZzBvQ1lWV2dGd25BS1ltWkxaTVdNUWg3a19oWnh5MWdPQ1FtRTlVMDh0Zl9wVTIxYUkwRWw2bjVBNXVHMkZUMHBsYWN3Y2hoZUZtWEF0b1BqVDduVTUzSFZtUmlzc3hVUl92UkNEal9aQ0ZvM0szblpOWENRT0tQQU1jOS1MQzBwcmI5U2xnNnNpS3RTSEIzaUdqTlFsVDktbmJTbkRnaWZJOHpDMWN2VDhDZGFOTE9tVXl3UklCNHd2Um4xejEyM051eWZKYUl6OTVpZ1c5UDE4OXZCVEpFWlJFRi1NZ0pFYm9XS2RsR05uNmJiQnR1MHdhcUFtVVU3V1ZMZVpLZHRVSTZFRUtGN3dSR1l1WV9CaFp4MWlweVhuQkhacHN1ZnVINEF3Z09PMjg5UUttcWc4UUF5N0hGRDljOEg4Zk5DdFI3c1RaNFlOUDJBaEVhRVMwcmtNU1FVQ05WRXo0MllFQmkyR2dyU3BuSTk0U1BkYjNKM1BrQ01aNE9nRlJqenRMTzducmdiUHRmbGhTT29fVk9FMF83WTc0a200M1dBTVFQS0wzLTQ0dlFyRVE2MUhkXzI0SWNGaF9DaE5YdlVEcXAzOUd6WWxPM0QwemxhdTRvemxsOEJlTFVackp3SFRRV1pTOFhSLUVpZkNsNE1XNVkzWTFTeE9Mckl4bnVrQ3pReEw3YUdtYyZzPWJGelBfUzJJamIzUG5zT2Z3a2tjVGMyME5iRFJRRkc5cFJidGhQcEE0ejFqZkRZNzJSYU9yX3RJZWJKR2ZTNnVkaDhIZll0UkZPWVJOLVFFRHFVTFFCVW1CbHNKc3N2a2ZMekt3eFh1NEZhU1pjbXpTTHZjdHdhcTJtd1d2SEhkckM3YVRHMUpQc2VaVTlQRGFKcE5zbzlkQzlaMmRpcl9kX1R3WXB5X2doRm5DVWhGalRGSks5RHRPV3VPeEQ3Q2I2bmtYYlZfOVZxVkFoa0x3eFZRUVc2YkEwMEkzVVR0Z1FrYTM2QW4ybDRjT3dFRFZLX19uUDJiLVJzd2tId0VhUE1ra2F5UUdJWmQwNkpQa215bnNCalY2RVR1OW05WjMtS1JTb0dCbDRVbDd0UmRuanF5X3ZyZU1MVzVnbk1oczhZSW5QOEY4OWNWdXk2T3dVLVVOQSZoPUktdUN4MUVzUHNmaGxkaFRodFVTd2F6enFvMFFmaG52eGVucVVoQTFXOVk=", "RequestMethod": "GET", "RequestHeaders": { "User-Agent": [ "FxVersion/8.0.2025.41914", "OSName/Windows", "OSVersion/Microsoft.Windows.10.0.26100", - "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.109" + "Microsoft.Azure.Management.Internal.Resources.ResourceManagementClient/1.3.110" ] }, "RequestBody": "", @@ -1485,13 +1485,13 @@ "16499" ], "x-ms-request-id": [ - "9f2acdcb-d778-4487-b3dc-80d3c8699d23" + "d291c5fa-d812-4d32-a046-3d818df525e1" ], "x-ms-correlation-request-id": [ - "9f2acdcb-d778-4487-b3dc-80d3c8699d23" + "d291c5fa-d812-4d32-a046-3d818df525e1" ], "x-ms-routing-request-id": [ - "WESTUS2:20250911T201229Z:9f2acdcb-d778-4487-b3dc-80d3c8699d23" + "WESTUS2:20250917T221325Z:d291c5fa-d812-4d32-a046-3d818df525e1" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -1503,10 +1503,10 @@ "CONFIG_NOCACHE" ], "X-MSEdge-Ref": [ - "Ref A: 684B981E1BAE40DFB1DA9DE3A9790E46 Ref B: CO6AA3150219035 Ref C: 2025-09-11T20:12:29Z" + "Ref A: 4B8EBA15A37F406F8C37BFBD8B828996 Ref B: MWH011020809054 Ref C: 2025-09-17T22:13:25Z" ], "Date": [ - "Thu, 11 Sep 2025 20:12:29 GMT" + "Wed, 17 Sep 2025 22:13:25 GMT" ], "Expires": [ "-1" @@ -1521,8 +1521,8 @@ ], "Names": { "Test-BatchAccountEndToEnd": [ - "ps8437", - "ps3698" + "ps4278", + "ps7310" ] }, "Variables": { diff --git a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.JobTests/TestJobCRUD.json b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.JobTests/TestJobCRUD.json index d3208ade541a..51d05379778d 100644 --- a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.JobTests/TestJobCRUD.json +++ b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.JobTests/TestJobCRUD.json @@ -1,27 +1,27 @@ { "Entries": [ { - "RequestUri": "/jobs?api-version=2024-02-01.19.0", - "EncodedRequestUri": "L2pvYnM/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4w", + "RequestUri": "/jobs?api-version=2024-07-01.20.0", + "EncodedRequestUri": "L2pvYnM/YXBpLXZlcnNpb249MjAyNC0wNy0wMS4yMC4w", "RequestMethod": "POST", "RequestHeaders": { "Accept-Language": [ "en-US" ], "client-request-id": [ - "17f2e86d-36ec-4c18-a847-cfe6193fda2d" + "72b62516-a2cf-4ef0-b7db-43a2a8695ff6" ], "ocp-date": [ - "Thu, 11 Sep 2025 22:42:13 GMT" + "Wed, 17 Sep 2025 22:24:13 GMT" ], "x-ms-client-request-id": [ - "737a33a7-a983-4411-83c0-ae0566c6c9ec" + "c81f4f62-7335-49f3-9a29-9ffa34891139" ], "User-Agent": [ "FxVersion/8.0.2025.41914", "OSName/Windows", "OSVersion/Microsoft.Windows.10.0.26100", - "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", + "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.300.124.47002", "AzurePowershell/Az1.0.0" ], "Content-Type": [ @@ -31,13 +31,13 @@ "280" ] }, - "RequestBody": "{\r\n \"id\": \"job1\",\r\n \"priority\": 0,\r\n \"commonEnvironmentSettings\": [\r\n {\r\n \"name\": \"ThisIsAString\",\r\n \"value\": \"Hello world\"\r\n },\r\n {\r\n \"name\": \"ThisIsNull\"\r\n }\r\n ],\r\n \"poolInfo\": {\r\n \"poolId\": \"testPool\"\r\n },\r\n \"usesTaskDependencies\": false\r\n}", + "RequestBody": "{\r\n \"id\": \"job1\",\r\n \"priority\": 0,\r\n \"commonEnvironmentSettings\": [\r\n {\r\n \"name\": \"ThisIsNull\"\r\n },\r\n {\r\n \"name\": \"ThisIsAString\",\r\n \"value\": \"Hello world\"\r\n }\r\n ],\r\n \"poolInfo\": {\r\n \"poolId\": \"testPool\"\r\n },\r\n \"usesTaskDependencies\": false\r\n}", "ResponseHeaders": { "Transfer-Encoding": [ "chunked" ], "ETag": [ - "0x8DDF18473AFA708" + "0x8DDF638EEEC95B7" ], "Location": [ "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/jobs/job-1" @@ -46,7 +46,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "ae7f548a-0ea4-4575-9dfb-bf56afd3d9ea" + "a2b8f9e4-1538-42d8-8247-d8d81162d377" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -61,37 +61,37 @@ "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/jobs/job-1" ], "Date": [ - "Thu, 11 Sep 2025 22:42:13 GMT" + "Wed, 17 Sep 2025 22:24:13 GMT" ], "Last-Modified": [ - "Thu, 11 Sep 2025 22:42:13 GMT" + "Wed, 17 Sep 2025 22:24:14 GMT" ] }, "ResponseBody": "", "StatusCode": 201 }, { - "RequestUri": "/jobs?api-version=2024-02-01.19.0", - "EncodedRequestUri": "L2pvYnM/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4w", + "RequestUri": "/jobs?api-version=2024-07-01.20.0", + "EncodedRequestUri": "L2pvYnM/YXBpLXZlcnNpb249MjAyNC0wNy0wMS4yMC4w", "RequestMethod": "POST", "RequestHeaders": { "Accept-Language": [ "en-US" ], "client-request-id": [ - "9960d8b3-5f6f-4aff-b9de-0937926e3e3b" + "bfa881cb-18c2-4465-925f-34cdb7413a02" ], "ocp-date": [ - "Thu, 11 Sep 2025 22:42:13 GMT" + "Wed, 17 Sep 2025 22:24:14 GMT" ], "x-ms-client-request-id": [ - "b4e632cb-e9cf-4af5-bf57-d2dec4175d36" + "5113fbbe-dd16-4cc3-9ade-971e99d914c5" ], "User-Agent": [ "FxVersion/8.0.2025.41914", "OSName/Windows", "OSVersion/Microsoft.Windows.10.0.26100", - "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", + "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.300.124.47002", "AzurePowershell/Az1.0.0" ], "Content-Type": [ @@ -107,7 +107,7 @@ "chunked" ], "ETag": [ - "0x8DDF18473C2B99C" + "0x8DDF638EF0615E4" ], "Location": [ "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/jobs/job-1" @@ -116,7 +116,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "de22a4dc-0fa7-434b-b63f-b21d9cfa4778" + "1f092a3e-c43c-4dbf-a0e3-d52781ef931c" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -131,37 +131,37 @@ "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/jobs/job-1" ], "Date": [ - "Thu, 11 Sep 2025 22:42:13 GMT" + "Wed, 17 Sep 2025 22:24:13 GMT" ], "Last-Modified": [ - "Thu, 11 Sep 2025 22:42:13 GMT" + "Wed, 17 Sep 2025 22:24:14 GMT" ] }, "ResponseBody": "", "StatusCode": 201 }, { - "RequestUri": "/jobs?api-version=2024-02-01.19.0&$filter=id%20eq%20%27job1%27%20or%20id%20eq%20%27job2%27", - "EncodedRequestUri": "L2pvYnM/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4wJiRmaWx0ZXI9aWQlMjBlcSUyMCUyN2pvYjElMjclMjBvciUyMGlkJTIwZXElMjAlMjdqb2IyJTI3", + "RequestUri": "/jobs?api-version=2024-07-01.20.0&$filter=id%20eq%20%27job1%27%20or%20id%20eq%20%27job2%27", + "EncodedRequestUri": "L2pvYnM/YXBpLXZlcnNpb249MjAyNC0wNy0wMS4yMC4wJiRmaWx0ZXI9aWQlMjBlcSUyMCUyN2pvYjElMjclMjBvciUyMGlkJTIwZXElMjAlMjdqb2IyJTI3", "RequestMethod": "GET", "RequestHeaders": { "Accept-Language": [ "en-US" ], "client-request-id": [ - "f74e0a4e-f4e0-425f-a5bd-bdf702ac8937" + "44149382-1e30-4eae-b396-a316e37c02af" ], "ocp-date": [ - "Thu, 11 Sep 2025 22:42:13 GMT" + "Wed, 17 Sep 2025 22:24:14 GMT" ], "x-ms-client-request-id": [ - "ff7e8588-4b7e-4190-9eba-af342e41d701" + "15324bf0-4c6f-41b2-844f-a3a2eb67f7e0" ], "User-Agent": [ "FxVersion/8.0.2025.41914", "OSName/Windows", "OSVersion/Microsoft.Windows.10.0.26100", - "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", + "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.300.124.47002", "AzurePowershell/Az1.0.0" ] }, @@ -174,7 +174,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "0c091c76-4711-4758-ab84-d72982a8b4c4" + "66727460-88fe-43d5-82a8-094f87def168" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -186,37 +186,37 @@ "3.0" ], "Date": [ - "Thu, 11 Sep 2025 22:42:13 GMT" + "Wed, 17 Sep 2025 22:24:13 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#jobs\",\r\n \"value\": [\r\n {\r\n \"id\": \"job1\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/jobs/job1\",\r\n \"eTag\": \"0x8DDF18473AFA708\",\r\n \"lastModified\": \"2025-09-11T22:42:13.5346952Z\",\r\n \"creationTime\": \"2025-09-11T22:42:13.5186923Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T22:42:13.5346952Z\",\r\n \"priority\": 0,\r\n \"maxParallelTasks\": -1,\r\n \"usesTaskDependencies\": false,\r\n \"allowTaskPreemption\": false,\r\n \"constraints\": {\r\n \"maxWallClockTime\": \"P10675199DT2H48M5.4775807S\",\r\n \"maxTaskRetryCount\": 0\r\n },\r\n \"commonEnvironmentSettings\": [\r\n {\r\n \"name\": \"ThisIsAString\",\r\n \"value\": \"Hello world\"\r\n },\r\n {\r\n \"name\": \"ThisIsNull\"\r\n }\r\n ],\r\n \"poolInfo\": {\r\n \"poolId\": \"testPool\"\r\n },\r\n \"executionInfo\": {\r\n \"startTime\": \"2025-09-11T22:42:13.5346952Z\",\r\n \"poolId\": \"testPool\"\r\n },\r\n \"onAllTasksComplete\": \"noaction\",\r\n \"onTaskFailure\": \"noaction\"\r\n },\r\n {\r\n \"id\": \"job2\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/jobs/job2\",\r\n \"eTag\": \"0x8DDF18473C2B99C\",\r\n \"lastModified\": \"2025-09-11T22:42:13.6596892Z\",\r\n \"creationTime\": \"2025-09-11T22:42:13.6436903Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T22:42:13.6596892Z\",\r\n \"priority\": 3,\r\n \"maxParallelTasks\": -1,\r\n \"usesTaskDependencies\": false,\r\n \"allowTaskPreemption\": false,\r\n \"constraints\": {\r\n \"maxWallClockTime\": \"P10675199DT2H48M5.4775807S\",\r\n \"maxTaskRetryCount\": 0\r\n },\r\n \"poolInfo\": {\r\n \"poolId\": \"testPool2\"\r\n },\r\n \"executionInfo\": {\r\n \"startTime\": \"2025-09-11T22:42:13.6596892Z\",\r\n \"poolId\": \"testPool2\"\r\n },\r\n \"onAllTasksComplete\": \"noaction\",\r\n \"onTaskFailure\": \"noaction\"\r\n }\r\n ]\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#jobs\",\r\n \"value\": [\r\n {\r\n \"id\": \"job1\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/jobs/job1\",\r\n \"eTag\": \"0x8DDF638EEEC95B7\",\r\n \"lastModified\": \"2025-09-17T22:24:14.3562167Z\",\r\n \"creationTime\": \"2025-09-17T22:24:14.340218Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-17T22:24:14.3562167Z\",\r\n \"priority\": 0,\r\n \"maxParallelTasks\": -1,\r\n \"usesTaskDependencies\": false,\r\n \"allowTaskPreemption\": false,\r\n \"constraints\": {\r\n \"maxWallClockTime\": \"P10675199DT2H48M5.4775807S\",\r\n \"maxTaskRetryCount\": 0\r\n },\r\n \"commonEnvironmentSettings\": [\r\n {\r\n \"name\": \"ThisIsNull\"\r\n },\r\n {\r\n \"name\": \"ThisIsAString\",\r\n \"value\": \"Hello world\"\r\n }\r\n ],\r\n \"poolInfo\": {\r\n \"poolId\": \"testPool\"\r\n },\r\n \"executionInfo\": {\r\n \"startTime\": \"2025-09-17T22:24:14.3562167Z\",\r\n \"poolId\": \"testPool\"\r\n },\r\n \"onAllTasksComplete\": \"noaction\",\r\n \"onTaskFailure\": \"noaction\"\r\n },\r\n {\r\n \"id\": \"job2\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/jobs/job2\",\r\n \"eTag\": \"0x8DDF638EF0615E4\",\r\n \"lastModified\": \"2025-09-17T22:24:14.523338Z\",\r\n \"creationTime\": \"2025-09-17T22:24:14.5073392Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-17T22:24:14.523338Z\",\r\n \"priority\": 3,\r\n \"maxParallelTasks\": -1,\r\n \"usesTaskDependencies\": false,\r\n \"allowTaskPreemption\": false,\r\n \"constraints\": {\r\n \"maxWallClockTime\": \"P10675199DT2H48M5.4775807S\",\r\n \"maxTaskRetryCount\": 0\r\n },\r\n \"poolInfo\": {\r\n \"poolId\": \"testPool2\"\r\n },\r\n \"executionInfo\": {\r\n \"startTime\": \"2025-09-17T22:24:14.523338Z\",\r\n \"poolId\": \"testPool2\"\r\n },\r\n \"onAllTasksComplete\": \"noaction\",\r\n \"onTaskFailure\": \"noaction\"\r\n }\r\n ]\r\n}", "StatusCode": 200 }, { - "RequestUri": "/jobs/job2?api-version=2024-02-01.19.0", - "EncodedRequestUri": "L2pvYnMvam9iMj9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjA=", + "RequestUri": "/jobs/job2?api-version=2024-07-01.20.0", + "EncodedRequestUri": "L2pvYnMvam9iMj9hcGktdmVyc2lvbj0yMDI0LTA3LTAxLjIwLjA=", "RequestMethod": "PUT", "RequestHeaders": { "Accept-Language": [ "en-US" ], "client-request-id": [ - "9a8262c2-546d-4f1d-922e-9c4549492293" + "89c22b82-4666-4c4c-8412-f26fe16aa84e" ], "ocp-date": [ - "Thu, 11 Sep 2025 22:42:13 GMT" + "Wed, 17 Sep 2025 22:24:15 GMT" ], "x-ms-client-request-id": [ - "30660916-b143-4464-8345-c32d3b6c7f98" + "0a30205b-94e1-43b8-afb1-9a062713eb66" ], "User-Agent": [ "FxVersion/8.0.2025.41914", "OSName/Windows", "OSVersion/Microsoft.Windows.10.0.26100", - "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", + "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.300.124.47002", "AzurePowershell/Az1.0.0" ], "Content-Type": [ @@ -232,13 +232,13 @@ "chunked" ], "ETag": [ - "0x8DDF184740352A9" + "0x8DDF638EFC514F9" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "c2fe6008-b141-48d8-8b69-ec461bcf070e" + "d02f11f5-2866-4115-b23f-d83a2882c881" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -253,37 +253,37 @@ "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/jobs/job2" ], "Date": [ - "Thu, 11 Sep 2025 22:42:13 GMT" + "Wed, 17 Sep 2025 22:24:14 GMT" ], "Last-Modified": [ - "Thu, 11 Sep 2025 22:42:14 GMT" + "Wed, 17 Sep 2025 22:24:15 GMT" ] }, "ResponseBody": "", "StatusCode": 200 }, { - "RequestUri": "/jobs/job2?api-version=2024-02-01.19.0", - "EncodedRequestUri": "L2pvYnMvam9iMj9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjA=", + "RequestUri": "/jobs/job2?api-version=2024-07-01.20.0", + "EncodedRequestUri": "L2pvYnMvam9iMj9hcGktdmVyc2lvbj0yMDI0LTA3LTAxLjIwLjA=", "RequestMethod": "GET", "RequestHeaders": { "Accept-Language": [ "en-US" ], "client-request-id": [ - "549ae268-2311-46a4-ad68-6eb4f7a300c9" + "ce82461e-d61b-4ad2-82ba-e28f09ced9c2" ], "ocp-date": [ - "Thu, 11 Sep 2025 22:42:14 GMT" + "Wed, 17 Sep 2025 22:24:15 GMT" ], "x-ms-client-request-id": [ - "9a73e1db-bb6d-4a0a-a5ea-182f4e8756b8" + "9ca23783-1eb8-4739-94b3-5b5e54feb7d2" ], "User-Agent": [ "FxVersion/8.0.2025.41914", "OSName/Windows", "OSVersion/Microsoft.Windows.10.0.26100", - "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", + "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.300.124.47002", "AzurePowershell/Az1.0.0" ] }, @@ -293,13 +293,13 @@ "chunked" ], "ETag": [ - "0x8DDF184740352A9" + "0x8DDF638EFC514F9" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "61e6da44-d65c-4930-b86f-f1aafe21e407" + "f601bc2b-ff39-4f95-b401-21f4ab500183" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -311,40 +311,40 @@ "3.0" ], "Date": [ - "Thu, 11 Sep 2025 22:42:13 GMT" + "Wed, 17 Sep 2025 22:24:15 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ], "Last-Modified": [ - "Thu, 11 Sep 2025 22:42:14 GMT" + "Wed, 17 Sep 2025 22:24:15 GMT" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#jobs/@Element\",\r\n \"id\": \"job2\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/jobs/job2\",\r\n \"eTag\": \"0x8DDF184740352A9\",\r\n \"lastModified\": \"2025-09-11T22:42:14.0830377Z\",\r\n \"creationTime\": \"2025-09-11T22:42:13.6436903Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T22:42:13.6596892Z\",\r\n \"priority\": 5,\r\n \"maxParallelTasks\": -1,\r\n \"usesTaskDependencies\": false,\r\n \"allowTaskPreemption\": false,\r\n \"constraints\": {\r\n \"maxWallClockTime\": \"P10675199DT2H48M5.4775807S\",\r\n \"maxTaskRetryCount\": 0\r\n },\r\n \"poolInfo\": {\r\n \"poolId\": \"testPool2\"\r\n },\r\n \"executionInfo\": {\r\n \"startTime\": \"2025-09-11T22:42:13.6596892Z\",\r\n \"poolId\": \"testPool2\"\r\n },\r\n \"onAllTasksComplete\": \"noaction\",\r\n \"onTaskFailure\": \"noaction\"\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#jobs/@Element\",\r\n \"id\": \"job2\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/jobs/job2\",\r\n \"eTag\": \"0x8DDF638EFC514F9\",\r\n \"lastModified\": \"2025-09-17T22:24:15.7750521Z\",\r\n \"creationTime\": \"2025-09-17T22:24:14.5073392Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-17T22:24:14.523338Z\",\r\n \"priority\": 5,\r\n \"maxParallelTasks\": -1,\r\n \"usesTaskDependencies\": false,\r\n \"allowTaskPreemption\": false,\r\n \"constraints\": {\r\n \"maxWallClockTime\": \"P10675199DT2H48M5.4775807S\",\r\n \"maxTaskRetryCount\": 0\r\n },\r\n \"poolInfo\": {\r\n \"poolId\": \"testPool2\"\r\n },\r\n \"executionInfo\": {\r\n \"startTime\": \"2025-09-17T22:24:14.523338Z\",\r\n \"poolId\": \"testPool2\"\r\n },\r\n \"onAllTasksComplete\": \"noaction\",\r\n \"onTaskFailure\": \"noaction\"\r\n}", "StatusCode": 200 }, { - "RequestUri": "/jobs/job1?api-version=2024-02-01.19.0", - "EncodedRequestUri": "L2pvYnMvam9iMT9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjA=", + "RequestUri": "/jobs/job1?api-version=2024-07-01.20.0", + "EncodedRequestUri": "L2pvYnMvam9iMT9hcGktdmVyc2lvbj0yMDI0LTA3LTAxLjIwLjA=", "RequestMethod": "DELETE", "RequestHeaders": { "Accept-Language": [ "en-US" ], "client-request-id": [ - "d2c8a735-3b10-4412-b3a8-416eac9c5458" + "09cca084-885e-460e-b202-39da93957a9f" ], "ocp-date": [ - "Thu, 11 Sep 2025 22:42:14 GMT" + "Wed, 17 Sep 2025 22:24:15 GMT" ], "x-ms-client-request-id": [ - "7e6fae31-00ed-4fcd-b9e7-638d8c1a8227" + "29ffc151-6e45-4fed-9132-bcbdb5c71f8b" ], "User-Agent": [ "FxVersion/8.0.2025.41914", "OSName/Windows", "OSVersion/Microsoft.Windows.10.0.26100", - "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", + "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.300.124.47002", "AzurePowershell/Az1.0.0" ], "Content-Length": [ @@ -360,7 +360,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "289dfff6-08b8-40ad-9d7b-541c73e96126" + "7c03fa74-86cf-47eb-a5b1-d10a2fa3de9e" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -372,34 +372,34 @@ "3.0" ], "Date": [ - "Thu, 11 Sep 2025 22:42:13 GMT" + "Wed, 17 Sep 2025 22:24:15 GMT" ] }, "ResponseBody": "", "StatusCode": 202 }, { - "RequestUri": "/jobs/job2?api-version=2024-02-01.19.0", - "EncodedRequestUri": "L2pvYnMvam9iMj9hcGktdmVyc2lvbj0yMDI0LTAyLTAxLjE5LjA=", + "RequestUri": "/jobs/job2?api-version=2024-07-01.20.0", + "EncodedRequestUri": "L2pvYnMvam9iMj9hcGktdmVyc2lvbj0yMDI0LTA3LTAxLjIwLjA=", "RequestMethod": "DELETE", "RequestHeaders": { "Accept-Language": [ "en-US" ], "client-request-id": [ - "14739b19-32a5-4622-b7d8-9ec093ae0d20" + "808ae1e8-7cb7-49ce-a25f-32bf4f52d59c" ], "ocp-date": [ - "Thu, 11 Sep 2025 22:42:14 GMT" + "Wed, 17 Sep 2025 22:24:16 GMT" ], "x-ms-client-request-id": [ - "69f0c406-b564-4d1f-b348-d5963bf9cbfe" + "14ace553-56fc-4e31-ab93-86a16398c61c" ], "User-Agent": [ "FxVersion/8.0.2025.41914", "OSName/Windows", "OSVersion/Microsoft.Windows.10.0.26100", - "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", + "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.300.124.47002", "AzurePowershell/Az1.0.0" ], "Content-Length": [ @@ -415,7 +415,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "41915490-e228-4937-b747-6011c149d8ce" + "f6d9ad4e-0f24-406f-9e8e-ea7503f67a43" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -427,34 +427,34 @@ "3.0" ], "Date": [ - "Thu, 11 Sep 2025 22:42:13 GMT" + "Wed, 17 Sep 2025 22:24:15 GMT" ] }, "ResponseBody": "", "StatusCode": 202 }, { - "RequestUri": "/jobs?api-version=2024-02-01.19.0", - "EncodedRequestUri": "L2pvYnM/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4w", + "RequestUri": "/jobs?api-version=2024-07-01.20.0", + "EncodedRequestUri": "L2pvYnM/YXBpLXZlcnNpb249MjAyNC0wNy0wMS4yMC4w", "RequestMethod": "GET", "RequestHeaders": { "Accept-Language": [ "en-US" ], "client-request-id": [ - "d1a7504b-325d-4595-8234-ff808195ce59" + "408bbacc-c470-4700-bd30-c6e269e9bab3" ], "ocp-date": [ - "Thu, 11 Sep 2025 22:42:14 GMT" + "Wed, 17 Sep 2025 22:24:16 GMT" ], "x-ms-client-request-id": [ - "ee227ba1-d297-4e07-8c8b-b9291d648657" + "60b584f4-9f7b-4411-b373-8299c57b1dfd" ], "User-Agent": [ "FxVersion/8.0.2025.41914", "OSName/Windows", "OSVersion/Microsoft.Windows.10.0.26100", - "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", + "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.300.124.47002", "AzurePowershell/Az1.0.0" ] }, @@ -467,7 +467,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "50bf762a-1853-42fb-a141-6efcfb95cc3e" + "a50a8e0c-6515-463d-9b52-861cac356d40" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -479,13 +479,13 @@ "3.0" ], "Date": [ - "Thu, 11 Sep 2025 22:42:14 GMT" + "Wed, 17 Sep 2025 22:24:15 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#jobs\",\r\n \"value\": [\r\n {\r\n \"id\": \"job1\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/jobs/job1\",\r\n \"eTag\": \"0x8DDF18473AFA708\",\r\n \"lastModified\": \"2025-09-11T22:42:13.5346952Z\",\r\n \"creationTime\": \"2025-09-11T22:42:13.5186923Z\",\r\n \"state\": \"deleting\",\r\n \"stateTransitionTime\": \"2025-09-11T22:42:14.3638435Z\",\r\n \"previousState\": \"active\",\r\n \"previousStateTransitionTime\": \"2025-09-11T22:42:13.5346952Z\",\r\n \"priority\": 0,\r\n \"maxParallelTasks\": -1,\r\n \"usesTaskDependencies\": false,\r\n \"allowTaskPreemption\": false,\r\n \"constraints\": {\r\n \"maxWallClockTime\": \"P10675199DT2H48M5.4775807S\",\r\n \"maxTaskRetryCount\": 0\r\n },\r\n \"commonEnvironmentSettings\": [\r\n {\r\n \"name\": \"ThisIsAString\",\r\n \"value\": \"Hello world\"\r\n },\r\n {\r\n \"name\": \"ThisIsNull\"\r\n }\r\n ],\r\n \"poolInfo\": {\r\n \"poolId\": \"testPool\"\r\n },\r\n \"executionInfo\": {\r\n \"startTime\": \"2025-09-11T22:42:13.5346952Z\",\r\n \"poolId\": \"testPool\"\r\n },\r\n \"onAllTasksComplete\": \"noaction\",\r\n \"onTaskFailure\": \"noaction\"\r\n }\r\n ]\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#jobs\",\r\n \"value\": []\r\n}", "StatusCode": 200 } ], diff --git a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.PoolTests/TestPoolCRUD.json b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.PoolTests/TestPoolCRUD.json index 1e38014f3063..719392df1e0e 100644 --- a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.PoolTests/TestPoolCRUD.json +++ b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.PoolTests/TestPoolCRUD.json @@ -1,27 +1,27 @@ { "Entries": [ { - "RequestUri": "/pools?api-version=2024-02-01.19.0", - "EncodedRequestUri": "L3Bvb2xzP2FwaS12ZXJzaW9uPTIwMjQtMDItMDEuMTkuMA==", + "RequestUri": "/pools?api-version=2024-07-01.20.0", + "EncodedRequestUri": "L3Bvb2xzP2FwaS12ZXJzaW9uPTIwMjQtMDctMDEuMjAuMA==", "RequestMethod": "POST", "RequestHeaders": { "Accept-Language": [ "en-US" ], "client-request-id": [ - "0c698a2b-7694-492c-84d6-742f6423c3a8" + "c7e34d74-01c2-422c-99da-1ae94f941f8e" ], "ocp-date": [ - "Thu, 11 Sep 2025 22:43:20 GMT" + "Wed, 17 Sep 2025 22:43:20 GMT" ], "x-ms-client-request-id": [ - "b3d273eb-c289-4486-9f94-b8ce7a6a2ded" + "49eb50dd-9b6e-45e6-a0d6-61cb6965d7ea" ], "User-Agent": [ "FxVersion/8.0.2025.41914", "OSName/Windows", "OSVersion/Microsoft.Windows.10.0.26100", - "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", + "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.300.124.47002", "AzurePowershell/Az1.0.0" ], "Content-Type": [ @@ -37,7 +37,7 @@ "chunked" ], "ETag": [ - "0x8DDF1849B9B2103" + "0x8DDF63B9A729853" ], "Location": [ "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/pool1" @@ -46,7 +46,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "2a924598-200b-4a35-9db3-a5b992498644" + "b346d6f4-9f59-4d66-aa3c-470009cbab6f" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -61,37 +61,37 @@ "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/pool1" ], "Date": [ - "Thu, 11 Sep 2025 22:43:19 GMT" + "Wed, 17 Sep 2025 22:43:20 GMT" ], "Last-Modified": [ - "Thu, 11 Sep 2025 22:43:20 GMT" + "Wed, 17 Sep 2025 22:43:21 GMT" ] }, "ResponseBody": "", "StatusCode": 201 }, { - "RequestUri": "/pools?api-version=2024-02-01.19.0", - "EncodedRequestUri": "L3Bvb2xzP2FwaS12ZXJzaW9uPTIwMjQtMDItMDEuMTkuMA==", + "RequestUri": "/pools?api-version=2024-07-01.20.0", + "EncodedRequestUri": "L3Bvb2xzP2FwaS12ZXJzaW9uPTIwMjQtMDctMDEuMjAuMA==", "RequestMethod": "POST", "RequestHeaders": { "Accept-Language": [ "en-US" ], "client-request-id": [ - "c5f628ee-b5a1-4522-ace9-792a59c52de4" + "d5beef3b-f725-4c04-ae6e-0dbaa4287eb8" ], "ocp-date": [ - "Thu, 11 Sep 2025 22:43:20 GMT" + "Wed, 17 Sep 2025 22:43:55 GMT" ], "x-ms-client-request-id": [ - "d031f329-7ee5-4695-9930-4c984c2f82be" + "21edd159-8035-4a73-b576-c8dd1bee103e" ], "User-Agent": [ "FxVersion/8.0.2025.41914", "OSName/Windows", "OSVersion/Microsoft.Windows.10.0.26100", - "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", + "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.300.124.47002", "AzurePowershell/Az1.0.0" ], "Content-Type": [ @@ -107,7 +107,7 @@ "chunked" ], "ETag": [ - "0x8DDF1849BD019BB" + "0x8DDF63BAF12CAE1" ], "Location": [ "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/pool2" @@ -116,7 +116,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "c3957728-e9a9-42c3-b24e-9cac10f7b552" + "da94d3a8-6aa3-456d-afc1-36f884f06081" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -131,37 +131,37 @@ "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/pool2" ], "Date": [ - "Thu, 11 Sep 2025 22:43:20 GMT" + "Wed, 17 Sep 2025 22:43:55 GMT" ], "Last-Modified": [ - "Thu, 11 Sep 2025 22:43:20 GMT" + "Wed, 17 Sep 2025 22:43:55 GMT" ] }, "ResponseBody": "", "StatusCode": 201 }, { - "RequestUri": "/pools?api-version=2024-02-01.19.0&$filter=id%20eq%20%27pool1%27%20or%20id%20eq%20%27pool2%27", - "EncodedRequestUri": "L3Bvb2xzP2FwaS12ZXJzaW9uPTIwMjQtMDItMDEuMTkuMCYkZmlsdGVyPWlkJTIwZXElMjAlMjdwb29sMSUyNyUyMG9yJTIwaWQlMjBlcSUyMCUyN3Bvb2wyJTI3", + "RequestUri": "/pools?api-version=2024-07-01.20.0&$filter=id%20eq%20%27pool1%27%20or%20id%20eq%20%27pool2%27", + "EncodedRequestUri": "L3Bvb2xzP2FwaS12ZXJzaW9uPTIwMjQtMDctMDEuMjAuMCYkZmlsdGVyPWlkJTIwZXElMjAlMjdwb29sMSUyNyUyMG9yJTIwaWQlMjBlcSUyMCUyN3Bvb2wyJTI3", "RequestMethod": "GET", "RequestHeaders": { "Accept-Language": [ "en-US" ], "client-request-id": [ - "30d7a392-e259-4b9f-b459-ddf598cd7191" + "6dc9db21-f79e-4ad4-9fc6-e3ec655c7f28" ], "ocp-date": [ - "Thu, 11 Sep 2025 22:43:21 GMT" + "Wed, 17 Sep 2025 22:43:56 GMT" ], "x-ms-client-request-id": [ - "285f85f2-46cb-4eba-a547-f82df0f08c8c" + "b27a916e-11c9-41a4-904c-c2d83b496697" ], "User-Agent": [ "FxVersion/8.0.2025.41914", "OSName/Windows", "OSVersion/Microsoft.Windows.10.0.26100", - "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", + "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.300.124.47002", "AzurePowershell/Az1.0.0" ] }, @@ -174,7 +174,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "3a680d76-d9b7-4316-80ea-afe6df84dc47" + "054b05f4-9e45-41b7-a1a6-68c79665b1fd" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -186,37 +186,37 @@ "3.0" ], "Date": [ - "Thu, 11 Sep 2025 22:43:20 GMT" + "Wed, 17 Sep 2025 22:43:55 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#pools\",\r\n \"value\": [\r\n {\r\n \"id\": \"pool1\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/pool1\",\r\n \"eTag\": \"0x8DDF1849B9B2103\",\r\n \"lastModified\": \"2025-09-11T22:43:20.5090563Z\",\r\n \"creationTime\": \"2025-09-11T22:43:20.5090553Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T22:43:20.5090553Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2025-09-11T22:43:20.5090563Z\",\r\n \"vmSize\": \"standard_d1_v2\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 0,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": false,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoft-azure-batch\",\r\n \"offer\": \"ubuntu-server-container\",\r\n \"sku\": \"20-04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"containerConfiguration\": {\r\n \"type\": \"dockerCompatible\",\r\n \"containerImageNames\": [\r\n \"test1\"\r\n ]\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n },\r\n {\r\n \"id\": \"pool2\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/pool2\",\r\n \"eTag\": \"0x8DDF1849BD019BB\",\r\n \"lastModified\": \"2025-09-11T22:43:20.8562107Z\",\r\n \"creationTime\": \"2025-09-11T22:43:20.8562096Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T22:43:20.8562096Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2025-09-11T22:43:20.8562108Z\",\r\n \"vmSize\": \"standard_d1_v2\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 0,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": false,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoft-azure-batch\",\r\n \"offer\": \"ubuntu-server-container\",\r\n \"sku\": \"20-04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"containerConfiguration\": {\r\n \"type\": \"dockerCompatible\",\r\n \"containerImageNames\": [\r\n \"test2\"\r\n ]\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n }\r\n ]\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#pools\",\r\n \"value\": [\r\n {\r\n \"id\": \"pool1\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/pool1\",\r\n \"eTag\": \"0x8DDF63B9A729853\",\r\n \"lastModified\": \"2025-09-17T22:43:21.1183187Z\",\r\n \"creationTime\": \"2025-09-17T22:43:21.1183172Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-17T22:43:21.1183172Z\",\r\n \"allocationState\": \"steady\",\r\n \"allocationStateTransitionTime\": \"2025-09-17T22:43:23.0608155Z\",\r\n \"vmSize\": \"standard_d1_v2\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 0,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": false,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoft-azure-batch\",\r\n \"offer\": \"ubuntu-server-container\",\r\n \"sku\": \"20-04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"containerConfiguration\": {\r\n \"type\": \"dockerCompatible\",\r\n \"containerImageNames\": [\r\n \"test1\"\r\n ]\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n },\r\n {\r\n \"id\": \"pool2\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/pool2\",\r\n \"eTag\": \"0x8DDF63BAF12CAE1\",\r\n \"lastModified\": \"2025-09-17T22:43:55.7226209Z\",\r\n \"creationTime\": \"2025-09-17T22:43:55.7226196Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-17T22:43:55.7226196Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2025-09-17T22:43:55.722621Z\",\r\n \"vmSize\": \"standard_d1_v2\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 0,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": false,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoft-azure-batch\",\r\n \"offer\": \"ubuntu-server-container\",\r\n \"sku\": \"20-04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"containerConfiguration\": {\r\n \"type\": \"dockerCompatible\",\r\n \"containerImageNames\": [\r\n \"test2\"\r\n ]\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n }\r\n ]\r\n}", "StatusCode": 200 }, { - "RequestUri": "/pools/pool2/updateproperties?api-version=2024-02-01.19.0", - "EncodedRequestUri": "L3Bvb2xzL3Bvb2wyL3VwZGF0ZXByb3BlcnRpZXM/YXBpLXZlcnNpb249MjAyNC0wMi0wMS4xOS4w", + "RequestUri": "/pools/pool2/updateproperties?api-version=2024-07-01.20.0", + "EncodedRequestUri": "L3Bvb2xzL3Bvb2wyL3VwZGF0ZXByb3BlcnRpZXM/YXBpLXZlcnNpb249MjAyNC0wNy0wMS4yMC4w", "RequestMethod": "POST", "RequestHeaders": { "Accept-Language": [ "en-US" ], "client-request-id": [ - "6d53d3ce-2e92-4b5b-8c1b-f755c68ed39c" + "296bc7e9-7d42-440b-b9f6-7883fc62007f" ], "ocp-date": [ - "Thu, 11 Sep 2025 22:43:21 GMT" + "Wed, 17 Sep 2025 22:43:57 GMT" ], "x-ms-client-request-id": [ - "6b34a77f-5dec-4efb-bd91-2b0d0d063ce7" + "298d7a91-3181-455e-85e7-496cc24281a3" ], "User-Agent": [ "FxVersion/8.0.2025.41914", "OSName/Windows", "OSVersion/Microsoft.Windows.10.0.26100", - "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", + "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.300.124.47002", "AzurePowershell/Az1.0.0" ], "Content-Type": [ @@ -229,13 +229,13 @@ "RequestBody": "{\r\n \"startTask\": {\r\n \"commandLine\": \"/bin/bash -c 'echo start task'\"\r\n },\r\n \"certificateReferences\": [],\r\n \"applicationPackageReferences\": [],\r\n \"metadata\": [],\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", "ResponseHeaders": { "ETag": [ - "0x8DDF1849CBEF2D6" + "0x8DDF63BB049DEAA" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "9e442138-8266-4f84-b60e-c4d680587075" + "f11acb3e-7aed-406b-b234-cce14fe35af3" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -250,40 +250,40 @@ "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/pool2/updateproperties" ], "Date": [ - "Thu, 11 Sep 2025 22:43:21 GMT" + "Wed, 17 Sep 2025 22:43:56 GMT" ], "Content-Length": [ "0" ], "Last-Modified": [ - "Thu, 11 Sep 2025 22:43:22 GMT" + "Wed, 17 Sep 2025 22:43:57 GMT" ] }, "ResponseBody": "", "StatusCode": 204 }, { - "RequestUri": "/pools/pool2?api-version=2024-02-01.19.0", - "EncodedRequestUri": "L3Bvb2xzL3Bvb2wyP2FwaS12ZXJzaW9uPTIwMjQtMDItMDEuMTkuMA==", + "RequestUri": "/pools/pool2?api-version=2024-07-01.20.0", + "EncodedRequestUri": "L3Bvb2xzL3Bvb2wyP2FwaS12ZXJzaW9uPTIwMjQtMDctMDEuMjAuMA==", "RequestMethod": "GET", "RequestHeaders": { "Accept-Language": [ "en-US" ], "client-request-id": [ - "6123af61-f8e6-4881-a44c-df45027faebc" + "9d867503-1e63-4b91-9101-f201c4970b89" ], "ocp-date": [ - "Thu, 11 Sep 2025 22:43:22 GMT" + "Wed, 17 Sep 2025 22:43:57 GMT" ], "x-ms-client-request-id": [ - "188d3668-dd25-4047-8691-d6b093e182cf" + "5943bef6-3de9-4f52-a35b-3f864f82b1c3" ], "User-Agent": [ "FxVersion/8.0.2025.41914", "OSName/Windows", "OSVersion/Microsoft.Windows.10.0.26100", - "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", + "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.300.124.47002", "AzurePowershell/Az1.0.0" ] }, @@ -293,13 +293,13 @@ "chunked" ], "ETag": [ - "0x8DDF1849CBEF2D6" + "0x8DDF63BB049DEAA" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "eec19c02-bc63-4a15-9850-0509d8ce920a" + "a97db422-a940-44d1-9bf5-bf2ae7685ecf" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -311,40 +311,40 @@ "3.0" ], "Date": [ - "Thu, 11 Sep 2025 22:43:21 GMT" + "Wed, 17 Sep 2025 22:43:57 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ], "Last-Modified": [ - "Thu, 11 Sep 2025 22:43:22 GMT" + "Wed, 17 Sep 2025 22:43:57 GMT" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"pool2\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/pool2\",\r\n \"eTag\": \"0x8DDF1849CBEF2D6\",\r\n \"lastModified\": \"2025-09-11T22:43:22.4215254Z\",\r\n \"creationTime\": \"2025-09-11T22:43:20.8562096Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T22:43:20.8562096Z\",\r\n \"allocationState\": \"steady\",\r\n \"allocationStateTransitionTime\": \"2025-09-11T22:43:22.3984622Z\",\r\n \"vmSize\": \"standard_d1_v2\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 0,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": false,\r\n \"startTask\": {\r\n \"commandLine\": \"/bin/bash -c 'echo start task'\",\r\n \"userIdentity\": {\r\n \"autoUser\": {\r\n \"scope\": \"pool\",\r\n \"elevationLevel\": \"nonadmin\"\r\n }\r\n },\r\n \"maxTaskRetryCount\": 0,\r\n \"waitForSuccess\": true\r\n },\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoft-azure-batch\",\r\n \"offer\": \"ubuntu-server-container\",\r\n \"sku\": \"20-04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"containerConfiguration\": {\r\n \"type\": \"dockerCompatible\",\r\n \"containerImageNames\": [\r\n \"test2\"\r\n ]\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"pool2\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/pool2\",\r\n \"eTag\": \"0x8DDF63BB049DEAA\",\r\n \"lastModified\": \"2025-09-17T22:43:57.761297Z\",\r\n \"creationTime\": \"2025-09-17T22:43:55.7226196Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-17T22:43:55.7226196Z\",\r\n \"allocationState\": \"steady\",\r\n \"allocationStateTransitionTime\": \"2025-09-17T22:43:57.7415352Z\",\r\n \"vmSize\": \"standard_d1_v2\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 0,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": false,\r\n \"startTask\": {\r\n \"commandLine\": \"/bin/bash -c 'echo start task'\",\r\n \"userIdentity\": {\r\n \"autoUser\": {\r\n \"scope\": \"pool\",\r\n \"elevationLevel\": \"nonadmin\"\r\n }\r\n },\r\n \"maxTaskRetryCount\": 0,\r\n \"waitForSuccess\": true\r\n },\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoft-azure-batch\",\r\n \"offer\": \"ubuntu-server-container\",\r\n \"sku\": \"20-04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"containerConfiguration\": {\r\n \"type\": \"dockerCompatible\",\r\n \"containerImageNames\": [\r\n \"test2\"\r\n ]\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", "StatusCode": 200 }, { - "RequestUri": "/pools/pool1?api-version=2024-02-01.19.0", - "EncodedRequestUri": "L3Bvb2xzL3Bvb2wxP2FwaS12ZXJzaW9uPTIwMjQtMDItMDEuMTkuMA==", + "RequestUri": "/pools/pool1?api-version=2024-07-01.20.0", + "EncodedRequestUri": "L3Bvb2xzL3Bvb2wxP2FwaS12ZXJzaW9uPTIwMjQtMDctMDEuMjAuMA==", "RequestMethod": "DELETE", "RequestHeaders": { "Accept-Language": [ "en-US" ], "client-request-id": [ - "b27aacb9-045f-4066-b3da-960b9236b858" + "dbaca72b-4cec-4589-bc11-422fcca84289" ], "ocp-date": [ - "Thu, 11 Sep 2025 22:43:22 GMT" + "Wed, 17 Sep 2025 22:43:57 GMT" ], "x-ms-client-request-id": [ - "0ecdd2e4-87b1-43ac-b0cc-55fe2bc3d627" + "00a13aa2-312a-4990-84b7-ea93bcf8903e" ], "User-Agent": [ "FxVersion/8.0.2025.41914", "OSName/Windows", "OSVersion/Microsoft.Windows.10.0.26100", - "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", + "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.300.124.47002", "AzurePowershell/Az1.0.0" ], "Content-Length": [ @@ -360,7 +360,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "2a0ffa1a-8100-4cb3-8693-e8801a57e037" + "9185d5fa-cd9a-45a6-a6b0-c4e4b3cbc434" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -372,34 +372,34 @@ "3.0" ], "Date": [ - "Thu, 11 Sep 2025 22:43:22 GMT" + "Wed, 17 Sep 2025 22:43:57 GMT" ] }, "ResponseBody": "", "StatusCode": 202 }, { - "RequestUri": "/pools/pool2?api-version=2024-02-01.19.0", - "EncodedRequestUri": "L3Bvb2xzL3Bvb2wyP2FwaS12ZXJzaW9uPTIwMjQtMDItMDEuMTkuMA==", + "RequestUri": "/pools/pool2?api-version=2024-07-01.20.0", + "EncodedRequestUri": "L3Bvb2xzL3Bvb2wyP2FwaS12ZXJzaW9uPTIwMjQtMDctMDEuMjAuMA==", "RequestMethod": "DELETE", "RequestHeaders": { "Accept-Language": [ "en-US" ], "client-request-id": [ - "12a36cdf-0666-4133-8bbe-ec22d3a88e46" + "7ad20031-0036-4698-9006-596dbbdf4387" ], "ocp-date": [ - "Thu, 11 Sep 2025 22:43:22 GMT" + "Wed, 17 Sep 2025 22:43:58 GMT" ], "x-ms-client-request-id": [ - "5bf27167-77d6-40ce-8721-dd6894f86795" + "fec727ec-4d44-4fe2-94e4-59ae20ee8667" ], "User-Agent": [ "FxVersion/8.0.2025.41914", "OSName/Windows", "OSVersion/Microsoft.Windows.10.0.26100", - "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", + "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.300.124.47002", "AzurePowershell/Az1.0.0" ], "Content-Length": [ @@ -415,7 +415,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "28163947-3caf-49b5-9efa-bc8128da0767" + "1a718d45-97fc-45fe-8a0b-97d3538cb58d" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -427,34 +427,34 @@ "3.0" ], "Date": [ - "Thu, 11 Sep 2025 22:43:22 GMT" + "Wed, 17 Sep 2025 22:43:57 GMT" ] }, "ResponseBody": "", "StatusCode": 202 }, { - "RequestUri": "/pools?api-version=2024-02-01.19.0", - "EncodedRequestUri": "L3Bvb2xzP2FwaS12ZXJzaW9uPTIwMjQtMDItMDEuMTkuMA==", + "RequestUri": "/pools?api-version=2024-07-01.20.0", + "EncodedRequestUri": "L3Bvb2xzP2FwaS12ZXJzaW9uPTIwMjQtMDctMDEuMjAuMA==", "RequestMethod": "GET", "RequestHeaders": { "Accept-Language": [ "en-US" ], "client-request-id": [ - "0ad320c4-115c-4796-81c0-98beefaa13f5" + "7f816b84-965d-48f7-989f-9ed5b32ea475" ], "ocp-date": [ - "Thu, 11 Sep 2025 22:43:23 GMT" + "Wed, 17 Sep 2025 22:43:58 GMT" ], "x-ms-client-request-id": [ - "f3801146-23cb-44e8-859e-6fd37a5da7f2" + "32478abb-2756-4258-8323-f49fb88ace44" ], "User-Agent": [ "FxVersion/8.0.2025.41914", "OSName/Windows", "OSVersion/Microsoft.Windows.10.0.26100", - "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.200.24.12902", + "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.300.124.47002", "AzurePowershell/Az1.0.0" ] }, @@ -467,7 +467,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "a485ccac-abb4-4036-92b3-6dd4b23b8fc0" + "3ead2f0e-0b2d-41d9-ba14-9f11656a818b" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -479,13 +479,13 @@ "3.0" ], "Date": [ - "Thu, 11 Sep 2025 22:43:22 GMT" + "Wed, 17 Sep 2025 22:43:57 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#pools\",\r\n \"value\": [\r\n {\r\n \"id\": \"disableandenablenodepool\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/disableandenablenodepool\",\r\n \"eTag\": \"0x8DDF177F8D08DED\",\r\n \"lastModified\": \"2025-09-11T21:12:53.4298093Z\",\r\n \"creationTime\": \"2025-09-11T21:12:53.4298071Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T21:12:53.4298071Z\",\r\n \"allocationState\": \"steady\",\r\n \"allocationStateTransitionTime\": \"2025-09-11T21:13:32.0008535Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 2,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\",\r\n \"currentNodeCommunicationMode\": \"simplified\"\r\n },\r\n {\r\n \"id\": \"noderemoteloginpool\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/noderemoteloginpool\",\r\n \"eTag\": \"0x8DDF1788ED4B75D\",\r\n \"lastModified\": \"2025-09-11T21:17:05.1153245Z\",\r\n \"creationTime\": \"2025-09-11T21:17:05.1153234Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T21:17:05.1153234Z\",\r\n \"allocationState\": \"steady\",\r\n \"allocationStateTransitionTime\": \"2025-09-11T21:17:37.2475866Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 2,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\",\r\n \"currentNodeCommunicationMode\": \"simplified\"\r\n },\r\n {\r\n \"id\": \"rebootandreimagenodepool\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/rebootandreimagenodepool\",\r\n \"eTag\": \"0x8DDF178A6EBD6D2\",\r\n \"lastModified\": \"2025-09-11T21:17:45.532181Z\",\r\n \"creationTime\": \"2025-09-11T21:17:45.5321801Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T21:17:45.5321801Z\",\r\n \"allocationState\": \"steady\",\r\n \"allocationStateTransitionTime\": \"2025-09-11T21:19:48.2764345Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 2,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\",\r\n \"currentNodeCommunicationMode\": \"simplified\"\r\n },\r\n {\r\n \"id\": \"resizePool\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/resizePool\",\r\n \"eTag\": \"0x8DDF1849A214040\",\r\n \"lastModified\": \"2025-09-11T22:43:18.0325952Z\",\r\n \"creationTime\": \"2025-09-11T22:43:09.9669525Z\",\r\n \"state\": \"deleting\",\r\n \"stateTransitionTime\": \"2025-09-11T22:43:18.0325952Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2025-09-11T22:43:18.0471154Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT7M9.497S\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 0,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n },\r\n {\r\n \"id\": \"testPool\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/testPool\",\r\n \"eTag\": \"0x8DDF1843C878AFD\",\r\n \"lastModified\": \"2025-09-11T22:40:40.9971453Z\",\r\n \"creationTime\": \"2025-09-11T22:40:40.9971441Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T22:40:40.9971441Z\",\r\n \"allocationState\": \"steady\",\r\n \"allocationStateTransitionTime\": \"2025-09-11T22:41:23.1389929Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 2,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\",\r\n \"currentNodeCommunicationMode\": \"simplified\"\r\n },\r\n {\r\n \"id\": \"testPool2\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/testPool2\",\r\n \"eTag\": \"0x8DDF184751DD858\",\r\n \"lastModified\": \"2025-09-11T22:42:15.9345752Z\",\r\n \"creationTime\": \"2025-09-11T22:42:15.9345741Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-11T22:42:15.9345741Z\",\r\n \"allocationState\": \"steady\",\r\n \"allocationStateTransitionTime\": \"2025-09-11T22:42:58.1182678Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 2,\r\n \"targetDedicatedNodes\": 2,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": true,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"canonical\",\r\n \"offer\": \"0001-com-ubuntu-server-focal\",\r\n \"sku\": \"20_04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Zonal\"\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\",\r\n \"currentNodeCommunicationMode\": \"simplified\"\r\n }\r\n ]\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#pools\",\r\n \"value\": [\r\n {\r\n \"id\": \"testpool\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/testpool\",\r\n \"eTag\": \"0x8DDF260CC81BB18\",\r\n \"lastModified\": \"2025-09-13T00:59:31.8314776Z\",\r\n \"creationTime\": \"2025-09-13T00:59:31.8314761Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-13T00:59:31.8314761Z\",\r\n \"allocationState\": \"steady\",\r\n \"allocationStateTransitionTime\": \"2025-09-13T00:59:33.1548197Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 0,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": false,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Pack\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoftwindowsserver\",\r\n \"offer\": \"windowsserver\",\r\n \"sku\": \"2019-datacenter-gensecond\",\r\n \"version\": \"latest\"\r\n },\r\n \"osDisk\": {\r\n \"ephemeralOSDiskSettings\": {},\r\n \"managedDisk\": {\r\n \"storageAccountType\": \"premium_lrs\"\r\n },\r\n \"caching\": \"None\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.windows amd64\",\r\n \"windowsConfiguration\": {\r\n \"enableAutomaticUpdates\": false\r\n },\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Regional\"\r\n }\r\n },\r\n \"networkConfiguration\": {\r\n \"dynamicVNetAssignmentScope\": \"none\",\r\n \"publicIPAddressConfiguration\": {\r\n \"provision\": \"BatchManaged\"\r\n },\r\n \"enableAcceleratedNetworking\": false\r\n },\r\n \"targetNodeCommunicationMode\": \"default\",\r\n \"upgradePolicy\": {\r\n \"mode\": \"manual\",\r\n \"automaticOSUpgradePolicy\": {\r\n \"disableAutomaticRollback\": false,\r\n \"enableAutomaticOSUpgrade\": false,\r\n \"useRollingUpgradePolicy\": false,\r\n \"osRollingUpgradeDeferral\": false\r\n },\r\n \"rollingUpgradePolicy\": {\r\n \"maxBatchInstancePercent\": 20,\r\n \"maxUnhealthyInstancePercent\": 20,\r\n \"maxUnhealthyUpgradedInstancePercent\": 20,\r\n \"pauseTimeBetweenBatches\": \"P0D\",\r\n \"rollbackFailedInstancesOnPolicyBreach\": false\r\n }\r\n }\r\n }\r\n ]\r\n}", "StatusCode": 200 } ], diff --git a/src/Batch/Batch.Test/about.txt b/src/Batch/Batch.Test/about.txt index 546ee96d5caf..6d224757929a 100644 --- a/src/Batch/Batch.Test/about.txt +++ b/src/Batch/Batch.Test/about.txt @@ -19,9 +19,6 @@ Run the following scripts or equivalent to create a Windows pool and a Linux poo $context = Get-AzureRmBatchAccountKeys "" $startTask = New-Object Microsoft.Azure.Commands.Batch.Models.PSStartTask $startTask.CommandLine = "cmd /c echo hello" - $configuration = New-Object Microsoft.Azure.Commands.Batch.Models.PSCloudServiceConfiguration -ArgumentList @("4", "*") - New-AzBatchPool -Id "testPool" -VirtualMachineSize "standard_d1_v2" -CloudServiceConfiguration $configuration -TargetDedicated 3 -StartTask $startTask -BatchContext $context - $imageRef = New-Object Microsoft.Azure.Commands.Batch.Models.PSImageReference -ArgumentList @("0001-com-ubuntu-server-jammy","canonical","22_04-LTS") $virtualMachineConfig = New-Object Microsoft.Azure.Commands.Batch.Models.PSVirtualMachineConfiguration -ArgumentList @($imageRef, "batch.node.ubuntu 22.04") New-AzBatchPool -Id "testIaasPool" -VirtualMachineSize "Standard_A1_v2" -TargetDedicated 1 -VirtualMachineConfiguration $virtualMachineConfig -BatchContext $context diff --git a/src/Batch/Batch/Az.Batch.psd1 b/src/Batch/Batch/Az.Batch.psd1 index 3e973f839fa9..69dd8c7a9621 100644 --- a/src/Batch/Batch/Az.Batch.psd1 +++ b/src/Batch/Batch/Az.Batch.psd1 @@ -86,7 +86,7 @@ CmdletsToExport = 'Disable-AzBatchAutoScale', 'Disable-AzBatchComputeNodeSchedul 'Enable-AzBatchJob', 'Enable-AzBatchJobSchedule', 'Enable-AzBatchTask', 'Get-AzBatchAccount', 'Get-AzBatchAccountKey', 'Get-AzBatchApplication', 'Get-AzBatchApplicationPackage', - 'Get-AzBatchCertificate', 'Get-AzBatchComputeNode', + 'Get-AzBatchComputeNode', 'Get-AzBatchComputeNodeExtension', 'Get-AzBatchJob', 'Get-AzBatchJobPreparationAndReleaseTaskStatus', 'Get-AzBatchJobSchedule', 'Get-AzBatchLocationQuota', @@ -100,11 +100,11 @@ CmdletsToExport = 'Disable-AzBatchAutoScale', 'Disable-AzBatchComputeNodeSchedul 'Get-AzBatchTaskCount', 'Get-AzBatchTaskSlotCount', 'New-AzBatchAccount', 'New-AzBatchAccountKey', 'New-AzBatchApplication', 'New-AzBatchApplicationPackage', - 'New-AzBatchCertificate', 'New-AzBatchComputeNodeUser', + 'New-AzBatchComputeNodeUser', 'New-AzBatchJob', 'New-AzBatchJobSchedule', 'New-AzBatchPool', 'New-AzBatchResourceFile', 'New-AzBatchTask', 'Remove-AzBatchAccount', 'Remove-AzBatchApplication', 'Remove-AzBatchApplicationPackage', - 'Remove-AzBatchCertificate', 'Remove-AzBatchComputeNode', + 'Remove-AzBatchComputeNode', 'Remove-AzBatchComputeNodeUser', 'Remove-AzBatchJob', 'Remove-AzBatchJobSchedule', 'Remove-AzBatchNodeFile', 'Remove-AzBatchPool', 'Remove-AzBatchTask', @@ -113,7 +113,7 @@ CmdletsToExport = 'Disable-AzBatchAutoScale', 'Disable-AzBatchComputeNodeSchedul 'Set-AzBatchComputeNodeUser', 'Set-AzBatchJob', 'Set-AzBatchJobSchedule', 'Set-AzBatchPool', 'Set-AzBatchTask', 'Start-AzBatchComputeNodeServiceLogUpload', - 'Start-AzBatchPoolResize', 'Stop-AzBatchCertificateDeletion', + 'Start-AzBatchPoolResize', 'Stop-AzBatchJob', 'Stop-AzBatchJobSchedule', 'Stop-AzBatchPoolResize', 'Stop-AzBatchTask', 'Test-AzBatchAutoScale' diff --git a/src/Batch/Batch/Certificates/GetBatchCertificateCommand.cs b/src/Batch/Batch/Certificates/GetBatchCertificateCommand.cs deleted file mode 100644 index 48780fb303ac..000000000000 --- a/src/Batch/Batch/Certificates/GetBatchCertificateCommand.cs +++ /dev/null @@ -1,75 +0,0 @@ -// ---------------------------------------------------------------------------------- -// -// Copyright Microsoft Corporation -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// http://www.apache.org/licenses/LICENSE-2.0 -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// ---------------------------------------------------------------------------------- - -using Microsoft.Azure.Commands.Batch.Models; -using System.Management.Automation; -using Constants = Microsoft.Azure.Commands.Batch.Utils.Constants; -using Microsoft.WindowsAzure.Commands.Common.CustomAttributes; - -namespace Microsoft.Azure.Commands.Batch -{ - [System.Obsolete] - [CmdletDeprecationWithVersion("15.0.0", "4.0.0")] - [Cmdlet("Get", ResourceManager.Common.AzureRMConstants.AzurePrefix + "BatchCertificate", DefaultParameterSetName = Constants.ODataFilterParameterSet), OutputType(typeof(PSCertificate))] - public class GetBatchCertificateCommand : BatchObjectModelCmdletBase - { - internal const string ThumbprintParameterSet = "Thumbprint"; - private int maxCount = Constants.DefaultMaxCount; - - [Parameter(Position = 0, ParameterSetName = ThumbprintParameterSet, Mandatory = true, ValueFromPipelineByPropertyName = true, - HelpMessage = "The algorithm used to derive the Thumbprint parameter. This must be sha1.")] - [ValidateNotNullOrEmpty] - public string ThumbprintAlgorithm { get; set; } - - [Parameter(Position = 1, ParameterSetName = ThumbprintParameterSet, Mandatory = true, ValueFromPipelineByPropertyName = true, - HelpMessage = "The thumbprint of the certificate to get.")] - [ValidateNotNullOrEmpty] - public string Thumbprint { get; set; } - - [Parameter(ParameterSetName = Constants.ODataFilterParameterSet)] - [ValidateNotNullOrEmpty] - public string Filter { get; set; } - - [Parameter(ParameterSetName = Constants.ODataFilterParameterSet)] - public int MaxCount - { - get { return this.maxCount; } - set { this.maxCount = value; } - } - - [Parameter] - [ValidateNotNullOrEmpty] - public string Select { get; set; } - - protected override void ExecuteCmdletImpl() - { - ListCertificateOptions options = new ListCertificateOptions(this.BatchContext, this.AdditionalBehaviors) - { - ThumbprintAlgorithm = this.ThumbprintAlgorithm, - Thumbprint = this.Thumbprint, - Filter = this.Filter, - Select = this.Select, - MaxCount = this.MaxCount - }; - - // The enumerator will internally query the service in chunks. Using WriteObject with the enumerate flag will enumerate - // the entire collection first and then write the items out one by one in a single group. Using foreach, we can take - // advantage of the enumerator's behavior and write output to the pipeline in bursts. - foreach (PSCertificate certificate in BatchClient.ListCertificates(options)) - { - WriteObject(certificate); - } - } - } -} diff --git a/src/Batch/Batch/Certificates/NewBatchCertificateCommand.cs b/src/Batch/Batch/Certificates/NewBatchCertificateCommand.cs deleted file mode 100644 index 7739210d0859..000000000000 --- a/src/Batch/Batch/Certificates/NewBatchCertificateCommand.cs +++ /dev/null @@ -1,69 +0,0 @@ -// ---------------------------------------------------------------------------------- -// -// Copyright Microsoft Corporation -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// http://www.apache.org/licenses/LICENSE-2.0 -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// ---------------------------------------------------------------------------------- - -using Microsoft.Azure.Commands.Batch.Models; -using System; -using System.Management.Automation; -using System.Security; -using Microsoft.WindowsAzure.Commands.Common; -using Microsoft.WindowsAzure.Commands.Utilities.Common; -using Microsoft.WindowsAzure.Commands.Common.CustomAttributes; - -namespace Microsoft.Azure.Commands.Batch -{ - [System.Obsolete] - [CmdletDeprecationWithVersion("15.0.0", "4.0.0")] - [Cmdlet("New", ResourceManager.Common.AzureRMConstants.AzurePrefix + "BatchCertificate", DefaultParameterSetName = FileParameterSet), OutputType(typeof(void))] - public class NewBatchCertificateCommand : BatchObjectModelCmdletBase - { - internal const string FileParameterSet = "File"; - internal const string RawDataParameterSet = "RawData"; - - [Parameter(Position = 0, ParameterSetName = FileParameterSet, Mandatory = true, - HelpMessage = "The path to the certificate file. The certificate must be in either .cer or .pfx format.")] - [ValidateNotNullOrEmpty] - public string FilePath { get; set; } - - [Parameter(Position = 0, ParameterSetName = RawDataParameterSet, Mandatory = true, ValueFromPipeline = true, - ValueFromPipelineByPropertyName = true, HelpMessage = "The raw certificate data in either .cer or .pfx format.")] - [ValidateNotNullOrEmpty] - public byte[] RawData { get; set; } - - [Parameter] - [ValidateNotNull] - public SecureString Password { get; set; } - - [Parameter] - [ValidateNotNull] - public PSCertificateKind Kind { get; set; } - - protected override void ExecuteCmdletImpl() - { - string password = this.Password?.ConvertToString(); - - NewCertificateParameters parameters = new NewCertificateParameters( - this.BatchContext, - this.FilePath, - this.RawData, - // If kind has been specified, take that -- otherwise, default to old logic of using password to guess - this.IsParameterBound(c => c.Kind) ? this.Kind : (password == null ? PSCertificateKind.Cer : PSCertificateKind.Pfx), - this.AdditionalBehaviors) - { - Password = password - }; - - BatchClient.AddCertificate(parameters); - } - } -} diff --git a/src/Batch/Batch/Certificates/RemoveBatchCertificateCommand.cs b/src/Batch/Batch/Certificates/RemoveBatchCertificateCommand.cs deleted file mode 100644 index 30c3d6733952..000000000000 --- a/src/Batch/Batch/Certificates/RemoveBatchCertificateCommand.cs +++ /dev/null @@ -1,49 +0,0 @@ -// ---------------------------------------------------------------------------------- -// -// Copyright Microsoft Corporation -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// http://www.apache.org/licenses/LICENSE-2.0 -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// ---------------------------------------------------------------------------------- - -using System; -using Microsoft.Azure.Commands.Batch.Models; -using Microsoft.Azure.Commands.Batch.Properties; -using System.Management.Automation; -using Constants = Microsoft.Azure.Commands.Batch.Utils.Constants; -using Microsoft.WindowsAzure.Commands.Common.CustomAttributes; - -namespace Microsoft.Azure.Commands.Batch -{ - [CmdletDeprecationWithVersion("15.0.0", "4.0.0")] - [Cmdlet("Remove", ResourceManager.Common.AzureRMConstants.AzurePrefix + "BatchCertificate", SupportsShouldProcess = true), OutputType(typeof(void))] - public class RemoveBatchCertificateCommand : BatchObjectModelCmdletBase - { - [Parameter(Position = 0, Mandatory = true, ValueFromPipelineByPropertyName = true, - HelpMessage = "The algorithm used to derive the Thumbprint parameter. This must be sha1.")] - [ValidateNotNullOrEmpty] - public string ThumbprintAlgorithm { get; set; } - - [Parameter(Position = 1, Mandatory = true, ValueFromPipelineByPropertyName = true, - HelpMessage = "The thumbprint of the certificate to delete.")] - [ValidateNotNullOrEmpty] - public string Thumbprint { get; set; } - - protected override void ExecuteCmdletImpl() - { - CertificateOperationParameters parameters = new CertificateOperationParameters(this.BatchContext, - this.ThumbprintAlgorithm, this.Thumbprint, this.AdditionalBehaviors); - - ConfirmAction( - Resources.RemoveCertificate, - this.Thumbprint, - () => BatchClient.DeleteCertificate(parameters)); - } - } -} diff --git a/src/Batch/Batch/Certificates/StopBatchCertificateDeletionCommand.cs b/src/Batch/Batch/Certificates/StopBatchCertificateDeletionCommand.cs deleted file mode 100644 index 2d7a206c113f..000000000000 --- a/src/Batch/Batch/Certificates/StopBatchCertificateDeletionCommand.cs +++ /dev/null @@ -1,44 +0,0 @@ -// ---------------------------------------------------------------------------------- -// -// Copyright Microsoft Corporation -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// http://www.apache.org/licenses/LICENSE-2.0 -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// ---------------------------------------------------------------------------------- - -using Microsoft.Azure.Commands.Batch.Models; -using System.Management.Automation; -using Constants = Microsoft.Azure.Commands.Batch.Utils.Constants; -using Microsoft.WindowsAzure.Commands.Common.CustomAttributes; - -namespace Microsoft.Azure.Commands.Batch -{ - [CmdletDeprecationWithVersion("15.0.0", "4.0.0")] - [Cmdlet("Stop", ResourceManager.Common.AzureRMConstants.AzurePrefix + "BatchCertificateDeletion"), OutputType(typeof(void))] - public class StopBatchCertificateDeletionCommand : BatchObjectModelCmdletBase - { - [Parameter(Position = 0, Mandatory = true, ValueFromPipelineByPropertyName = true, - HelpMessage = "The algorithm used to derive the Thumbprint parameter. This must be sha1.")] - [ValidateNotNullOrEmpty] - public string ThumbprintAlgorithm { get; set; } - - [Parameter(Position = 1, Mandatory = true, ValueFromPipelineByPropertyName = true, - HelpMessage = "The thumbprint of the certificate that failed to delete.")] - [ValidateNotNullOrEmpty] - public string Thumbprint { get; set; } - - protected override void ExecuteCmdletImpl() - { - CertificateOperationParameters parameters = new CertificateOperationParameters(this.BatchContext, - this.ThumbprintAlgorithm, this.Thumbprint, this.AdditionalBehaviors); - - BatchClient.CancelDeleteCertificate(parameters); - } - } -} diff --git a/src/Batch/Batch/JobSchedules/GetBatchJobScheduleCommand.cs b/src/Batch/Batch/JobSchedules/GetBatchJobScheduleCommand.cs index 61d269c15eda..57f6a018459b 100644 --- a/src/Batch/Batch/JobSchedules/GetBatchJobScheduleCommand.cs +++ b/src/Batch/Batch/JobSchedules/GetBatchJobScheduleCommand.cs @@ -20,7 +20,6 @@ namespace Microsoft.Azure.Commands.Batch { - [GenericBreakingChangeWithVersion("The following properties of the PSPoolSpecification class found under the returned PSCloudJobSchedule class are being deprecated: TargetNodeCommunicationMode, ResourceTags, CertificateReferences, ApplicationLicenses, CloudServiceConfiguration","15.0.0", "4.0.0")] [Cmdlet("Get", ResourceManager.Common.AzureRMConstants.AzurePrefix + "BatchJobSchedule", DefaultParameterSetName = Constants.ODataFilterParameterSet), OutputType(typeof(PSCloudJobSchedule))] public class GetBatchJobScheduleCommand : BatchObjectModelCmdletBase { diff --git a/src/Batch/Batch/JobSchedules/NewBatchJobScheduleCommand.cs b/src/Batch/Batch/JobSchedules/NewBatchJobScheduleCommand.cs index d2deb39b1bab..9ceb1581964d 100644 --- a/src/Batch/Batch/JobSchedules/NewBatchJobScheduleCommand.cs +++ b/src/Batch/Batch/JobSchedules/NewBatchJobScheduleCommand.cs @@ -39,7 +39,6 @@ public class NewBatchJobScheduleCommand : BatchObjectModelCmdletBase [Parameter(Mandatory = true, HelpMessage = "Specifies details of the jobs to be created on this schedule.")] [ValidateNotNullOrEmpty] - [GenericBreakingChangeWithVersion("The following properties of the PSPoolSpecification class found under the PSJobSpecification class are being deprecated: TargetNodeCommunicationMode, ResourceTags, CertificateReferences, ApplicationLicenses, CloudServiceConfiguration","15.0.0", "4.0.0")] public PSJobSpecification JobSpecification { get; set; } [Parameter] diff --git a/src/Batch/Batch/Jobs/GetBatchJobCommand.cs b/src/Batch/Batch/Jobs/GetBatchJobCommand.cs index b68936a2b4c3..2134e43f005a 100644 --- a/src/Batch/Batch/Jobs/GetBatchJobCommand.cs +++ b/src/Batch/Batch/Jobs/GetBatchJobCommand.cs @@ -20,7 +20,6 @@ namespace Microsoft.Azure.Commands.Batch { - [GenericBreakingChangeWithVersion("The following properties of the PSPoolSpecification class found under the returned PSCloudJob class are being deprecated: TargetNodeCommunicationMode, ResourceTags, CertificateReferences, ApplicationLicenses, CloudServiceConfiguration","15.0.0", "4.0.0")] [Cmdlet("Get", ResourceManager.Common.AzureRMConstants.AzurePrefix + "BatchJob", DefaultParameterSetName = Constants.ODataFilterParameterSet), OutputType(typeof(PSCloudJob))] public class GetBatchJobCommand : BatchObjectModelCmdletBase { diff --git a/src/Batch/Batch/Jobs/NewBatchJobCommand.cs b/src/Batch/Batch/Jobs/NewBatchJobCommand.cs index 4cf6ae69f4a1..e1530e4c3a2d 100644 --- a/src/Batch/Batch/Jobs/NewBatchJobCommand.cs +++ b/src/Batch/Batch/Jobs/NewBatchJobCommand.cs @@ -61,7 +61,6 @@ public class NewBatchJobCommand : BatchObjectModelCmdletBase [Parameter(Mandatory = true, HelpMessage = "The pool information for the job.")] [ValidateNotNullOrEmpty] - [GenericBreakingChangeWithVersion("The following properties of the PSPoolSpecification class found under the PSPoolInformation class are being deprecated: TargetNodeCommunicationMode, ResourceTags, CertificateReferences, ApplicationLicenses, CloudServiceConfiguration","15.0.0", "4.0.0")] public PSPoolInformation PoolInformation { get; set; } [Parameter] diff --git a/src/Batch/Batch/Models.Generated/PSCertificate.cs b/src/Batch/Batch/Models.Generated/PSCertificate.cs deleted file mode 100644 index fe08c009456d..000000000000 --- a/src/Batch/Batch/Models.Generated/PSCertificate.cs +++ /dev/null @@ -1,149 +0,0 @@ -// ----------------------------------------------------------------------------- -// -// Copyright Microsoft Corporation -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// http://www.apache.org/licenses/LICENSE-2.0 -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// ----------------------------------------------------------------------------- -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:5.0.17 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace Microsoft.Azure.Commands.Batch.Models -{ - using System; - using System.Collections; - using System.Collections.Generic; - using Microsoft.Azure.Batch; - - - public partial class PSCertificate - { - - internal Microsoft.Azure.Batch.Certificate omObject; - - private PSDeleteCertificateError deleteCertificateError; - - internal PSCertificate(Microsoft.Azure.Batch.Certificate omObject) - { - if ((omObject == null)) - { - throw new System.ArgumentNullException("omObject"); - } - this.omObject = omObject; - } - - public Microsoft.Azure.Batch.Common.CertificateFormat? CertificateFormat - { - get - { - return this.omObject.CertificateFormat; - } - } - - public string Data - { - get - { - return this.omObject.Data; - } - } - - public PSDeleteCertificateError DeleteCertificateError - { - get - { - if (((this.deleteCertificateError == null) - && (this.omObject.DeleteCertificateError != null))) - { - this.deleteCertificateError = new PSDeleteCertificateError(this.omObject.DeleteCertificateError); - } - return this.deleteCertificateError; - } - } - - public string Password - { - get - { - return this.omObject.Password; - } - } - - public Microsoft.Azure.Batch.Common.CertificateState? PreviousState - { - get - { - return this.omObject.PreviousState; - } - } - - public System.DateTime? PreviousStateTransitionTime - { - get - { - return this.omObject.PreviousStateTransitionTime; - } - } - - public string PublicData - { - get - { - return this.omObject.PublicData; - } - } - - public Microsoft.Azure.Batch.Common.CertificateState? State - { - get - { - return this.omObject.State; - } - } - - public System.DateTime? StateTransitionTime - { - get - { - return this.omObject.StateTransitionTime; - } - } - - public string Thumbprint - { - get - { - return this.omObject.Thumbprint; - } - } - - public string ThumbprintAlgorithm - { - get - { - return this.omObject.ThumbprintAlgorithm; - } - } - - public string Url - { - get - { - return this.omObject.Url; - } - } - } -} diff --git a/src/Batch/Batch/Models.Generated/PSCertificateReference.cs b/src/Batch/Batch/Models.Generated/PSCertificateReference.cs deleted file mode 100644 index ba8a4934c6b4..000000000000 --- a/src/Batch/Batch/Models.Generated/PSCertificateReference.cs +++ /dev/null @@ -1,116 +0,0 @@ -// ----------------------------------------------------------------------------- -// -// Copyright Microsoft Corporation -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// http://www.apache.org/licenses/LICENSE-2.0 -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// ----------------------------------------------------------------------------- -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:5.0.17 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace Microsoft.Azure.Commands.Batch.Models -{ - using System; - using System.Collections; - using System.Collections.Generic; - using Microsoft.Azure.Batch; - - - public partial class PSCertificateReference - { - - internal Microsoft.Azure.Batch.CertificateReference omObject; - - public PSCertificateReference() - { - this.omObject = new Microsoft.Azure.Batch.CertificateReference(); - } - - public PSCertificateReference(PSCertificate baseCertificate) - { - this.omObject = new Microsoft.Azure.Batch.CertificateReference(baseCertificate.omObject); - } - - internal PSCertificateReference(Microsoft.Azure.Batch.CertificateReference omObject) - { - if ((omObject == null)) - { - throw new System.ArgumentNullException("omObject"); - } - this.omObject = omObject; - } - - public Microsoft.Azure.Batch.Common.CertStoreLocation? StoreLocation - { - get - { - return this.omObject.StoreLocation; - } - set - { - this.omObject.StoreLocation = value; - } - } - - public string StoreName - { - get - { - return this.omObject.StoreName; - } - set - { - this.omObject.StoreName = value; - } - } - - public string Thumbprint - { - get - { - return this.omObject.Thumbprint; - } - set - { - this.omObject.Thumbprint = value; - } - } - - public string ThumbprintAlgorithm - { - get - { - return this.omObject.ThumbprintAlgorithm; - } - set - { - this.omObject.ThumbprintAlgorithm = value; - } - } - - public Microsoft.Azure.Batch.Common.CertificateVisibility? Visibility - { - get - { - return this.omObject.Visibility; - } - set - { - this.omObject.Visibility = value; - } - } - } -} diff --git a/src/Batch/Batch/Models.Generated/PSCloudPool.cs b/src/Batch/Batch/Models.Generated/PSCloudPool.cs index f39bcfb0a1c5..86ef2497cd8b 100644 --- a/src/Batch/Batch/Models.Generated/PSCloudPool.cs +++ b/src/Batch/Batch/Models.Generated/PSCloudPool.cs @@ -38,8 +38,6 @@ public partial class PSCloudPool private PSAutoScaleRun autoScaleRun; - private IList certificateReferences; - private PSBatchPoolIdentity identity; private IDictionary metadata; @@ -50,8 +48,6 @@ public partial class PSCloudPool private IReadOnlyList resizeErrors; - private IDictionary resourceTags; - private PSStartTask startTask; private PSPoolStatistics statistics; @@ -173,41 +169,6 @@ public PSAutoScaleRun AutoScaleRun } } - public IList CertificateReferences - { - get - { - if (((this.certificateReferences == null) - && (this.omObject.CertificateReferences != null))) - { - List list; - list = new List(); - IEnumerator enumerator; - enumerator = this.omObject.CertificateReferences.GetEnumerator(); - for ( - ; enumerator.MoveNext(); - ) - { - list.Add(new PSCertificateReference(enumerator.Current)); - } - this.certificateReferences = list; - } - return this.certificateReferences; - } - set - { - if ((value == null)) - { - this.omObject.CertificateReferences = null; - } - else - { - this.omObject.CertificateReferences = new List(); - } - this.certificateReferences = value; - } - } - public System.DateTime? CreationTime { get @@ -232,14 +193,6 @@ public System.Int32? CurrentLowPriorityComputeNodes } } - public Microsoft.Azure.Batch.Common.NodeCommunicationMode? CurrentNodeCommunicationMode - { - get - { - return this.omObject.CurrentNodeCommunicationMode; - } - } - public string DisplayName { get @@ -435,41 +388,6 @@ public System.TimeSpan? ResizeTimeout } } - public IDictionary ResourceTags - { - get - { - if (((this.resourceTags == null) - && (this.omObject.ResourceTags != null))) - { - Dictionary dict; - dict = new Dictionary(); - IEnumerator> enumerator; - enumerator = this.omObject.ResourceTags.GetEnumerator(); - for ( - ; enumerator.MoveNext(); - ) - { - dict.Add(enumerator.Current.Key, enumerator.Current.Value); - } - this.resourceTags = dict; - } - return this.resourceTags; - } - set - { - if ((value == null)) - { - this.omObject.ResourceTags = null; - } - else - { - this.omObject.ResourceTags = new Dictionary(); - } - this.resourceTags = value; - } - } - public PSStartTask StartTask { get @@ -548,18 +466,6 @@ public System.Int32? TargetLowPriorityComputeNodes } } - public Microsoft.Azure.Batch.Common.NodeCommunicationMode? TargetNodeCommunicationMode - { - get - { - return this.omObject.TargetNodeCommunicationMode; - } - set - { - this.omObject.TargetNodeCommunicationMode = value; - } - } - public PSTaskSchedulingPolicy TaskSchedulingPolicy { get diff --git a/src/Batch/Batch/Models.Generated/PSComputeNode.cs b/src/Batch/Batch/Models.Generated/PSComputeNode.cs index 14c9e0d75df8..ed4d66b98471 100644 --- a/src/Batch/Batch/Models.Generated/PSComputeNode.cs +++ b/src/Batch/Batch/Models.Generated/PSComputeNode.cs @@ -34,8 +34,6 @@ public partial class PSComputeNode internal Microsoft.Azure.Batch.ComputeNode omObject; - private IReadOnlyList certificateReferences; - private PSComputeNodeEndpointConfiguration endpointConfiguration; private IReadOnlyList errors; @@ -75,29 +73,6 @@ public System.DateTime? AllocationTime } } - public IReadOnlyList CertificateReferences - { - get - { - if (((this.certificateReferences == null) - && (this.omObject.CertificateReferences != null))) - { - List list; - list = new List(); - IEnumerator enumerator; - enumerator = this.omObject.CertificateReferences.GetEnumerator(); - for ( - ; enumerator.MoveNext(); - ) - { - list.Add(new PSCertificateReference(enumerator.Current)); - } - this.certificateReferences = list; - } - return this.certificateReferences; - } - } - public PSComputeNodeEndpointConfiguration EndpointConfiguration { get diff --git a/src/Batch/Batch/Models.Generated/PSDeleteCertificateError.cs b/src/Batch/Batch/Models.Generated/PSDeleteCertificateError.cs deleted file mode 100644 index db998cd90e23..000000000000 --- a/src/Batch/Batch/Models.Generated/PSDeleteCertificateError.cs +++ /dev/null @@ -1,87 +0,0 @@ -// ----------------------------------------------------------------------------- -// -// Copyright Microsoft Corporation -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// http://www.apache.org/licenses/LICENSE-2.0 -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// ----------------------------------------------------------------------------- -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:5.0.17 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace Microsoft.Azure.Commands.Batch.Models -{ - using System; - using System.Collections; - using System.Collections.Generic; - using Microsoft.Azure.Batch; - - - public partial class PSDeleteCertificateError - { - - internal Microsoft.Azure.Batch.DeleteCertificateError omObject; - - private IReadOnlyList values; - - internal PSDeleteCertificateError(Microsoft.Azure.Batch.DeleteCertificateError omObject) - { - if ((omObject == null)) - { - throw new System.ArgumentNullException("omObject"); - } - this.omObject = omObject; - } - - public string Code - { - get - { - return this.omObject.Code; - } - } - - public string Message - { - get - { - return this.omObject.Message; - } - } - - public IReadOnlyList Values - { - get - { - if (((this.values == null) - && (this.omObject.Values != null))) - { - List list; - list = new List(); - IEnumerator enumerator; - enumerator = this.omObject.Values.GetEnumerator(); - for ( - ; enumerator.MoveNext(); - ) - { - list.Add(new PSNameValuePair(enumerator.Current)); - } - this.values = list; - } - return this.values; - } - } - } -} diff --git a/src/Batch/Batch/Models.Generated/PSPoolSpecification.cs b/src/Batch/Batch/Models.Generated/PSPoolSpecification.cs index 47da320b1de1..1d93c5f44759 100644 --- a/src/Batch/Batch/Models.Generated/PSPoolSpecification.cs +++ b/src/Batch/Batch/Models.Generated/PSPoolSpecification.cs @@ -36,16 +36,12 @@ public partial class PSPoolSpecification private IList applicationPackageReferences; - private IList certificateReferences; - private IDictionary metadata; private IList mountConfiguration; private PSNetworkConfiguration networkConfiguration; - private IDictionary resourceTags; - private PSStartTask startTask; private PSTaskSchedulingPolicy taskSchedulingPolicy; @@ -141,41 +137,6 @@ public string AutoScaleFormula } } - public IList CertificateReferences - { - get - { - if (((this.certificateReferences == null) - && (this.omObject.CertificateReferences != null))) - { - List list; - list = new List(); - IEnumerator enumerator; - enumerator = this.omObject.CertificateReferences.GetEnumerator(); - for ( - ; enumerator.MoveNext(); - ) - { - list.Add(new PSCertificateReference(enumerator.Current)); - } - this.certificateReferences = list; - } - return this.certificateReferences; - } - set - { - if ((value == null)) - { - this.omObject.CertificateReferences = null; - } - else - { - this.omObject.CertificateReferences = new List(); - } - this.certificateReferences = value; - } - } - public string DisplayName { get @@ -307,41 +268,6 @@ public System.TimeSpan? ResizeTimeout } } - public IDictionary ResourceTags - { - get - { - if (((this.resourceTags == null) - && (this.omObject.ResourceTags != null))) - { - Dictionary dict; - dict = new Dictionary(); - IEnumerator> enumerator; - enumerator = this.omObject.ResourceTags.GetEnumerator(); - for ( - ; enumerator.MoveNext(); - ) - { - dict.Add(enumerator.Current.Key, enumerator.Current.Value); - } - this.resourceTags = dict; - } - return this.resourceTags; - } - set - { - if ((value == null)) - { - this.omObject.ResourceTags = null; - } - else - { - this.omObject.ResourceTags = new Dictionary(); - } - this.resourceTags = value; - } - } - public PSStartTask StartTask { get @@ -391,18 +317,6 @@ public System.Int32? TargetLowPriorityComputeNodes } } - public Microsoft.Azure.Batch.Common.NodeCommunicationMode? TargetNodeCommunicationMode - { - get - { - return this.omObject.TargetNodeCommunicationMode; - } - set - { - this.omObject.TargetNodeCommunicationMode = value; - } - } - public PSTaskSchedulingPolicy TaskSchedulingPolicy { get diff --git a/src/Batch/Batch/Models/BatchClient.Certificates.cs b/src/Batch/Batch/Models/BatchClient.Certificates.cs deleted file mode 100644 index 792515d2c52e..000000000000 --- a/src/Batch/Batch/Models/BatchClient.Certificates.cs +++ /dev/null @@ -1,145 +0,0 @@ -// ---------------------------------------------------------------------------------- -// -// Copyright Microsoft Corporation -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// http://www.apache.org/licenses/LICENSE-2.0 -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// ---------------------------------------------------------------------------------- - -using Microsoft.Azure.Batch; -using Microsoft.Azure.Commands.Batch.Properties; -using System; -using System.Collections.Generic; - -namespace Microsoft.Azure.Commands.Batch.Models -{ - public partial class BatchClient - { - /// - /// Lists the certificates matching the specified filter options. - /// - /// The options to use when querying for certificates. - /// The certificates matching the specified filter options. - [Obsolete("This operation is deprecated and will be removed after February, 2024.")] - public IEnumerable ListCertificates(ListCertificateOptions options) - { - if (options == null) - { - throw new ArgumentNullException("options"); - } - - // Get the single certificate matching the specified thumbprint - if (!string.IsNullOrWhiteSpace(options.Thumbprint)) - { - WriteVerbose(string.Format(Resources.GetCertificateByThumbprint, options.Thumbprint)); - CertificateOperations certOperations = options.Context.BatchOMClient.CertificateOperations; - ODATADetailLevel getDetailLevel = new ODATADetailLevel(selectClause: options.Select); - Certificate certificate = certOperations.GetCertificate(options.ThumbprintAlgorithm, options.Thumbprint, - detailLevel: getDetailLevel, additionalBehaviors: options.AdditionalBehaviors); - PSCertificate psCertificate = new PSCertificate(certificate); - return new PSCertificate[] { psCertificate }; - } - // List certificates using the specified filter - else - { - string verboseLogString = null; - ODATADetailLevel listDetailLevel = new ODATADetailLevel(selectClause: options.Select); - if (!string.IsNullOrEmpty(options.Filter)) - { - verboseLogString = Resources.GetCertificatesByFilter; - listDetailLevel.FilterClause = options.Filter; - } - else - { - verboseLogString = Resources.GetCertificatesNoFilter; - } - WriteVerbose(verboseLogString); - - CertificateOperations certOperations = options.Context.BatchOMClient.CertificateOperations; - IPagedEnumerable certificates = certOperations.ListCertificates(listDetailLevel, options.AdditionalBehaviors); - Func mappingFunction = c => { return new PSCertificate(c); }; - return PSPagedEnumerable.CreateWithMaxCount( - certificates, mappingFunction, options.MaxCount, () => WriteMaxCount(options.MaxCount)); - } - } - - /// - /// Adds a certificate to the specified Batch account. - /// - /// The parameters to use when creating the certificate. - [Obsolete("This operation is deprecated and will be removed after February, 2024.")] - public void AddCertificate(NewCertificateParameters parameters) - { - if (parameters == null) - { - throw new ArgumentNullException("parameters"); - } - - CertificateOperations certOperations = parameters.Context.BatchOMClient.CertificateOperations; - Certificate unboundCert; - - if (!string.IsNullOrWhiteSpace(parameters.FilePath)) - { - if (parameters.CertificateKind == PSCertificateKind.Cer) - { - unboundCert = certOperations.CreateCertificateFromCer(parameters.FilePath); - } - else - { - unboundCert = certOperations.CreateCertificateFromPfx(parameters.FilePath, parameters.Password); - } - } - else - { - if (parameters.CertificateKind == PSCertificateKind.Cer) - { - unboundCert = certOperations.CreateCertificateFromCer(parameters.RawData); - } - else - { - unboundCert = certOperations.CreateCertificateFromPfx(parameters.RawData, parameters.Password); - } - } - - WriteVerbose(string.Format(Resources.AddingCertificate, unboundCert.Thumbprint)); - unboundCert.Commit(parameters.AdditionalBehaviors); - } - - /// - /// Deletes the specified certificate. - /// - /// The parameters indicating which certificate to delete. - public void DeleteCertificate(CertificateOperationParameters parameters) - { - if (parameters == null) - { - throw new ArgumentNullException("parameters"); - } - - CertificateOperations certOperations = parameters.Context.BatchOMClient.CertificateOperations; - certOperations.DeleteCertificate(parameters.ThumbprintAlgorithm, parameters.Thumbprint, parameters.AdditionalBehaviors); - } - - /// - /// Cancels a failed deletion of the specified certificate. - /// - /// The parameters indicating which certificate to failed to delete. - public void CancelDeleteCertificate(CertificateOperationParameters parameters) - { - if (parameters == null) - { - throw new ArgumentNullException("parameters"); - } - - WriteVerbose(string.Format(Resources.CancelCertificateDelete, parameters.Thumbprint)); - CertificateOperations certOperations = parameters.Context.BatchOMClient.CertificateOperations; - certOperations.CancelDeleteCertificate(parameters.ThumbprintAlgorithm, parameters.Thumbprint, parameters.AdditionalBehaviors); - } - } -} \ No newline at end of file diff --git a/src/Batch/Batch/Models/BatchClient.Pools.cs b/src/Batch/Batch/Models/BatchClient.Pools.cs index 2fb37b2ed338..ebc7f10feb77 100644 --- a/src/Batch/Batch/Models/BatchClient.Pools.cs +++ b/src/Batch/Batch/Models/BatchClient.Pools.cs @@ -128,25 +128,6 @@ public void CreatePool(NewPoolParameters parameters) } } - if (parameters.ResourceTags != null) - { - pool.ResourceTags = new Dictionary(); - - foreach (DictionaryEntry m in parameters.ResourceTags) - { - pool.ResourceTags.Add(m.Key.ToString(), m.Value?.ToString()); - } - } - - if (parameters.CertificateReferences != null) - { - pool.CertificateReferences = new List(); - foreach (PSCertificateReference c in parameters.CertificateReferences) - { - pool.CertificateReferences.Add(c.omObject); - } - } - if (parameters.ApplicationPackageReferences != null) { pool.ApplicationPackageReferences = parameters.ApplicationPackageReferences.ToList().ConvertAll(apr => apr.omObject); @@ -177,8 +158,6 @@ public void CreatePool(NewPoolParameters parameters) pool.UserAccounts = parameters.UserAccounts.ToList().ConvertAll(user => user.omObject); } - pool.TargetNodeCommunicationMode = (NodeCommunicationMode)parameters.TargetCommunicationMode; - WriteVerbose(string.Format(Resources.CreatingPool, parameters.PoolId)); pool.Commit(parameters.AdditionalBehaviors); } diff --git a/src/Batch/Batch/Models/CertificateOperationParameters.cs b/src/Batch/Batch/Models/CertificateOperationParameters.cs deleted file mode 100644 index 2465baad9651..000000000000 --- a/src/Batch/Batch/Models/CertificateOperationParameters.cs +++ /dev/null @@ -1,50 +0,0 @@ -// ---------------------------------------------------------------------------------- -// -// Copyright Microsoft Corporation -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// http://www.apache.org/licenses/LICENSE-2.0 -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// ---------------------------------------------------------------------------------- - -using Microsoft.Azure.Batch; -using System; -using System.Collections.Generic; - -namespace Microsoft.Azure.Commands.Batch.Models -{ - public class CertificateOperationParameters : BatchClientParametersBase - { - public CertificateOperationParameters(BatchAccountContext context, string thumbprintAlgorithm, string thumbprint, - IEnumerable additionalBehaviors = null) : base(context, additionalBehaviors) - { - if (string.IsNullOrWhiteSpace(thumbprintAlgorithm)) - { - throw new ArgumentNullException("thumbprintAlgorithm"); - } - - if (string.IsNullOrWhiteSpace(thumbprint)) - { - throw new ArgumentNullException("thumbprint"); - } - - this.ThumbprintAlgorithm = thumbprintAlgorithm; - this.Thumbprint = thumbprint; - } - - /// - /// The algorithm used to derive the Thumbprint parameter. This must be sha1. - /// - public string ThumbprintAlgorithm { get; private set; } - - /// - /// The thumbprint of the certificate - /// - public string Thumbprint { get; private set; } - } -} diff --git a/src/Batch/Batch/Models/ListCertificateOptions.cs b/src/Batch/Batch/Models/ListCertificateOptions.cs deleted file mode 100644 index 83a053ddd843..000000000000 --- a/src/Batch/Batch/Models/ListCertificateOptions.cs +++ /dev/null @@ -1,51 +0,0 @@ -// ---------------------------------------------------------------------------------- -// -// Copyright Microsoft Corporation -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// http://www.apache.org/licenses/LICENSE-2.0 -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// ---------------------------------------------------------------------------------- - -using Microsoft.Azure.Batch; -using System.Collections.Generic; - -namespace Microsoft.Azure.Commands.Batch.Models -{ - public class ListCertificateOptions : BatchClientParametersBase - { - public ListCertificateOptions(BatchAccountContext context, IEnumerable additionalBehaviors = null) - : base(context, additionalBehaviors) - { } - - /// - /// The algorithm used to derive the Thumbprint parameter. This must be sha1. - /// - public string ThumbprintAlgorithm { get; set; } - - /// - /// If specified, the single certificate with this thumbprint will be returned. - /// - public string Thumbprint { get; set; } - - /// - /// The OData filter to use when querying for certificates. - /// - public string Filter { get; set; } - - /// - /// The OData select clause to use. - /// - public string Select { get; set; } - - /// - /// The maximum number of certificates to return. - /// - public int MaxCount { get; set; } - } -} diff --git a/src/Batch/Batch/Models/NewCertificateParameters.cs b/src/Batch/Batch/Models/NewCertificateParameters.cs deleted file mode 100644 index 878edc1099f8..000000000000 --- a/src/Batch/Batch/Models/NewCertificateParameters.cs +++ /dev/null @@ -1,61 +0,0 @@ -// ---------------------------------------------------------------------------------- -// -// Copyright Microsoft Corporation -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// http://www.apache.org/licenses/LICENSE-2.0 -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// ---------------------------------------------------------------------------------- - -using Microsoft.Azure.Batch; -using Microsoft.Azure.Commands.Batch.Properties; -using System; -using System.Collections.Generic; - -namespace Microsoft.Azure.Commands.Batch.Models -{ - public class NewCertificateParameters : BatchClientParametersBase - { - public NewCertificateParameters( - BatchAccountContext context, - string filePath, - byte[] rawData, - PSCertificateKind certKind, - IEnumerable additionalBehaviors = null) : base(context, additionalBehaviors) - { - if (string.IsNullOrWhiteSpace(filePath) && rawData == null) - { - throw new ArgumentException(Resources.NoCertificateData); - } - - this.FilePath = filePath; - this.RawData = rawData; - this.CertificateKind = certKind; - } - - /// - /// The path to the certificate file. The certificate must be in either .cer or .pfx format. - /// - public string FilePath { get; private set; } - - /// - /// The raw certificate data in either .cer or .pfx format. - /// - public byte[] RawData { get; private set; } - - /// - /// The password to access the certificate private key for .pfx certificates. - /// - public string Password { get; set; } - - /// - /// The kind of certificate - /// - public PSCertificateKind CertificateKind { get; set; } - } -} diff --git a/src/Batch/Batch/Models/NewPoolParameters.cs b/src/Batch/Batch/Models/NewPoolParameters.cs index 97e124d739c5..68763387bad8 100644 --- a/src/Batch/Batch/Models/NewPoolParameters.cs +++ b/src/Batch/Batch/Models/NewPoolParameters.cs @@ -98,11 +98,6 @@ public NewPoolParameters(BatchAccountContext context, string poolId, IEnumerable /// public IDictionary Metadata { get; set; } - /// - /// The user-specified tags associated with the pool. - /// - public IDictionary ResourceTags { get; set; } - /// /// Specifies whether the pool permits direct communication between compute nodes. /// @@ -113,11 +108,6 @@ public NewPoolParameters(BatchAccountContext context, string poolId, IEnumerable /// public PSStartTask StartTask { get; set; } - /// - /// Certificate references for the pool. - /// - public PSCertificateReference[] CertificateReferences { get; set; } - /// /// Application package references for the pool. /// @@ -142,11 +132,5 @@ public NewPoolParameters(BatchAccountContext context, string poolId, IEnumerable /// The list of application licenses the Batch service will make available on each compute node in the pool. /// public List ApplicationLicenses { get; set; } - - /// - /// The desired node communication mode for the pool. - /// - public NodeCommunicationMode TargetCommunicationMode { get; set; } - } } diff --git a/src/Batch/Batch/Models/PSCertificateKind.cs b/src/Batch/Batch/Models/PSCertificateKind.cs deleted file mode 100644 index 8701006327e4..000000000000 --- a/src/Batch/Batch/Models/PSCertificateKind.cs +++ /dev/null @@ -1,12 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace Microsoft.Azure.Commands.Batch.Models -{ - public enum PSCertificateKind - { - Cer, - Pfx - } -} diff --git a/src/Batch/Batch/Pools/GetBatchPoolCommand.cs b/src/Batch/Batch/Pools/GetBatchPoolCommand.cs index 2823bdf7d3e0..812186e37c5c 100644 --- a/src/Batch/Batch/Pools/GetBatchPoolCommand.cs +++ b/src/Batch/Batch/Pools/GetBatchPoolCommand.cs @@ -20,7 +20,6 @@ namespace Microsoft.Azure.Commands.Batch { - [CmdletOutputBreakingChangeWithVersion(typeof(PSCloudPool), "15.0.0", "4.0.0", DeprecatedOutputProperties = new string[] {"CurrentNodeCommunicationMode", "TargetNodeCommunicationMode", "ResourceTags", "CertificateReferences", "ApplicationLicenses", "CloudServiceConfiguration"})] [Cmdlet("Get", ResourceManager.Common.AzureRMConstants.AzurePrefix + "BatchPool", DefaultParameterSetName = Constants.ODataFilterParameterSet), OutputType(typeof(PSCloudPool))] public class GetBatchPoolCommand : BatchObjectModelCmdletBase { diff --git a/src/Batch/Batch/Pools/GetBatchPoolNodeCountCommand.cs b/src/Batch/Batch/Pools/GetBatchPoolNodeCountCommand.cs index cd813776648a..d867d1a9bbc3 100644 --- a/src/Batch/Batch/Pools/GetBatchPoolNodeCountCommand.cs +++ b/src/Batch/Batch/Pools/GetBatchPoolNodeCountCommand.cs @@ -34,7 +34,6 @@ public class GetBatchPoolNodeCountCommand : BatchObjectModelCmdletBase [Parameter(ParameterSetName = Constants.ParentObjectParameterSet, ValueFromPipeline = true, Mandatory = false, HelpMessage = "The pool object for which to get node counts.")] [ValidateNotNullOrEmpty] - [GenericBreakingChangeWithVersion("The following properties of PSCloudPool are being deprecated: CurrentNodeCommunicationMode, TargetNodeCommunicationMode, ResourceTags, CertificateReferences, ApplicationLicenses, CloudServiceConfiguration","15.0.0", "4.0.0")] public PSCloudPool Pool { get; set; } [Parameter(ParameterSetName = Constants.ODataFilterParameterSet), ValidateRange(1, defaultMaxCount)] diff --git a/src/Batch/Batch/Pools/NewBatchPoolCommand.cs b/src/Batch/Batch/Pools/NewBatchPoolCommand.cs index 0ab99c061b8b..c63bfc8816f7 100644 --- a/src/Batch/Batch/Pools/NewBatchPoolCommand.cs +++ b/src/Batch/Batch/Pools/NewBatchPoolCommand.cs @@ -99,34 +99,16 @@ public class NewBatchPoolCommand : BatchObjectModelCmdletBase [ValidateNotNullOrEmpty] public PSStartTask StartTask { get; set; } - [Parameter] - [ValidateNotNullOrEmpty] - [Alias("CertificateReference")] - [CmdletParameterBreakingChangeWithVersion("CertificateReference", "15.0.0", "4.0.0", ChangeDescription = ChangeDesc)] - public PSCertificateReference[] CertificateReferences { get; set; } - [Parameter] [ValidateNotNullOrEmpty] [Alias("ApplicationPackageReference")] public PSApplicationPackageReference[] ApplicationPackageReferences { get; set; } - [Parameter] - [ValidateNotNullOrEmpty] - [Alias("ApplicationLicense")] - [CmdletParameterBreakingChangeWithVersion("ApplicationLicense", "15.0.0", "4.0.0", ChangeDescription = ChangeDesc)] - public List ApplicationLicenses { get; set; } - [Parameter(ParameterSetName = VirtualMachineAutoScaleParameterSet)] [Parameter(ParameterSetName = VirtualMachineTargetDedicatedParameterSet)] [ValidateNotNullOrEmpty] public PSVirtualMachineConfiguration VirtualMachineConfiguration { get; set; } - [Parameter(ParameterSetName = CloudServiceAutoScaleParameterSet)] - [Parameter(ParameterSetName = CloudServiceTargetDedicatedParameterSet)] - [ValidateNotNullOrEmpty] - [CmdletParameterBreakingChangeWithVersion("CloudServiceConfiguration", "15.0.0", "4.0.0", ChangeDescription = ChangeDesc)] - public PSCloudServiceConfiguration CloudServiceConfiguration { get; set; } - [Parameter] [ValidateNotNullOrEmpty] public PSNetworkConfiguration NetworkConfiguration { get; set; } @@ -139,16 +121,6 @@ public class NewBatchPoolCommand : BatchObjectModelCmdletBase [ValidateNotNullOrEmpty] public PSUserAccount[] UserAccount { get; set; } - [Parameter] - [ValidateNotNullOrEmpty] - public NodeCommunicationMode CurrentNodeCommunicationMode { get; } - - [Parameter] - [ValidateNotNullOrEmpty] - [PSArgumentCompleter("Default", "Classic", "Simplified")] - [CmdletParameterBreakingChangeWithVersion("TargetNodeCommunicationMode", "15.0.0", "4.0.0", ChangeDescription = ChangeDesc)] - public NodeCommunicationMode TargetNodeCommunicationMode { get; set; } - protected override void ExecuteCmdletImpl() { NewPoolParameters parameters = new NewPoolParameters(this.BatchContext, this.Id, this.AdditionalBehaviors) @@ -166,15 +138,11 @@ protected override void ExecuteCmdletImpl() Metadata = this.Metadata, InterComputeNodeCommunicationEnabled = this.InterComputeNodeCommunicationEnabled.IsPresent, StartTask = this.StartTask, - CertificateReferences = this.CertificateReferences, ApplicationPackageReferences = this.ApplicationPackageReferences, VirtualMachineConfiguration = this.VirtualMachineConfiguration, NetworkConfiguration = this.NetworkConfiguration, UserAccounts = this.UserAccount, - ApplicationLicenses = this.ApplicationLicenses, - MountConfiguration = this.MountConfiguration, - TargetCommunicationMode = this.TargetNodeCommunicationMode, - ResourceTags = this.ResourceTag, + MountConfiguration = this.MountConfiguration }; if (ShouldProcess("AzureBatchPool")) diff --git a/src/Batch/Batch/Pools/SetBatchPoolCommand.cs b/src/Batch/Batch/Pools/SetBatchPoolCommand.cs index 45801f212d2b..4e5c51abab61 100644 --- a/src/Batch/Batch/Pools/SetBatchPoolCommand.cs +++ b/src/Batch/Batch/Pools/SetBatchPoolCommand.cs @@ -25,7 +25,6 @@ public class SetBatchPoolCommand : BatchObjectModelCmdletBase [Parameter(Position = 0, Mandatory = true, ValueFromPipeline = true, HelpMessage = "The PSCloudPool object with changes to commit to the Batch Service.")] [ValidateNotNullOrEmpty] - [GenericBreakingChangeWithVersion("The following properties of PSCloudPool are being deprecated: CurrentNodeCommunicationMode, TargetNodeCommunicationMode, ResourceTags, CertificateReferences, ApplicationLicenses, CloudServiceConfiguration","15.0.0", "4.0.0")] public PSCloudPool Pool { get; set; } protected override void ExecuteCmdletImpl() diff --git a/src/Batch/Batch/Properties/Resources.Designer.cs b/src/Batch/Batch/Properties/Resources.Designer.cs index ba1c398713d8..4321303f2b92 100644 --- a/src/Batch/Batch/Properties/Resources.Designer.cs +++ b/src/Batch/Batch/Properties/Resources.Designer.cs @@ -60,15 +60,6 @@ internal Resources() { } } - /// - /// Looks up a localized string similar to Adding a new certificate with thumbprint {0}. . - /// - internal static string AddingCertificate { - get { - return ResourceManager.GetString("AddingCertificate", resourceCulture); - } - } - /// /// Looks up a localized string similar to Failed to create application package {0} version {1}. The package already exists, and the application does not allow existing packages to be updated. You must upload your package using a new version number.. /// @@ -87,15 +78,6 @@ internal static string BeginMAMLCall { } } - /// - /// Looks up a localized string similar to Canceling deletion of the certificate with thumbprint {0}.. - /// - internal static string CancelCertificateDelete { - get { - return ResourceManager.GetString("CancelCertificateDelete", resourceCulture); - } - } - /// /// Looks up a localized string similar to Changing OS version of pool {0} to {1}.. /// @@ -366,33 +348,6 @@ internal static string GetAllPoolsLifetimeStatistics { } } - /// - /// Looks up a localized string similar to Getting the certificate with thumbprint {0}.. - /// - internal static string GetCertificateByThumbprint { - get { - return ResourceManager.GetString("GetCertificateByThumbprint", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Getting certificates matching the specified OData filter.. - /// - internal static string GetCertificatesByFilter { - get { - return ResourceManager.GetString("GetCertificatesByFilter", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Getting all certificates that have been added to the Batch account.. - /// - internal static string GetCertificatesNoFilter { - get { - return ResourceManager.GetString("GetCertificatesNoFilter", resourceCulture); - } - } - /// /// Looks up a localized string similar to Getting compute node "{0}" from pool "{1}".. /// @@ -825,15 +780,6 @@ internal static string NewApplicationPackageNoPathSpecified { } } - /// - /// Looks up a localized string similar to No certificate data was specified. Supply the path to a certificate file, or provide the raw certificate data.. - /// - internal static string NoCertificateData { - get { - return ResourceManager.GetString("NoCertificateData", resourceCulture); - } - } - /// /// Looks up a localized string similar to No compute node was specified. Supply a PSComputeNode object or a pool id and compute node id.. /// @@ -978,24 +924,6 @@ internal static string RemoveBatchAccount { } } - /// - /// Looks up a localized string similar to Removing certificate .... - /// - internal static string RemoveCertificate { - get { - return ResourceManager.GetString("RemoveCertificate", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Are you sure you want to remove the certificate with thumbprint {0}?. - /// - internal static string RemoveCertificateConfirm { - get { - return ResourceManager.GetString("RemoveCertificateConfirm", resourceCulture); - } - } - /// /// Looks up a localized string similar to Removing compute node(s) from pool.... /// diff --git a/src/Batch/Batch/Properties/Resources.resx b/src/Batch/Batch/Properties/Resources.resx index cadafedc9f28..14ff8d3881a0 100644 --- a/src/Batch/Batch/Properties/Resources.resx +++ b/src/Batch/Batch/Properties/Resources.resx @@ -117,15 +117,9 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - Adding a new certificate with thumbprint {0}. - Begin {0} call to RP - - Canceling deletion of the certificate with thumbprint {0}. - Changing OS version of pool {0} to {1}. @@ -186,15 +180,6 @@ Getting all accounts in subscription - - Getting the certificate with thumbprint {0}. - - - Getting certificates matching the specified OData filter. - - - Getting all certificates that have been added to the Batch account. - Getting compute node "{0}" from pool "{1}". @@ -300,9 +285,6 @@ Cannot find resource group name in ID property: {0} - - No certificate data was specified. Supply the path to a certificate file, or provide the raw certificate data. - No compute node was specified. Supply a PSComputeNode object or a pool id and compute node id. @@ -345,12 +327,6 @@ Removing batch account ... - - Removing certificate ... - - - Are you sure you want to remove the certificate with thumbprint {0}? - Removing compute node(s) from pool... diff --git a/src/Batch/Batch/Tasks/GetBatchTaskCommand.cs b/src/Batch/Batch/Tasks/GetBatchTaskCommand.cs index 455e4d329537..b48a9e485733 100644 --- a/src/Batch/Batch/Tasks/GetBatchTaskCommand.cs +++ b/src/Batch/Batch/Tasks/GetBatchTaskCommand.cs @@ -38,7 +38,6 @@ public class GetBatchTaskCommand : BatchObjectModelCmdletBase [Parameter(Position = 0, ParameterSetName = Constants.ParentObjectParameterSet, ValueFromPipeline = true)] [ValidateNotNullOrEmpty] - [GenericBreakingChangeWithVersion("The following properties of the PSPoolSpecification class found under the PSCloudJob class are being deprecated: TargetNodeCommunicationMode, ResourceTags, CertificateReferences, ApplicationLicenses, CloudServiceConfiguration","15.0.0", "4.0.0")] public PSCloudJob Job { get; set; } [Parameter(ParameterSetName = Constants.ODataFilterParameterSet)] diff --git a/src/Batch/Batch/Tasks/GetBatchTaskCountCommand.cs b/src/Batch/Batch/Tasks/GetBatchTaskCountCommand.cs index 54e40f068278..1dbd817f904a 100644 --- a/src/Batch/Batch/Tasks/GetBatchTaskCountCommand.cs +++ b/src/Batch/Batch/Tasks/GetBatchTaskCountCommand.cs @@ -31,7 +31,6 @@ public class GetBatchTaskCountCommand : BatchObjectModelCmdletBase [Parameter(Position = 0, ParameterSetName = Constants.ParentObjectParameterSet, ValueFromPipeline = true)] [ValidateNotNullOrEmpty] - [GenericBreakingChangeWithVersion("The following properties of the PSPoolSpecification class found under the PSCloudJob class are being deprecated: TargetNodeCommunicationMode, ResourceTags, CertificateReferences, ApplicationLicenses, CloudServiceConfiguration","15.0.0", "4.0.0")] public PSCloudJob Job { get; set; } protected override void ExecuteCmdletImpl() diff --git a/src/Batch/Batch/Tasks/GetBatchTaskSlotCountCommand.cs b/src/Batch/Batch/Tasks/GetBatchTaskSlotCountCommand.cs index 92b5d922e5f1..12ffea1f6399 100644 --- a/src/Batch/Batch/Tasks/GetBatchTaskSlotCountCommand.cs +++ b/src/Batch/Batch/Tasks/GetBatchTaskSlotCountCommand.cs @@ -40,7 +40,6 @@ public class GetBatchTaskSlotCountCommand : BatchObjectModelCmdletBase HelpMessage = "Specifies the job that contains tasks that this cmdlet gets. To obtain a **PSCloudJob** object, use the Get-AzBatchJob cmdlet." )] [ValidateNotNullOrEmpty] - [GenericBreakingChangeWithVersion("The following properties of the PSPoolSpecification class found under the PSCloudJob class are being deprecated: TargetNodeCommunicationMode, ResourceTags, CertificateReferences, ApplicationLicenses, CloudServiceConfiguration","15.0.0", "4.0.0")] public PSCloudJob Job { get; set; } protected override void ExecuteCmdletImpl() diff --git a/src/Batch/Batch/Tasks/NewBatchTaskCommand.cs b/src/Batch/Batch/Tasks/NewBatchTaskCommand.cs index 72bd87982a81..3f656ad706a5 100644 --- a/src/Batch/Batch/Tasks/NewBatchTaskCommand.cs +++ b/src/Batch/Batch/Tasks/NewBatchTaskCommand.cs @@ -39,7 +39,6 @@ public class NewBatchTaskCommand : BatchObjectModelCmdletBase [Parameter(ParameterSetName = JobObjectAndBulkAddParameterSet, ValueFromPipeline = true)] [Parameter(ParameterSetName = JobObjectAndSingleAddParameterSet, ValueFromPipeline = true)] [ValidateNotNullOrEmpty] - [GenericBreakingChangeWithVersion("The following properties of the PSPoolSpecification class found under the PSCloudJob class are being deprecated: TargetNodeCommunicationMode, ResourceTags, CertificateReferences, ApplicationLicenses, CloudServiceConfiguration","15.0.0", "4.0.0")] public PSCloudJob Job { get; set; } [Parameter(ParameterSetName = JobIdAndSingleAddParameterSet, Mandatory = true, HelpMessage = "The id of the task to add.")] diff --git a/src/Batch/Batch/Utils/Constants.cs b/src/Batch/Batch/Utils/Constants.cs index 71e1828ecab7..1af0cb1b2b71 100644 --- a/src/Batch/Batch/Utils/Constants.cs +++ b/src/Batch/Batch/Utils/Constants.cs @@ -48,8 +48,6 @@ public class Constants public const string AzureBatchAutoScale = "AzureBatchAutoScale"; public const string AzureBatchPoolOSVersion = "AzureBatchPoolOSVersion"; public const string AzureBatchPoolStatistics = "AzureBatchPoolStatistics"; - public const string AzureBatchCertificate = "AzureBatchCertificate"; - public const string AzureBatchCertificateDeletion = "AzureBatchCertificateDeletion"; public const string AzureBatchNodeAgentSku = "AzureBatchNodeAgentSku"; public const string AzureBatchPoolNodeCounts = "AzureBatchPoolNodeCounts"; public const string AzureBatchComputeNodeServiceLogUpload = "AzureBatchComputeNodeServiceLogUpload"; diff --git a/src/Batch/Batch/Utils/Utils.cs b/src/Batch/Batch/Utils/Utils.cs index 92b37e8b07b6..05d93a393dfe 100644 --- a/src/Batch/Batch/Utils/Utils.cs +++ b/src/Batch/Batch/Utils/Utils.cs @@ -38,11 +38,6 @@ internal static void BoundPoolSyncCollections(PSCloudPool pool) { return ConvertApplicationPackageReference(apr); }); - pool.omObject.CertificateReferences = CreateSyncedList(pool.CertificateReferences, - (c) => - { - return ConvertCertificateReference(c); - }); pool.omObject.Metadata = CreateSyncedDict(pool.Metadata, ConvertMetadataItem); @@ -210,12 +205,6 @@ internal static void PoolSpecificationSyncCollections(PSPoolSpecification spec) { if (spec != null) { - spec.omObject.CertificateReferences = CreateSyncedList(spec.CertificateReferences, - (c) => - { - return ConvertCertificateReference(c); - }); - spec.omObject.Metadata = CreateSyncedDict( spec.Metadata, ConvertMetadataItem); @@ -356,27 +345,10 @@ private static IList CreateSyncedDict(IDictionary psDict, Func - /// Converts a PSCertificateReference to a CertificateReference - /// private static MetadataItem ConvertMetadataItem(string key, string value) => new MetadataItem(key, value); private static EnvironmentSetting ConvertEnvironmentSetting(string key, string value) => new EnvironmentSetting(key, value); - /// - /// Converts a PSCertificateReference to a CertificateReference - /// - private static CertificateReference ConvertCertificateReference(PSCertificateReference psCert) - { - CertificateReference certReference = new CertificateReference(); - certReference.StoreLocation = psCert.StoreLocation; - certReference.StoreName = psCert.StoreName; - certReference.Thumbprint = psCert.Thumbprint; - certReference.ThumbprintAlgorithm = psCert.ThumbprintAlgorithm; - certReference.Visibility = psCert.Visibility; - return certReference; - } - /// /// Converts a PSApplicationPackageReference to a ApplicationPackageReference /// diff --git a/src/Batch/Batch/help/Az.Batch.md b/src/Batch/Batch/help/Az.Batch.md index 8fb63e548e69..2d02a73ff7a8 100644 --- a/src/Batch/Batch/help/Az.Batch.md +++ b/src/Batch/Batch/help/Az.Batch.md @@ -50,9 +50,6 @@ Gets information about the specified application. ### [Get-AzBatchApplicationPackage](Get-AzBatchApplicationPackage.md) Gets information about an application package in a Batch account. -### [Get-AzBatchCertificate](Get-AzBatchCertificate.md) -Gets the certificates in a Batch account. - ### [Get-AzBatchComputeNode](Get-AzBatchComputeNode.md) Gets Batch compute nodes from a pool. @@ -122,9 +119,6 @@ Adds an application to the specified Batch account. ### [New-AzBatchApplicationPackage](New-AzBatchApplicationPackage.md) Creates an application package in a Batch account. -### [New-AzBatchCertificate](New-AzBatchCertificate.md) -Adds a certificate to the specified Batch account. - ### [New-AzBatchComputeNodeUser](New-AzBatchComputeNodeUser.md) Creates a user account on a Batch compute node. @@ -152,9 +146,6 @@ Deletes an application from a Batch account. ### [Remove-AzBatchApplicationPackage](Remove-AzBatchApplicationPackage.md) Deletes an application package record and the binary file. -### [Remove-AzBatchCertificate](Remove-AzBatchCertificate.md) -Deletes a certificate from an account. - ### [Remove-AzBatchComputeNode](Remove-AzBatchComputeNode.md) Removes compute nodes from a pool. @@ -209,9 +200,6 @@ Upload compute node service log files to an Azure Storage container. ### [Start-AzBatchPoolResize](Start-AzBatchPoolResize.md) Starts to resize a pool. -### [Stop-AzBatchCertificateDeletion](Stop-AzBatchCertificateDeletion.md) -Cancels a failed deletion of a certificate. - ### [Stop-AzBatchJob](Stop-AzBatchJob.md) Stops a Batch job. diff --git a/src/Batch/Batch/help/Get-AzBatchCertificate.md b/src/Batch/Batch/help/Get-AzBatchCertificate.md deleted file mode 100644 index 521dd02e5a59..000000000000 --- a/src/Batch/Batch/help/Get-AzBatchCertificate.md +++ /dev/null @@ -1,231 +0,0 @@ ---- -external help file: Microsoft.Azure.PowerShell.Cmdlets.Batch.dll-Help.xml -Module Name: Az.Batch -ms.assetid: A9C98F8F-90F2-4BF4-A234-31966FBB975B -online version: https://learn.microsoft.com/powershell/module/az.batch/get-azbatchcertificate -schema: 2.0.0 ---- - -# Get-AzBatchCertificate - -## SYNOPSIS -Gets the certificates in a Batch account. - -## SYNTAX - -### ODataFilter (Default) -``` -Get-AzBatchCertificate [-Filter ] [-MaxCount ] [-Select ] - -BatchContext [-DefaultProfile ] [] -``` - -### Thumbprint -``` -Get-AzBatchCertificate [-ThumbprintAlgorithm] [-Thumbprint] [-Select ] - -BatchContext [-DefaultProfile ] [] -``` - -## DESCRIPTION -The **Get-AzBatchCertificate** cmdlet gets the certificates in the Azure Batch account that the *BatchContext* parameter specifies. -To obtain a particular certificate, specify the *ThumbprintAlgorithm* and *Thumbprint* parameters. -Specify the *Filter* parameter to get the certificates that match an Open Data Protocol (OData) filter. - -## EXAMPLES - -### Example 1: Get a certificate by thumbprint -```powershell -Get-AzBatchCertificate -ThumbprintAlgorithm "sha1" -Thumbprint "C1******7C" -BatchContext $Context -``` - -```output -Thumbprint : C1******7C -ThumbprintAlgorithm : sha1 -Url : https://pstests.eastus.batch.azure.com/certificates(thumbprintAlgorithm=sha1,thumbprint=C1******47 -C) -State : Active -StateTransitionTime : 10/6/2015 6:21:16 PM -PreviousState : -PreviousStateTransitionTime : -Data : -CertificateFormat : -Password : -PublicData : MI******FJ -DeleteCertificateError : -``` - -This command gets a single certificate that has the specified thumbprint. -The certificate thumbprint algorithm is sha1. - -### Example 2: Get filtered certificates -```powershell -Get-AzBatchCertificate -Filter "state eq 'active'" -BatchContext $Context -``` - -```output -Thumbprint : 025b351b087a084c5067f5e71eff8591970323f9 -ThumbprintAlgorithm : sha1 -Url : https://pstests.eastus.batch.azure.com/certificates(thumbprintAlgorithm=sha1,thumbprint=02******f9) -State : Active -StateTransitionTime : 10/6/2015 6:21:17 PM -PreviousState : -PreviousStateTransitionTime : -Data : -CertificateFormat : -Password : -PublicData : ******************************** -DeleteCertificateError : - -Thumbprint : C1******7C -ThumbprintAlgorithm : sha1 -Url : https://pstests.eastus.batch.azure.com/certificates(thumbprintAlgorithm=sha1,thumbprint=C1******7C) -State : Active -StateTransitionTime : 10/6/2015 6:21:16 PM -PreviousState : -PreviousStateTransitionTime : -Data : -CertificateFormat : -Password : -PublicData : ******************************** -DeleteCertificateError : -``` - -This command gets all certificates in the active state from the Batch account. -The *Filter* parameter specifies the state. - -## PARAMETERS - -### -BatchContext -Specifies the **BatchAccountContext** instance that this cmdlet uses to interact with the Batch service. -If you use the Get-AzBatchAccount cmdlet to get your BatchAccountContext, then Microsoft Entra authentication will be used when interacting with the Batch service. To use shared key authentication instead, use the Get-AzBatchAccountKey cmdlet to get a BatchAccountContext object with its access keys populated. When using shared key authentication, the primary access key is used by default. To change the key to use, set the BatchAccountContext.KeyInUse property. - -```yaml -Type: Microsoft.Azure.Commands.Batch.BatchAccountContext -Parameter Sets: (All) -Aliases: - -Required: True -Position: Named -Default value: None -Accept pipeline input: True (ByValue) -Accept wildcard characters: False -``` - -### -DefaultProfile -The credentials, account, tenant, and subscription used for communication with azure. - -```yaml -Type: Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer -Parameter Sets: (All) -Aliases: AzContext, AzureRmContext, AzureCredential - -Required: False -Position: Named -Default value: None -Accept pipeline input: False -Accept wildcard characters: False -``` - -### -Filter -Specifies an OData filter clause. -If you specify this parameter, this cmdlet gets the certificates that match the filter. - -```yaml -Type: System.String -Parameter Sets: ODataFilter -Aliases: - -Required: False -Position: Named -Default value: None -Accept pipeline input: False -Accept wildcard characters: False -``` - -### -MaxCount -Specifies the maximum number of certificates to return. -If you specify a value of zero (0) or less, the cmdlet does not use an upper limit. -The default value is 1000. - -```yaml -Type: System.Int32 -Parameter Sets: ODataFilter -Aliases: - -Required: False -Position: Named -Default value: None -Accept pipeline input: False -Accept wildcard characters: False -``` - -### -Select -Specifies an OData select clause. -Specify a value for this parameter to get specific properties rather than all object properties. - -```yaml -Type: System.String -Parameter Sets: (All) -Aliases: - -Required: False -Position: Named -Default value: None -Accept pipeline input: False -Accept wildcard characters: False -``` - -### -Thumbprint -Specifies the thumbprint of the certificate that this cmdlet gets. - -```yaml -Type: System.String -Parameter Sets: Thumbprint -Aliases: - -Required: True -Position: 1 -Default value: None -Accept pipeline input: True (ByPropertyName) -Accept wildcard characters: False -``` - -### -ThumbprintAlgorithm -Specifies the algorithm used to derive the *Thumbprint* parameter. -Currently, the only valid value is sha1. - -```yaml -Type: System.String -Parameter Sets: Thumbprint -Aliases: - -Required: True -Position: 0 -Default value: None -Accept pipeline input: True (ByPropertyName) -Accept wildcard characters: False -``` - -### CommonParameters -This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). - -## INPUTS - -### System.String - -### Microsoft.Azure.Commands.Batch.BatchAccountContext - -## OUTPUTS - -### Microsoft.Azure.Commands.Batch.Models.PSCertificate - -## NOTES - -## RELATED LINKS - -[Get-AzBatchAccountKey](./Get-AzBatchAccountKey.md) - -[New-AzBatchCertificate](./New-AzBatchCertificate.md) - -[Remove-AzBatchCertificate](./Remove-AzBatchCertificate.md) - -[Azure Batch Cmdlets](/powershell/module/Az.Batch/) diff --git a/src/Batch/Batch/help/Get-AzBatchComputeNode.md b/src/Batch/Batch/help/Get-AzBatchComputeNode.md index 9fcba60a8177..f5a3b56e1c08 100644 --- a/src/Batch/Batch/help/Get-AzBatchComputeNode.md +++ b/src/Batch/Batch/help/Get-AzBatchComputeNode.md @@ -58,7 +58,6 @@ TotalTasksRun : 1 StartTaskInformation : RecentTasks : {} StartTask : -CertificateReferences : Errors : ``` @@ -84,7 +83,6 @@ TotalTasksRun : 1 StartTaskInformation : RecentTasks : {} StartTask : -CertificateReferences : Errors : Id : tvm-2316545714_2-20150726t172920z @@ -100,7 +98,6 @@ TotalTasksRun : 0 StartTaskInformation : RecentTasks : StartTask : -CertificateReferences : Errors : ``` @@ -126,7 +123,6 @@ TotalTasksRun : 1 StartTaskInformation : RecentTasks : {} StartTask : -CertificateReferences : Errors : @@ -144,7 +140,6 @@ TotalTasksRun : 0 StartTaskInformation : RecentTasks : StartTask : -CertificateReferences : Errors : ``` diff --git a/src/Batch/Batch/help/Get-AzBatchPool.md b/src/Batch/Batch/help/Get-AzBatchPool.md index 5d763f3eba16..c0b449297a83 100644 --- a/src/Batch/Batch/help/Get-AzBatchPool.md +++ b/src/Batch/Batch/help/Get-AzBatchPool.md @@ -42,7 +42,6 @@ AllocationStateTransitionTime : 7/25/2015 9:30:28 PM AutoScaleEnabled : False AutoScaleFormula : AutoScaleRun : -CertificateReferences : CreationTime : 7/25/2015 9:30:28 PM CurrentDedicated : 0 CurrentOSVersion : * @@ -80,7 +79,6 @@ AllocationStateTransitionTime : 7/25/2015 9:30:28 PM AutoScaleEnabled : False AutoScaleFormula : AutoScaleRun : -CertificateReferences : CreationTime : 7/25/2015 9:30:28 PM CurrentDedicated : 0 CurrentOSVersion : * diff --git a/src/Batch/Batch/help/New-AzBatchCertificate.md b/src/Batch/Batch/help/New-AzBatchCertificate.md deleted file mode 100644 index 008878ca7d34..000000000000 --- a/src/Batch/Batch/help/New-AzBatchCertificate.md +++ /dev/null @@ -1,168 +0,0 @@ ---- -external help file: Microsoft.Azure.PowerShell.Cmdlets.Batch.dll-Help.xml -Module Name: Az.Batch -ms.assetid: B423C1A1-1988-4721-81E7-3B7EC163B03A -online version: https://learn.microsoft.com/powershell/module/az.batch/new-azbatchcertificate -schema: 2.0.0 ---- - -# New-AzBatchCertificate - -## SYNOPSIS -Adds a certificate to the specified Batch account. - -## SYNTAX - -### File (Default) -``` -New-AzBatchCertificate [-FilePath] [-Password ] [-Kind ] - -BatchContext [-DefaultProfile ] [] -``` - -### RawData -``` -New-AzBatchCertificate [-RawData] [-Password ] [-Kind ] - -BatchContext [-DefaultProfile ] [] -``` - -## DESCRIPTION -The **New-AzBatchCertificate** cmdlet adds a certificate to the specified Azure Batch account. - -## EXAMPLES - -### Example 1: Add a certificate from a file -```powershell -New-AzBatchCertificate -FilePath "E:\Certificates\MyCert.cer" -BatchContext $Context -``` - -This command adds a certificate to the specified Batch account by using the file E:\Certificates\MyCert.cer. - -### Example 2: Add a certificate from raw data -```powershell -$RawData = [System.IO.File]::ReadAllBytes("E:\Certificates\MyCert.pfx") -New-AzBatchCertificate -RawData $RawData -Password -BatchContext $Context -``` - -The first command reads the data from the file named MyCert.pfx into the $RawData variable. -The second command adds a certificate to the specified Batch account using the raw data stored in $RawData. - -## PARAMETERS - -### -BatchContext -Specifies the **BatchAccountContext** instance that this cmdlet uses to interact with the Batch service. -If you use the Get-AzBatchAccount cmdlet to get your BatchAccountContext, then Microsoft Entra authentication will be used when interacting with the Batch service. To use shared key authentication instead, use the Get-AzBatchAccountKey cmdlet to get a BatchAccountContext object with its access keys populated. When using shared key authentication, the primary access key is used by default. To change the key to use, set the BatchAccountContext.KeyInUse property. - -```yaml -Type: Microsoft.Azure.Commands.Batch.BatchAccountContext -Parameter Sets: (All) -Aliases: - -Required: True -Position: Named -Default value: None -Accept pipeline input: True (ByValue) -Accept wildcard characters: False -``` - -### -DefaultProfile -The credentials, account, tenant, and subscription used for communication with azure. - -```yaml -Type: Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer -Parameter Sets: (All) -Aliases: AzContext, AzureRmContext, AzureCredential - -Required: False -Position: Named -Default value: None -Accept pipeline input: False -Accept wildcard characters: False -``` - -### -FilePath -Specifies the path of the certificate file. -The certificate file must be in either .cer or .pfx format. - -```yaml -Type: System.String -Parameter Sets: File -Aliases: - -Required: True -Position: 0 -Default value: None -Accept pipeline input: False -Accept wildcard characters: False -``` - -### -Kind -The kind of certificate to create. If this is not specified, it is assumed that all certificates without a password are CER and all certificates with password are PFX. - -```yaml -Type: Microsoft.Azure.Commands.Batch.Models.PSCertificateKind -Parameter Sets: (All) -Aliases: -Accepted values: Cer, Pfx - -Required: False -Position: Named -Default value: None -Accept pipeline input: False -Accept wildcard characters: False -``` - -### -Password -Specifies the password to access the certificate private key. -You must specify this parameter if you specify a certificate in .pfx format. - -```yaml -Type: System.Security.SecureString -Parameter Sets: (All) -Aliases: - -Required: False -Position: Named -Default value: None -Accept pipeline input: False -Accept wildcard characters: False -``` - -### -RawData -Specifies the raw certificate data in either .cer or .pfx format. - -```yaml -Type: System.Byte[] -Parameter Sets: RawData -Aliases: - -Required: True -Position: 0 -Default value: None -Accept pipeline input: True (ByPropertyName, ByValue) -Accept wildcard characters: False -``` - -### CommonParameters -This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). - -## INPUTS - -### System.Byte[] - -### Microsoft.Azure.Commands.Batch.BatchAccountContext - -## OUTPUTS - -### System.Void - -## NOTES - -## RELATED LINKS - -[Get-AzBatchCertificate](./Get-AzBatchCertificate.md) - -[Get-AzBatchAccountKey](./Get-AzBatchAccountKey.md) - -[Remove-AzBatchCertificate](./Remove-AzBatchCertificate.md) - -[Azure Batch Cmdlets](/powershell/module/Az.Batch/) diff --git a/src/Batch/Batch/help/New-AzBatchPool.md b/src/Batch/Batch/help/New-AzBatchPool.md index 257bc0c88c9e..10e5da42572f 100644 --- a/src/Batch/Batch/help/New-AzBatchPool.md +++ b/src/Batch/Batch/help/New-AzBatchPool.md @@ -18,13 +18,10 @@ Creates a pool in the Batch service. New-AzBatchPool [-Id] -VirtualMachineSize [-DisplayName ] [-ResizeTimeout ] [-TargetDedicatedComputeNodes ] [-TargetLowPriorityComputeNodes ] [-TaskSlotsPerNode ] [-UpgradePolicy ] [-TaskSchedulingPolicy ] - [-ResourceTag ] [-Metadata ] [-InterComputeNodeCommunicationEnabled] - [-StartTask ] [-CertificateReferences ] - [-ApplicationPackageReferences ] - [-ApplicationLicenses ] - [-CloudServiceConfiguration ] [-NetworkConfiguration ] + [-Metadata ] [-InterComputeNodeCommunicationEnabled] + [-StartTask ] [-ApplicationPackageReferences ] + [-NetworkConfiguration ] [-MountConfiguration ] [-UserAccount ] - [-CurrentNodeCommunicationMode ] [-TargetNodeCommunicationMode ] -BatchContext [-DefaultProfile ] [-WhatIf] [-Confirm] [] ``` @@ -34,14 +31,11 @@ New-AzBatchPool [-Id] -VirtualMachineSize [-DisplayName -VirtualMachineSize [-DisplayName ] [-ResizeTimeout ] [-TargetDedicatedComputeNodes ] [-TargetLowPriorityComputeNodes ] [-TaskSlotsPerNode ] [-UpgradePolicy ] [-TaskSchedulingPolicy ] - [-ResourceTag ] [-Metadata ] [-InterComputeNodeCommunicationEnabled] - [-StartTask ] [-CertificateReferences ] - [-ApplicationPackageReferences ] - [-ApplicationLicenses ] + [-Metadata ] [-InterComputeNodeCommunicationEnabled] + [-StartTask ] [-ApplicationPackageReferences ] [-VirtualMachineConfiguration ] [-NetworkConfiguration ] [-MountConfiguration ] - [-UserAccount ] [-CurrentNodeCommunicationMode ] - [-TargetNodeCommunicationMode ] -BatchContext + [-UserAccount ] -BatchContext [-DefaultProfile ] [-WhatIf] [-Confirm] [] ``` @@ -50,13 +44,10 @@ New-AzBatchPool [-Id] -VirtualMachineSize [-DisplayName -VirtualMachineSize [-DisplayName ] [-AutoScaleEvaluationInterval ] [-AutoScaleFormula ] [-TaskSlotsPerNode ] [-UpgradePolicy ] [-TaskSchedulingPolicy ] - [-ResourceTag ] [-Metadata ] [-InterComputeNodeCommunicationEnabled] - [-StartTask ] [-CertificateReferences ] - [-ApplicationPackageReferences ] - [-ApplicationLicenses ] - [-CloudServiceConfiguration ] [-NetworkConfiguration ] + [-Metadata ] [-InterComputeNodeCommunicationEnabled] + [-StartTask ] [-ApplicationPackageReferences ] + [-NetworkConfiguration ] [-MountConfiguration ] [-UserAccount ] - [-CurrentNodeCommunicationMode ] [-TargetNodeCommunicationMode ] -BatchContext [-DefaultProfile ] [-WhatIf] [-Confirm] [] ``` @@ -66,14 +57,11 @@ New-AzBatchPool [-Id] -VirtualMachineSize [-DisplayName -VirtualMachineSize [-DisplayName ] [-AutoScaleEvaluationInterval ] [-AutoScaleFormula ] [-TaskSlotsPerNode ] [-UpgradePolicy ] [-TaskSchedulingPolicy ] - [-ResourceTag ] [-Metadata ] [-InterComputeNodeCommunicationEnabled] - [-StartTask ] [-CertificateReferences ] - [-ApplicationPackageReferences ] - [-ApplicationLicenses ] + [-Metadata ] [-InterComputeNodeCommunicationEnabled] + [-StartTask ] [-ApplicationPackageReferences ] [-VirtualMachineConfiguration ] [-NetworkConfiguration ] [-MountConfiguration ] - [-UserAccount ] [-CurrentNodeCommunicationMode ] - [-TargetNodeCommunicationMode ] -BatchContext + [-UserAccount ] -BatchContext [-DefaultProfile ] [-WhatIf] [-Confirm] [] ``` @@ -82,15 +70,9 @@ The **New-AzBatchPool** cmdlet creates a pool in the Azure Batch service under t ## EXAMPLES -### Example 1: Create a new pool using the TargetDedicated parameter set using CloudServiceConfiguration -```powershell -$configuration = New-Object -TypeName "Microsoft.Azure.Commands.Batch.Models.PSCloudServiceConfiguration" -ArgumentList @(4,"*") -New-AzBatchPool -Id "MyPool" -VirtualMachineSize "STANDARD_D1_V2" -CloudServiceConfiguration $configuration -TargetDedicatedComputeNodes 3 -BatchContext $Context -``` - The pool is configured to use STANDARD_D1_V2 virtual machines with operating system version of family four. -### Example 2: Create a new pool using the TargetDedicated parameter set using VirtualMachineConfiguration +### Example 1: Create a new pool using the TargetDedicated parameter set using VirtualMachineConfiguration ```powershell $imageReference = New-Object -TypeName "Microsoft.Azure.Commands.Batch.Models.PSImageReference" -ArgumentList @("WindowsServer", "MicrosoftWindowsServer", "2016-Datacenter", "*") $configuration = New-Object -TypeName "Microsoft.Azure.Commands.Batch.Models.PSVirtualMachineConfiguration" -ArgumentList @($imageReference, "batch.node.windows amd64") @@ -101,7 +83,7 @@ This command creates a new pool with ID MyPool using the TargetDedicated paramet The target allocation is three compute nodes. The pool is configured to use STANDARD_D1_V2 virtual machines with the Windows-2016-Datacenter operating system image. -### Example 3: Create a new pool using the AutoScale parameter set +### Example 2: Create a new pool using the AutoScale parameter set ```powershell $imageReference = New-Object -TypeName "Microsoft.Azure.Commands.Batch.Models.PSImageReference" -ArgumentList @("WindowsServer", "MicrosoftWindowsServer", "2016-Datacenter", "*") $configuration = New-Object -TypeName "Microsoft.Azure.Commands.Batch.Models.PSVirtualMachineConfiguration" -ArgumentList @($imageReference, "batch.node.windows amd64") @@ -111,7 +93,7 @@ New-AzBatchPool -Id "AutoScalePool" -VirtualMachineSize "STANDARD_D1_V2" -Virtua This command creates a new pool with ID AutoScalePool using the AutoScale parameter set. The pool is configured to use STANDARD_D1_V2 virtual machines with the Windows-2016-Datacenter operating system image, and the target number of compute nodes are determined by the Autoscale formula. -### Example 4: Create a pool with nodes in a subnet +### Example 3: Create a pool with nodes in a subnet ```powershell $imageReference = New-Object -TypeName "Microsoft.Azure.Commands.Batch.Models.PSImageReference" -ArgumentList @("WindowsServer", "MicrosoftWindowsServer", "2016-Datacenter", "*") $configuration = New-Object -TypeName "Microsoft.Azure.Commands.Batch.Models.PSVirtualMachineConfiguration" -ArgumentList @($imageReference, "batch.node.windows amd64") @@ -120,7 +102,7 @@ $networkConfig.SubnetId = "/subscriptions/{subscription}/resourceGroups/{group}/ New-AzBatchPool -Id "AutoScalePool" -VirtualMachineSize "STANDARD_D1_V2" -VirtualMachineConfiguration $configuration -TargetDedicatedComputeNodes 3 -NetworkConfiguration $networkConfig -BatchContext $Context ``` -### Example 5: Create a pool with custom user accounts +### Example 4: Create a pool with custom user accounts ```powershell $imageReference = New-Object -TypeName "Microsoft.Azure.Commands.Batch.Models.PSImageReference" -ArgumentList @("WindowsServer", "MicrosoftWindowsServer", "2016-Datacenter", "*") $configuration = New-Object -TypeName "Microsoft.Azure.Commands.Batch.Models.PSVirtualMachineConfiguration" -ArgumentList @($imageReference, "batch.node.windows amd64") @@ -130,21 +112,6 @@ New-AzBatchPool -Id "AutoScalePool" -VirtualMachineSize "STANDARD_D1_V2" -Virtua ## PARAMETERS -### -ApplicationLicenses -The list of application licenses the Batch service will make available on each compute node in the pool. - -```yaml -Type: System.Collections.Generic.List`1[System.String] -Parameter Sets: (All) -Aliases: ApplicationLicense - -Required: False -Position: Named -Default value: None -Accept pipeline input: False -Accept wildcard characters: False -``` - ### -ApplicationPackageReferences ```yaml Type: Microsoft.Azure.Commands.Batch.Models.PSApplicationPackageReference[] @@ -205,53 +172,6 @@ Accept pipeline input: True (ByValue) Accept wildcard characters: False ``` -### -CertificateReferences -Specifies certificates associated with the pool. -The Batch service installs the referenced certificates on each compute node of the pool. - -```yaml -Type: Microsoft.Azure.Commands.Batch.Models.PSCertificateReference[] -Parameter Sets: (All) -Aliases: CertificateReference - -Required: False -Position: Named -Default value: None -Accept pipeline input: False -Accept wildcard characters: False -``` - -### -CloudServiceConfiguration -Specifies configuration settings for a pool based on the Azure cloud service platform. - -```yaml -Type: Microsoft.Azure.Commands.Batch.Models.PSCloudServiceConfiguration -Parameter Sets: CloudServiceAndTargetDedicated, CloudServiceAndAutoScale -Aliases: - -Required: False -Position: Named -Default value: None -Accept pipeline input: False -Accept wildcard characters: False -``` - -### -CurrentNodeCommunicationMode -The current pool communication mode. - -```yaml -Type: Microsoft.Azure.Batch.Common.NodeCommunicationMode -Parameter Sets: (All) -Aliases: -Accepted values: Default, Classic, Simplified - -Required: False -Position: Named -Default value: None -Accept pipeline input: False -Accept wildcard characters: False -``` - ### -DefaultProfile The credentials, account, tenant, and subscription used for communication with azure. @@ -374,21 +294,6 @@ Accept pipeline input: False Accept wildcard characters: False ``` -### -ResourceTag -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'. - -```yaml -Type: System.Collections.IDictionary -Parameter Sets: (All) -Aliases: - -Required: False -Position: Named -Default value: None -Accept pipeline input: False -Accept wildcard characters: False -``` - ### -StartTask Specifies the start task specification for the pool. The start task is run when a compute node joins the pool, or when the compute node is rebooted or reimaged. @@ -435,22 +340,6 @@ Accept pipeline input: False Accept wildcard characters: False ``` -### -TargetNodeCommunicationMode -The desired node communication mode for the pool. - -```yaml -Type: Microsoft.Azure.Batch.Common.NodeCommunicationMode -Parameter Sets: (All) -Aliases: -Accepted values: Default, Classic, Simplified - -Required: False -Position: Named -Default value: None -Accept pipeline input: False -Accept wildcard characters: False -``` - ### -TaskSchedulingPolicy Specifies the task scheduling policy, such as the ComputeNodeFillType. diff --git a/src/Batch/Batch/help/Remove-AzBatchCertificate.md b/src/Batch/Batch/help/Remove-AzBatchCertificate.md deleted file mode 100644 index 9b43ce4c0158..000000000000 --- a/src/Batch/Batch/help/Remove-AzBatchCertificate.md +++ /dev/null @@ -1,163 +0,0 @@ ---- -external help file: Microsoft.Azure.PowerShell.Cmdlets.Batch.dll-Help.xml -Module Name: Az.Batch -ms.assetid: 3DFFD0F2-6CD8-4FBE-B15C-8505CBF8F44E -online version: https://learn.microsoft.com/powershell/module/az.batch/remove-azbatchcertificate -schema: 2.0.0 ---- - -# Remove-AzBatchCertificate - -## SYNOPSIS -Deletes a certificate from an account. - -## SYNTAX - -``` -Remove-AzBatchCertificate [-ThumbprintAlgorithm] [-Thumbprint] - -BatchContext [-DefaultProfile ] [-WhatIf] [-Confirm] - [] -``` - -## DESCRIPTION -The **Remove-AzBatchCertificate** cmdlet removes a certificate from the specified Azure Batch account. - -## EXAMPLES - -### Example 1: Remove a certificate -```powershell -Remove-AzBatchCertificate -ThumbprintAlgorithm "sha1" -Thumbprint "c1e494a415149c5f211c4778b52f2e834a07247c" -BatchContext $Context -``` - -This command removes the certificate that has the specified thumbprint. - -### Example 2:Remove all active certificates -```powershell -Get-AzBatchCertificate -Filter "state eq 'active'" -BatchContext $Context | Remove-AzBatchCertificate -BatchContext $Context -``` - -This command gets all certificates that are active by using the Get-AzBatchCertificate cmdlet. -The command passes the active certificates to the current cmdlet by using the pipeline operator. -That cmdlet removes each certificate. - -## PARAMETERS - -### -BatchContext -Specifies the **BatchAccountContext** instance that this cmdlet uses to interact with the Batch service. -If you use the Get-AzBatchAccount cmdlet to get your BatchAccountContext, then Microsoft Entra authentication will be used when interacting with the Batch service. To use shared key authentication instead, use the Get-AzBatchAccountKey cmdlet to get a BatchAccountContext object with its access keys populated. When using shared key authentication, the primary access key is used by default. To change the key to use, set the BatchAccountContext.KeyInUse property. - -```yaml -Type: Microsoft.Azure.Commands.Batch.BatchAccountContext -Parameter Sets: (All) -Aliases: - -Required: True -Position: Named -Default value: None -Accept pipeline input: True (ByValue) -Accept wildcard characters: False -``` - -### -DefaultProfile -The credentials, account, tenant, and subscription used for communication with azure. - -```yaml -Type: Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer -Parameter Sets: (All) -Aliases: AzContext, AzureRmContext, AzureCredential - -Required: False -Position: Named -Default value: None -Accept pipeline input: False -Accept wildcard characters: False -``` - -### -Thumbprint -Specifies the thumbprint of the certificate that this cmdlet deletes. - -```yaml -Type: System.String -Parameter Sets: (All) -Aliases: - -Required: True -Position: 1 -Default value: None -Accept pipeline input: True (ByPropertyName) -Accept wildcard characters: False -``` - -### -ThumbprintAlgorithm -Specifies the algorithm used to derive the *Thumbprint* parameter. -Currently, the only valid value is sha1. - -```yaml -Type: System.String -Parameter Sets: (All) -Aliases: - -Required: True -Position: 0 -Default value: None -Accept pipeline input: True (ByPropertyName) -Accept wildcard characters: False -``` - -### -Confirm -Prompts you for confirmation before running the cmdlet. - -```yaml -Type: System.Management.Automation.SwitchParameter -Parameter Sets: (All) -Aliases: cf - -Required: False -Position: Named -Default value: False -Accept pipeline input: False -Accept wildcard characters: False -``` - -### -WhatIf -Shows what would happen if the cmdlet runs. -The cmdlet is not run. - -```yaml -Type: System.Management.Automation.SwitchParameter -Parameter Sets: (All) -Aliases: wi - -Required: False -Position: Named -Default value: False -Accept pipeline input: False -Accept wildcard characters: False -``` - -### CommonParameters -This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). - -## INPUTS - -### System.String - -### Microsoft.Azure.Commands.Batch.BatchAccountContext - -## OUTPUTS - -### System.Void - -## NOTES - -## RELATED LINKS - -[Get-AzBatchCertificate](./Get-AzBatchCertificate.md) - -[Get-AzBatchAccountKey](./Get-AzBatchAccountKey.md) - -[New-AzBatchCertificate](./New-AzBatchCertificate.md) - -[Stop-AzBatchCertificateDeletion](./Stop-AzBatchCertificateDeletion.md) - -[Azure Batch Cmdlets](/powershell/module/Az.Batch/) diff --git a/src/Batch/Batch/help/Stop-AzBatchCertificateDeletion.md b/src/Batch/Batch/help/Stop-AzBatchCertificateDeletion.md deleted file mode 100644 index 702a04242eab..000000000000 --- a/src/Batch/Batch/help/Stop-AzBatchCertificateDeletion.md +++ /dev/null @@ -1,120 +0,0 @@ ---- -external help file: Microsoft.Azure.PowerShell.Cmdlets.Batch.dll-Help.xml -Module Name: Az.Batch -ms.assetid: B3C8A2DB-6571-418D-8C4B-3BE3FDA42F89 -online version: https://learn.microsoft.com/powershell/module/az.batch/stop-azbatchcertificatedeletion -schema: 2.0.0 ---- - -# Stop-AzBatchCertificateDeletion - -## SYNOPSIS -Cancels a failed deletion of a certificate. - -## SYNTAX - -``` -Stop-AzBatchCertificateDeletion [-ThumbprintAlgorithm] [-Thumbprint] - -BatchContext [-DefaultProfile ] [] -``` - -## DESCRIPTION -The **Stop-AzBatchCertificateDeletion** cmdlet cancels a failed deletion of a certificate in the Azure Batch service. -You can stop a deletion only if the certificate is in the **DeleteFailed** state. -This cmdlet restores the certificate to the **Active** state. - -## EXAMPLES - -### Example 1: Cancel a deletion -```powershell -Stop-AzBatchCertificateDeletion -ThumbprintAlgorithm "sha1" -Thumbprint "c1e494a415149c5f211c4778b52f2e834a07247c" -BatchContext $Context -``` - -This command cancels the deletion of the certificate that has the specified thumbprint. - -## PARAMETERS - -### -BatchContext -Specifies the **BatchAccountContext** instance that this cmdlet uses to interact with the Batch service. -If you use the Get-AzBatchAccount cmdlet to get your BatchAccountContext, then Microsoft Entra authentication will be used when interacting with the Batch service. To use shared key authentication instead, use the Get-AzBatchAccountKey cmdlet to get a BatchAccountContext object with its access keys populated. When using shared key authentication, the primary access key is used by default. To change the key to use, set the BatchAccountContext.KeyInUse property. - -```yaml -Type: Microsoft.Azure.Commands.Batch.BatchAccountContext -Parameter Sets: (All) -Aliases: - -Required: True -Position: Named -Default value: None -Accept pipeline input: True (ByValue) -Accept wildcard characters: False -``` - -### -DefaultProfile -The credentials, account, tenant, and subscription used for communication with azure. - -```yaml -Type: Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer -Parameter Sets: (All) -Aliases: AzContext, AzureRmContext, AzureCredential - -Required: False -Position: Named -Default value: None -Accept pipeline input: False -Accept wildcard characters: False -``` - -### -Thumbprint -Specifies the thumbprint of the certificate that this cmdlet restores to the **Active** state. - -```yaml -Type: System.String -Parameter Sets: (All) -Aliases: - -Required: True -Position: 1 -Default value: None -Accept pipeline input: True (ByPropertyName) -Accept wildcard characters: False -``` - -### -ThumbprintAlgorithm -Specifies the algorithm used to derive the *Thumbprint* parameter. -Currently, the only valid value is sha1. - -```yaml -Type: System.String -Parameter Sets: (All) -Aliases: - -Required: True -Position: 0 -Default value: None -Accept pipeline input: True (ByPropertyName) -Accept wildcard characters: False -``` - -### CommonParameters -This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). - -## INPUTS - -### System.String - -### Microsoft.Azure.Commands.Batch.BatchAccountContext - -## OUTPUTS - -### System.Void - -## NOTES - -## RELATED LINKS - -[Get-AzBatchAccountKey](./Get-AzBatchAccountKey.md) - -[Remove-AzBatchCertificate](./Remove-AzBatchCertificate.md) - -[Azure Batch Cmdlets](/powershell/module/Az.Batch/) From 6527c5f3edf2d1643bac9ef81066ad2383c2d01f Mon Sep 17 00:00:00 2001 From: "REDMOND\\wiboris" Date: Thu, 18 Sep 2025 15:11:09 -0700 Subject: [PATCH 09/13] more removals --- .../Generated/Models/Pool.cs | 19 +--------- .../Generated/Models/PoolProperties.cs | 19 +--------- .../Pools/NewBatchPoolCommandTests.cs | 1 - .../Batch.Test/ScenarioTests/FileTests.ps1 | 37 ------------------- src/Batch/Batch/Az.Batch.psd1 | 6 +-- src/Batch/Batch/Batch.csproj | 2 +- src/Batch/Batch/ChangeLog.md | 23 ++++++++++++ src/Batch/Batch/Pools/NewBatchPoolCommand.cs | 5 --- src/Batch/Batch/Utils/Constants.cs | 1 - src/Batch/Batch/help/Az.Batch.md | 3 -- .../help/Get-AzBatchRemoteLoginSetting.md | 2 - 11 files changed, 28 insertions(+), 90 deletions(-) diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/Pool.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/Pool.cs index 883dd30c61af..6425c52395b5 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/Pool.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/Pool.cs @@ -161,14 +161,7 @@ public Pool() /// Determines how a pool communicates with the Batch service. /// Possible values include: 'Default', 'Classic', 'Simplified' - - /// 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'. - /// - public Pool(string id = default(string), string name = default(string), string type = default(string), string etag = default(string), System.Collections.Generic.IDictionary tags = default(System.Collections.Generic.IDictionary), BatchPoolIdentity identity = default(BatchPoolIdentity), AllocationState? allocationState = default(AllocationState?), DeploymentConfiguration deploymentConfiguration = default(DeploymentConfiguration), ScaleSettings scaleSettings = default(ScaleSettings), NetworkConfiguration networkConfiguration = default(NetworkConfiguration), StartTask startTask = default(StartTask), UpgradePolicy upgradePolicy = default(UpgradePolicy), string displayName = default(string), System.DateTime? lastModified = default(System.DateTime?), System.DateTime? creationTime = default(System.DateTime?), PoolProvisioningState? provisioningState = default(PoolProvisioningState?), System.DateTime? provisioningStateTransitionTime = default(System.DateTime?), System.DateTime? allocationStateTransitionTime = default(System.DateTime?), string vmSize = default(string), int? currentDedicatedNodes = default(int?), int? currentLowPriorityNodes = default(int?), AutoScaleRun autoScaleRun = default(AutoScaleRun), InterNodeCommunicationState? interNodeCommunication = default(InterNodeCommunicationState?), int? taskSlotsPerNode = default(int?), TaskSchedulingPolicy taskSchedulingPolicy = default(TaskSchedulingPolicy), System.Collections.Generic.IList userAccounts = default(System.Collections.Generic.IList), System.Collections.Generic.IList metadata = default(System.Collections.Generic.IList), System.Collections.Generic.IList certificates = default(System.Collections.Generic.IList), System.Collections.Generic.IList applicationPackages = default(System.Collections.Generic.IList), System.Collections.Generic.IList applicationLicenses = default(System.Collections.Generic.IList), ResizeOperationStatus resizeOperationStatus = default(ResizeOperationStatus), System.Collections.Generic.IList mountConfiguration = default(System.Collections.Generic.IList), NodeCommunicationMode? targetNodeCommunicationMode = default(NodeCommunicationMode?), NodeCommunicationMode? currentNodeCommunicationMode = default(NodeCommunicationMode?), System.Collections.Generic.IDictionary resourceTags = default(System.Collections.Generic.IDictionary)) + public Pool(string id = default(string), string name = default(string), string type = default(string), string etag = default(string), System.Collections.Generic.IDictionary tags = default(System.Collections.Generic.IDictionary), BatchPoolIdentity identity = default(BatchPoolIdentity), AllocationState? allocationState = default(AllocationState?), DeploymentConfiguration deploymentConfiguration = default(DeploymentConfiguration), ScaleSettings scaleSettings = default(ScaleSettings), NetworkConfiguration networkConfiguration = default(NetworkConfiguration), StartTask startTask = default(StartTask), UpgradePolicy upgradePolicy = default(UpgradePolicy), string displayName = default(string), System.DateTime? lastModified = default(System.DateTime?), System.DateTime? creationTime = default(System.DateTime?), PoolProvisioningState? provisioningState = default(PoolProvisioningState?), System.DateTime? provisioningStateTransitionTime = default(System.DateTime?), System.DateTime? allocationStateTransitionTime = default(System.DateTime?), string vmSize = default(string), int? currentDedicatedNodes = default(int?), int? currentLowPriorityNodes = default(int?), AutoScaleRun autoScaleRun = default(AutoScaleRun), InterNodeCommunicationState? interNodeCommunication = default(InterNodeCommunicationState?), int? taskSlotsPerNode = default(int?), TaskSchedulingPolicy taskSchedulingPolicy = default(TaskSchedulingPolicy), System.Collections.Generic.IList userAccounts = default(System.Collections.Generic.IList), System.Collections.Generic.IList metadata = default(System.Collections.Generic.IList), System.Collections.Generic.IList certificates = default(System.Collections.Generic.IList), System.Collections.Generic.IList applicationPackages = default(System.Collections.Generic.IList), System.Collections.Generic.IList applicationLicenses = default(System.Collections.Generic.IList), ResizeOperationStatus resizeOperationStatus = default(ResizeOperationStatus), System.Collections.Generic.IList mountConfiguration = default(System.Collections.Generic.IList), NodeCommunicationMode? targetNodeCommunicationMode = default(NodeCommunicationMode?), NodeCommunicationMode? currentNodeCommunicationMode = default(NodeCommunicationMode?)) : base(id, name, type, etag, tags) { @@ -201,7 +194,6 @@ public Pool() this.MountConfiguration = mountConfiguration; this.TargetNodeCommunicationMode = targetNodeCommunicationMode; this.CurrentNodeCommunicationMode = currentNodeCommunicationMode; - this.ResourceTags = resourceTags; CustomInit(); } @@ -422,15 +414,6 @@ public Pool() [Newtonsoft.Json.JsonProperty(PropertyName = "properties.currentNodeCommunicationMode")] public NodeCommunicationMode? CurrentNodeCommunicationMode {get; private set; } - /// - /// Gets or sets 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'. - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "properties.resourceTags")] - public System.Collections.Generic.IDictionary ResourceTags {get; set; } /// /// Validate the object. /// diff --git a/src/Batch/Batch.Management.Sdk/Generated/Models/PoolProperties.cs b/src/Batch/Batch.Management.Sdk/Generated/Models/PoolProperties.cs index 7d21554e9bc7..fbfd3b993f9b 100644 --- a/src/Batch/Batch.Management.Sdk/Generated/Models/PoolProperties.cs +++ b/src/Batch/Batch.Management.Sdk/Generated/Models/PoolProperties.cs @@ -142,14 +142,7 @@ public PoolProperties() /// Describes an upgrade policy - automatic, manual, or rolling. /// - - /// 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'. - /// - public PoolProperties(string displayName = default(string), System.DateTime? lastModified = default(System.DateTime?), System.DateTime? creationTime = default(System.DateTime?), PoolProvisioningState? provisioningState = default(PoolProvisioningState?), System.DateTime? provisioningStateTransitionTime = default(System.DateTime?), AllocationState? allocationState = default(AllocationState?), System.DateTime? allocationStateTransitionTime = default(System.DateTime?), string vmSize = default(string), DeploymentConfiguration deploymentConfiguration = default(DeploymentConfiguration), int? currentDedicatedNodes = default(int?), int? currentLowPriorityNodes = default(int?), ScaleSettings scaleSettings = default(ScaleSettings), AutoScaleRun autoScaleRun = default(AutoScaleRun), InterNodeCommunicationState? interNodeCommunication = default(InterNodeCommunicationState?), NetworkConfiguration networkConfiguration = default(NetworkConfiguration), int? taskSlotsPerNode = default(int?), TaskSchedulingPolicy taskSchedulingPolicy = default(TaskSchedulingPolicy), System.Collections.Generic.IList userAccounts = default(System.Collections.Generic.IList), System.Collections.Generic.IList metadata = default(System.Collections.Generic.IList), StartTask startTask = default(StartTask), System.Collections.Generic.IList certificates = default(System.Collections.Generic.IList), System.Collections.Generic.IList applicationPackages = default(System.Collections.Generic.IList), System.Collections.Generic.IList applicationLicenses = default(System.Collections.Generic.IList), ResizeOperationStatus resizeOperationStatus = default(ResizeOperationStatus), System.Collections.Generic.IList mountConfiguration = default(System.Collections.Generic.IList), NodeCommunicationMode? targetNodeCommunicationMode = default(NodeCommunicationMode?), NodeCommunicationMode? currentNodeCommunicationMode = default(NodeCommunicationMode?), UpgradePolicy upgradePolicy = default(UpgradePolicy), System.Collections.Generic.IDictionary resourceTags = default(System.Collections.Generic.IDictionary)) + public PoolProperties(string displayName = default(string), System.DateTime? lastModified = default(System.DateTime?), System.DateTime? creationTime = default(System.DateTime?), PoolProvisioningState? provisioningState = default(PoolProvisioningState?), System.DateTime? provisioningStateTransitionTime = default(System.DateTime?), AllocationState? allocationState = default(AllocationState?), System.DateTime? allocationStateTransitionTime = default(System.DateTime?), string vmSize = default(string), DeploymentConfiguration deploymentConfiguration = default(DeploymentConfiguration), int? currentDedicatedNodes = default(int?), int? currentLowPriorityNodes = default(int?), ScaleSettings scaleSettings = default(ScaleSettings), AutoScaleRun autoScaleRun = default(AutoScaleRun), InterNodeCommunicationState? interNodeCommunication = default(InterNodeCommunicationState?), NetworkConfiguration networkConfiguration = default(NetworkConfiguration), int? taskSlotsPerNode = default(int?), TaskSchedulingPolicy taskSchedulingPolicy = default(TaskSchedulingPolicy), System.Collections.Generic.IList userAccounts = default(System.Collections.Generic.IList), System.Collections.Generic.IList metadata = default(System.Collections.Generic.IList), StartTask startTask = default(StartTask), System.Collections.Generic.IList certificates = default(System.Collections.Generic.IList), System.Collections.Generic.IList applicationPackages = default(System.Collections.Generic.IList), System.Collections.Generic.IList applicationLicenses = default(System.Collections.Generic.IList), ResizeOperationStatus resizeOperationStatus = default(ResizeOperationStatus), System.Collections.Generic.IList mountConfiguration = default(System.Collections.Generic.IList), NodeCommunicationMode? targetNodeCommunicationMode = default(NodeCommunicationMode?), NodeCommunicationMode? currentNodeCommunicationMode = default(NodeCommunicationMode?), UpgradePolicy upgradePolicy = default(UpgradePolicy)) { this.DisplayName = displayName; @@ -180,7 +173,6 @@ public PoolProperties() this.TargetNodeCommunicationMode = targetNodeCommunicationMode; this.CurrentNodeCommunicationMode = currentNodeCommunicationMode; this.UpgradePolicy = upgradePolicy; - this.ResourceTags = resourceTags; CustomInit(); } @@ -395,15 +387,6 @@ public PoolProperties() [Newtonsoft.Json.JsonProperty(PropertyName = "upgradePolicy")] public UpgradePolicy UpgradePolicy {get; set; } - /// - /// Gets or sets 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'. - /// - [Newtonsoft.Json.JsonProperty(PropertyName = "resourceTags")] - public System.Collections.Generic.IDictionary ResourceTags {get; set; } /// /// Validate the object. /// diff --git a/src/Batch/Batch.Test/Pools/NewBatchPoolCommandTests.cs b/src/Batch/Batch.Test/Pools/NewBatchPoolCommandTests.cs index 0cbe74beeb50..e95ea907e1ae 100644 --- a/src/Batch/Batch.Test/Pools/NewBatchPoolCommandTests.cs +++ b/src/Batch/Batch.Test/Pools/NewBatchPoolCommandTests.cs @@ -83,7 +83,6 @@ public void NewBatchPoolParametersGetPassedToRequestTest() cmdlet.InterComputeNodeCommunicationEnabled = true; cmdlet.TaskSlotsPerNode = 4; cmdlet.Metadata = new Dictionary { { "meta1", "value1" } }; - cmdlet.ResourceTag = new Dictionary { { "resource1", "value1" } }; cmdlet.ResizeTimeout = TimeSpan.FromMinutes(20); cmdlet.StartTask = new PSStartTask("cmd /c echo start task"); cmdlet.TargetDedicatedComputeNodes = 3; diff --git a/src/Batch/Batch.Test/ScenarioTests/FileTests.ps1 b/src/Batch/Batch.Test/ScenarioTests/FileTests.ps1 index dea55d267787..6c460c7f770d 100644 --- a/src/Batch/Batch.Test/ScenarioTests/FileTests.ps1 +++ b/src/Batch/Batch.Test/ScenarioTests/FileTests.ps1 @@ -78,43 +78,6 @@ function Test-GetNodeFileContentByComputeNode } } -<# -.SYNOPSIS -Tests downloading a Remote Desktop Protocol file -#> -function Test-GetRDPFile -{ - param([string]$poolId) - - $context = New-Object Microsoft.Azure.Commands.Batch.Test.ScenarioTests.ScenarioTestContext - $stream = New-Object System.IO.MemoryStream - $rdpContents = "full address" - - try - { - $computeNodes = Get-AzBatchComputeNode -PoolId $poolId -BatchContext $context - $computeNodeId = $computeNodes[0].Id - - $computeNode = Get-AzBatchComputeNode -PoolId $poolId -Id $computeNodeId -BatchContext $context - $computeNode | Get-AzBatchRemoteDesktopProtocolFile -BatchContext $context -DestinationStream $stream - - $stream.Position = 0 - $sr = New-Object System.IO.StreamReader $stream - $downloadedContents = $sr.ReadToEnd() - - # Verify RDP file contains some expected text - Assert-True { $downloadedContents.Contains($rdpContents) } - } - finally - { - if ($sr -ne $null) - { - $sr.Dispose() - } - $stream.Dispose() - } -} - <# .SYNOPSIS Tests deleting a node file associated with a task diff --git a/src/Batch/Batch/Az.Batch.psd1 b/src/Batch/Batch/Az.Batch.psd1 index 69dd8c7a9621..61ff4b580093 100644 --- a/src/Batch/Batch/Az.Batch.psd1 +++ b/src/Batch/Batch/Az.Batch.psd1 @@ -60,8 +60,7 @@ RequiredAssemblies = 'Microsoft.AspNetCore.WebUtilities.dll', 'Microsoft.Azure.Batch.dll', 'Microsoft.Azure.PowerShell.Batch.Management.Sdk.dll', 'Microsoft.Extensions.Primitives.dll', - 'Microsoft.Net.Http.Headers.dll', - 'Microsoft.WindowsAzure.Storage.dll', + 'Microsoft.Net.Http.Headers.dll', 'System.Runtime.CompilerServices.Unsafe.dll' # Script files (.ps1) that are run in the caller's environment prior to importing this module. @@ -92,8 +91,7 @@ CmdletsToExport = 'Disable-AzBatchAutoScale', 'Disable-AzBatchComputeNodeSchedul 'Get-AzBatchJobSchedule', 'Get-AzBatchLocationQuota', 'Get-AzBatchNodeFile', 'Get-AzBatchNodeFileContent', 'Get-AzBatchPool', 'Get-AzBatchPoolNodeCount', - 'Get-AzBatchPoolUsageMetric', - 'Get-AzBatchRemoteDesktopProtocolFile', + 'Get-AzBatchPoolUsageMetric', 'Get-AzBatchRemoteLoginSetting', 'Get-AzBatchSubtask', 'Get-AzBatchSupportedImage', 'Get-AzBatchSupportedVirtualMachineSku', 'Get-AzBatchTask', diff --git a/src/Batch/Batch/Batch.csproj b/src/Batch/Batch/Batch.csproj index 1b47f19ab842..7815f78dfb5c 100644 --- a/src/Batch/Batch/Batch.csproj +++ b/src/Batch/Batch/Batch.csproj @@ -13,7 +13,7 @@ - + diff --git a/src/Batch/Batch/ChangeLog.md b/src/Batch/Batch/ChangeLog.md index dc080b8ea077..f0c30fc8bb56 100644 --- a/src/Batch/Batch/ChangeLog.md +++ b/src/Batch/Batch/ChangeLog.md @@ -19,6 +19,29 @@ --> ## Upcoming Release +## Version 4.0.0 +* Removed command `Get-AzBatchRemoteDesktopProtocolFile`. +* Removed command `Get-AzBatchCertificate`. +* Removed command `New-AzBatchCertificate`. +* Removed command `Remove-AzBatchCertificate`. +* Removed command `Stop-AzBatchCertificateDeletion`. + +* Removed parameter `CertificateReferences` from `New-AzBatchPool` command. +* Removed parameter `TargetNodeCommunication` from `New-AzBatchPool` command. +* Removed parameter `CurrentNodeCommunication` from `New-AzBatchPool` command. +* Removed parameter `ResourceTag` from `New-AzBatchPool` command. +* Removed parameter `ApplicationLicenses` from `New-AzBatchPool` command. + +* Removed properties `CertificateReferences`, `TargetNodeCommunication`, `CurrentNodeCommunication`, `ResourceTag`, and `ApplicationLicenses` from `PsCloudPool` model. +* Removed property `CertificateReferences` from `PsComputeNode` model. +* Removed properties `CertificateReferences`, `TargetNodeCommunication`, `CurrentNodeCommunication`, and `ResourceTag` from `PsPoolSpecification` model. + +* Added new enum values `Deallocated` and `Deallocating` to `PSNodeCounts` model. +* Added properties `CommunityGalleryImageId` and `SharedGalleryImageId` to `PSImageReference` model. +* Added property `SkipWithdrawFromVNet` to `PSJobNetworkConfiguration` model. +* Added property `SecurityProfile` to `PSManagedDisk` model. +* Added property `ContainerHostBatchBindMounts` to `PSTaskContainerSettings` model. + ## Version 3.7.1 * Preannounced breaking changes. Please refer to https://go.microsoft.com/fwlink/?linkid=2333229 diff --git a/src/Batch/Batch/Pools/NewBatchPoolCommand.cs b/src/Batch/Batch/Pools/NewBatchPoolCommand.cs index c63bfc8816f7..58564f8e752e 100644 --- a/src/Batch/Batch/Pools/NewBatchPoolCommand.cs +++ b/src/Batch/Batch/Pools/NewBatchPoolCommand.cs @@ -84,11 +84,6 @@ public class NewBatchPoolCommand : BatchObjectModelCmdletBase [ValidateNotNullOrEmpty] public PSTaskSchedulingPolicy TaskSchedulingPolicy { get; set; } - [CmdletParameterBreakingChangeWithVersion("ResourceTag", "15.0.0", "4.0.0", ChangeDescription = ChangeDesc)] - [Parameter(Mandatory = false, HelpMessage = "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'.")] - [ValidateNotNullOrEmpty] - public IDictionary ResourceTag { get; set; } - [Parameter] [ValidateNotNullOrEmpty] public IDictionary Metadata { get; set; } diff --git a/src/Batch/Batch/Utils/Constants.cs b/src/Batch/Batch/Utils/Constants.cs index 1af0cb1b2b71..b99e820dd429 100644 --- a/src/Batch/Batch/Utils/Constants.cs +++ b/src/Batch/Batch/Utils/Constants.cs @@ -43,7 +43,6 @@ public class Constants public const string AzureBatchSubtask = "AzureBatchSubtask"; public const string AzureBatchNodeFile = "AzureBatchNodeFile"; public const string AzureBatchNodeFileContent = "AzureBatchNodeFileContent"; - public const string AzureBatchRemoteDesktopProtocolFile = "AzureBatchRemoteDesktopProtocolFile"; public const string AzureBatchRemoteLoginSettings = "AzureBatchRemoteLoginSettings"; public const string AzureBatchAutoScale = "AzureBatchAutoScale"; public const string AzureBatchPoolOSVersion = "AzureBatchPoolOSVersion"; diff --git a/src/Batch/Batch/help/Az.Batch.md b/src/Batch/Batch/help/Az.Batch.md index 2d02a73ff7a8..05e5a84080dc 100644 --- a/src/Batch/Batch/help/Az.Batch.md +++ b/src/Batch/Batch/help/Az.Batch.md @@ -83,9 +83,6 @@ Gets Batch node counts per node state grouped by pool id. ### [Get-AzBatchPoolUsageMetric](Get-AzBatchPoolUsageMetric.md) Gets pool usage metrics for a Batch account. -### [Get-AzBatchRemoteDesktopProtocolFile](Get-AzBatchRemoteDesktopProtocolFile.md) -Gets an RDP file from a compute node. - ### [Get-AzBatchRemoteLoginSetting](Get-AzBatchRemoteLoginSetting.md) Gets remote logon settings for a compute node. diff --git a/src/Batch/Batch/help/Get-AzBatchRemoteLoginSetting.md b/src/Batch/Batch/help/Get-AzBatchRemoteLoginSetting.md index da45b5301702..0485549a5eac 100644 --- a/src/Batch/Batch/help/Get-AzBatchRemoteLoginSetting.md +++ b/src/Batch/Batch/help/Get-AzBatchRemoteLoginSetting.md @@ -166,6 +166,4 @@ This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable [Get-AzBatchComputeNode](./Get-AzBatchComputeNode.md) -[Get-AzBatchRemoteDesktopProtocolFile](./Get-AzBatchRemoteDesktopProtocolFile.md) - [Azure Batch Cmdlets](/powershell/module/Az.Batch/) From 367abd61e52ed4e20ac037dbf30ef7b0ad33b558 Mon Sep 17 00:00:00 2001 From: "REDMOND\\wiboris" Date: Thu, 18 Sep 2025 16:04:14 -0700 Subject: [PATCH 10/13] updates to docs --- src/Batch/Batch/ChangeLog.md | 5 ++-- src/Batch/Batch/help/New-AzBatchPool.md | 38 ++++--------------------- 2 files changed, 9 insertions(+), 34 deletions(-) diff --git a/src/Batch/Batch/ChangeLog.md b/src/Batch/Batch/ChangeLog.md index f0c30fc8bb56..175265fce75e 100644 --- a/src/Batch/Batch/ChangeLog.md +++ b/src/Batch/Batch/ChangeLog.md @@ -26,15 +26,16 @@ * Removed command `Remove-AzBatchCertificate`. * Removed command `Stop-AzBatchCertificateDeletion`. +* Removed parameter `CloudServiceConfiguration` from `New-AzBatchPool` command. * Removed parameter `CertificateReferences` from `New-AzBatchPool` command. * Removed parameter `TargetNodeCommunication` from `New-AzBatchPool` command. * Removed parameter `CurrentNodeCommunication` from `New-AzBatchPool` command. * Removed parameter `ResourceTag` from `New-AzBatchPool` command. * Removed parameter `ApplicationLicenses` from `New-AzBatchPool` command. -* Removed properties `CertificateReferences`, `TargetNodeCommunication`, `CurrentNodeCommunication`, `ResourceTag`, and `ApplicationLicenses` from `PsCloudPool` model. +* Removed properties `CloudServiceConfiguration`, `CertificateReferences`, `TargetNodeCommunication`, `CurrentNodeCommunication`, `ResourceTag`, and `ApplicationLicenses` from `PsCloudPool` model. * Removed property `CertificateReferences` from `PsComputeNode` model. -* Removed properties `CertificateReferences`, `TargetNodeCommunication`, `CurrentNodeCommunication`, and `ResourceTag` from `PsPoolSpecification` model. +* Removed properties `CloudServiceConfiguration`, `CertificateReferences`, `TargetNodeCommunication`, `CurrentNodeCommunication`, `ResourceTag`, and `ApplicationLicenses` from `PsPoolSpecification` model. * Added new enum values `Deallocated` and `Deallocating` to `PSNodeCounts` model. * Added properties `CommunityGalleryImageId` and `SharedGalleryImageId` to `PSImageReference` model. diff --git a/src/Batch/Batch/help/New-AzBatchPool.md b/src/Batch/Batch/help/New-AzBatchPool.md index 10e5da42572f..e30234df7495 100644 --- a/src/Batch/Batch/help/New-AzBatchPool.md +++ b/src/Batch/Batch/help/New-AzBatchPool.md @@ -13,20 +13,7 @@ Creates a pool in the Batch service. ## SYNTAX -### CloudServiceAndTargetDedicated (Default) -``` -New-AzBatchPool [-Id] -VirtualMachineSize [-DisplayName ] [-ResizeTimeout ] - [-TargetDedicatedComputeNodes ] [-TargetLowPriorityComputeNodes ] [-TaskSlotsPerNode ] - [-UpgradePolicy ] [-TaskSchedulingPolicy ] - [-Metadata ] [-InterComputeNodeCommunicationEnabled] - [-StartTask ] [-ApplicationPackageReferences ] - [-NetworkConfiguration ] - [-MountConfiguration ] [-UserAccount ] - -BatchContext [-DefaultProfile ] [-WhatIf] [-Confirm] - [] -``` - -### VirtualMachineAndTargetDedicated +### VirtualMachineAndTargetDedicated (Default) ``` New-AzBatchPool [-Id] -VirtualMachineSize [-DisplayName ] [-ResizeTimeout ] [-TargetDedicatedComputeNodes ] [-TargetLowPriorityComputeNodes ] [-TaskSlotsPerNode ] @@ -39,19 +26,6 @@ New-AzBatchPool [-Id] -VirtualMachineSize [-DisplayName ] [-WhatIf] [-Confirm] [] ``` -### CloudServiceAndAutoScale -``` -New-AzBatchPool [-Id] -VirtualMachineSize [-DisplayName ] - [-AutoScaleEvaluationInterval ] [-AutoScaleFormula ] [-TaskSlotsPerNode ] - [-UpgradePolicy ] [-TaskSchedulingPolicy ] - [-Metadata ] [-InterComputeNodeCommunicationEnabled] - [-StartTask ] [-ApplicationPackageReferences ] - [-NetworkConfiguration ] - [-MountConfiguration ] [-UserAccount ] - -BatchContext [-DefaultProfile ] [-WhatIf] [-Confirm] - [] -``` - ### VirtualMachineAndAutoScale ``` New-AzBatchPool [-Id] -VirtualMachineSize [-DisplayName ] @@ -131,7 +105,7 @@ The default value is 15 minutes, and the minimum value is 5 minutes. ```yaml Type: System.Nullable`1[System.TimeSpan] -Parameter Sets: CloudServiceAndAutoScale, VirtualMachineAndAutoScale +Parameter Sets: VirtualMachineAndAutoScale Aliases: Required: False @@ -146,7 +120,7 @@ Specifies the formula for automatically scaling the pool. ```yaml Type: System.String -Parameter Sets: CloudServiceAndAutoScale, VirtualMachineAndAutoScale +Parameter Sets: VirtualMachineAndAutoScale Aliases: Required: False @@ -284,7 +258,7 @@ Specifies the time-out for allocating compute nodes to the pool. ```yaml Type: System.Nullable`1[System.TimeSpan] -Parameter Sets: CloudServiceAndTargetDedicated, VirtualMachineAndTargetDedicated +Parameter Sets: VirtualMachineAndTargetDedicated Aliases: Required: False @@ -315,7 +289,7 @@ Specifies the target number of dedicated compute nodes to allocate to the pool. ```yaml Type: System.Nullable`1[System.Int32] -Parameter Sets: CloudServiceAndTargetDedicated, VirtualMachineAndTargetDedicated +Parameter Sets: VirtualMachineAndTargetDedicated Aliases: TargetDedicated Required: False @@ -330,7 +304,7 @@ Specifies the target number of low-priority compute nodes to allocate to the poo ```yaml Type: System.Nullable`1[System.Int32] -Parameter Sets: CloudServiceAndTargetDedicated, VirtualMachineAndTargetDedicated +Parameter Sets: VirtualMachineAndTargetDedicated Aliases: Required: False From 707d242f1f98d2d9e05f88377a55c4146c3e0664 Mon Sep 17 00:00:00 2001 From: "REDMOND\\wiboris" Date: Fri, 3 Oct 2025 14:43:35 -0700 Subject: [PATCH 11/13] conversion code --- .../PSApplicationPackageReferenceTests.cs | 1003 +++++++++++++++ .../Models/PSAutoUserSpecificationTests.cs | 722 +++++++++++ .../Models/PSAutomaticOSUpgradePolicyTests.cs | 301 +++++ .../PSComputeNodeIdentityReferenceTests.cs | 580 +++++++++ .../Models/PSContainerRegistryTests.cs | 782 +++++++++++ .../Models/PSRollingUpgradePolicyTests.cs | 413 ++++++ .../Batch.Test/Models/PSStartTaskTests.cs | 1144 +++++++++++++++++ .../Models/PSTaskContainerSettingsTests.cs | 954 ++++++++++++++ .../Models/PSTaskSchedulingPolicyTests.cs | 491 +++++++ .../Batch.Test/Models/PSUpgradePolicyTests.cs | 528 ++++++++ .../Batch.Test/Models/PSUserIdentityTests.cs | 883 +++++++++++++ .../Utils/UtilsAutoUserScopeTests.cs | 584 +++++++++ .../Utils/UtilsComputeNodeFillTypeTests.cs | 532 ++++++++ .../UtilsContainerHostBatchBindMountsTests.cs | 894 +++++++++++++ .../UtilsContainerWorkingDirectoryTests.cs | 596 +++++++++ .../Utils/UtilsElevationLevelTests.cs | 632 +++++++++ .../Utils/UtilsEnvironmentSettingsTests.cs | 910 +++++++++++++ src/Batch/Batch.Test/Utils/UtilsTests.cs | 404 ++++++ .../PSAutoUserSpecification.cs | 3 +- src/Batch/Batch/Models/BatchClient.Pools.cs | 38 +- src/Batch/Batch/Models/NewPoolParameters.cs | 5 - .../Models/PSApplicationPackageReference.cs | 48 + .../Batch/Models/PSAutoUserSpecification.cs | 49 + .../Models/PSAutomaticOSUpgradePolicy.cs | 61 + .../Models/PSComputeNodeIdentityReference.cs | 49 + src/Batch/Batch/Models/PSContainerRegistry.cs | 60 + .../Batch/Models/PSRollingUpgradePolicy.cs | 74 ++ src/Batch/Batch/Models/PSStartTask.cs | 53 + .../Batch/Models/PSTaskContainerSettings.cs | 54 + .../Batch/Models/PSTaskSchedulingPolicy.cs | 43 + src/Batch/Batch/Models/PSUpgradePolicy.cs | 48 + src/Batch/Batch/Models/PSUserIdentity.cs | 59 + .../Models/PSVirtualMachineConfiguration.cs | 27 + src/Batch/Batch/Utils/Utils.cs | 290 ++++- 34 files changed, 13286 insertions(+), 28 deletions(-) create mode 100644 src/Batch/Batch.Test/Models/PSApplicationPackageReferenceTests.cs create mode 100644 src/Batch/Batch.Test/Models/PSAutoUserSpecificationTests.cs create mode 100644 src/Batch/Batch.Test/Models/PSAutomaticOSUpgradePolicyTests.cs create mode 100644 src/Batch/Batch.Test/Models/PSComputeNodeIdentityReferenceTests.cs create mode 100644 src/Batch/Batch.Test/Models/PSContainerRegistryTests.cs create mode 100644 src/Batch/Batch.Test/Models/PSRollingUpgradePolicyTests.cs create mode 100644 src/Batch/Batch.Test/Models/PSStartTaskTests.cs create mode 100644 src/Batch/Batch.Test/Models/PSTaskContainerSettingsTests.cs create mode 100644 src/Batch/Batch.Test/Models/PSTaskSchedulingPolicyTests.cs create mode 100644 src/Batch/Batch.Test/Models/PSUpgradePolicyTests.cs create mode 100644 src/Batch/Batch.Test/Models/PSUserIdentityTests.cs create mode 100644 src/Batch/Batch.Test/Utils/UtilsAutoUserScopeTests.cs create mode 100644 src/Batch/Batch.Test/Utils/UtilsComputeNodeFillTypeTests.cs create mode 100644 src/Batch/Batch.Test/Utils/UtilsContainerHostBatchBindMountsTests.cs create mode 100644 src/Batch/Batch.Test/Utils/UtilsContainerWorkingDirectoryTests.cs create mode 100644 src/Batch/Batch.Test/Utils/UtilsElevationLevelTests.cs create mode 100644 src/Batch/Batch.Test/Utils/UtilsEnvironmentSettingsTests.cs create mode 100644 src/Batch/Batch.Test/Utils/UtilsTests.cs create mode 100644 src/Batch/Batch/Models/PSApplicationPackageReference.cs create mode 100644 src/Batch/Batch/Models/PSAutoUserSpecification.cs create mode 100644 src/Batch/Batch/Models/PSAutomaticOSUpgradePolicy.cs create mode 100644 src/Batch/Batch/Models/PSComputeNodeIdentityReference.cs create mode 100644 src/Batch/Batch/Models/PSContainerRegistry.cs create mode 100644 src/Batch/Batch/Models/PSRollingUpgradePolicy.cs create mode 100644 src/Batch/Batch/Models/PSStartTask.cs create mode 100644 src/Batch/Batch/Models/PSTaskContainerSettings.cs create mode 100644 src/Batch/Batch/Models/PSTaskSchedulingPolicy.cs create mode 100644 src/Batch/Batch/Models/PSUpgradePolicy.cs create mode 100644 src/Batch/Batch/Models/PSUserIdentity.cs create mode 100644 src/Batch/Batch/Models/PSVirtualMachineConfiguration.cs diff --git a/src/Batch/Batch.Test/Models/PSApplicationPackageReferenceTests.cs b/src/Batch/Batch.Test/Models/PSApplicationPackageReferenceTests.cs new file mode 100644 index 000000000000..320774579c39 --- /dev/null +++ b/src/Batch/Batch.Test/Models/PSApplicationPackageReferenceTests.cs @@ -0,0 +1,1003 @@ +// ----------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ----------------------------------------------------------------------------- + +using Microsoft.Azure.Commands.Batch.Models; +using Microsoft.Azure.Management.Batch.Models; +using Xunit; + +namespace Microsoft.Azure.Commands.Batch.Test.ModelsConversions +{ + public class PSApplicationPackageReferenceTests + { + #region toMgmtApplicationPackageReference Tests + + [Fact] + public void ToMgmtApplicationPackageReference_WithAllProperties_ReturnsCorrectMapping() + { + // Arrange + var psAppPackageRef = new PSApplicationPackageReference + { + ApplicationId = "myapp", + Version = "1.0.0" + }; + + // Act + var result = psAppPackageRef.toMgmtApplicationPackageReference(); + + // Assert + Assert.NotNull(result); + Assert.Equal("myapp", result.Id); + Assert.Equal("1.0.0", result.Version); + } + + [Fact] + public void ToMgmtApplicationPackageReference_WithApplicationIdOnly_ReturnsCorrectMapping() + { + // Arrange + var psAppPackageRef = new PSApplicationPackageReference + { + ApplicationId = "myapp", + Version = null + }; + + // Act + var result = psAppPackageRef.toMgmtApplicationPackageReference(); + + // Assert + Assert.NotNull(result); + Assert.Equal("myapp", result.Id); + Assert.Null(result.Version); + } + + [Fact] + public void ToMgmtApplicationPackageReference_WithEmptyVersion_ReturnsEmptyVersion() + { + // Arrange + var psAppPackageRef = new PSApplicationPackageReference + { + ApplicationId = "myapp", + Version = "" + }; + + // Act + var result = psAppPackageRef.toMgmtApplicationPackageReference(); + + // Assert + Assert.NotNull(result); + Assert.Equal("myapp", result.Id); + Assert.Equal("", result.Version); + } + + [Fact] + public void ToMgmtApplicationPackageReference_WithNullApplicationId_ReturnsNullId() + { + // Arrange + var psAppPackageRef = new PSApplicationPackageReference + { + ApplicationId = null, + Version = "2.0.0" + }; + + // Act + var result = psAppPackageRef.toMgmtApplicationPackageReference(); + + // Assert + Assert.NotNull(result); + Assert.Null(result.Id); + Assert.Equal("2.0.0", result.Version); + } + + [Fact] + public void ToMgmtApplicationPackageReference_WithEmptyApplicationId_ReturnsEmptyId() + { + // Arrange + var psAppPackageRef = new PSApplicationPackageReference + { + ApplicationId = "", + Version = "2.0.0" + }; + + // Act + var result = psAppPackageRef.toMgmtApplicationPackageReference(); + + // Assert + Assert.NotNull(result); + Assert.Equal("", result.Id); + Assert.Equal("2.0.0", result.Version); + } + + [Theory] + [InlineData("myapp", "1.0.0")] + [InlineData("batch-app", "2.1.5")] + [InlineData("app_with_underscore", "3.0.0-beta")] + [InlineData("app-with-dash", "1.0.0-rc1")] + [InlineData("UPPERCASE_APP", "4.5.6")] + [InlineData("app123", "1.2.3.4")] + public void ToMgmtApplicationPackageReference_VariousApplicationPackages_ReturnsCorrectMapping(string applicationId, string version) + { + // Arrange + var psAppPackageRef = new PSApplicationPackageReference + { + ApplicationId = applicationId, + Version = version + }; + + // Act + var result = psAppPackageRef.toMgmtApplicationPackageReference(); + + // Assert + Assert.NotNull(result); + Assert.Equal(applicationId, result.Id); + Assert.Equal(version, result.Version); + } + + [Fact] + public void ToMgmtApplicationPackageReference_AlwaysCreatesNewInstance() + { + // Arrange + var psAppPackageRef = new PSApplicationPackageReference + { + ApplicationId = "myapp", + Version = "1.0.0" + }; + + // Act + var result1 = psAppPackageRef.toMgmtApplicationPackageReference(); + var result2 = psAppPackageRef.toMgmtApplicationPackageReference(); + + // Assert + Assert.NotNull(result1); + Assert.NotNull(result2); + Assert.NotSame(result1, result2); + } + + [Fact] + public void ToMgmtApplicationPackageReference_VerifyApplicationPackageReferenceType() + { + // Arrange + var psAppPackageRef = new PSApplicationPackageReference + { + ApplicationId = "myapp", + Version = "1.0.0" + }; + + // Act + var result = psAppPackageRef.toMgmtApplicationPackageReference(); + + // Assert + Assert.NotNull(result); + Assert.IsType(result); + } + + [Fact] + public void ToMgmtApplicationPackageReference_WithDefaultConstructor_HandlesNullValues() + { + // Arrange + var psAppPackageRef = new PSApplicationPackageReference(); // Default constructor + + // Act + var result = psAppPackageRef.toMgmtApplicationPackageReference(); + + // Assert + Assert.NotNull(result); + Assert.Null(result.Id); + Assert.Null(result.Version); + } + + [Fact] + public void ToMgmtApplicationPackageReference_WithComplexVersionNumbers_ReturnsCorrectMapping() + { + // Test with various version formats + var versionFormats = new[] + { + "1.0", + "1.0.0", + "1.0.0.0", + "2.1.3-beta", + "3.0.0-alpha.1", + "4.5.6-rc.2+build.123", + "1.0.0-preview.1.2.3", + "2021.12.15", + "v1.0.0", + "release-1.0" + }; + + foreach (var version in versionFormats) + { + // Arrange + var psAppPackageRef = new PSApplicationPackageReference + { + ApplicationId = "testapp", + Version = version + }; + + // Act + var result = psAppPackageRef.toMgmtApplicationPackageReference(); + + // Assert + Assert.NotNull(result); + Assert.Equal("testapp", result.Id); + Assert.Equal(version, result.Version); + } + } + + #endregion + + #region fromMgmtApplicationPackageReference Tests + + [Fact] + public void FromMgmtApplicationPackageReference_WithAllProperties_ReturnsCorrectMapping() + { + // Arrange + var mgmtAppPackageRef = new ApplicationPackageReference + { + Id = "myapp", + Version = "1.0.0" + }; + + // Act + var result = PSApplicationPackageReference.fromMgmtApplicationPackageReference(mgmtAppPackageRef); + + // Assert + Assert.NotNull(result); + Assert.Equal("myapp", result.ApplicationId); + Assert.Equal("1.0.0", result.Version); + } + + [Fact] + public void FromMgmtApplicationPackageReference_WithIdOnly_ReturnsCorrectMapping() + { + // Arrange + var mgmtAppPackageRef = new ApplicationPackageReference + { + Id = "myapp", + Version = null + }; + + // Act + var result = PSApplicationPackageReference.fromMgmtApplicationPackageReference(mgmtAppPackageRef); + + // Assert + Assert.NotNull(result); + Assert.Equal("myapp", result.ApplicationId); + Assert.Null(result.Version); + } + + [Fact] + public void FromMgmtApplicationPackageReference_WithNullMgmtReference_ReturnsNull() + { + // Act + var result = PSApplicationPackageReference.fromMgmtApplicationPackageReference(null); + + // Assert + Assert.Null(result); + } + + [Fact] + public void FromMgmtApplicationPackageReference_WithEmptyVersion_ReturnsEmptyVersion() + { + // Arrange + var mgmtAppPackageRef = new ApplicationPackageReference + { + Id = "myapp", + Version = "" + }; + + // Act + var result = PSApplicationPackageReference.fromMgmtApplicationPackageReference(mgmtAppPackageRef); + + // Assert + Assert.NotNull(result); + Assert.Equal("myapp", result.ApplicationId); + Assert.Equal("", result.Version); + } + + [Fact] + public void FromMgmtApplicationPackageReference_WithNullId_ReturnsNullApplicationId() + { + // Arrange + var mgmtAppPackageRef = new ApplicationPackageReference + { + Id = null, + Version = "2.0.0" + }; + + // Act + var result = PSApplicationPackageReference.fromMgmtApplicationPackageReference(mgmtAppPackageRef); + + // Assert + Assert.NotNull(result); + Assert.Null(result.ApplicationId); + Assert.Equal("2.0.0", result.Version); + } + + [Fact] + public void FromMgmtApplicationPackageReference_WithEmptyId_ReturnsEmptyApplicationId() + { + // Arrange + var mgmtAppPackageRef = new ApplicationPackageReference + { + Id = "", + Version = "2.0.0" + }; + + // Act + var result = PSApplicationPackageReference.fromMgmtApplicationPackageReference(mgmtAppPackageRef); + + // Assert + Assert.NotNull(result); + Assert.Equal("", result.ApplicationId); + Assert.Equal("2.0.0", result.Version); + } + + [Theory] + [InlineData("myapp", "1.0.0")] + [InlineData("batch-app", "2.1.5")] + [InlineData("app_with_underscore", "3.0.0-beta")] + [InlineData("app-with-dash", "1.0.0-rc1")] + [InlineData("UPPERCASE_APP", "4.5.6")] + [InlineData("app123", "1.2.3.4")] + public void FromMgmtApplicationPackageReference_VariousApplicationPackages_ReturnsCorrectMapping(string applicationId, string version) + { + // Arrange + var mgmtAppPackageRef = new ApplicationPackageReference + { + Id = applicationId, + Version = version + }; + + // Act + var result = PSApplicationPackageReference.fromMgmtApplicationPackageReference(mgmtAppPackageRef); + + // Assert + Assert.NotNull(result); + Assert.Equal(applicationId, result.ApplicationId); + Assert.Equal(version, result.Version); + } + + [Fact] + public void FromMgmtApplicationPackageReference_StaticMethod_DoesNotRequireInstance() + { + // Arrange + var mgmtAppPackageRef = new ApplicationPackageReference + { + Id = "myapp", + Version = "1.0.0" + }; + + // Act - Call static method directly on class + var result = PSApplicationPackageReference.fromMgmtApplicationPackageReference(mgmtAppPackageRef); + + // Assert + Assert.NotNull(result); + Assert.Equal("myapp", result.ApplicationId); + Assert.Equal("1.0.0", result.Version); + } + + [Fact] + public void FromMgmtApplicationPackageReference_AlwaysCreatesNewInstance() + { + // Arrange + var mgmtAppPackageRef = new ApplicationPackageReference + { + Id = "myapp", + Version = "1.0.0" + }; + + // Act + var result1 = PSApplicationPackageReference.fromMgmtApplicationPackageReference(mgmtAppPackageRef); + var result2 = PSApplicationPackageReference.fromMgmtApplicationPackageReference(mgmtAppPackageRef); + + // Assert + Assert.NotNull(result1); + Assert.NotNull(result2); + Assert.NotSame(result1, result2); + } + + [Fact] + public void FromMgmtApplicationPackageReference_VerifyPSApplicationPackageReferenceType() + { + // Arrange + var mgmtAppPackageRef = new ApplicationPackageReference + { + Id = "myapp", + Version = "1.0.0" + }; + + // Act + var result = PSApplicationPackageReference.fromMgmtApplicationPackageReference(mgmtAppPackageRef); + + // Assert + Assert.NotNull(result); + Assert.IsType(result); + } + + [Fact] + public void FromMgmtApplicationPackageReference_WithDefaultConstructor_HandlesNullValues() + { + // Arrange + var mgmtAppPackageRef = new ApplicationPackageReference(); // Default constructor + + // Act + var result = PSApplicationPackageReference.fromMgmtApplicationPackageReference(mgmtAppPackageRef); + + // Assert + Assert.NotNull(result); + Assert.Null(result.ApplicationId); + Assert.Null(result.Version); + } + + [Fact] + public void FromMgmtApplicationPackageReference_WithParameterizedConstructor_ReturnsCorrectMapping() + { + // Arrange + var mgmtAppPackageRef = new ApplicationPackageReference("testapp", "2.0.0"); + + // Act + var result = PSApplicationPackageReference.fromMgmtApplicationPackageReference(mgmtAppPackageRef); + + // Assert + Assert.NotNull(result); + Assert.Equal("testapp", result.ApplicationId); + Assert.Equal("2.0.0", result.Version); + } + + [Fact] + public void FromMgmtApplicationPackageReference_WithComplexVersionNumbers_ReturnsCorrectMapping() + { + // Test with various version formats + var versionFormats = new[] + { + "1.0", + "1.0.0", + "1.0.0.0", + "2.1.3-beta", + "3.0.0-alpha.1", + "4.5.6-rc.2+build.123", + "1.0.0-preview.1.2.3", + "2021.12.15", + "v1.0.0", + "release-1.0" + }; + + foreach (var version in versionFormats) + { + // Arrange + var mgmtAppPackageRef = new ApplicationPackageReference + { + Id = "testapp", + Version = version + }; + + // Act + var result = PSApplicationPackageReference.fromMgmtApplicationPackageReference(mgmtAppPackageRef); + + // Assert + Assert.NotNull(result); + Assert.Equal("testapp", result.ApplicationId); + Assert.Equal(version, result.Version); + } + } + + #endregion + + #region Round-trip Conversion Tests + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesAllProperties() + { + // Arrange + var originalPsAppPackageRef = new PSApplicationPackageReference + { + ApplicationId = "myapp", + Version = "1.0.0" + }; + + // Act + var mgmtAppPackageRef = originalPsAppPackageRef.toMgmtApplicationPackageReference(); + var roundTripPsAppPackageRef = PSApplicationPackageReference.fromMgmtApplicationPackageReference(mgmtAppPackageRef); + + // Assert + Assert.NotNull(roundTripPsAppPackageRef); + Assert.Equal(originalPsAppPackageRef.ApplicationId, roundTripPsAppPackageRef.ApplicationId); + Assert.Equal(originalPsAppPackageRef.Version, roundTripPsAppPackageRef.Version); + } + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesNullValues() + { + // Arrange + var originalPsAppPackageRef = new PSApplicationPackageReference + { + ApplicationId = null, + Version = null + }; + + // Act + var mgmtAppPackageRef = originalPsAppPackageRef.toMgmtApplicationPackageReference(); + var roundTripPsAppPackageRef = PSApplicationPackageReference.fromMgmtApplicationPackageReference(mgmtAppPackageRef); + + // Assert + Assert.NotNull(roundTripPsAppPackageRef); + Assert.Null(roundTripPsAppPackageRef.ApplicationId); + Assert.Null(roundTripPsAppPackageRef.Version); + } + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesEmptyValues() + { + // Arrange + var originalPsAppPackageRef = new PSApplicationPackageReference + { + ApplicationId = "", + Version = "" + }; + + // Act + var mgmtAppPackageRef = originalPsAppPackageRef.toMgmtApplicationPackageReference(); + var roundTripPsAppPackageRef = PSApplicationPackageReference.fromMgmtApplicationPackageReference(mgmtAppPackageRef); + + // Assert + Assert.NotNull(roundTripPsAppPackageRef); + Assert.Equal("", roundTripPsAppPackageRef.ApplicationId); + Assert.Equal("", roundTripPsAppPackageRef.Version); + } + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesApplicationIdOnly() + { + // Arrange + var originalPsAppPackageRef = new PSApplicationPackageReference + { + ApplicationId = "myapp", + Version = null + }; + + // Act + var mgmtAppPackageRef = originalPsAppPackageRef.toMgmtApplicationPackageReference(); + var roundTripPsAppPackageRef = PSApplicationPackageReference.fromMgmtApplicationPackageReference(mgmtAppPackageRef); + + // Assert + Assert.NotNull(roundTripPsAppPackageRef); + Assert.Equal(originalPsAppPackageRef.ApplicationId, roundTripPsAppPackageRef.ApplicationId); + Assert.Null(roundTripPsAppPackageRef.Version); + } + + [Theory] + [InlineData("myapp", "1.0.0")] + [InlineData("batch-app", "2.1.5")] + [InlineData("app_with_underscore", null)] + [InlineData("", "3.0.0")] + [InlineData(null, "4.0.0")] + [InlineData("testapp", "")] + public void RoundTripConversion_AllValidValues_PreservesOriginalValue(string applicationId, string version) + { + // Arrange + var originalPsAppPackageRef = new PSApplicationPackageReference + { + ApplicationId = applicationId, + Version = version + }; + + // Act + var mgmtAppPackageRef = originalPsAppPackageRef.toMgmtApplicationPackageReference(); + var roundTripPsAppPackageRef = PSApplicationPackageReference.fromMgmtApplicationPackageReference(mgmtAppPackageRef); + + // Assert + Assert.NotNull(roundTripPsAppPackageRef); + Assert.Equal(originalPsAppPackageRef.ApplicationId, roundTripPsAppPackageRef.ApplicationId); + Assert.Equal(originalPsAppPackageRef.Version, roundTripPsAppPackageRef.Version); + } + + [Fact] + public void RoundTripConversion_FromMgmtAndToMgmt_PreservesValues() + { + // Arrange + var originalMgmtAppPackageRef = new ApplicationPackageReference + { + Id = "originalapp", + Version = "2.5.0" + }; + + // Act + var psAppPackageRef = PSApplicationPackageReference.fromMgmtApplicationPackageReference(originalMgmtAppPackageRef); + var roundTripMgmtAppPackageRef = psAppPackageRef.toMgmtApplicationPackageReference(); + + // Assert + Assert.NotNull(roundTripMgmtAppPackageRef); + Assert.Equal(originalMgmtAppPackageRef.Id, roundTripMgmtAppPackageRef.Id); + Assert.Equal(originalMgmtAppPackageRef.Version, roundTripMgmtAppPackageRef.Version); + } + + #endregion + + #region Integration Tests + + [Fact] + public void ApplicationPackageReferenceConversions_BothDirections_MaintainSemanticEquivalence() + { + // This test ensures that the semantic meaning is preserved across conversions + + // Arrange - Test with realistic application package scenarios + var psAppPackageRef = new PSApplicationPackageReference + { + ApplicationId = "blender", + Version = "3.4.1" + }; + + // Act + var mgmtAppPackageRef = psAppPackageRef.toMgmtApplicationPackageReference(); + var backToPs = PSApplicationPackageReference.fromMgmtApplicationPackageReference(mgmtAppPackageRef); + + // Assert + Assert.NotNull(mgmtAppPackageRef); + Assert.Equal("blender", mgmtAppPackageRef.Id); + Assert.Equal("3.4.1", mgmtAppPackageRef.Version); + + Assert.NotNull(backToPs); + Assert.Equal("blender", backToPs.ApplicationId); + Assert.Equal("3.4.1", backToPs.Version); + } + + [Fact] + public void ApplicationPackageReferenceConversions_NullHandling_WorksCorrectly() + { + // Test null handling in conversions + + // Act + var resultFromNull = PSApplicationPackageReference.fromMgmtApplicationPackageReference(null); + + // Assert + Assert.Null(resultFromNull); + } + + [Fact] + public void ApplicationPackageReferenceConversions_BatchPoolContext_VerifyCorrectUsage() + { + // This test validates the conversions work correctly in the context of Batch pool configuration + // ApplicationPackageReference is used to specify application packages for Batch pools + + // Arrange - Test with different application package scenarios + var scenarios = new[] + { + // Standard application with specific version + new { + ApplicationId = "ffmpeg", + Version = "4.4.0", + Description = "Video processing application with specific version" + }, + // Application without version (uses default) + new { + ApplicationId = "python", + Version = (string)null, + Description = "Python runtime using default version" + }, + // Development application with prerelease version + new { + ApplicationId = "myapp", + Version = "1.0.0-beta.2", + Description = "Custom application with prerelease version" + }, + // System tool application + new { + ApplicationId = "git", + Version = "2.40.1", + Description = "Version control system" + } + }; + + foreach (var scenario in scenarios) + { + // Arrange + var psAppPackageRef = new PSApplicationPackageReference + { + ApplicationId = scenario.ApplicationId, + Version = scenario.Version + }; + + // Act + var mgmtAppPackageRef = psAppPackageRef.toMgmtApplicationPackageReference(); + + // Assert - Should convert correctly for Batch pool configuration + Assert.NotNull(mgmtAppPackageRef); + Assert.Equal(scenario.ApplicationId, mgmtAppPackageRef.Id); + Assert.Equal(scenario.Version, mgmtAppPackageRef.Version); + + // Verify round-trip conversion maintains application package semantics + var backToPs = PSApplicationPackageReference.fromMgmtApplicationPackageReference(mgmtAppPackageRef); + Assert.NotNull(backToPs); + Assert.Equal(scenario.ApplicationId, backToPs.ApplicationId); + Assert.Equal(scenario.Version, backToPs.Version); + } + } + + [Fact] + public void ApplicationPackageReferenceConversions_PropertyMapping_VerifyCorrectness() + { + // This test verifies the property mapping between PS and Management types + // PSApplicationPackageReference.ApplicationId <-> ApplicationPackageReference.Id + // PSApplicationPackageReference.Version <-> ApplicationPackageReference.Version + + // Test 1: PS to Management mapping + var psAppPackageRef = new PSApplicationPackageReference + { + ApplicationId = "mapping-test-app", + Version = "1.2.3" + }; + + var mgmtAppPackageRef = psAppPackageRef.toMgmtApplicationPackageReference(); + + // Verify ApplicationId maps to Id + Assert.Equal(psAppPackageRef.ApplicationId, mgmtAppPackageRef.Id); + // Verify Version maps to Version + Assert.Equal(psAppPackageRef.Version, mgmtAppPackageRef.Version); + + // Test 2: Management to PS mapping + var originalMgmtRef = new ApplicationPackageReference + { + Id = "reverse-mapping-test", + Version = "4.5.6" + }; + + var resultPsRef = PSApplicationPackageReference.fromMgmtApplicationPackageReference(originalMgmtRef); + + // Verify Id maps to ApplicationId + Assert.Equal(originalMgmtRef.Id, resultPsRef.ApplicationId); + // Verify Version maps to Version + Assert.Equal(originalMgmtRef.Version, resultPsRef.Version); + } + + [Fact] + public void ApplicationPackageReferenceConversions_InstanceCreation_VerifyBehavior() + { + // This test verifies that the conversion methods create appropriate instances + + // Arrange + var psAppPackageRef = new PSApplicationPackageReference + { + ApplicationId = "testapp", + Version = "1.0.0" + }; + + var mgmtAppPackageRef = new ApplicationPackageReference + { + Id = "mgmtapp", + Version = "2.0.0" + }; + + // Act + var mgmtResult = psAppPackageRef.toMgmtApplicationPackageReference(); + var psResult = PSApplicationPackageReference.fromMgmtApplicationPackageReference(mgmtAppPackageRef); + + // Assert - Verify proper instance creation + Assert.NotNull(mgmtResult); + Assert.NotNull(psResult); + Assert.IsType(mgmtResult); + Assert.IsType(psResult); + + // Verify new instances are created + Assert.NotSame(mgmtAppPackageRef, mgmtResult); + Assert.NotSame(psAppPackageRef, psResult); + } + + #endregion + + #region Performance and Edge Case Tests + + [Fact] + public void ApplicationPackageReferenceConversions_PerformanceTest_ExecutesQuickly() + { + // This test ensures the conversions are efficient + + // Arrange + var psAppPackageRef = new PSApplicationPackageReference + { + ApplicationId = "perftest", + Version = "1.0.0" + }; + + var mgmtAppPackageRef = new ApplicationPackageReference + { + Id = "mgmtperftest", + Version = "2.0.0" + }; + + // Act & Assert - Multiple conversions should complete without delay + for (int i = 0; i < 1000; i++) + { + var mgmtResult = psAppPackageRef.toMgmtApplicationPackageReference(); + var psResult = PSApplicationPackageReference.fromMgmtApplicationPackageReference(mgmtAppPackageRef); + + Assert.NotNull(mgmtResult); + Assert.NotNull(psResult); + Assert.Equal("perftest", mgmtResult.Id); + Assert.Equal("mgmtperftest", psResult.ApplicationId); + } + } + + [Fact] + public void ApplicationPackageReferenceConversions_EdgeCaseApplicationIds_HandleCorrectly() + { + // Test conversion with various edge case application IDs + + var testApplicationIds = new[] + { + // Standard application IDs + "myapp", + "batch-app", + "test_app", + + // Special characters + "app-with-dashes", + "app_with_underscores", + "app.with.dots", + "app123", + "123app", + + // Case variations + "UPPERCASE", + "lowercase", + "MixedCase", + + // Azure/cloud specific patterns + "microsoft-office", + "azure-cli", + "powershell-core", + + // Single character + "a", + + // Long application ID + "very-long-application-name-that-might-be-used-in-enterprise-scenarios", + + // Empty string + "", + + // Null value + null + }; + + foreach (var applicationId in testApplicationIds) + { + // Arrange + var psAppPackageRef = new PSApplicationPackageReference + { + ApplicationId = applicationId, + Version = "1.0.0" + }; + + // Act + var mgmtResult = psAppPackageRef.toMgmtApplicationPackageReference(); + var roundTripResult = PSApplicationPackageReference.fromMgmtApplicationPackageReference(mgmtResult); + + // Assert + Assert.NotNull(mgmtResult); + Assert.NotNull(roundTripResult); + Assert.Equal(applicationId, mgmtResult.Id); + Assert.Equal("1.0.0", mgmtResult.Version); + Assert.Equal(applicationId, roundTripResult.ApplicationId); + Assert.Equal("1.0.0", roundTripResult.Version); + } + } + + [Fact] + public void ApplicationPackageReferenceConversions_EdgeCaseVersions_HandleCorrectly() + { + // Test conversion with various edge case version strings + + var testVersions = new[] + { + // Standard semantic versions + "1.0.0", + "2.1.3", + "10.20.30", + + // Prerelease versions + "1.0.0-alpha", + "1.0.0-beta.1", + "1.0.0-rc.1.2.3", + "2.0.0-preview.1", + + // Build metadata + "1.0.0+build.1", + "1.0.0-alpha+beta.1", + "1.0.0+exp.sha.5114f85", + + // Date-based versions + "2023.12.15", + "20231215", + + // Legacy formats + "v1.0.0", + "release-1.0", + "1.0", + "1", + + // Special cases + "latest", + "stable", + "dev", + + // Single character + "1", + + // Empty string + "", + + // Null value + null + }; + + foreach (var version in testVersions) + { + // Arrange + var psAppPackageRef = new PSApplicationPackageReference + { + ApplicationId = "testapp", + Version = version + }; + + // Act + var mgmtResult = psAppPackageRef.toMgmtApplicationPackageReference(); + var roundTripResult = PSApplicationPackageReference.fromMgmtApplicationPackageReference(mgmtResult); + + // Assert + Assert.NotNull(mgmtResult); + Assert.NotNull(roundTripResult); + Assert.Equal("testapp", mgmtResult.Id); + Assert.Equal(version, mgmtResult.Version); + Assert.Equal("testapp", roundTripResult.ApplicationId); + Assert.Equal(version, roundTripResult.Version); + } + } + + [Fact] + public void ApplicationPackageReferenceConversions_DefaultValues_HandleCorrectly() + { + // Test conversion with default and null values + + // Scenario 1: Default PS constructor + var defaultPsRef = new PSApplicationPackageReference(); + + var mgmtFromDefault = defaultPsRef.toMgmtApplicationPackageReference(); + Assert.NotNull(mgmtFromDefault); + Assert.Null(mgmtFromDefault.Id); + Assert.Null(mgmtFromDefault.Version); + + // Scenario 2: Default management constructor + var defaultMgmtRef = new ApplicationPackageReference(); + + var psFromDefault = PSApplicationPackageReference.fromMgmtApplicationPackageReference(defaultMgmtRef); + Assert.NotNull(psFromDefault); + Assert.Null(psFromDefault.ApplicationId); + Assert.Null(psFromDefault.Version); + + // Scenario 3: Parameterized management constructor with null version + var paramMgmtRef = new ApplicationPackageReference("testapp", null); + + var psFromParam = PSApplicationPackageReference.fromMgmtApplicationPackageReference(paramMgmtRef); + Assert.NotNull(psFromParam); + Assert.Equal("testapp", psFromParam.ApplicationId); + Assert.Null(psFromParam.Version); + + // Scenario 4: Round-trip with default values + var roundTripMgmt = psFromDefault.toMgmtApplicationPackageReference(); + Assert.NotNull(roundTripMgmt); + Assert.Null(roundTripMgmt.Id); + Assert.Null(roundTripMgmt.Version); + } + + #endregion + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Test/Models/PSAutoUserSpecificationTests.cs b/src/Batch/Batch.Test/Models/PSAutoUserSpecificationTests.cs new file mode 100644 index 000000000000..b2a8d749cf62 --- /dev/null +++ b/src/Batch/Batch.Test/Models/PSAutoUserSpecificationTests.cs @@ -0,0 +1,722 @@ +// ----------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ----------------------------------------------------------------------------- + +using Microsoft.Azure.Commands.Batch.Models; +using Microsoft.Azure.Management.Batch.Models; +using Xunit; + +namespace Microsoft.Azure.Commands.Batch.Test.ModelsConversions +{ + public class PSAutoUserSpecificationTests + { + #region toMgmtAutoUserSpecification Tests + + [Fact] + public void ToMgmtAutoUserSpecification_WithAllProperties_ReturnsCorrectMapping() + { + // Arrange + var psAutoUserSpec = new PSAutoUserSpecification( + scope: Microsoft.Azure.Batch.Common.AutoUserScope.Task, + elevationLevel: Microsoft.Azure.Batch.Common.ElevationLevel.Admin); + + // Act + var result = psAutoUserSpec.toMgmtAutoUserSpecification(); + + // Assert + Assert.NotNull(result); + Assert.Equal(AutoUserScope.Task, result.Scope); + Assert.Equal(ElevationLevel.Admin, result.ElevationLevel); + } + + [Fact] + public void ToMgmtAutoUserSpecification_WithPoolScopeAndNonAdmin_ReturnsCorrectMapping() + { + // Arrange + var psAutoUserSpec = new PSAutoUserSpecification( + scope: Microsoft.Azure.Batch.Common.AutoUserScope.Pool, + elevationLevel: Microsoft.Azure.Batch.Common.ElevationLevel.NonAdmin); + + // Act + var result = psAutoUserSpec.toMgmtAutoUserSpecification(); + + // Assert + Assert.NotNull(result); + Assert.Equal(AutoUserScope.Pool, result.Scope); + Assert.Equal(ElevationLevel.NonAdmin, result.ElevationLevel); + } + + [Fact] + public void ToMgmtAutoUserSpecification_WithNullScope_ReturnsNullScope() + { + // Arrange + var psAutoUserSpec = new PSAutoUserSpecification( + scope: null, + elevationLevel: Microsoft.Azure.Batch.Common.ElevationLevel.Admin); + + // Act + var result = psAutoUserSpec.toMgmtAutoUserSpecification(); + + // Assert + Assert.NotNull(result); + Assert.Null(result.Scope); + Assert.Equal(ElevationLevel.Admin, result.ElevationLevel); + } + + [Fact] + public void ToMgmtAutoUserSpecification_WithNullElevationLevel_ReturnsNullElevationLevel() + { + // Arrange + var psAutoUserSpec = new PSAutoUserSpecification( + scope: Microsoft.Azure.Batch.Common.AutoUserScope.Pool, + elevationLevel: null); + + // Act + var result = psAutoUserSpec.toMgmtAutoUserSpecification(); + + // Assert + Assert.NotNull(result); + Assert.Equal(AutoUserScope.Pool, result.Scope); + Assert.Null(result.ElevationLevel); + } + + [Fact] + public void ToMgmtAutoUserSpecification_WithBothNullValues_ReturnsBothNull() + { + // Arrange + var psAutoUserSpec = new PSAutoUserSpecification( + scope: null, + elevationLevel: null); + + // Act + var result = psAutoUserSpec.toMgmtAutoUserSpecification(); + + // Assert + Assert.NotNull(result); + Assert.Null(result.Scope); + Assert.Null(result.ElevationLevel); + } + + [Theory] + [InlineData(Microsoft.Azure.Batch.Common.AutoUserScope.Task, Microsoft.Azure.Batch.Common.ElevationLevel.Admin, AutoUserScope.Task, ElevationLevel.Admin)] + [InlineData(Microsoft.Azure.Batch.Common.AutoUserScope.Task, Microsoft.Azure.Batch.Common.ElevationLevel.NonAdmin, AutoUserScope.Task, ElevationLevel.NonAdmin)] + [InlineData(Microsoft.Azure.Batch.Common.AutoUserScope.Pool, Microsoft.Azure.Batch.Common.ElevationLevel.Admin, AutoUserScope.Pool, ElevationLevel.Admin)] + [InlineData(Microsoft.Azure.Batch.Common.AutoUserScope.Pool, Microsoft.Azure.Batch.Common.ElevationLevel.NonAdmin, AutoUserScope.Pool, ElevationLevel.NonAdmin)] + public void ToMgmtAutoUserSpecification_AllValidCombinations_ReturnsCorrectMapping( + Microsoft.Azure.Batch.Common.AutoUserScope psScope, + Microsoft.Azure.Batch.Common.ElevationLevel psElevationLevel, + AutoUserScope expectedScope, + ElevationLevel expectedElevationLevel) + { + // Arrange + var psAutoUserSpec = new PSAutoUserSpecification( + scope: psScope, + elevationLevel: psElevationLevel); + + // Act + var result = psAutoUserSpec.toMgmtAutoUserSpecification(); + + // Assert + Assert.NotNull(result); + Assert.Equal(expectedScope, result.Scope); + Assert.Equal(expectedElevationLevel, result.ElevationLevel); + } + + [Fact] + public void ToMgmtAutoUserSpecification_AlwaysCreatesNewInstance() + { + // Arrange + var psAutoUserSpec = new PSAutoUserSpecification( + scope: Microsoft.Azure.Batch.Common.AutoUserScope.Task, + elevationLevel: Microsoft.Azure.Batch.Common.ElevationLevel.Admin); + + // Act + var result1 = psAutoUserSpec.toMgmtAutoUserSpecification(); + var result2 = psAutoUserSpec.toMgmtAutoUserSpecification(); + + // Assert + Assert.NotNull(result1); + Assert.NotNull(result2); + Assert.NotSame(result1, result2); + } + + [Fact] + public void ToMgmtAutoUserSpecification_VerifyAutoUserSpecificationType() + { + // Arrange + var psAutoUserSpec = new PSAutoUserSpecification( + scope: Microsoft.Azure.Batch.Common.AutoUserScope.Pool, + elevationLevel: Microsoft.Azure.Batch.Common.ElevationLevel.NonAdmin); + + // Act + var result = psAutoUserSpec.toMgmtAutoUserSpecification(); + + // Assert + Assert.NotNull(result); + Assert.IsType(result); + } + + [Fact] + public void ToMgmtAutoUserSpecification_DefaultValues_HandlesCorrectly() + { + // Arrange + var psAutoUserSpec = new PSAutoUserSpecification(); // Using default constructor + + // Act + var result = psAutoUserSpec.toMgmtAutoUserSpecification(); + + // Assert + Assert.NotNull(result); + // Properties should be null since no values were specified + Assert.Null(result.Scope); + Assert.Null(result.ElevationLevel); + } + + #endregion + + #region fromMgmtAutoUserSpecification Tests + + [Fact] + public void FromMgmtAutoUserSpecification_WithAllProperties_ReturnsCorrectMapping() + { + // Arrange + var mgmtAutoUserSpec = new Microsoft.Azure.Management.Batch.Models.AutoUserSpecification( + scope: AutoUserScope.Task, + elevationLevel: ElevationLevel.Admin); + + // Act + var result = PSAutoUserSpecification.fromMgmtAutoUserSpecification(mgmtAutoUserSpec); + + // Assert + Assert.NotNull(result); + Assert.Equal(Microsoft.Azure.Batch.Common.AutoUserScope.Task, result.Scope); + Assert.Equal(Microsoft.Azure.Batch.Common.ElevationLevel.Admin, result.ElevationLevel); + } + + [Fact] + public void FromMgmtAutoUserSpecification_WithPoolScopeAndNonAdmin_ReturnsCorrectMapping() + { + // Arrange + var mgmtAutoUserSpec = new Microsoft.Azure.Management.Batch.Models.AutoUserSpecification( + scope: AutoUserScope.Pool, + elevationLevel: ElevationLevel.NonAdmin); + + // Act + var result = PSAutoUserSpecification.fromMgmtAutoUserSpecification(mgmtAutoUserSpec); + + // Assert + Assert.NotNull(result); + Assert.Equal(Microsoft.Azure.Batch.Common.AutoUserScope.Pool, result.Scope); + Assert.Equal(Microsoft.Azure.Batch.Common.ElevationLevel.NonAdmin, result.ElevationLevel); + } + + [Fact] + public void FromMgmtAutoUserSpecification_WithNullMgmtSpec_ReturnsNull() + { + // Act + var result = PSAutoUserSpecification.fromMgmtAutoUserSpecification(null); + + // Assert + Assert.Null(result); + } + + [Fact] + public void FromMgmtAutoUserSpecification_WithNullScope_ReturnsNullScope() + { + // Arrange + var mgmtAutoUserSpec = new Microsoft.Azure.Management.Batch.Models.AutoUserSpecification( + scope: null, + elevationLevel: ElevationLevel.Admin); + + // Act + var result = PSAutoUserSpecification.fromMgmtAutoUserSpecification(mgmtAutoUserSpec); + + // Assert + Assert.NotNull(result); + Assert.Null(result.Scope); + Assert.Equal(Microsoft.Azure.Batch.Common.ElevationLevel.Admin, result.ElevationLevel); + } + + [Fact] + public void FromMgmtAutoUserSpecification_WithNullElevationLevel_ReturnsNullElevationLevel() + { + // Arrange + var mgmtAutoUserSpec = new Microsoft.Azure.Management.Batch.Models.AutoUserSpecification( + scope: AutoUserScope.Pool, + elevationLevel: null); + + // Act + var result = PSAutoUserSpecification.fromMgmtAutoUserSpecification(mgmtAutoUserSpec); + + // Assert + Assert.NotNull(result); + Assert.Equal(Microsoft.Azure.Batch.Common.AutoUserScope.Pool, result.Scope); + Assert.Null(result.ElevationLevel); + } + + [Fact] + public void FromMgmtAutoUserSpecification_WithBothNullValues_ReturnsBothNull() + { + // Arrange + var mgmtAutoUserSpec = new Microsoft.Azure.Management.Batch.Models.AutoUserSpecification( + scope: null, + elevationLevel: null); + + // Act + var result = PSAutoUserSpecification.fromMgmtAutoUserSpecification(mgmtAutoUserSpec); + + // Assert + Assert.NotNull(result); + Assert.Null(result.Scope); + Assert.Null(result.ElevationLevel); + } + + [Theory] + [InlineData(AutoUserScope.Task, ElevationLevel.Admin, Microsoft.Azure.Batch.Common.AutoUserScope.Task, Microsoft.Azure.Batch.Common.ElevationLevel.Admin)] + [InlineData(AutoUserScope.Task, ElevationLevel.NonAdmin, Microsoft.Azure.Batch.Common.AutoUserScope.Task, Microsoft.Azure.Batch.Common.ElevationLevel.NonAdmin)] + [InlineData(AutoUserScope.Pool, ElevationLevel.Admin, Microsoft.Azure.Batch.Common.AutoUserScope.Pool, Microsoft.Azure.Batch.Common.ElevationLevel.Admin)] + [InlineData(AutoUserScope.Pool, ElevationLevel.NonAdmin, Microsoft.Azure.Batch.Common.AutoUserScope.Pool, Microsoft.Azure.Batch.Common.ElevationLevel.NonAdmin)] + public void FromMgmtAutoUserSpecification_AllValidCombinations_ReturnsCorrectMapping( + AutoUserScope mgmtScope, + ElevationLevel mgmtElevationLevel, + Microsoft.Azure.Batch.Common.AutoUserScope expectedScope, + Microsoft.Azure.Batch.Common.ElevationLevel expectedElevationLevel) + { + // Arrange + var mgmtAutoUserSpec = new Microsoft.Azure.Management.Batch.Models.AutoUserSpecification( + scope: mgmtScope, + elevationLevel: mgmtElevationLevel); + + // Act + var result = PSAutoUserSpecification.fromMgmtAutoUserSpecification(mgmtAutoUserSpec); + + // Assert + Assert.NotNull(result); + Assert.Equal(expectedScope, result.Scope); + Assert.Equal(expectedElevationLevel, result.ElevationLevel); + } + + [Fact] + public void FromMgmtAutoUserSpecification_StaticMethod_DoesNotRequireInstance() + { + // Arrange + var mgmtAutoUserSpec = new Microsoft.Azure.Management.Batch.Models.AutoUserSpecification( + scope: AutoUserScope.Task, + elevationLevel: ElevationLevel.NonAdmin); + + // Act - Call static method directly on class + var result = PSAutoUserSpecification.fromMgmtAutoUserSpecification(mgmtAutoUserSpec); + + // Assert + Assert.NotNull(result); + Assert.Equal(Microsoft.Azure.Batch.Common.AutoUserScope.Task, result.Scope); + Assert.Equal(Microsoft.Azure.Batch.Common.ElevationLevel.NonAdmin, result.ElevationLevel); + } + + [Fact] + public void FromMgmtAutoUserSpecification_AlwaysCreatesNewInstance() + { + // Arrange + var mgmtAutoUserSpec = new Microsoft.Azure.Management.Batch.Models.AutoUserSpecification( + scope: AutoUserScope.Pool, + elevationLevel: ElevationLevel.Admin); + + // Act + var result1 = PSAutoUserSpecification.fromMgmtAutoUserSpecification(mgmtAutoUserSpec); + var result2 = PSAutoUserSpecification.fromMgmtAutoUserSpecification(mgmtAutoUserSpec); + + // Assert + Assert.NotNull(result1); + Assert.NotNull(result2); + Assert.NotSame(result1, result2); + } + + [Fact] + public void FromMgmtAutoUserSpecification_VerifyPSAutoUserSpecificationType() + { + // Arrange + var mgmtAutoUserSpec = new Microsoft.Azure.Management.Batch.Models.AutoUserSpecification( + scope: AutoUserScope.Task, + elevationLevel: ElevationLevel.Admin); + + // Act + var result = PSAutoUserSpecification.fromMgmtAutoUserSpecification(mgmtAutoUserSpec); + + // Assert + Assert.NotNull(result); + Assert.IsType(result); + } + + [Fact] + public void FromMgmtAutoUserSpecification_WithDefaultConstructor_HandlesCorrectly() + { + // Arrange + var mgmtAutoUserSpec = new Microsoft.Azure.Management.Batch.Models.AutoUserSpecification(); // Uses default constructor + + // Act + var result = PSAutoUserSpecification.fromMgmtAutoUserSpecification(mgmtAutoUserSpec); + + // Assert + Assert.NotNull(result); + Assert.Null(result.Scope); + Assert.Null(result.ElevationLevel); + } + + #endregion + + #region Round-trip Conversion Tests + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesAllProperties() + { + // Arrange + var originalPsAutoUserSpec = new PSAutoUserSpecification( + scope: Microsoft.Azure.Batch.Common.AutoUserScope.Task, + elevationLevel: Microsoft.Azure.Batch.Common.ElevationLevel.Admin); + + // Act + var mgmtAutoUserSpec = originalPsAutoUserSpec.toMgmtAutoUserSpecification(); + var roundTripPsAutoUserSpec = PSAutoUserSpecification.fromMgmtAutoUserSpecification(mgmtAutoUserSpec); + + // Assert + Assert.NotNull(roundTripPsAutoUserSpec); + Assert.Equal(originalPsAutoUserSpec.Scope, roundTripPsAutoUserSpec.Scope); + Assert.Equal(originalPsAutoUserSpec.ElevationLevel, roundTripPsAutoUserSpec.ElevationLevel); + } + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesNullValues() + { + // Arrange + var originalPsAutoUserSpec = new PSAutoUserSpecification( + scope: null, + elevationLevel: null); + + // Act + var mgmtAutoUserSpec = originalPsAutoUserSpec.toMgmtAutoUserSpecification(); + var roundTripPsAutoUserSpec = PSAutoUserSpecification.fromMgmtAutoUserSpecification(mgmtAutoUserSpec); + + // Assert + Assert.NotNull(roundTripPsAutoUserSpec); + Assert.Null(roundTripPsAutoUserSpec.Scope); + Assert.Null(roundTripPsAutoUserSpec.ElevationLevel); + } + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesPartialNullValues() + { + // Arrange + var originalPsAutoUserSpec = new PSAutoUserSpecification( + scope: Microsoft.Azure.Batch.Common.AutoUserScope.Pool, + elevationLevel: null); + + // Act + var mgmtAutoUserSpec = originalPsAutoUserSpec.toMgmtAutoUserSpecification(); + var roundTripPsAutoUserSpec = PSAutoUserSpecification.fromMgmtAutoUserSpecification(mgmtAutoUserSpec); + + // Assert + Assert.NotNull(roundTripPsAutoUserSpec); + Assert.Equal(originalPsAutoUserSpec.Scope, roundTripPsAutoUserSpec.Scope); + Assert.Null(roundTripPsAutoUserSpec.ElevationLevel); + } + + [Theory] + [InlineData(Microsoft.Azure.Batch.Common.AutoUserScope.Task, Microsoft.Azure.Batch.Common.ElevationLevel.Admin)] + [InlineData(Microsoft.Azure.Batch.Common.AutoUserScope.Task, Microsoft.Azure.Batch.Common.ElevationLevel.NonAdmin)] + [InlineData(Microsoft.Azure.Batch.Common.AutoUserScope.Pool, Microsoft.Azure.Batch.Common.ElevationLevel.Admin)] + [InlineData(Microsoft.Azure.Batch.Common.AutoUserScope.Pool, Microsoft.Azure.Batch.Common.ElevationLevel.NonAdmin)] + public void RoundTripConversion_AllValidCombinations_PreservesOriginalValue( + Microsoft.Azure.Batch.Common.AutoUserScope originalScope, + Microsoft.Azure.Batch.Common.ElevationLevel originalElevationLevel) + { + // Arrange + var originalPsAutoUserSpec = new PSAutoUserSpecification( + scope: originalScope, + elevationLevel: originalElevationLevel); + + // Act + var mgmtAutoUserSpec = originalPsAutoUserSpec.toMgmtAutoUserSpecification(); + var roundTripPsAutoUserSpec = PSAutoUserSpecification.fromMgmtAutoUserSpecification(mgmtAutoUserSpec); + + // Assert + Assert.NotNull(roundTripPsAutoUserSpec); + Assert.Equal(originalScope, roundTripPsAutoUserSpec.Scope); + Assert.Equal(originalElevationLevel, roundTripPsAutoUserSpec.ElevationLevel); + } + + [Fact] + public void RoundTripConversion_FromMgmtAndToMgmt_PreservesValues() + { + // Arrange + var originalMgmtAutoUserSpec = new Microsoft.Azure.Management.Batch.Models.AutoUserSpecification( + scope: AutoUserScope.Pool, + elevationLevel: ElevationLevel.NonAdmin); + + // Act + var psAutoUserSpec = PSAutoUserSpecification.fromMgmtAutoUserSpecification(originalMgmtAutoUserSpec); + var roundTripMgmtAutoUserSpec = psAutoUserSpec.toMgmtAutoUserSpecification(); + + // Assert + Assert.NotNull(roundTripMgmtAutoUserSpec); + Assert.Equal(originalMgmtAutoUserSpec.Scope, roundTripMgmtAutoUserSpec.Scope); + Assert.Equal(originalMgmtAutoUserSpec.ElevationLevel, roundTripMgmtAutoUserSpec.ElevationLevel); + } + + #endregion + + #region Integration Tests + + [Fact] + public void AutoUserSpecificationConversions_BothDirections_MaintainSemanticEquivalence() + { + // This test ensures that the semantic meaning is preserved across conversions + + // Arrange - Test with realistic auto user scenarios + var psAutoUserSpec = new PSAutoUserSpecification( + scope: Microsoft.Azure.Batch.Common.AutoUserScope.Task, + elevationLevel: Microsoft.Azure.Batch.Common.ElevationLevel.Admin); + + // Act + var mgmtAutoUserSpec = psAutoUserSpec.toMgmtAutoUserSpecification(); + var backToPs = PSAutoUserSpecification.fromMgmtAutoUserSpecification(mgmtAutoUserSpec); + + // Assert + Assert.NotNull(mgmtAutoUserSpec); + Assert.Equal(AutoUserScope.Task, mgmtAutoUserSpec.Scope); + Assert.Equal(ElevationLevel.Admin, mgmtAutoUserSpec.ElevationLevel); + + Assert.NotNull(backToPs); + Assert.Equal(Microsoft.Azure.Batch.Common.AutoUserScope.Task, backToPs.Scope); + Assert.Equal(Microsoft.Azure.Batch.Common.ElevationLevel.Admin, backToPs.ElevationLevel); + } + + [Fact] + public void AutoUserSpecificationConversions_NullHandling_WorksCorrectly() + { + // Test null handling in conversions + + // Act + var resultFromNull = PSAutoUserSpecification.fromMgmtAutoUserSpecification(null); + + // Assert + Assert.Null(resultFromNull); + } + + [Fact] + public void AutoUserSpecificationConversions_BatchTaskContext_VerifyCorrectUsage() + { + // This test validates the conversions work correctly in the context of Batch task configuration + // AutoUserSpecification is used to configure auto user settings for tasks + + // Arrange - Test with different auto user scenarios + var scenarios = new[] + { + // Task-scoped admin user for isolated privileged operations + new { + Scope = Microsoft.Azure.Batch.Common.AutoUserScope.Task, + ElevationLevel = Microsoft.Azure.Batch.Common.ElevationLevel.Admin, + Description = "Task-scoped admin user for privileged operations" + }, + // Task-scoped non-admin user for isolated standard operations + new { + Scope = Microsoft.Azure.Batch.Common.AutoUserScope.Task, + ElevationLevel = Microsoft.Azure.Batch.Common.ElevationLevel.NonAdmin, + Description = "Task-scoped non-admin user for standard operations" + }, + // Pool-scoped admin user for shared privileged operations + new { + Scope = Microsoft.Azure.Batch.Common.AutoUserScope.Pool, + ElevationLevel = Microsoft.Azure.Batch.Common.ElevationLevel.Admin, + Description = "Pool-scoped admin user for shared privileged operations" + }, + // Pool-scoped non-admin user for shared standard operations + new { + Scope = Microsoft.Azure.Batch.Common.AutoUserScope.Pool, + ElevationLevel = Microsoft.Azure.Batch.Common.ElevationLevel.NonAdmin, + Description = "Pool-scoped non-admin user for shared standard operations" + } + }; + + foreach (var scenario in scenarios) + { + // Arrange + var psAutoUserSpec = new PSAutoUserSpecification( + scope: scenario.Scope, + elevationLevel: scenario.ElevationLevel); + + // Act + var mgmtAutoUserSpec = psAutoUserSpec.toMgmtAutoUserSpecification(); + + // Assert - Should convert correctly for Batch task configuration + Assert.NotNull(mgmtAutoUserSpec); + + var expectedMgmtScope = scenario.Scope == Microsoft.Azure.Batch.Common.AutoUserScope.Task + ? AutoUserScope.Task + : AutoUserScope.Pool; + var expectedMgmtElevationLevel = scenario.ElevationLevel == Microsoft.Azure.Batch.Common.ElevationLevel.Admin + ? ElevationLevel.Admin + : ElevationLevel.NonAdmin; + + Assert.Equal(expectedMgmtScope, mgmtAutoUserSpec.Scope); + Assert.Equal(expectedMgmtElevationLevel, mgmtAutoUserSpec.ElevationLevel); + + // Verify round-trip conversion maintains auto user semantics + var backToPs = PSAutoUserSpecification.fromMgmtAutoUserSpecification(mgmtAutoUserSpec); + Assert.NotNull(backToPs); + Assert.Equal(scenario.Scope, backToPs.Scope); + Assert.Equal(scenario.ElevationLevel, backToPs.ElevationLevel); + } + } + + [Fact] + public void AutoUserSpecificationConversions_InstanceCreation_VerifyBehavior() + { + // This test verifies that the conversion methods create appropriate instances + + // Arrange + var psAutoUserSpec = new PSAutoUserSpecification( + scope: Microsoft.Azure.Batch.Common.AutoUserScope.Task, + elevationLevel: Microsoft.Azure.Batch.Common.ElevationLevel.Admin); + + var mgmtAutoUserSpec = new Microsoft.Azure.Management.Batch.Models.AutoUserSpecification( + scope: AutoUserScope.Pool, + elevationLevel: ElevationLevel.NonAdmin); + + // Act + var mgmtResult = psAutoUserSpec.toMgmtAutoUserSpecification(); + var psResult = PSAutoUserSpecification.fromMgmtAutoUserSpecification(mgmtAutoUserSpec); + + // Assert - Verify proper instance creation + Assert.NotNull(mgmtResult); + Assert.NotNull(psResult); + Assert.IsType(mgmtResult); + Assert.IsType(psResult); + + // Verify new instances are created + Assert.NotSame(mgmtAutoUserSpec, mgmtResult); + Assert.NotSame(psAutoUserSpec, psResult); + } + + #endregion + + #region Performance and Edge Case Tests + + [Fact] + public void AutoUserSpecificationConversions_PerformanceTest_ExecutesQuickly() + { + // This test ensures the conversions are efficient + + // Arrange + var psAutoUserSpec = new PSAutoUserSpecification( + scope: Microsoft.Azure.Batch.Common.AutoUserScope.Task, + elevationLevel: Microsoft.Azure.Batch.Common.ElevationLevel.Admin); + + var mgmtAutoUserSpec = new Microsoft.Azure.Management.Batch.Models.AutoUserSpecification( + scope: AutoUserScope.Pool, + elevationLevel: ElevationLevel.NonAdmin); + + // Act & Assert - Multiple conversions should complete without delay + for (int i = 0; i < 100; i++) + { + var mgmtResult = psAutoUserSpec.toMgmtAutoUserSpecification(); + var psResult = PSAutoUserSpecification.fromMgmtAutoUserSpecification(mgmtAutoUserSpec); + + Assert.NotNull(mgmtResult); + Assert.NotNull(psResult); + Assert.Equal(AutoUserScope.Task, mgmtResult.Scope); + Assert.Equal(Microsoft.Azure.Batch.Common.AutoUserScope.Pool, psResult.Scope); + } + } + + [Fact] + public void AutoUserSpecificationConversions_DefaultValues_HandleCorrectly() + { + // Test conversion with default/null values + + // Arrange + var psAutoUserSpecWithDefaults = new PSAutoUserSpecification(); // Default constructor + var mgmtAutoUserSpecWithDefaults = new Microsoft.Azure.Management.Batch.Models.AutoUserSpecification(); // Default constructor + + // Act + var mgmtResult = psAutoUserSpecWithDefaults.toMgmtAutoUserSpecification(); + var psResult = PSAutoUserSpecification.fromMgmtAutoUserSpecification(mgmtAutoUserSpecWithDefaults); + + // Assert + Assert.NotNull(mgmtResult); + Assert.NotNull(psResult); + Assert.Null(mgmtResult.Scope); + Assert.Null(mgmtResult.ElevationLevel); + Assert.Null(psResult.Scope); + Assert.Null(psResult.ElevationLevel); + } + + [Fact] + public void AutoUserSpecificationConversions_TaskIsolationScenarios_VerifyCorrectUsage() + { + // This test validates conversion behavior for task isolation scenarios + + // Scenario 1: Maximum isolation (Task scope, Admin privileges) + var maxIsolationPs = new PSAutoUserSpecification( + scope: Microsoft.Azure.Batch.Common.AutoUserScope.Task, + elevationLevel: Microsoft.Azure.Batch.Common.ElevationLevel.Admin); + + var maxIsolationMgmt = maxIsolationPs.toMgmtAutoUserSpecification(); + Assert.Equal(AutoUserScope.Task, maxIsolationMgmt.Scope); + Assert.Equal(ElevationLevel.Admin, maxIsolationMgmt.ElevationLevel); + + // Scenario 2: Standard isolation (Task scope, NonAdmin privileges) + var standardIsolationPs = new PSAutoUserSpecification( + scope: Microsoft.Azure.Batch.Common.AutoUserScope.Task, + elevationLevel: Microsoft.Azure.Batch.Common.ElevationLevel.NonAdmin); + + var standardIsolationMgmt = standardIsolationPs.toMgmtAutoUserSpecification(); + Assert.Equal(AutoUserScope.Task, standardIsolationMgmt.Scope); + Assert.Equal(ElevationLevel.NonAdmin, standardIsolationMgmt.ElevationLevel); + + // Scenario 3: Shared operations (Pool scope, Admin privileges) + var sharedAdminPs = new PSAutoUserSpecification( + scope: Microsoft.Azure.Batch.Common.AutoUserScope.Pool, + elevationLevel: Microsoft.Azure.Batch.Common.ElevationLevel.Admin); + + var sharedAdminMgmt = sharedAdminPs.toMgmtAutoUserSpecification(); + Assert.Equal(AutoUserScope.Pool, sharedAdminMgmt.Scope); + Assert.Equal(ElevationLevel.Admin, sharedAdminMgmt.ElevationLevel); + + // Scenario 4: Default shared operations (Pool scope, NonAdmin privileges) + var defaultSharedPs = new PSAutoUserSpecification( + scope: Microsoft.Azure.Batch.Common.AutoUserScope.Pool, + elevationLevel: Microsoft.Azure.Batch.Common.ElevationLevel.NonAdmin); + + var defaultSharedMgmt = defaultSharedPs.toMgmtAutoUserSpecification(); + Assert.Equal(AutoUserScope.Pool, defaultSharedMgmt.Scope); + Assert.Equal(ElevationLevel.NonAdmin, defaultSharedMgmt.ElevationLevel); + + // Verify all round-trip correctly + var maxIsolationRoundTrip = PSAutoUserSpecification.fromMgmtAutoUserSpecification(maxIsolationMgmt); + var standardIsolationRoundTrip = PSAutoUserSpecification.fromMgmtAutoUserSpecification(standardIsolationMgmt); + var sharedAdminRoundTrip = PSAutoUserSpecification.fromMgmtAutoUserSpecification(sharedAdminMgmt); + var defaultSharedRoundTrip = PSAutoUserSpecification.fromMgmtAutoUserSpecification(defaultSharedMgmt); + + Assert.Equal(maxIsolationPs.Scope, maxIsolationRoundTrip.Scope); + Assert.Equal(maxIsolationPs.ElevationLevel, maxIsolationRoundTrip.ElevationLevel); + Assert.Equal(standardIsolationPs.Scope, standardIsolationRoundTrip.Scope); + Assert.Equal(standardIsolationPs.ElevationLevel, standardIsolationRoundTrip.ElevationLevel); + Assert.Equal(sharedAdminPs.Scope, sharedAdminRoundTrip.Scope); + Assert.Equal(sharedAdminPs.ElevationLevel, sharedAdminRoundTrip.ElevationLevel); + Assert.Equal(defaultSharedPs.Scope, defaultSharedRoundTrip.Scope); + Assert.Equal(defaultSharedPs.ElevationLevel, defaultSharedRoundTrip.ElevationLevel); + } + + #endregion + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Test/Models/PSAutomaticOSUpgradePolicyTests.cs b/src/Batch/Batch.Test/Models/PSAutomaticOSUpgradePolicyTests.cs new file mode 100644 index 000000000000..798cdaa82f24 --- /dev/null +++ b/src/Batch/Batch.Test/Models/PSAutomaticOSUpgradePolicyTests.cs @@ -0,0 +1,301 @@ +// ----------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ----------------------------------------------------------------------------- + +using Microsoft.Azure.Commands.Batch.Models; +using Microsoft.Azure.Management.Batch.Models; +using Xunit; + +namespace Microsoft.Azure.Commands.Batch.Test.ModelsConversions +{ + public class PSAutomaticOSUpgradePolicyTests + { + #region toMgmtAutomaticOSUpgradePolicy Tests + + [Fact] + public void ToMgmtAutomaticOSUpgradePolicy_WithValidObject_ReturnsCorrectMapping() + { + // Arrange + var psPolicy = new PSAutomaticOSUpgradePolicy + { + EnableAutomaticOSUpgrade = true, + DisableAutomaticRollback = false, + OsRollingUpgradeDeferral = true, + UseRollingUpgradePolicy = false + }; + + // Act + var result = psPolicy.toMgmtAutomaticOSUpgradePolicy(); + + // Assert + Assert.NotNull(result); + Assert.Equal(true, result.EnableAutomaticOSUpgrade); + Assert.Equal(false, result.DisableAutomaticRollback); + Assert.Equal(true, result.OSRollingUpgradeDeferral); + Assert.Equal(false, result.UseRollingUpgradePolicy); + } + + [Fact] + public void ToMgmtAutomaticOSUpgradePolicy_WithNullValues_ReturnsObjectWithNullValues() + { + // Arrange + var psPolicy = new PSAutomaticOSUpgradePolicy + { + EnableAutomaticOSUpgrade = null, + DisableAutomaticRollback = null, + OsRollingUpgradeDeferral = null, + UseRollingUpgradePolicy = null + }; + + // Act + var result = psPolicy.toMgmtAutomaticOSUpgradePolicy(); + + // Assert + Assert.NotNull(result); + Assert.Null(result.EnableAutomaticOSUpgrade); + Assert.Null(result.DisableAutomaticRollback); + Assert.Null(result.OSRollingUpgradeDeferral); + Assert.Null(result.UseRollingUpgradePolicy); + } + + [Fact] + public void ToMgmtAutomaticOSUpgradePolicy_WithNullOmObject_ReturnsNull() + { + // Arrange + var psPolicy = new PSAutomaticOSUpgradePolicy(); + psPolicy.GetType().GetField("omObject", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance) + ?.SetValue(psPolicy, null); + + // Act + var result = psPolicy.toMgmtAutomaticOSUpgradePolicy(); + + // Assert + Assert.Null(result); + } + + [Theory] + [InlineData(true, false, true, false)] + [InlineData(false, true, false, true)] + [InlineData(true, true, true, true)] + [InlineData(false, false, false, false)] + public void ToMgmtAutomaticOSUpgradePolicy_VariousValueCombinations_ReturnsCorrectMapping( + bool enableAutoUpgrade, bool disableRollback, bool osRollingDeferral, bool useRollingPolicy) + { + // Arrange + var psPolicy = new PSAutomaticOSUpgradePolicy + { + EnableAutomaticOSUpgrade = enableAutoUpgrade, + DisableAutomaticRollback = disableRollback, + OsRollingUpgradeDeferral = osRollingDeferral, + UseRollingUpgradePolicy = useRollingPolicy + }; + + // Act + var result = psPolicy.toMgmtAutomaticOSUpgradePolicy(); + + // Assert + Assert.NotNull(result); + Assert.Equal(enableAutoUpgrade, result.EnableAutomaticOSUpgrade); + Assert.Equal(disableRollback, result.DisableAutomaticRollback); + Assert.Equal(osRollingDeferral, result.OSRollingUpgradeDeferral); + Assert.Equal(useRollingPolicy, result.UseRollingUpgradePolicy); + } + + #endregion + + #region FromMgmtAutomaticOSUpgradePolicy Tests + + [Fact] + public void FromMgmtAutomaticOSUpgradePolicy_WithValidMgmtPolicy_ReturnsCorrectMapping() + { + // Arrange + var psPolicy = new PSAutomaticOSUpgradePolicy(); + var mgmtPolicy = new AutomaticOSUpgradePolicy + { + EnableAutomaticOSUpgrade = true, + DisableAutomaticRollback = false, + OSRollingUpgradeDeferral = true, + UseRollingUpgradePolicy = false + }; + + // Act + var result = psPolicy.ToPSAutomaticOSUpgradePolicy(mgmtPolicy); + + // Assert + Assert.NotNull(result); + Assert.Equal(true, result.EnableAutomaticOSUpgrade); + Assert.Equal(false, result.DisableAutomaticRollback); + Assert.Equal(true, result.OsRollingUpgradeDeferral); + Assert.Equal(false, result.UseRollingUpgradePolicy); + } + + [Fact] + public void FromMgmtAutomaticOSUpgradePolicy_WithNullMgmtPolicyValues_ReturnsObjectWithNullValues() + { + // Arrange + var psPolicy = new PSAutomaticOSUpgradePolicy(); + var mgmtPolicy = new AutomaticOSUpgradePolicy + { + EnableAutomaticOSUpgrade = null, + DisableAutomaticRollback = null, + OSRollingUpgradeDeferral = null, + UseRollingUpgradePolicy = null + }; + + // Act + var result = psPolicy.ToPSAutomaticOSUpgradePolicy(mgmtPolicy); + + // Assert + Assert.NotNull(result); + Assert.Null(result.EnableAutomaticOSUpgrade); + Assert.Null(result.DisableAutomaticRollback); + Assert.Null(result.OsRollingUpgradeDeferral); + Assert.Null(result.UseRollingUpgradePolicy); + } + + [Fact] + public void FromMgmtAutomaticOSUpgradePolicy_WithNullOmObject_ReturnsNull() + { + // Arrange + var psPolicy = new PSAutomaticOSUpgradePolicy(); + + // Act + var result = psPolicy.ToPSAutomaticOSUpgradePolicy(null); + + // Assert + Assert.Null(result); + } + + [Theory] + [InlineData(true, false, true, false)] + [InlineData(false, true, false, true)] + [InlineData(true, true, true, true)] + [InlineData(false, false, false, false)] + public void FromMgmtAutomaticOSUpgradePolicy_VariousValueCombinations_ReturnsCorrectMapping( + bool enableAutoUpgrade, bool disableRollback, bool osRollingDeferral, bool useRollingPolicy) + { + // Arrange + var psPolicy = new PSAutomaticOSUpgradePolicy(); + var mgmtPolicy = new AutomaticOSUpgradePolicy + { + EnableAutomaticOSUpgrade = enableAutoUpgrade, + DisableAutomaticRollback = disableRollback, + OSRollingUpgradeDeferral = osRollingDeferral, + UseRollingUpgradePolicy = useRollingPolicy + }; + + // Act + var result = psPolicy.ToPSAutomaticOSUpgradePolicy(mgmtPolicy); + + // Assert + Assert.NotNull(result); + Assert.Equal(enableAutoUpgrade, result.EnableAutomaticOSUpgrade); + Assert.Equal(disableRollback, result.DisableAutomaticRollback); + Assert.Equal(osRollingDeferral, result.OsRollingUpgradeDeferral); + Assert.Equal(useRollingPolicy, result.UseRollingUpgradePolicy); + } + + [Fact] + public void FromMgmtAutomaticOSUpgradePolicy_CreatesNewInstance_NotSameReference() + { + // Arrange + var psPolicy = new PSAutomaticOSUpgradePolicy(); + var mgmtPolicy = new AutomaticOSUpgradePolicy + { + EnableAutomaticOSUpgrade = true, + DisableAutomaticRollback = false, + OSRollingUpgradeDeferral = true, + UseRollingUpgradePolicy = false + }; + + // Act + var result = psPolicy.ToPSAutomaticOSUpgradePolicy(mgmtPolicy); + + // Assert + Assert.NotNull(result); + Assert.NotSame(psPolicy, result); + } + + [Fact] + public void FromMgmtAutomaticOSUpgradePolicy_PropertyNameMapping_CorrectlyMapsOSRollingUpgradeDeferral() + { + // Arrange + var psPolicy = new PSAutomaticOSUpgradePolicy(); + var mgmtPolicy = new AutomaticOSUpgradePolicy + { + OSRollingUpgradeDeferral = true // Management model uses "OS" prefix + }; + + // Act + var result = psPolicy.ToPSAutomaticOSUpgradePolicy(mgmtPolicy); + + // Assert + Assert.NotNull(result); + Assert.Equal(true, result.OsRollingUpgradeDeferral); // PS model uses "Os" prefix + } + + #endregion + + #region Integration Tests + + [Fact] + public void RoundTripConversion_ToMgmtAndBack_PreservesValues() + { + // Arrange + var originalPsPolicy = new PSAutomaticOSUpgradePolicy + { + EnableAutomaticOSUpgrade = true, + DisableAutomaticRollback = false, + OsRollingUpgradeDeferral = true, + UseRollingUpgradePolicy = false + }; + + // Act + var mgmtPolicy = originalPsPolicy.toMgmtAutomaticOSUpgradePolicy(); + var roundTripPsPolicy = new PSAutomaticOSUpgradePolicy().ToPSAutomaticOSUpgradePolicy(mgmtPolicy); + + // Assert + Assert.NotNull(roundTripPsPolicy); + Assert.Equal(originalPsPolicy.EnableAutomaticOSUpgrade, roundTripPsPolicy.EnableAutomaticOSUpgrade); + Assert.Equal(originalPsPolicy.DisableAutomaticRollback, roundTripPsPolicy.DisableAutomaticRollback); + Assert.Equal(originalPsPolicy.OsRollingUpgradeDeferral, roundTripPsPolicy.OsRollingUpgradeDeferral); + Assert.Equal(originalPsPolicy.UseRollingUpgradePolicy, roundTripPsPolicy.UseRollingUpgradePolicy); + } + + [Fact] + public void RoundTripConversion_WithNullValues_PreservesNulls() + { + // Arrange + var originalPsPolicy = new PSAutomaticOSUpgradePolicy + { + EnableAutomaticOSUpgrade = null, + DisableAutomaticRollback = null, + OsRollingUpgradeDeferral = null, + UseRollingUpgradePolicy = null + }; + + // Act + var mgmtPolicy = originalPsPolicy.toMgmtAutomaticOSUpgradePolicy(); + var roundTripPsPolicy = new PSAutomaticOSUpgradePolicy().ToPSAutomaticOSUpgradePolicy(mgmtPolicy); + + // Assert + Assert.NotNull(roundTripPsPolicy); + Assert.Null(roundTripPsPolicy.EnableAutomaticOSUpgrade); + Assert.Null(roundTripPsPolicy.DisableAutomaticRollback); + Assert.Null(roundTripPsPolicy.OsRollingUpgradeDeferral); + Assert.Null(roundTripPsPolicy.UseRollingUpgradePolicy); + } + + #endregion + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Test/Models/PSComputeNodeIdentityReferenceTests.cs b/src/Batch/Batch.Test/Models/PSComputeNodeIdentityReferenceTests.cs new file mode 100644 index 000000000000..531f823d8f80 --- /dev/null +++ b/src/Batch/Batch.Test/Models/PSComputeNodeIdentityReferenceTests.cs @@ -0,0 +1,580 @@ +// ----------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ----------------------------------------------------------------------------- + +using Microsoft.Azure.Commands.Batch.Models; +using Microsoft.Azure.Management.Batch.Models; +using Xunit; + +namespace Microsoft.Azure.Commands.Batch.Test.ModelsConversions +{ + public class PSComputeNodeIdentityReferenceTests + { + #region toMgmtIdentityReference Tests + + [Fact] + public void ToMgmtIdentityReference_WithValidResourceId_ReturnsCorrectMapping() + { + // Arrange + var resourceId = "/subscriptions/12345678-1234-1234-1234-123456789abc/resourceGroups/test-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/test-identity"; + var psIdentityRef = new PSComputeNodeIdentityReference + { + ResourceId = resourceId + }; + + // Act + var result = psIdentityRef.toMgmtIdentityReference(); + + // Assert + Assert.NotNull(result); + Assert.Equal(resourceId, result.ResourceId); + } + + [Fact] + public void ToMgmtIdentityReference_WithNullResourceId_ReturnsObjectWithNullResourceId() + { + // Arrange + var psIdentityRef = new PSComputeNodeIdentityReference + { + ResourceId = null + }; + + // Act + var result = psIdentityRef.toMgmtIdentityReference(); + + // Assert + Assert.NotNull(result); + Assert.Null(result.ResourceId); + } + + [Fact] + public void ToMgmtIdentityReference_WithEmptyResourceId_ReturnsObjectWithEmptyResourceId() + { + // Arrange + var psIdentityRef = new PSComputeNodeIdentityReference + { + ResourceId = string.Empty + }; + + // Act + var result = psIdentityRef.toMgmtIdentityReference(); + + // Assert + Assert.NotNull(result); + Assert.Equal(string.Empty, result.ResourceId); + } + + [Fact] + public void ToMgmtIdentityReference_WithNullOmObject_ReturnsNull() + { + // Arrange + var psIdentityRef = new PSComputeNodeIdentityReference(); + // Set omObject to null using reflection to simulate the condition + psIdentityRef.GetType().GetField("omObject", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance) + ?.SetValue(psIdentityRef, null); + + // Act + var result = psIdentityRef.toMgmtIdentityReference(); + + // Assert + Assert.Null(result); + } + + [Theory] + [InlineData("/subscriptions/12345678-1234-1234-1234-123456789abc/resourceGroups/rg1/providers/Microsoft.ManagedIdentity/userAssignedIdentities/identity1")] + [InlineData("/subscriptions/87654321-4321-4321-4321-cba987654321/resourceGroups/test-group/providers/Microsoft.ManagedIdentity/userAssignedIdentities/my-identity")] + [InlineData("/subscriptions/11111111-2222-3333-4444-555555555555/resourceGroups/prod-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/prod-identity")] + public void ToMgmtIdentityReference_VariousResourceIds_ReturnsCorrectMapping(string resourceId) + { + // Arrange + var psIdentityRef = new PSComputeNodeIdentityReference + { + ResourceId = resourceId + }; + + // Act + var result = psIdentityRef.toMgmtIdentityReference(); + + // Assert + Assert.NotNull(result); + Assert.Equal(resourceId, result.ResourceId); + } + + [Fact] + public void ToMgmtIdentityReference_AlwaysCreatesNewInstance() + { + // Arrange + var psIdentityRef = new PSComputeNodeIdentityReference + { + ResourceId = "/subscriptions/test/resourceGroups/test/providers/Microsoft.ManagedIdentity/userAssignedIdentities/test" + }; + + // Act + var result1 = psIdentityRef.toMgmtIdentityReference(); + var result2 = psIdentityRef.toMgmtIdentityReference(); + + // Assert + Assert.NotNull(result1); + Assert.NotNull(result2); + Assert.NotSame(result1, result2); + } + + [Fact] + public void ToMgmtIdentityReference_VerifyComputeNodeIdentityReferenceType() + { + // Arrange + var psIdentityRef = new PSComputeNodeIdentityReference + { + ResourceId = "/subscriptions/test/resourceGroups/test/providers/Microsoft.ManagedIdentity/userAssignedIdentities/test" + }; + + // Act + var result = psIdentityRef.toMgmtIdentityReference(); + + // Assert + Assert.NotNull(result); + Assert.IsType(result); + } + + [Fact] + public void ToMgmtIdentityReference_WithWhitespaceResourceId_PreservesValue() + { + // Arrange + var resourceId = " /subscriptions/test/resourceGroups/test/providers/Microsoft.ManagedIdentity/userAssignedIdentities/test "; + var psIdentityRef = new PSComputeNodeIdentityReference + { + ResourceId = resourceId + }; + + // Act + var result = psIdentityRef.toMgmtIdentityReference(); + + // Assert + Assert.NotNull(result); + Assert.Equal(resourceId, result.ResourceId); + } + + #endregion + + #region fromMgmtIdentityReference Tests + + [Fact] + public void FromMgmtIdentityReference_WithValidResourceId_ReturnsCorrectMapping() + { + // Arrange + var resourceId = "/subscriptions/12345678-1234-1234-1234-123456789abc/resourceGroups/test-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/test-identity"; + var mgmtIdentityRef = new ComputeNodeIdentityReference(resourceId); + + // Act + var result = PSComputeNodeIdentityReference.fromMgmtIdentityReference(mgmtIdentityRef); + + // Assert + Assert.NotNull(result); + Assert.Equal(resourceId, result.ResourceId); + } + + [Fact] + public void FromMgmtIdentityReference_WithNullResourceId_ReturnsObjectWithNullResourceId() + { + // Arrange + var mgmtIdentityRef = new ComputeNodeIdentityReference + { + ResourceId = null + }; + + // Act + var result = PSComputeNodeIdentityReference.fromMgmtIdentityReference(mgmtIdentityRef); + + // Assert + Assert.NotNull(result); + Assert.Null(result.ResourceId); + } + + [Fact] + public void FromMgmtIdentityReference_WithEmptyResourceId_ReturnsObjectWithEmptyResourceId() + { + // Arrange + var mgmtIdentityRef = new ComputeNodeIdentityReference + { + ResourceId = string.Empty + }; + + // Act + var result = PSComputeNodeIdentityReference.fromMgmtIdentityReference(mgmtIdentityRef); + + // Assert + Assert.NotNull(result); + Assert.Equal(string.Empty, result.ResourceId); + } + + [Fact] + public void FromMgmtIdentityReference_WithNullMgmtIdentityReference_ReturnsNull() + { + // Act + var result = PSComputeNodeIdentityReference.fromMgmtIdentityReference(null); + + // Assert + Assert.Null(result); + } + + [Theory] + [InlineData("/subscriptions/12345678-1234-1234-1234-123456789abc/resourceGroups/rg1/providers/Microsoft.ManagedIdentity/userAssignedIdentities/identity1")] + [InlineData("/subscriptions/87654321-4321-4321-4321-cba987654321/resourceGroups/test-group/providers/Microsoft.ManagedIdentity/userAssignedIdentities/my-identity")] + [InlineData("/subscriptions/11111111-2222-3333-4444-555555555555/resourceGroups/prod-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/prod-identity")] + public void FromMgmtIdentityReference_VariousResourceIds_ReturnsCorrectMapping(string resourceId) + { + // Arrange + var mgmtIdentityRef = new ComputeNodeIdentityReference(resourceId); + + // Act + var result = PSComputeNodeIdentityReference.fromMgmtIdentityReference(mgmtIdentityRef); + + // Assert + Assert.NotNull(result); + Assert.Equal(resourceId, result.ResourceId); + } + + [Fact] + public void FromMgmtIdentityReference_StaticMethod_DoesNotRequireInstance() + { + // Arrange + var mgmtIdentityRef = new ComputeNodeIdentityReference("/subscriptions/test/resourceGroups/test/providers/Microsoft.ManagedIdentity/userAssignedIdentities/test"); + + // Act - Call static method directly on class + var result = PSComputeNodeIdentityReference.fromMgmtIdentityReference(mgmtIdentityRef); + + // Assert + Assert.NotNull(result); + Assert.Equal("/subscriptions/test/resourceGroups/test/providers/Microsoft.ManagedIdentity/userAssignedIdentities/test", result.ResourceId); + } + + [Fact] + public void FromMgmtIdentityReference_AlwaysCreatesNewInstance() + { + // Arrange + var mgmtIdentityRef = new ComputeNodeIdentityReference("/subscriptions/test/resourceGroups/test/providers/Microsoft.ManagedIdentity/userAssignedIdentities/test"); + + // Act + var result1 = PSComputeNodeIdentityReference.fromMgmtIdentityReference(mgmtIdentityRef); + var result2 = PSComputeNodeIdentityReference.fromMgmtIdentityReference(mgmtIdentityRef); + + // Assert + Assert.NotNull(result1); + Assert.NotNull(result2); + Assert.NotSame(result1, result2); + } + + [Fact] + public void FromMgmtIdentityReference_VerifyPSComputeNodeIdentityReferenceType() + { + // Arrange + var mgmtIdentityRef = new ComputeNodeIdentityReference("/subscriptions/test/resourceGroups/test/providers/Microsoft.ManagedIdentity/userAssignedIdentities/test"); + + // Act + var result = PSComputeNodeIdentityReference.fromMgmtIdentityReference(mgmtIdentityRef); + + // Assert + Assert.NotNull(result); + Assert.IsType(result); + } + + [Fact] + public void FromMgmtIdentityReference_WithDefaultConstructor_HandlesCorrectly() + { + // Arrange + var mgmtIdentityRef = new ComputeNodeIdentityReference(); // Uses default constructor + + // Act + var result = PSComputeNodeIdentityReference.fromMgmtIdentityReference(mgmtIdentityRef); + + // Assert + Assert.NotNull(result); + Assert.Null(result.ResourceId); // Default value should be null + } + + [Fact] + public void FromMgmtIdentityReference_WithWhitespaceResourceId_PreservesValue() + { + // Arrange + var resourceId = " /subscriptions/test/resourceGroups/test/providers/Microsoft.ManagedIdentity/userAssignedIdentities/test "; + var mgmtIdentityRef = new ComputeNodeIdentityReference(resourceId); + + // Act + var result = PSComputeNodeIdentityReference.fromMgmtIdentityReference(mgmtIdentityRef); + + // Assert + Assert.NotNull(result); + Assert.Equal(resourceId, result.ResourceId); + } + + #endregion + + #region Round-trip Conversion Tests + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesValidResourceId() + { + // Arrange + var originalResourceId = "/subscriptions/12345678-1234-1234-1234-123456789abc/resourceGroups/test-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/test-identity"; + var originalPsIdentityRef = new PSComputeNodeIdentityReference + { + ResourceId = originalResourceId + }; + + // Act + var mgmtIdentityRef = originalPsIdentityRef.toMgmtIdentityReference(); + var roundTripPsIdentityRef = PSComputeNodeIdentityReference.fromMgmtIdentityReference(mgmtIdentityRef); + + // Assert + Assert.NotNull(roundTripPsIdentityRef); + Assert.Equal(originalResourceId, roundTripPsIdentityRef.ResourceId); + } + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesNullResourceId() + { + // Arrange + var originalPsIdentityRef = new PSComputeNodeIdentityReference + { + ResourceId = null + }; + + // Act + var mgmtIdentityRef = originalPsIdentityRef.toMgmtIdentityReference(); + var roundTripPsIdentityRef = PSComputeNodeIdentityReference.fromMgmtIdentityReference(mgmtIdentityRef); + + // Assert + Assert.NotNull(roundTripPsIdentityRef); + Assert.Null(roundTripPsIdentityRef.ResourceId); + } + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesEmptyResourceId() + { + // Arrange + var originalPsIdentityRef = new PSComputeNodeIdentityReference + { + ResourceId = string.Empty + }; + + // Act + var mgmtIdentityRef = originalPsIdentityRef.toMgmtIdentityReference(); + var roundTripPsIdentityRef = PSComputeNodeIdentityReference.fromMgmtIdentityReference(mgmtIdentityRef); + + // Assert + Assert.NotNull(roundTripPsIdentityRef); + Assert.Equal(string.Empty, roundTripPsIdentityRef.ResourceId); + } + + [Theory] + [InlineData("/subscriptions/12345678-1234-1234-1234-123456789abc/resourceGroups/rg1/providers/Microsoft.ManagedIdentity/userAssignedIdentities/identity1")] + [InlineData("/subscriptions/87654321-4321-4321-4321-cba987654321/resourceGroups/test-group/providers/Microsoft.ManagedIdentity/userAssignedIdentities/my-identity")] + [InlineData("")] + [InlineData(null)] + public void RoundTripConversion_AllValidValues_PreservesOriginalValue(string originalResourceId) + { + // Arrange + var originalPsIdentityRef = new PSComputeNodeIdentityReference + { + ResourceId = originalResourceId + }; + + // Act + var mgmtIdentityRef = originalPsIdentityRef.toMgmtIdentityReference(); + if (mgmtIdentityRef != null) + { + var roundTripPsIdentityRef = PSComputeNodeIdentityReference.fromMgmtIdentityReference(mgmtIdentityRef); + + // Assert + Assert.NotNull(roundTripPsIdentityRef); + Assert.Equal(originalResourceId, roundTripPsIdentityRef.ResourceId); + } + } + + [Fact] + public void RoundTripConversion_FromMgmtAndToMgmt_PreservesValues() + { + // Arrange + var originalResourceId = "/subscriptions/12345678-1234-1234-1234-123456789abc/resourceGroups/test-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/test-identity"; + var originalMgmtIdentityRef = new ComputeNodeIdentityReference(originalResourceId); + + // Act + var psIdentityRef = new PSComputeNodeIdentityReference(PSComputeNodeIdentityReference.fromMgmtIdentityReference(originalMgmtIdentityRef)); + var roundTripMgmtIdentityRef = psIdentityRef.toMgmtIdentityReference(); + + // Assert + Assert.NotNull(roundTripMgmtIdentityRef); + Assert.Equal(originalResourceId, roundTripMgmtIdentityRef.ResourceId); + } + + #endregion + + #region Integration Tests + + [Fact] + public void IdentityReferenceConversions_BothDirections_MaintainSemanticEquivalence() + { + // This test ensures that the semantic meaning is preserved across conversions + + // Arrange - Test with a typical managed identity resource ID + var resourceId = "/subscriptions/12345678-1234-1234-1234-123456789abc/resourceGroups/batch-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/batch-identity"; + var psIdentityRef = new PSComputeNodeIdentityReference { ResourceId = resourceId }; + + // Act + var mgmtIdentityRef = psIdentityRef.toMgmtIdentityReference(); + var backToPs = PSComputeNodeIdentityReference.fromMgmtIdentityReference(mgmtIdentityRef); + + // Assert + Assert.NotNull(mgmtIdentityRef); + Assert.Equal(resourceId, mgmtIdentityRef.ResourceId); + Assert.NotNull(backToPs); + Assert.Equal(resourceId, backToPs.ResourceId); + } + + [Fact] + public void IdentityReferenceConversions_NullHandling_WorksCorrectly() + { + // Test null handling in conversions + + // Arrange + PSComputeNodeIdentityReference psIdentityRefWithNullOmObject = new PSComputeNodeIdentityReference(); + psIdentityRefWithNullOmObject.GetType().GetField("omObject", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance) + ?.SetValue(psIdentityRefWithNullOmObject, null); + + // Act + var resultFromNullOmObject = psIdentityRefWithNullOmObject.toMgmtIdentityReference(); + var resultFromNullMgmt = PSComputeNodeIdentityReference.fromMgmtIdentityReference(null); + + // Assert + Assert.Null(resultFromNullOmObject); + Assert.Null(resultFromNullMgmt); + } + + [Fact] + public void IdentityReferenceConversions_BatchIdentityContext_VerifyCorrectUsage() + { + // This test validates the conversions work correctly in the context of Batch compute node identity + // ComputeNodeIdentityReference is used to assign user-assigned managed identities to Batch pool compute nodes + + // Arrange - Test with realistic Batch scenarios + var subscriptionId = "12345678-1234-1234-1234-123456789abc"; + var resourceGroupName = "batch-pool-rg"; + var identityName = "batch-compute-node-identity"; + var resourceId = $"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}"; + + var psIdentityRef = new PSComputeNodeIdentityReference { ResourceId = resourceId }; + + // Act + var mgmtIdentityRef = psIdentityRef.toMgmtIdentityReference(); + + // Assert - Should convert correctly for Batch pool configuration + Assert.NotNull(mgmtIdentityRef); + Assert.Equal(resourceId, mgmtIdentityRef.ResourceId); + Assert.IsType(mgmtIdentityRef); + + // Verify round-trip conversion maintains Batch identity semantics + var backToPs = PSComputeNodeIdentityReference.fromMgmtIdentityReference(mgmtIdentityRef); + Assert.NotNull(backToPs); + Assert.Equal(resourceId, backToPs.ResourceId); + Assert.IsType(backToPs); + } + + [Fact] + public void IdentityReferenceConversions_InstanceCreation_VerifyBehavior() + { + // This test verifies that the conversion methods create appropriate instances + + // Arrange + var resourceId = "/subscriptions/test/resourceGroups/test/providers/Microsoft.ManagedIdentity/userAssignedIdentities/test"; + var psIdentityRef = new PSComputeNodeIdentityReference { ResourceId = resourceId }; + var mgmtIdentityRef = new ComputeNodeIdentityReference(resourceId); + + // Act + var mgmtResult = psIdentityRef.toMgmtIdentityReference(); + var psResult = PSComputeNodeIdentityReference.fromMgmtIdentityReference(mgmtIdentityRef); + + // Assert - Verify proper instance creation + Assert.NotNull(mgmtResult); + Assert.NotNull(psResult); + Assert.IsType(mgmtResult); + Assert.IsType(psResult); + + // Verify new instances are created + Assert.NotSame(mgmtIdentityRef, mgmtResult); + Assert.NotSame(psIdentityRef, psResult); + } + + #endregion + + #region Performance and Edge Case Tests + + [Fact] + public void IdentityReferenceConversions_PerformanceTest_ExecutesQuickly() + { + // This test ensures the conversions are efficient + + // Arrange + var resourceId = "/subscriptions/12345678-1234-1234-1234-123456789abc/resourceGroups/test/providers/Microsoft.ManagedIdentity/userAssignedIdentities/test"; + var psIdentityRef = new PSComputeNodeIdentityReference { ResourceId = resourceId }; + var mgmtIdentityRef = new ComputeNodeIdentityReference(resourceId); + + // Act & Assert - Multiple conversions should complete without delay + for (int i = 0; i < 100; i++) + { + var mgmtResult = psIdentityRef.toMgmtIdentityReference(); + var psResult = PSComputeNodeIdentityReference.fromMgmtIdentityReference(mgmtIdentityRef); + + Assert.NotNull(mgmtResult); + Assert.NotNull(psResult); + Assert.Equal(resourceId, mgmtResult.ResourceId); + Assert.Equal(resourceId, psResult.ResourceId); + } + } + + [Fact] + public void IdentityReferenceConversions_EdgeCaseResourceIds_HandleCorrectly() + { + // Test conversion with various edge case resource ID formats + + var testResourceIds = new[] + { + // Standard format + "/subscriptions/12345678-1234-1234-1234-123456789abc/resourceGroups/rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/identity", + // With special characters in names + "/subscriptions/12345678-1234-1234-1234-123456789abc/resourceGroups/test-rg_123/providers/Microsoft.ManagedIdentity/userAssignedIdentities/test-identity_v2", + // Long names + "/subscriptions/12345678-1234-1234-1234-123456789abc/resourceGroups/very-long-resource-group-name-for-testing/providers/Microsoft.ManagedIdentity/userAssignedIdentities/very-long-identity-name-for-comprehensive-testing", + // Minimal valid format + "/subscriptions/12345678-1234-1234-1234-123456789abc/resourceGroups/rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/id" + }; + + foreach (var resourceId in testResourceIds) + { + // Arrange + var psIdentityRef = new PSComputeNodeIdentityReference { ResourceId = resourceId }; + + // Act + var mgmtResult = psIdentityRef.toMgmtIdentityReference(); + var roundTripResult = PSComputeNodeIdentityReference.fromMgmtIdentityReference(mgmtResult); + + // Assert + Assert.NotNull(mgmtResult); + Assert.NotNull(roundTripResult); + Assert.Equal(resourceId, mgmtResult.ResourceId); + Assert.Equal(resourceId, roundTripResult.ResourceId); + } + } + + #endregion + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Test/Models/PSContainerRegistryTests.cs b/src/Batch/Batch.Test/Models/PSContainerRegistryTests.cs new file mode 100644 index 000000000000..b8a170cce8f6 --- /dev/null +++ b/src/Batch/Batch.Test/Models/PSContainerRegistryTests.cs @@ -0,0 +1,782 @@ +// ----------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ----------------------------------------------------------------------------- + +using Microsoft.Azure.Commands.Batch.Models; +using Microsoft.Azure.Management.Batch.Models; +using Xunit; + +namespace Microsoft.Azure.Commands.Batch.Test.ModelsConversions +{ + public class PSContainerRegistryTests + { + #region toMgmtContainerRegistry Tests + + [Fact] + public void ToMgmtContainerRegistry_WithAllProperties_ReturnsCorrectMapping() + { + // Arrange + var identityResourceId = "/subscriptions/12345678-1234-1234-1234-123456789abc/resourceGroups/rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/identity"; + var psIdentityRef = new PSComputeNodeIdentityReference { ResourceId = identityResourceId }; + var psRegistry = new PSContainerRegistry( + userName: "testuser", + password: "testpassword", + registryServer: "myregistry.azurecr.io", + identityReference: psIdentityRef); + + // Act + var result = psRegistry.toMgmtContainerRegistry(); + + // Assert + Assert.NotNull(result); + Assert.Equal("testuser", result.UserName); + Assert.Equal("testpassword", result.Password); + Assert.Equal("myregistry.azurecr.io", result.RegistryServer); + Assert.NotNull(result.IdentityReference); + Assert.Equal(identityResourceId, result.IdentityReference.ResourceId); + } + + [Fact] + public void ToMgmtContainerRegistry_WithMinimalProperties_ReturnsCorrectMapping() + { + // Arrange + var psRegistry = new PSContainerRegistry( + userName: "testuser", + password: "testpassword"); + + // Act + var result = psRegistry.toMgmtContainerRegistry(); + + // Assert + Assert.NotNull(result); + Assert.Equal("testuser", result.UserName); + Assert.Equal("testpassword", result.Password); + Assert.Null(result.RegistryServer); + Assert.Null(result.IdentityReference); + } + + [Fact] + public void ToMgmtContainerRegistry_WithDockerHubRegistry_ReturnsCorrectMapping() + { + // Arrange + var psRegistry = new PSContainerRegistry( + userName: "dockerhubuser", + password: "dockerhubpassword", + registryServer: "docker.io"); + + // Act + var result = psRegistry.toMgmtContainerRegistry(); + + // Assert + Assert.NotNull(result); + Assert.Equal("dockerhubuser", result.UserName); + Assert.Equal("dockerhubpassword", result.Password); + Assert.Equal("docker.io", result.RegistryServer); + Assert.Null(result.IdentityReference); + } + + [Fact] + public void ToMgmtContainerRegistry_WithNullIdentityReference_ReturnsNullIdentityReference() + { + // Arrange + var psRegistry = new PSContainerRegistry( + userName: "testuser", + password: "testpassword", + registryServer: "registry.example.com", + identityReference: null); + + // Act + var result = psRegistry.toMgmtContainerRegistry(); + + // Assert + Assert.NotNull(result); + Assert.Equal("testuser", result.UserName); + Assert.Equal("testpassword", result.Password); + Assert.Equal("registry.example.com", result.RegistryServer); + Assert.Null(result.IdentityReference); + } + + [Fact] + public void ToMgmtContainerRegistry_WithNullOmObject_ReturnsNull() + { + // Arrange + var psRegistry = new PSContainerRegistry(); + // Set omObject to null using reflection to simulate the condition + psRegistry.GetType().GetField("omObject", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance) + ?.SetValue(psRegistry, null); + + // Act + var result = psRegistry.toMgmtContainerRegistry(); + + // Assert + Assert.Null(result); + } + + [Theory] + [InlineData("myregistry.azurecr.io", "azureuser", "azurepass")] + [InlineData("docker.io", "dockeruser", "dockerpass")] + [InlineData("registry.gitlab.com", "gitlabuser", "gitlabtoken")] + [InlineData("ghcr.io", "githubuser", "githubtoken")] + public void ToMgmtContainerRegistry_VariousRegistryProviders_ReturnsCorrectMapping(string registryServer, string userName, string password) + { + // Arrange + var psRegistry = new PSContainerRegistry( + userName: userName, + password: password, + registryServer: registryServer); + + // Act + var result = psRegistry.toMgmtContainerRegistry(); + + // Assert + Assert.NotNull(result); + Assert.Equal(userName, result.UserName); + Assert.Equal(password, result.Password); + Assert.Equal(registryServer, result.RegistryServer); + Assert.Null(result.IdentityReference); + } + + [Fact] + public void ToMgmtContainerRegistry_AlwaysCreatesNewInstance() + { + // Arrange + var psRegistry = new PSContainerRegistry( + userName: "testuser", + password: "testpassword"); + + // Act + var result1 = psRegistry.toMgmtContainerRegistry(); + var result2 = psRegistry.toMgmtContainerRegistry(); + + // Assert + Assert.NotNull(result1); + Assert.NotNull(result2); + Assert.NotSame(result1, result2); + } + + [Fact] + public void ToMgmtContainerRegistry_VerifyContainerRegistryType() + { + // Arrange + var psRegistry = new PSContainerRegistry( + userName: "testuser", + password: "testpassword"); + + // Act + var result = psRegistry.toMgmtContainerRegistry(); + + // Assert + Assert.NotNull(result); + Assert.IsType(result); + } + + [Fact] + public void ToMgmtContainerRegistry_WithEmptyStringProperties_PreservesEmptyValues() + { + // Arrange + var psRegistry = new PSContainerRegistry( + userName: "", + password: "", + registryServer: ""); + + // Act + var result = psRegistry.toMgmtContainerRegistry(); + + // Assert + Assert.NotNull(result); + Assert.Equal("", result.UserName); + Assert.Equal("", result.Password); + Assert.Equal("", result.RegistryServer); + } + + #endregion + + #region fromMgmtContainerRegistry Tests + + [Fact] + public void FromMgmtContainerRegistry_WithAllProperties_ReturnsCorrectMapping() + { + // Arrange + var identityResourceId = "/subscriptions/12345678-1234-1234-1234-123456789abc/resourceGroups/rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/identity"; + var mgmtIdentityRef = new ComputeNodeIdentityReference(identityResourceId); + var mgmtRegistry = new ContainerRegistry( + userName: "testuser", + password: "testpassword", + registryServer: "myregistry.azurecr.io", + identityReference: mgmtIdentityRef); + + // Act + var result = PSContainerRegistry.fromMgmtContainerRegistry(mgmtRegistry); + + // Assert + Assert.NotNull(result); + Assert.Equal("testuser", result.UserName); + Assert.Equal("testpassword", result.Password); + Assert.Equal("myregistry.azurecr.io", result.RegistryServer); + Assert.NotNull(result.IdentityReference); + Assert.Equal(identityResourceId, result.IdentityReference.ResourceId); + } + + [Fact] + public void FromMgmtContainerRegistry_WithMinimalProperties_ReturnsCorrectMapping() + { + // Arrange + var mgmtRegistry = new ContainerRegistry( + userName: "testuser", + password: "testpassword"); + + // Act + var result = PSContainerRegistry.fromMgmtContainerRegistry(mgmtRegistry); + + // Assert + Assert.NotNull(result); + Assert.Equal("testuser", result.UserName); + Assert.Equal("testpassword", result.Password); + Assert.Null(result.RegistryServer); + Assert.Null(result.IdentityReference); + } + + [Fact] + public void FromMgmtContainerRegistry_WithNullIdentityReference_ReturnsNullIdentityReference() + { + // Arrange + var mgmtRegistry = new ContainerRegistry( + userName: "testuser", + password: "testpassword", + registryServer: "registry.example.com", + identityReference: null); + + // Act + var result = PSContainerRegistry.fromMgmtContainerRegistry(mgmtRegistry); + + // Assert + Assert.NotNull(result); + Assert.Equal("testuser", result.UserName); + Assert.Equal("testpassword", result.Password); + Assert.Equal("registry.example.com", result.RegistryServer); + Assert.Null(result.IdentityReference); + } + + [Fact] + public void FromMgmtContainerRegistry_WithNullMgmtRegistry_ReturnsNull() + { + // Act + var result = PSContainerRegistry.fromMgmtContainerRegistry(null); + + // Assert + Assert.Null(result); + } + + [Theory] + [InlineData("myregistry.azurecr.io", "azureuser", "azurepass")] + [InlineData("docker.io", "dockeruser", "dockerpass")] + [InlineData("registry.gitlab.com", "gitlabuser", "gitlabtoken")] + [InlineData("ghcr.io", "githubuser", "githubtoken")] + [InlineData("quay.io", "quayuser", "quaytoken")] + public void FromMgmtContainerRegistry_VariousRegistryProviders_ReturnsCorrectMapping(string registryServer, string userName, string password) + { + // Arrange + var mgmtRegistry = new ContainerRegistry( + userName: userName, + password: password, + registryServer: registryServer); + + // Act + var result = PSContainerRegistry.fromMgmtContainerRegistry(mgmtRegistry); + + // Assert + Assert.NotNull(result); + Assert.Equal(userName, result.UserName); + Assert.Equal(password, result.Password); + Assert.Equal(registryServer, result.RegistryServer); + // Fixed: Check for null before accessing ResourceId + Assert.Null(result.IdentityReference); + } + + [Fact] + public void FromMgmtContainerRegistry_StaticMethod_DoesNotRequireInstance() + { + // Arrange + var mgmtRegistry = new ContainerRegistry( + userName: "testuser", + password: "testpassword", + registryServer: "registry.example.com"); + + // Act - Call static method directly on class + var result = PSContainerRegistry.fromMgmtContainerRegistry(mgmtRegistry); + + // Assert + Assert.NotNull(result); + Assert.Equal("testuser", result.UserName); + Assert.Equal("testpassword", result.Password); + Assert.Equal("registry.example.com", result.RegistryServer); + } + + [Fact] + public void FromMgmtContainerRegistry_AlwaysCreatesNewInstance() + { + // Arrange + var mgmtRegistry = new ContainerRegistry( + userName: "testuser", + password: "testpassword"); + + // Act + var result1 = PSContainerRegistry.fromMgmtContainerRegistry(mgmtRegistry); + var result2 = PSContainerRegistry.fromMgmtContainerRegistry(mgmtRegistry); + + // Assert + Assert.NotNull(result1); + Assert.NotNull(result2); + Assert.NotSame(result1, result2); + } + + [Fact] + public void FromMgmtContainerRegistry_VerifyPSContainerRegistryType() + { + // Arrange + var mgmtRegistry = new ContainerRegistry( + userName: "testuser", + password: "testpassword"); + + // Act + var result = PSContainerRegistry.fromMgmtContainerRegistry(mgmtRegistry); + + // Assert + Assert.NotNull(result); + Assert.IsType(result); + } + + [Fact] + public void FromMgmtContainerRegistry_WithDefaultConstructor_HandlesCorrectly() + { + // Arrange + var mgmtRegistry = new ContainerRegistry(); // Uses default constructor + + // Act + var result = PSContainerRegistry.fromMgmtContainerRegistry(mgmtRegistry); + + // Assert + Assert.NotNull(result); + Assert.Null(result.UserName); + Assert.Null(result.Password); + Assert.Null(result.RegistryServer); + Assert.Null(result.IdentityReference); + } + + [Fact] + public void FromMgmtContainerRegistry_WithEmptyStringProperties_PreservesEmptyValues() + { + // Arrange + var mgmtRegistry = new ContainerRegistry( + userName: "", + password: "", + registryServer: ""); + + // Act + var result = PSContainerRegistry.fromMgmtContainerRegistry(mgmtRegistry); + + // Assert + Assert.NotNull(result); + Assert.Equal("", result.UserName); + Assert.Equal("", result.Password); + Assert.Equal("", result.RegistryServer); + } + + #endregion + + #region Round-trip Conversion Tests + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesAllProperties() + { + // Arrange + var identityResourceId = "/subscriptions/12345678-1234-1234-1234-123456789abc/resourceGroups/rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/identity"; + var originalIdentityRef = new PSComputeNodeIdentityReference { ResourceId = identityResourceId }; + var originalPsRegistry = new PSContainerRegistry( + userName: "testuser", + password: "testpassword", + registryServer: "myregistry.azurecr.io", + identityReference: originalIdentityRef); + + // Act + var mgmtRegistry = originalPsRegistry.toMgmtContainerRegistry(); + var roundTripPsRegistry = PSContainerRegistry.fromMgmtContainerRegistry(mgmtRegistry); + + // Assert + Assert.NotNull(roundTripPsRegistry); + Assert.Equal(originalPsRegistry.UserName, roundTripPsRegistry.UserName); + Assert.Equal(originalPsRegistry.Password, roundTripPsRegistry.Password); + Assert.Equal(originalPsRegistry.RegistryServer, roundTripPsRegistry.RegistryServer); + Assert.NotNull(roundTripPsRegistry.IdentityReference); + Assert.Equal(originalPsRegistry.IdentityReference.ResourceId, roundTripPsRegistry.IdentityReference.ResourceId); + } + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesMinimalProperties() + { + // Arrange + var originalPsRegistry = new PSContainerRegistry( + userName: "testuser", + password: "testpassword"); + + // Act + var mgmtRegistry = originalPsRegistry.toMgmtContainerRegistry(); + var roundTripPsRegistry = PSContainerRegistry.fromMgmtContainerRegistry(mgmtRegistry); + + // Assert + Assert.NotNull(roundTripPsRegistry); + Assert.Equal(originalPsRegistry.UserName, roundTripPsRegistry.UserName); + Assert.Equal(originalPsRegistry.Password, roundTripPsRegistry.Password); + Assert.Null(roundTripPsRegistry.RegistryServer); + Assert.Null(roundTripPsRegistry.IdentityReference); + } + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesNullIdentityReference() + { + // Arrange + var originalPsRegistry = new PSContainerRegistry( + userName: "testuser", + password: "testpassword", + registryServer: "registry.example.com", + identityReference: null); + + // Act + var mgmtRegistry = originalPsRegistry.toMgmtContainerRegistry(); + var roundTripPsRegistry = PSContainerRegistry.fromMgmtContainerRegistry(mgmtRegistry); + + // Assert + Assert.NotNull(roundTripPsRegistry); + Assert.Equal(originalPsRegistry.UserName, roundTripPsRegistry.UserName); + Assert.Equal(originalPsRegistry.Password, roundTripPsRegistry.Password); + Assert.Equal(originalPsRegistry.RegistryServer, roundTripPsRegistry.RegistryServer); + Assert.Null(roundTripPsRegistry.IdentityReference); + } + + [Theory] + [InlineData("myregistry.azurecr.io", "azureuser", "azurepass")] + [InlineData("docker.io", "dockeruser", "dockerpass")] + [InlineData("", "", "")] + public void RoundTripConversion_AllValidValues_PreservesOriginalValue(string registryServer, string userName, string password) + { + // Arrange + var originalPsRegistry = new PSContainerRegistry( + userName: userName, + password: password, + registryServer: registryServer); + + // Act + var mgmtRegistry = originalPsRegistry.toMgmtContainerRegistry(); + if (mgmtRegistry != null) + { + var roundTripPsRegistry = PSContainerRegistry.fromMgmtContainerRegistry(mgmtRegistry); + + // Assert + Assert.NotNull(roundTripPsRegistry); + Assert.Equal(originalPsRegistry.UserName, roundTripPsRegistry.UserName); + Assert.Equal(originalPsRegistry.Password, roundTripPsRegistry.Password); + Assert.Equal(originalPsRegistry.RegistryServer, roundTripPsRegistry.RegistryServer); + } + } + + [Fact] + public void RoundTripConversion_FromMgmtAndToMgmt_PreservesValues() + { + // Arrange + var identityResourceId = "/subscriptions/12345678-1234-1234-1234-123456789abc/resourceGroups/rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/identity"; + var originalIdentityRef = new ComputeNodeIdentityReference(identityResourceId); + var originalMgmtRegistry = new ContainerRegistry( + userName: "testuser", + password: "testpassword", + registryServer: "myregistry.azurecr.io", + identityReference: originalIdentityRef); + + // Act + var psRegistry = PSContainerRegistry.fromMgmtContainerRegistry(originalMgmtRegistry); + var roundTripMgmtRegistry = psRegistry.toMgmtContainerRegistry(); + + // Assert + Assert.NotNull(roundTripMgmtRegistry); + Assert.Equal(originalMgmtRegistry.UserName, roundTripMgmtRegistry.UserName); + Assert.Equal(originalMgmtRegistry.Password, roundTripMgmtRegistry.Password); + Assert.Equal(originalMgmtRegistry.RegistryServer, roundTripMgmtRegistry.RegistryServer); + Assert.NotNull(roundTripMgmtRegistry.IdentityReference); + Assert.Equal(originalMgmtRegistry.IdentityReference.ResourceId, roundTripMgmtRegistry.IdentityReference.ResourceId); + } + + #endregion + + #region Integration Tests + + [Fact] + public void ContainerRegistryConversions_BothDirections_MaintainSemanticEquivalence() + { + // This test ensures that the semantic meaning is preserved across conversions + + // Arrange - Test with Azure Container Registry scenario + var identityResourceId = "/subscriptions/12345678-1234-1234-1234-123456789abc/resourceGroups/batch-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/acr-identity"; + var psIdentityRef = new PSComputeNodeIdentityReference { ResourceId = identityResourceId }; + var psRegistry = new PSContainerRegistry( + userName: "batchuser", + password: "secretpassword", + registryServer: "batchregistry.azurecr.io", + identityReference: psIdentityRef); + + // Act + var mgmtRegistry = psRegistry.toMgmtContainerRegistry(); + var backToPs = PSContainerRegistry.fromMgmtContainerRegistry(mgmtRegistry); + + // Assert + Assert.NotNull(mgmtRegistry); + Assert.Equal("batchuser", mgmtRegistry.UserName); + Assert.Equal("secretpassword", mgmtRegistry.Password); + Assert.Equal("batchregistry.azurecr.io", mgmtRegistry.RegistryServer); + Assert.NotNull(mgmtRegistry.IdentityReference); + Assert.Equal(identityResourceId, mgmtRegistry.IdentityReference.ResourceId); + + Assert.NotNull(backToPs); + Assert.Equal("batchuser", backToPs.UserName); + Assert.Equal("secretpassword", backToPs.Password); + Assert.Equal("batchregistry.azurecr.io", backToPs.RegistryServer); + Assert.NotNull(backToPs.IdentityReference); + Assert.Equal(identityResourceId, backToPs.IdentityReference.ResourceId); + } + + [Fact] + public void ContainerRegistryConversions_NullHandling_WorksCorrectly() + { + // Test null handling in conversions + + // Arrange + PSContainerRegistry psRegistryWithNullOmObject = new PSContainerRegistry(); + psRegistryWithNullOmObject.GetType().GetField("omObject", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance) + ?.SetValue(psRegistryWithNullOmObject, null); + + // Act + var resultFromNullOmObject = psRegistryWithNullOmObject.toMgmtContainerRegistry(); + var resultFromNullMgmt = PSContainerRegistry.fromMgmtContainerRegistry(null); + + // Assert + Assert.Null(resultFromNullOmObject); + Assert.Null(resultFromNullMgmt); + } + + [Fact] + public void ContainerRegistryConversions_BatchContainerContext_VerifyCorrectUsage() + { + // This test validates the conversions work correctly in the context of Batch container configuration + // ContainerRegistry is used to configure private container registries for Batch pool compute nodes + + // Arrange - Test with different container registry scenarios + var scenarios = new[] + { + // Azure Container Registry with managed identity + new { + RegistryServer = "mybatchregistry.azurecr.io", + UserName = (string)null, + Password = (string)null, + IdentityResourceId = "/subscriptions/12345678-1234-1234-1234-123456789abc/resourceGroups/rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/acr-identity" + }, + // Docker Hub with credentials + new { + RegistryServer = "docker.io", + UserName = "dockerhubuser", + Password = "dockerhubpass", + IdentityResourceId = (string)null + }, + // Private registry with credentials + new { + RegistryServer = "private.registry.com", + UserName = "privateuser", + Password = "privatepass", + IdentityResourceId = (string)null + } + }; + + foreach (var scenario in scenarios) + { + // Arrange + var psIdentityRef = scenario.IdentityResourceId != null + ? new PSComputeNodeIdentityReference { ResourceId = scenario.IdentityResourceId } + : null; + + var psRegistry = new PSContainerRegistry( + userName: scenario.UserName, + password: scenario.Password, + registryServer: scenario.RegistryServer, + identityReference: psIdentityRef); + + // Act + var mgmtRegistry = psRegistry.toMgmtContainerRegistry(); + + // Assert - Should convert correctly for Batch container configuration + Assert.NotNull(mgmtRegistry); + Assert.Equal(scenario.UserName, mgmtRegistry.UserName); + Assert.Equal(scenario.Password, mgmtRegistry.Password); + Assert.Equal(scenario.RegistryServer, mgmtRegistry.RegistryServer); + + if (scenario.IdentityResourceId != null) + { + Assert.NotNull(mgmtRegistry.IdentityReference); + Assert.Equal(scenario.IdentityResourceId, mgmtRegistry.IdentityReference.ResourceId); + } + else + { + Assert.Null(mgmtRegistry.IdentityReference); + } + + // Verify round-trip conversion maintains container registry semantics + var backToPs = PSContainerRegistry.fromMgmtContainerRegistry(mgmtRegistry); + Assert.NotNull(backToPs); + Assert.Equal(scenario.UserName, backToPs.UserName); + Assert.Equal(scenario.Password, backToPs.Password); + Assert.Equal(scenario.RegistryServer, backToPs.RegistryServer); + + // Fixed: Check for null before accessing ResourceId + if (scenario.IdentityResourceId != null) + { + Assert.NotNull(backToPs.IdentityReference); + Assert.Equal(scenario.IdentityResourceId, backToPs.IdentityReference.ResourceId); + } + else + { + Assert.Null(backToPs.IdentityReference); + } + } + } + + [Fact] + public void ContainerRegistryConversions_InstanceCreation_VerifyBehavior() + { + // This test verifies that the conversion methods create appropriate instances + + // Arrange + var identityResourceId = "/subscriptions/test/resourceGroups/test/providers/Microsoft.ManagedIdentity/userAssignedIdentities/test"; + var psIdentityRef = new PSComputeNodeIdentityReference { ResourceId = identityResourceId }; + var psRegistry = new PSContainerRegistry( + userName: "testuser", + password: "testpass", + registryServer: "test.azurecr.io", + identityReference: psIdentityRef); + + var mgmtIdentityRef = new ComputeNodeIdentityReference(identityResourceId); + var mgmtRegistry = new ContainerRegistry( + userName: "testuser", + password: "testpass", + registryServer: "test.azurecr.io", + identityReference: mgmtIdentityRef); + + // Act + var mgmtResult = psRegistry.toMgmtContainerRegistry(); + var psResult = PSContainerRegistry.fromMgmtContainerRegistry(mgmtRegistry); + + // Assert - Verify proper instance creation + Assert.NotNull(mgmtResult); + Assert.NotNull(psResult); + Assert.IsType(mgmtResult); + Assert.IsType(psResult); + + // Verify new instances are created + Assert.NotSame(mgmtRegistry, mgmtResult); + Assert.NotSame(psRegistry, psResult); + } + + #endregion + + #region Performance and Edge Case Tests + + [Fact] + public void ContainerRegistryConversions_PerformanceTest_ExecutesQuickly() + { + // This test ensures the conversions are efficient + + // Arrange + var identityResourceId = "/subscriptions/12345678-1234-1234-1234-123456789abc/resourceGroups/test/providers/Microsoft.ManagedIdentity/userAssignedIdentities/test"; + var psIdentityRef = new PSComputeNodeIdentityReference { ResourceId = identityResourceId }; + var psRegistry = new PSContainerRegistry( + userName: "testuser", + password: "testpass", + registryServer: "test.azurecr.io", + identityReference: psIdentityRef); + + var mgmtIdentityRef = new ComputeNodeIdentityReference(identityResourceId); + var mgmtRegistry = new ContainerRegistry( + userName: "testuser", + password: "testpass", + registryServer: "test.azurecr.io", + identityReference: mgmtIdentityRef); + + // Act & Assert - Multiple conversions should complete without delay + for (int i = 0; i < 100; i++) + { + var mgmtResult = psRegistry.toMgmtContainerRegistry(); + var psResult = PSContainerRegistry.fromMgmtContainerRegistry(mgmtRegistry); + + Assert.NotNull(mgmtResult); + Assert.NotNull(psResult); + Assert.Equal("testuser", mgmtResult.UserName); + Assert.Equal("testuser", psResult.UserName); + } + } + + [Fact] + public void ContainerRegistryConversions_EdgeCaseValues_HandleCorrectly() + { + // Test conversion with various edge case values + + var testRegistries = new[] { + // Standard Azure Container Registry + new { Server = "myregistry.azurecr.io", User = "acruser", Pass = "acrtoken" }, + // Docker Hub (default registry) + new { Server = "docker.io", User = "dockeruser", Pass = "dockerpass" }, + // GitHub Container Registry + new { Server = "ghcr.io", User = "githubuser", Pass = "ghp_token123" }, + // GitLab Container Registry + new { Server = "registry.gitlab.com", User = "gitlab-ci-token", Pass = "token123" }, + // Quay.io + new { Server = "quay.io", User = "quayuser", Pass = "quaytoken" }, + // Long registry names + new { Server = "very-long-registry-name-for-testing.azurecr.io", User = "verylongusernameforcredentialtesting", Pass = "verylongpasswordfortesting123456789" }, + // Registry with port + new { Server = "registry.example.com:5000", User = "portuser", Pass = "portpass" }, + // Empty values + new { Server = "", User = "", Pass = "" } + }; + + foreach (var testRegistry in testRegistries) + { + // Arrange + var psRegistry = new PSContainerRegistry( + userName: testRegistry.User, + password: testRegistry.Pass, + registryServer: testRegistry.Server); + + // Act + var mgmtResult = psRegistry.toMgmtContainerRegistry(); + var roundTripResult = PSContainerRegistry.fromMgmtContainerRegistry(mgmtResult); + + // Assert + Assert.NotNull(mgmtResult); + Assert.NotNull(roundTripResult); + Assert.Equal(testRegistry.User, mgmtResult.UserName); + Assert.Equal(testRegistry.Pass, mgmtResult.Password); + Assert.Equal(testRegistry.Server, mgmtResult.RegistryServer); + Assert.Equal(testRegistry.User, roundTripResult.UserName); + Assert.Equal(testRegistry.Pass, roundTripResult.Password); + Assert.Equal(testRegistry.Server, roundTripResult.RegistryServer); + } + } + + #endregion + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Test/Models/PSRollingUpgradePolicyTests.cs b/src/Batch/Batch.Test/Models/PSRollingUpgradePolicyTests.cs new file mode 100644 index 000000000000..e5de8c0dc032 --- /dev/null +++ b/src/Batch/Batch.Test/Models/PSRollingUpgradePolicyTests.cs @@ -0,0 +1,413 @@ +// ----------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ----------------------------------------------------------------------------- + +using Microsoft.Azure.Commands.Batch.Models; +using Microsoft.Azure.Management.Batch.Models; +using System; +using Xunit; + +namespace Microsoft.Azure.Commands.Batch.Test.ModelsConversions +{ + public class PSRollingUpgradePolicyTests + { + #region toMgmtRollingUpgradePolicy Tests + + [Fact] + public void ToMgmtRollingUpgradePolicy_WithValidObject_ReturnsCorrectMapping() + { + // Arrange + var psPolicy = new PSRollingUpgradePolicy + { + EnableCrossZoneUpgrade = true, + MaxBatchInstancePercent = 20, + MaxUnhealthyInstancePercent = 25, + MaxUnhealthyUpgradedInstancePercent = 30, + PauseTimeBetweenBatches = TimeSpan.FromMinutes(5), + PrioritizeUnhealthyInstances = false, + RollbackFailedInstancesOnPolicyBreach = true + }; + + // Act + var result = psPolicy.toMgmtRollingUpgradePolicy(); + + // Assert + Assert.NotNull(result); + Assert.Equal(true, result.EnableCrossZoneUpgrade); + Assert.Equal(20, result.MaxBatchInstancePercent); + Assert.Equal(25, result.MaxUnhealthyInstancePercent); + Assert.Equal(30, result.MaxUnhealthyUpgradedInstancePercent); + Assert.Equal("PT5M", result.PauseTimeBetweenBatches); + Assert.Equal(false, result.PrioritizeUnhealthyInstances); + Assert.Equal(true, result.RollbackFailedInstancesOnPolicyBreach); + } + + [Fact] + public void ToMgmtRollingUpgradePolicy_WithNullValues_ReturnsObjectWithNullValues() + { + // Arrange + var psPolicy = new PSRollingUpgradePolicy + { + EnableCrossZoneUpgrade = null, + MaxBatchInstancePercent = null, + MaxUnhealthyInstancePercent = null, + MaxUnhealthyUpgradedInstancePercent = null, + PauseTimeBetweenBatches = null, + PrioritizeUnhealthyInstances = null, + RollbackFailedInstancesOnPolicyBreach = null + }; + + // Act + var result = psPolicy.toMgmtRollingUpgradePolicy(); + + // Assert + Assert.NotNull(result); + Assert.Null(result.EnableCrossZoneUpgrade); + Assert.Null(result.MaxBatchInstancePercent); + Assert.Null(result.MaxUnhealthyInstancePercent); + Assert.Null(result.MaxUnhealthyUpgradedInstancePercent); + Assert.Null(result.PauseTimeBetweenBatches); + Assert.Null(result.PrioritizeUnhealthyInstances); + Assert.Null(result.RollbackFailedInstancesOnPolicyBreach); + } + + [Fact] + public void ToMgmtRollingUpgradePolicy_WithNullOmObject_ReturnsNull() + { + // Arrange + var psPolicy = new PSRollingUpgradePolicy(); + psPolicy.GetType().GetField("omObject", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance) + ?.SetValue(psPolicy, null); + + // Act + var result = psPolicy.toMgmtRollingUpgradePolicy(); + + // Assert + Assert.Null(result); + } + + [Theory] + [InlineData(true, 10, 15, 20, false, true)] + [InlineData(false, 50, 60, 70, true, false)] + [InlineData(true, 100, 100, 100, true, true)] + [InlineData(false, 5, 5, 0, false, false)] + public void ToMgmtRollingUpgradePolicy_VariousValueCombinations_ReturnsCorrectMapping( + bool enableCrossZone, int maxBatch, int maxUnhealthy, int maxUnhealthyUpgraded, bool prioritizeUnhealthy, bool rollbackFailed) + { + // Arrange + var psPolicy = new PSRollingUpgradePolicy + { + EnableCrossZoneUpgrade = enableCrossZone, + MaxBatchInstancePercent = maxBatch, + MaxUnhealthyInstancePercent = maxUnhealthy, + MaxUnhealthyUpgradedInstancePercent = maxUnhealthyUpgraded, + PauseTimeBetweenBatches = TimeSpan.FromSeconds(30), + PrioritizeUnhealthyInstances = prioritizeUnhealthy, + RollbackFailedInstancesOnPolicyBreach = rollbackFailed + }; + + // Act + var result = psPolicy.toMgmtRollingUpgradePolicy(); + + // Assert + Assert.NotNull(result); + Assert.Equal(enableCrossZone, result.EnableCrossZoneUpgrade); + Assert.Equal(maxBatch, result.MaxBatchInstancePercent); + Assert.Equal(maxUnhealthy, result.MaxUnhealthyInstancePercent); + Assert.Equal(maxUnhealthyUpgraded, result.MaxUnhealthyUpgradedInstancePercent); + Assert.Equal("PT30S", result.PauseTimeBetweenBatches); + Assert.Equal(prioritizeUnhealthy, result.PrioritizeUnhealthyInstances); + Assert.Equal(rollbackFailed, result.RollbackFailedInstancesOnPolicyBreach); + } + + [Theory] + [InlineData("00:00:30", "PT30S")] + [InlineData("00:05:00", "PT5M")] + [InlineData("01:00:00", "PT1H")] + [InlineData("1.00:00:00", "P1D")] + [InlineData("00:00:00", "PT0S")] + public void ToMgmtRollingUpgradePolicy_TimeSpanConversion_ConvertsToISO8601Format(string timeSpanString, string expectedISO8601) + { + // Arrange + var psPolicy = new PSRollingUpgradePolicy + { + PauseTimeBetweenBatches = TimeSpan.Parse(timeSpanString) + }; + + // Act + var result = psPolicy.toMgmtRollingUpgradePolicy(); + + // Assert + Assert.NotNull(result); + Assert.Equal(expectedISO8601, result.PauseTimeBetweenBatches); + } + + #endregion + + #region fromMgmtRollingUpgradePolicy Tests + + [Fact] + public void FromMgmtRollingUpgradePolicy_WithValidMgmtPolicy_ReturnsCorrectMapping() + { + // Arrange + var psPolicy = new PSRollingUpgradePolicy(); + var mgmtPolicy = new RollingUpgradePolicy + { + EnableCrossZoneUpgrade = true, + MaxBatchInstancePercent = 20, + MaxUnhealthyInstancePercent = 25, + MaxUnhealthyUpgradedInstancePercent = 30, + PauseTimeBetweenBatches = "PT5M", + PrioritizeUnhealthyInstances = false, + RollbackFailedInstancesOnPolicyBreach = true + }; + + // Act + var result = psPolicy.fromMgmtRollingUpgradePolicy(mgmtPolicy); + + // Assert + Assert.NotNull(result); + Assert.Equal(true, result.EnableCrossZoneUpgrade); + Assert.Equal(20, result.MaxBatchInstancePercent); + Assert.Equal(25, result.MaxUnhealthyInstancePercent); + Assert.Equal(30, result.MaxUnhealthyUpgradedInstancePercent); + Assert.Equal(TimeSpan.FromMinutes(5), result.PauseTimeBetweenBatches); + Assert.Equal(false, result.PrioritizeUnhealthyInstances); + Assert.Equal(true, result.RollbackFailedInstancesOnPolicyBreach); + } + + [Fact] + public void FromMgmtRollingUpgradePolicy_WithNullMgmtPolicyValues_ReturnsObjectWithNullValues() + { + // Arrange + var psPolicy = new PSRollingUpgradePolicy(); + var mgmtPolicy = new RollingUpgradePolicy + { + EnableCrossZoneUpgrade = null, + MaxBatchInstancePercent = null, + MaxUnhealthyInstancePercent = null, + MaxUnhealthyUpgradedInstancePercent = null, + PauseTimeBetweenBatches = null, + PrioritizeUnhealthyInstances = null, + RollbackFailedInstancesOnPolicyBreach = null + }; + + // Act + var result = psPolicy.fromMgmtRollingUpgradePolicy(mgmtPolicy); + + // Assert + Assert.NotNull(result); + Assert.Null(result.EnableCrossZoneUpgrade); + Assert.Null(result.MaxBatchInstancePercent); + Assert.Null(result.MaxUnhealthyInstancePercent); + Assert.Null(result.MaxUnhealthyUpgradedInstancePercent); + Assert.Null(result.PauseTimeBetweenBatches); + Assert.Null(result.PrioritizeUnhealthyInstances); + Assert.Null(result.RollbackFailedInstancesOnPolicyBreach); + } + + [Fact] + public void FromMgmtRollingUpgradePolicy_WithNullMgmtPolicy_ReturnsNull() + { + // Arrange + var psPolicy = new PSRollingUpgradePolicy(); + + // Act + var result = psPolicy.fromMgmtRollingUpgradePolicy(null); + + // Assert + Assert.Null(result); + } + + [Theory] + [InlineData(true, 10, 15, 20, false, true)] + [InlineData(false, 50, 60, 70, true, false)] + [InlineData(true, 100, 100, 100, true, true)] + [InlineData(false, 5, 5, 0, false, false)] + public void FromMgmtRollingUpgradePolicy_VariousValueCombinations_ReturnsCorrectMapping( + bool enableCrossZone, int maxBatch, int maxUnhealthy, int maxUnhealthyUpgraded, bool prioritizeUnhealthy, bool rollbackFailed) + { + // Arrange + var psPolicy = new PSRollingUpgradePolicy(); + var mgmtPolicy = new RollingUpgradePolicy + { + EnableCrossZoneUpgrade = enableCrossZone, + MaxBatchInstancePercent = maxBatch, + MaxUnhealthyInstancePercent = maxUnhealthy, + MaxUnhealthyUpgradedInstancePercent = maxUnhealthyUpgraded, + PauseTimeBetweenBatches = "PT30S", + PrioritizeUnhealthyInstances = prioritizeUnhealthy, + RollbackFailedInstancesOnPolicyBreach = rollbackFailed + }; + + // Act + var result = psPolicy.fromMgmtRollingUpgradePolicy(mgmtPolicy); + + // Assert + Assert.NotNull(result); + Assert.Equal(enableCrossZone, result.EnableCrossZoneUpgrade); + Assert.Equal(maxBatch, result.MaxBatchInstancePercent); + Assert.Equal(maxUnhealthy, result.MaxUnhealthyInstancePercent); + Assert.Equal(maxUnhealthyUpgraded, result.MaxUnhealthyUpgradedInstancePercent); + Assert.Equal(TimeSpan.FromSeconds(30), result.PauseTimeBetweenBatches); + Assert.Equal(prioritizeUnhealthy, result.PrioritizeUnhealthyInstances); + Assert.Equal(rollbackFailed, result.RollbackFailedInstancesOnPolicyBreach); + } + + [Theory] + [InlineData("PT30S", "00:00:30")] + [InlineData("PT5M", "00:05:00")] + [InlineData("PT1H", "01:00:00")] + [InlineData("P1D", "1.00:00:00")] + [InlineData("PT0S", "00:00:00")] + public void FromMgmtRollingUpgradePolicy_ISO8601Conversion_ConvertsToTimeSpan(string iso8601String, string expectedTimeSpanString) + { + // Arrange + var psPolicy = new PSRollingUpgradePolicy(); + var mgmtPolicy = new RollingUpgradePolicy + { + PauseTimeBetweenBatches = iso8601String + }; + + // Act + var result = psPolicy.fromMgmtRollingUpgradePolicy(mgmtPolicy); + + // Assert + Assert.NotNull(result); + Assert.Equal(TimeSpan.Parse(expectedTimeSpanString), result.PauseTimeBetweenBatches); + } + + [Fact] + public void FromMgmtRollingUpgradePolicy_CreatesNewInstance_NotSameReference() + { + // Arrange + var psPolicy = new PSRollingUpgradePolicy(); + var mgmtPolicy = new RollingUpgradePolicy + { + EnableCrossZoneUpgrade = true, + MaxBatchInstancePercent = 20, + PauseTimeBetweenBatches = "PT5M" + }; + + // Act + var result = psPolicy.fromMgmtRollingUpgradePolicy(mgmtPolicy); + + // Assert + Assert.NotNull(result); + Assert.NotSame(psPolicy, result); + } + + [Fact] + public void FromMgmtRollingUpgradePolicy_InvalidTimeSpanFormat_ThrowsFormatException() + { + // Arrange + var psPolicy = new PSRollingUpgradePolicy(); + var mgmtPolicy = new RollingUpgradePolicy + { + PauseTimeBetweenBatches = "invalid-timespan-format" + }; + + // Act & Assert + Assert.Throws(() => psPolicy.fromMgmtRollingUpgradePolicy(mgmtPolicy)); + } + + #endregion + + #region Integration Tests + + [Fact] + public void RoundTripConversion_ToMgmtAndBack_PreservesValues() + { + // Arrange + var originalPsPolicy = new PSRollingUpgradePolicy + { + EnableCrossZoneUpgrade = true, + MaxBatchInstancePercent = 25, + MaxUnhealthyInstancePercent = 30, + MaxUnhealthyUpgradedInstancePercent = 35, + PauseTimeBetweenBatches = TimeSpan.FromMinutes(10), + PrioritizeUnhealthyInstances = false, + RollbackFailedInstancesOnPolicyBreach = true + }; + + // Act + var mgmtPolicy = originalPsPolicy.toMgmtRollingUpgradePolicy(); + var roundTripPsPolicy = new PSRollingUpgradePolicy().fromMgmtRollingUpgradePolicy(mgmtPolicy); + + // Assert + Assert.NotNull(roundTripPsPolicy); + Assert.Equal(originalPsPolicy.EnableCrossZoneUpgrade, roundTripPsPolicy.EnableCrossZoneUpgrade); + Assert.Equal(originalPsPolicy.MaxBatchInstancePercent, roundTripPsPolicy.MaxBatchInstancePercent); + Assert.Equal(originalPsPolicy.MaxUnhealthyInstancePercent, roundTripPsPolicy.MaxUnhealthyInstancePercent); + Assert.Equal(originalPsPolicy.MaxUnhealthyUpgradedInstancePercent, roundTripPsPolicy.MaxUnhealthyUpgradedInstancePercent); + Assert.Equal(originalPsPolicy.PauseTimeBetweenBatches, roundTripPsPolicy.PauseTimeBetweenBatches); + Assert.Equal(originalPsPolicy.PrioritizeUnhealthyInstances, roundTripPsPolicy.PrioritizeUnhealthyInstances); + Assert.Equal(originalPsPolicy.RollbackFailedInstancesOnPolicyBreach, roundTripPsPolicy.RollbackFailedInstancesOnPolicyBreach); + } + + [Fact] + public void RoundTripConversion_WithNullValues_PreservesNulls() + { + // Arrange + var originalPsPolicy = new PSRollingUpgradePolicy + { + EnableCrossZoneUpgrade = null, + MaxBatchInstancePercent = null, + MaxUnhealthyInstancePercent = null, + MaxUnhealthyUpgradedInstancePercent = null, + PauseTimeBetweenBatches = null, + PrioritizeUnhealthyInstances = null, + RollbackFailedInstancesOnPolicyBreach = null + }; + + // Act + var mgmtPolicy = originalPsPolicy.toMgmtRollingUpgradePolicy(); + var roundTripPsPolicy = new PSRollingUpgradePolicy().fromMgmtRollingUpgradePolicy(mgmtPolicy); + + // Assert + Assert.NotNull(roundTripPsPolicy); + Assert.Null(roundTripPsPolicy.EnableCrossZoneUpgrade); + Assert.Null(roundTripPsPolicy.MaxBatchInstancePercent); + Assert.Null(roundTripPsPolicy.MaxUnhealthyInstancePercent); + Assert.Null(roundTripPsPolicy.MaxUnhealthyUpgradedInstancePercent); + Assert.Null(roundTripPsPolicy.PauseTimeBetweenBatches); + Assert.Null(roundTripPsPolicy.PrioritizeUnhealthyInstances); + Assert.Null(roundTripPsPolicy.RollbackFailedInstancesOnPolicyBreach); + } + + [Fact] + public void RoundTripConversion_ComplexTimeSpan_PreservesAccuracy() + { + // Arrange + var complexTimeSpan = new TimeSpan(2, 3, 4, 5, 123); // 2 days, 3 hours, 4 minutes, 5 seconds, 123 milliseconds + var originalPsPolicy = new PSRollingUpgradePolicy + { + PauseTimeBetweenBatches = complexTimeSpan + }; + + // Act + var mgmtPolicy = originalPsPolicy.toMgmtRollingUpgradePolicy(); + var roundTripPsPolicy = new PSRollingUpgradePolicy().fromMgmtRollingUpgradePolicy(mgmtPolicy); + + // Assert + Assert.NotNull(roundTripPsPolicy); + // Note: ISO 8601 conversion may lose millisecond precision, so we check seconds precision + Assert.Equal(originalPsPolicy.PauseTimeBetweenBatches.Value.Days, roundTripPsPolicy.PauseTimeBetweenBatches.Value.Days); + Assert.Equal(originalPsPolicy.PauseTimeBetweenBatches.Value.Hours, roundTripPsPolicy.PauseTimeBetweenBatches.Value.Hours); + Assert.Equal(originalPsPolicy.PauseTimeBetweenBatches.Value.Minutes, roundTripPsPolicy.PauseTimeBetweenBatches.Value.Minutes); + Assert.Equal(originalPsPolicy.PauseTimeBetweenBatches.Value.Seconds, roundTripPsPolicy.PauseTimeBetweenBatches.Value.Seconds); + } + + #endregion + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Test/Models/PSStartTaskTests.cs b/src/Batch/Batch.Test/Models/PSStartTaskTests.cs new file mode 100644 index 000000000000..3f21bb81fdf8 --- /dev/null +++ b/src/Batch/Batch.Test/Models/PSStartTaskTests.cs @@ -0,0 +1,1144 @@ +// ----------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ----------------------------------------------------------------------------- + +using Microsoft.Azure.Commands.Batch.Models; +using Microsoft.Azure.Management.Batch.Models; +using System.Collections; +using System.Collections.Generic; +using System.Linq; +using Xunit; + +namespace Microsoft.Azure.Commands.Batch.Test.ModelsConversions +{ + public class PSStartTaskTests + { + #region toMgmtStartTask Tests + + [Fact] + public void ToMgmtStartTask_WithAllProperties_ReturnsCorrectMapping() + { + // Arrange + var identityResourceId = "/subscriptions/12345678-1234-1234-1234-123456789abc/resourceGroups/rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/identity"; + var psIdentityRef = new PSComputeNodeIdentityReference { ResourceId = identityResourceId }; + var psRegistry = new PSContainerRegistry( + userName: "testuser", + password: "testpass", + registryServer: "myregistry.azurecr.io", + identityReference: psIdentityRef); + + var psContainerSettings = new PSTaskContainerSettings( + imageName: "ubuntu:20.04", + containerRunOptions: "--rm --network host", + registry: psRegistry, + workingDirectory: Microsoft.Azure.Batch.Common.ContainerWorkingDirectory.TaskWorkingDirectory); + + var psAutoUserSpec = new PSAutoUserSpecification( + scope: Microsoft.Azure.Batch.Common.AutoUserScope.Task, + elevationLevel: Microsoft.Azure.Batch.Common.ElevationLevel.Admin); + var psUserIdentity = new PSUserIdentity(psAutoUserSpec); + + var environmentSettings = new Dictionary + { + { "PATH", "/usr/local/bin:/usr/bin:/bin" }, + { "HOME", "/home/user" } + }; + + var psStartTask = new PSStartTask("echo 'Starting batch task'") + { + ContainerSettings = psContainerSettings, + EnvironmentSettings = environmentSettings, + MaxTaskRetryCount = 3, + UserIdentity = psUserIdentity, + WaitForSuccess = true + }; + + // Act + var result = psStartTask.toMgmtStartTask(); + + // Assert + Assert.NotNull(result); + Assert.Equal("echo 'Starting batch task'", result.CommandLine); + Assert.Equal(3, result.MaxTaskRetryCount); + Assert.Equal(true, result.WaitForSuccess); + + // Verify container settings + Assert.NotNull(result.ContainerSettings); + Assert.Equal("ubuntu:20.04", result.ContainerSettings.ImageName); + Assert.Equal("--rm --network host", result.ContainerSettings.ContainerRunOptions); + Assert.Equal(ContainerWorkingDirectory.TaskWorkingDirectory, result.ContainerSettings.WorkingDirectory); + + // Verify user identity + Assert.NotNull(result.UserIdentity); + Assert.NotNull(result.UserIdentity.AutoUser); + Assert.Equal(AutoUserScope.Task, result.UserIdentity.AutoUser.Scope); + Assert.Equal(ElevationLevel.Admin, result.UserIdentity.AutoUser.ElevationLevel); + + // Verify environment settings + Assert.NotNull(result.EnvironmentSettings); + Assert.Equal(2, result.EnvironmentSettings.Count); + var envDict = new Dictionary(); + foreach (var env in result.EnvironmentSettings) + { + envDict[env.Name] = env.Value; + } + Assert.Equal("/usr/local/bin:/usr/bin:/bin", envDict["PATH"]); + Assert.Equal("/home/user", envDict["HOME"]); + } + + [Fact] + public void ToMgmtStartTask_WithMinimalProperties_ReturnsCorrectMapping() + { + // Arrange + var psStartTask = new PSStartTask("echo 'hello world'"); + + // Act + var result = psStartTask.toMgmtStartTask(); + + // Assert + Assert.NotNull(result); + Assert.Equal("echo 'hello world'", result.CommandLine); + Assert.Null(result.ContainerSettings); + Assert.Null(result.EnvironmentSettings); + Assert.Null(result.MaxTaskRetryCount); + Assert.Null(result.ResourceFiles); + Assert.Null(result.UserIdentity); + Assert.Null(result.WaitForSuccess); + } + + [Fact] + public void ToMgmtStartTask_WithNamedUser_ReturnsCorrectMapping() + { + // Arrange + var psUserIdentity = new PSUserIdentity("batchuser"); + var psStartTask = new PSStartTask("cmd /c dir") + { + UserIdentity = psUserIdentity, + MaxTaskRetryCount = 1, + WaitForSuccess = false + }; + + // Act + var result = psStartTask.toMgmtStartTask(); + + // Assert + Assert.NotNull(result); + Assert.Equal("cmd /c dir", result.CommandLine); + Assert.Equal(1, result.MaxTaskRetryCount); + Assert.Equal(false, result.WaitForSuccess); + Assert.NotNull(result.UserIdentity); + Assert.Equal("batchuser", result.UserIdentity.UserName); + Assert.Null(result.UserIdentity.AutoUser); + } + + [Fact] + public void ToMgmtStartTask_WithContainerSettingsOnly_ReturnsCorrectMapping() + { + // Arrange + var psContainerSettings = new PSTaskContainerSettings( + imageName: "nginx:alpine", + containerRunOptions: "--publish 80:80"); + + var psStartTask = new PSStartTask("nginx -g 'daemon off;'") + { + ContainerSettings = psContainerSettings + }; + + // Act + var result = psStartTask.toMgmtStartTask(); + + // Assert + Assert.NotNull(result); + Assert.Equal("nginx -g 'daemon off;'", result.CommandLine); + Assert.NotNull(result.ContainerSettings); + Assert.Equal("nginx:alpine", result.ContainerSettings.ImageName); + Assert.Equal("--publish 80:80", result.ContainerSettings.ContainerRunOptions); + } + + [Fact] + public void ToMgmtStartTask_WithNullContainerSettings_ReturnsNullContainerSettings() + { + // Arrange + var psStartTask = new PSStartTask("echo 'test'") + { + ContainerSettings = null + }; + + // Act + var result = psStartTask.toMgmtStartTask(); + + // Assert + Assert.NotNull(result); + Assert.Null(result.ContainerSettings); + } + + [Fact] + public void ToMgmtStartTask_WithNullUserIdentity_ReturnsNullUserIdentity() + { + // Arrange + var psStartTask = new PSStartTask("echo 'test'") + { + UserIdentity = null + }; + + // Act + var result = psStartTask.toMgmtStartTask(); + + // Assert + Assert.NotNull(result); + Assert.Null(result.UserIdentity); + } + + [Fact] + public void ToMgmtStartTask_WithEmptyEnvironmentSettings_ReturnsEmptyEnvironmentSettings() + { + // Arrange + var psStartTask = new PSStartTask("echo 'test'") + { + EnvironmentSettings = new Dictionary() + }; + + // Act + var result = psStartTask.toMgmtStartTask(); + + // Assert + Assert.NotNull(result); + Assert.NotNull(result.EnvironmentSettings); + Assert.Empty(result.EnvironmentSettings); + } + + [Theory] + [InlineData("echo 'Hello World'", 0, true)] + [InlineData("powershell -Command 'Get-Process'", 5, false)] + [InlineData("/bin/bash -c 'ls -la'", null, null)] + [InlineData("python setup.py install", 10, true)] + public void ToMgmtStartTask_VariousCommandLineScenarios_ReturnsCorrectMapping(string commandLine, int? maxRetryCount, bool? waitForSuccess) + { + // Arrange + var psStartTask = new PSStartTask(commandLine) + { + MaxTaskRetryCount = maxRetryCount, + WaitForSuccess = waitForSuccess + }; + + // Act + var result = psStartTask.toMgmtStartTask(); + + // Assert + Assert.NotNull(result); + Assert.Equal(commandLine, result.CommandLine); + Assert.Equal(maxRetryCount, result.MaxTaskRetryCount); + Assert.Equal(waitForSuccess, result.WaitForSuccess); + } + + [Fact] + public void ToMgmtStartTask_AlwaysCreatesNewInstance() + { + // Arrange + var psStartTask = new PSStartTask("echo 'test'"); + + // Act + var result1 = psStartTask.toMgmtStartTask(); + var result2 = psStartTask.toMgmtStartTask(); + + // Assert + Assert.NotNull(result1); + Assert.NotNull(result2); + Assert.NotSame(result1, result2); + } + + [Fact] + public void ToMgmtStartTask_VerifyStartTaskType() + { + // Arrange + var psStartTask = new PSStartTask("echo 'test'"); + + // Act + var result = psStartTask.toMgmtStartTask(); + + // Assert + Assert.NotNull(result); + Assert.IsType(result); + } + + #endregion + + #region fromMgmtStartTask Tests + + [Fact] + public void FromMgmtStartTask_WithAllProperties_ReturnsCorrectMapping() + { + // Arrange + var identityResourceId = "/subscriptions/12345678-1234-1234-1234-123456789abc/resourceGroups/rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/identity"; + var mgmtIdentityRef = new ComputeNodeIdentityReference(identityResourceId); + var mgmtRegistry = new ContainerRegistry( + userName: "testuser", + password: "testpass", + registryServer: "myregistry.azurecr.io", + identityReference: mgmtIdentityRef); + + var mgmtContainerSettings = new TaskContainerSettings( + imageName: "ubuntu:20.04", + containerRunOptions: "--rm --network host", + registry: mgmtRegistry, + workingDirectory: ContainerWorkingDirectory.TaskWorkingDirectory); + + var mgmtAutoUserSpec = new AutoUserSpecification( + scope: AutoUserScope.Task, + elevationLevel: ElevationLevel.Admin); + var mgmtUserIdentity = new UserIdentity(autoUser: mgmtAutoUserSpec); + + var mgmtEnvironmentSettings = new List + { + new EnvironmentSetting("PATH", "/usr/local/bin:/usr/bin:/bin"), + new EnvironmentSetting("HOME", "/home/user") + }; + + var mgmtStartTask = new StartTask( + commandLine: "echo 'Starting batch task'", + resourceFiles: null, + environmentSettings: mgmtEnvironmentSettings, + userIdentity: mgmtUserIdentity, + maxTaskRetryCount: 3, + waitForSuccess: true, + containerSettings: mgmtContainerSettings); + + // Act + var result = PSStartTask.fromMgmtStartTask(mgmtStartTask); + + // Assert + Assert.NotNull(result); + Assert.Equal("echo 'Starting batch task'", result.CommandLine); + Assert.Equal(3, result.MaxTaskRetryCount); + Assert.Equal(true, result.WaitForSuccess); + + // Verify container settings + Assert.NotNull(result.ContainerSettings); + Assert.Equal("ubuntu:20.04", result.ContainerSettings.ImageName); + Assert.Equal("--rm --network host", result.ContainerSettings.ContainerRunOptions); + Assert.Equal(Microsoft.Azure.Batch.Common.ContainerWorkingDirectory.TaskWorkingDirectory, result.ContainerSettings.WorkingDirectory); + + // Verify user identity + Assert.NotNull(result.UserIdentity); + Assert.NotNull(result.UserIdentity.AutoUser); + Assert.Equal(Microsoft.Azure.Batch.Common.AutoUserScope.Task, result.UserIdentity.AutoUser.Scope); + Assert.Equal(Microsoft.Azure.Batch.Common.ElevationLevel.Admin, result.UserIdentity.AutoUser.ElevationLevel); + + // Verify environment settings + Assert.NotNull(result.EnvironmentSettings); + Assert.Equal(2, result.EnvironmentSettings.Count); + Assert.Equal("/usr/local/bin:/usr/bin:/bin", result.EnvironmentSettings["PATH"]); + Assert.Equal("/home/user", result.EnvironmentSettings["HOME"]); + } + + [Fact] + public void FromMgmtStartTask_WithMinimalProperties_ReturnsCorrectMapping() + { + // Arrange + var mgmtStartTask = new StartTask(commandLine: "echo 'hello world'"); + + // Act + var result = PSStartTask.fromMgmtStartTask(mgmtStartTask); + + // Assert + Assert.NotNull(result); + Assert.Equal("echo 'hello world'", result.CommandLine); + Assert.Null(result.ContainerSettings); + Assert.Null(result.EnvironmentSettings); + Assert.Null(result.MaxTaskRetryCount); + Assert.Null(result.ResourceFiles); + Assert.Null(result.UserIdentity); + Assert.Null(result.WaitForSuccess); + } + + [Fact] + public void FromMgmtStartTask_WithNamedUser_ReturnsCorrectMapping() + { + // Arrange + var mgmtUserIdentity = new UserIdentity(userName: "batchuser"); + var mgmtStartTask = new StartTask( + commandLine: "cmd /c dir", + userIdentity: mgmtUserIdentity, + maxTaskRetryCount: 1, + waitForSuccess: false); + + // Act + var result = PSStartTask.fromMgmtStartTask(mgmtStartTask); + + // Assert + Assert.NotNull(result); + Assert.Equal("cmd /c dir", result.CommandLine); + Assert.Equal(1, result.MaxTaskRetryCount); + Assert.Equal(false, result.WaitForSuccess); + Assert.NotNull(result.UserIdentity); + Assert.Equal("batchuser", result.UserIdentity.UserName); + Assert.Null(result.UserIdentity.AutoUser); + } + + [Fact] + public void FromMgmtStartTask_WithContainerSettingsOnly_ReturnsCorrectMapping() + { + // Arrange + var mgmtContainerSettings = new TaskContainerSettings( + imageName: "nginx:alpine", + containerRunOptions: "--publish 80:80"); + + var mgmtStartTask = new StartTask( + commandLine: "nginx -g 'daemon off;'", + containerSettings: mgmtContainerSettings); + + // Act + var result = PSStartTask.fromMgmtStartTask(mgmtStartTask); + + // Assert + Assert.NotNull(result); + Assert.Equal("nginx -g 'daemon off;'", result.CommandLine); + Assert.NotNull(result.ContainerSettings); + Assert.Equal("nginx:alpine", result.ContainerSettings.ImageName); + Assert.Equal("--publish 80:80", result.ContainerSettings.ContainerRunOptions); + } + + [Fact] + public void FromMgmtStartTask_WithNullContainerSettings_ReturnsNullContainerSettings() + { + // Arrange + var mgmtStartTask = new StartTask( + commandLine: "echo 'test'", + containerSettings: null); + + // Act + var result = PSStartTask.fromMgmtStartTask(mgmtStartTask); + + // Assert + Assert.NotNull(result); + Assert.Null(result.ContainerSettings); + } + + [Fact] + public void FromMgmtStartTask_WithNullUserIdentity_ReturnsNullUserIdentity() + { + // Arrange + var mgmtStartTask = new StartTask( + commandLine: "echo 'test'", + userIdentity: null); + + // Act + var result = PSStartTask.fromMgmtStartTask(mgmtStartTask); + + // Assert + Assert.NotNull(result); + Assert.Null(result.UserIdentity); + } + + [Fact] + public void FromMgmtStartTask_WithEmptyEnvironmentSettings_ReturnsNullEnvironmentSettings() + { + // Arrange + var mgmtStartTask = new StartTask( + commandLine: "echo 'test'", + environmentSettings: new List()); + + // Act + var result = PSStartTask.fromMgmtStartTask(mgmtStartTask); + + // Assert + Assert.NotNull(result); + Assert.NotNull(result.EnvironmentSettings); + Assert.Empty(result.EnvironmentSettings); + } + + [Theory] + [InlineData("echo 'Hello World'", 0, true)] + [InlineData("powershell -Command 'Get-Process'", 5, false)] + [InlineData("/bin/bash -c 'ls -la'", null, null)] + [InlineData("python setup.py install", 10, true)] + public void FromMgmtStartTask_VariousCommandLineScenarios_ReturnsCorrectMapping(string commandLine, int? maxRetryCount, bool? waitForSuccess) + { + // Arrange + var mgmtStartTask = new StartTask( + commandLine: commandLine, + maxTaskRetryCount: maxRetryCount, + waitForSuccess: waitForSuccess); + + // Act + var result = PSStartTask.fromMgmtStartTask(mgmtStartTask); + + // Assert + Assert.NotNull(result); + Assert.Equal(commandLine, result.CommandLine); + Assert.Equal(maxRetryCount, result.MaxTaskRetryCount); + Assert.Equal(waitForSuccess, result.WaitForSuccess); + } + + [Fact] + public void FromMgmtStartTask_StaticMethod_DoesNotRequireInstance() + { + // Arrange + var mgmtStartTask = new StartTask(commandLine: "echo 'test'"); + + // Act - Call static method directly on class + var result = PSStartTask.fromMgmtStartTask(mgmtStartTask); + + // Assert + Assert.NotNull(result); + Assert.Equal("echo 'test'", result.CommandLine); + } + + [Fact] + public void FromMgmtStartTask_AlwaysCreatesNewInstance() + { + // Arrange + var mgmtStartTask = new StartTask(commandLine: "echo 'test'"); + + // Act + var result1 = PSStartTask.fromMgmtStartTask(mgmtStartTask); + var result2 = PSStartTask.fromMgmtStartTask(mgmtStartTask); + + // Assert + Assert.NotNull(result1); + Assert.NotNull(result2); + Assert.NotSame(result1, result2); + } + + [Fact] + public void FromMgmtStartTask_VerifyPSStartTaskType() + { + // Arrange + var mgmtStartTask = new StartTask(commandLine: "echo 'test'"); + + // Act + var result = PSStartTask.fromMgmtStartTask(mgmtStartTask); + + // Assert + Assert.NotNull(result); + Assert.IsType(result); + } + + [Fact] + public void FromMgmtStartTask_WithDefaultConstructor_HandlesCorrectly() + { + // Arrange + var mgmtStartTask = new StartTask(); // Uses default constructor + mgmtStartTask.CommandLine = "echo 'default test'"; + + // Act + var result = PSStartTask.fromMgmtStartTask(mgmtStartTask); + + // Assert + Assert.NotNull(result); + Assert.Equal("echo 'default test'", result.CommandLine); + Assert.Null(result.ContainerSettings); + Assert.Null(result.EnvironmentSettings); + Assert.Null(result.MaxTaskRetryCount); + Assert.Null(result.ResourceFiles); + Assert.Null(result.UserIdentity); + Assert.Null(result.WaitForSuccess); + } + + #endregion + + #region Round-trip Conversion Tests + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesAllProperties() + { + // Arrange + var identityResourceId = "/subscriptions/12345678-1234-1234-1234-123456789abc/resourceGroups/rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/identity"; + var originalIdentityRef = new PSComputeNodeIdentityReference { ResourceId = identityResourceId }; + var originalRegistry = new PSContainerRegistry( + userName: "testuser", + password: "testpass", + registryServer: "myregistry.azurecr.io", + identityReference: originalIdentityRef); + + var originalContainerSettings = new PSTaskContainerSettings( + imageName: "ubuntu:20.04", + containerRunOptions: "--rm --network host", + registry: originalRegistry, + workingDirectory: Microsoft.Azure.Batch.Common.ContainerWorkingDirectory.TaskWorkingDirectory); + + var originalAutoUserSpec = new PSAutoUserSpecification( + scope: Microsoft.Azure.Batch.Common.AutoUserScope.Task, + elevationLevel: Microsoft.Azure.Batch.Common.ElevationLevel.Admin); + var originalUserIdentity = new PSUserIdentity(originalAutoUserSpec); + + var originalEnvironmentSettings = new Dictionary + { + { "PATH", "/usr/local/bin:/usr/bin:/bin" }, + { "HOME", "/home/user" }, + { "LANG", "en_US.UTF-8" } + }; + + var originalPsStartTask = new PSStartTask("echo 'Starting batch task'") + { + ContainerSettings = originalContainerSettings, + EnvironmentSettings = originalEnvironmentSettings, + MaxTaskRetryCount = 3, + UserIdentity = originalUserIdentity, + WaitForSuccess = true + }; + + // Act + var mgmtStartTask = originalPsStartTask.toMgmtStartTask(); + var roundTripPsStartTask = PSStartTask.fromMgmtStartTask(mgmtStartTask); + + // Assert + Assert.NotNull(roundTripPsStartTask); + Assert.Equal(originalPsStartTask.CommandLine, roundTripPsStartTask.CommandLine); + Assert.Equal(originalPsStartTask.MaxTaskRetryCount, roundTripPsStartTask.MaxTaskRetryCount); + Assert.Equal(originalPsStartTask.WaitForSuccess, roundTripPsStartTask.WaitForSuccess); + + // Verify container settings round-trip + Assert.NotNull(roundTripPsStartTask.ContainerSettings); + Assert.Equal(originalPsStartTask.ContainerSettings.ImageName, roundTripPsStartTask.ContainerSettings.ImageName); + Assert.Equal(originalPsStartTask.ContainerSettings.ContainerRunOptions, roundTripPsStartTask.ContainerSettings.ContainerRunOptions); + Assert.Equal(originalPsStartTask.ContainerSettings.WorkingDirectory, roundTripPsStartTask.ContainerSettings.WorkingDirectory); + + // Verify user identity round-trip + Assert.NotNull(roundTripPsStartTask.UserIdentity); + Assert.NotNull(roundTripPsStartTask.UserIdentity.AutoUser); + Assert.Equal(originalPsStartTask.UserIdentity.AutoUser.Scope, roundTripPsStartTask.UserIdentity.AutoUser.Scope); + Assert.Equal(originalPsStartTask.UserIdentity.AutoUser.ElevationLevel, roundTripPsStartTask.UserIdentity.AutoUser.ElevationLevel); + + // Verify environment settings round-trip + Assert.NotNull(roundTripPsStartTask.EnvironmentSettings); + Assert.Equal(originalPsStartTask.EnvironmentSettings.Count, roundTripPsStartTask.EnvironmentSettings.Count); + foreach (DictionaryEntry entry in originalPsStartTask.EnvironmentSettings) + { + Assert.Equal(entry.Value, roundTripPsStartTask.EnvironmentSettings[entry.Key]); + } + } + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesMinimalProperties() + { + // Arrange + var originalPsStartTask = new PSStartTask("echo 'simple test'"); + + // Act + var mgmtStartTask = originalPsStartTask.toMgmtStartTask(); + var roundTripPsStartTask = PSStartTask.fromMgmtStartTask(mgmtStartTask); + + // Assert + Assert.NotNull(roundTripPsStartTask); + Assert.Equal(originalPsStartTask.CommandLine, roundTripPsStartTask.CommandLine); + Assert.Null(roundTripPsStartTask.ContainerSettings); + Assert.Null(roundTripPsStartTask.EnvironmentSettings); + Assert.Null(roundTripPsStartTask.MaxTaskRetryCount); + Assert.Null(roundTripPsStartTask.ResourceFiles); + Assert.Null(roundTripPsStartTask.UserIdentity); + Assert.Null(roundTripPsStartTask.WaitForSuccess); + } + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesNullValues() + { + // Arrange + var originalPsStartTask = new PSStartTask("echo 'null test'") + { + ContainerSettings = null, + EnvironmentSettings = null, + MaxTaskRetryCount = null, + ResourceFiles = null, + UserIdentity = null, + WaitForSuccess = null + }; + + // Act + var mgmtStartTask = originalPsStartTask.toMgmtStartTask(); + var roundTripPsStartTask = PSStartTask.fromMgmtStartTask(mgmtStartTask); + + // Assert + Assert.NotNull(roundTripPsStartTask); + Assert.Equal(originalPsStartTask.CommandLine, roundTripPsStartTask.CommandLine); + Assert.Null(roundTripPsStartTask.ContainerSettings); + Assert.Null(roundTripPsStartTask.EnvironmentSettings); + Assert.Null(roundTripPsStartTask.MaxTaskRetryCount); + Assert.Null(roundTripPsStartTask.ResourceFiles); + Assert.Null(roundTripPsStartTask.UserIdentity); + Assert.Null(roundTripPsStartTask.WaitForSuccess); + } + + [Theory] + [InlineData("echo 'Hello World'", 0, true)] + [InlineData("powershell -Command 'Get-Process'", 5, false)] + [InlineData("/bin/bash -c 'ls -la'", null, null)] + public void RoundTripConversion_AllValidValues_PreservesOriginalValue(string commandLine, int? maxRetryCount, bool? waitForSuccess) + { + // Arrange + var originalPsStartTask = new PSStartTask(commandLine) + { + MaxTaskRetryCount = maxRetryCount, + WaitForSuccess = waitForSuccess + }; + + // Act + var mgmtStartTask = originalPsStartTask.toMgmtStartTask(); + var roundTripPsStartTask = PSStartTask.fromMgmtStartTask(mgmtStartTask); + + // Assert + Assert.NotNull(roundTripPsStartTask); + Assert.Equal(originalPsStartTask.CommandLine, roundTripPsStartTask.CommandLine); + Assert.Equal(originalPsStartTask.MaxTaskRetryCount, roundTripPsStartTask.MaxTaskRetryCount); + Assert.Equal(originalPsStartTask.WaitForSuccess, roundTripPsStartTask.WaitForSuccess); + } + + [Fact] + public void RoundTripConversion_FromMgmtAndToMgmt_PreservesValues() + { + // Arrange + var identityResourceId = "/subscriptions/12345678-1234-1234-1234-123456789abc/resourceGroups/rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/identity"; + var originalIdentityRef = new ComputeNodeIdentityReference(identityResourceId); + var originalRegistry = new ContainerRegistry( + userName: "testuser", + password: "testpass", + registryServer: "myregistry.azurecr.io", + identityReference: originalIdentityRef); + + var originalContainerSettings = new TaskContainerSettings( + imageName: "postgres:13", + containerRunOptions: "--restart=unless-stopped", + registry: originalRegistry, + workingDirectory: ContainerWorkingDirectory.ContainerImageDefault); + + var originalAutoUserSpec = new AutoUserSpecification( + scope: AutoUserScope.Pool, + elevationLevel: ElevationLevel.NonAdmin); + var originalUserIdentity = new UserIdentity(autoUser: originalAutoUserSpec); + + var originalEnvironmentSettings = new List + { + new EnvironmentSetting("DATABASE_URL", "postgresql://user:pass@localhost:5432/db"), + new EnvironmentSetting("LOG_LEVEL", "INFO") + }; + + var originalMgmtStartTask = new StartTask( + commandLine: "pg_ctl start", + environmentSettings: originalEnvironmentSettings, + userIdentity: originalUserIdentity, + maxTaskRetryCount: 2, + waitForSuccess: false, + containerSettings: originalContainerSettings); + + // Act + var psStartTask = PSStartTask.fromMgmtStartTask(originalMgmtStartTask); + var roundTripMgmtStartTask = psStartTask.toMgmtStartTask(); + + // Assert + Assert.NotNull(roundTripMgmtStartTask); + Assert.Equal(originalMgmtStartTask.CommandLine, roundTripMgmtStartTask.CommandLine); + Assert.Equal(originalMgmtStartTask.MaxTaskRetryCount, roundTripMgmtStartTask.MaxTaskRetryCount); + Assert.Equal(originalMgmtStartTask.WaitForSuccess, roundTripMgmtStartTask.WaitForSuccess); + + // Verify container settings round-trip + Assert.NotNull(roundTripMgmtStartTask.ContainerSettings); + Assert.Equal(originalMgmtStartTask.ContainerSettings.ImageName, roundTripMgmtStartTask.ContainerSettings.ImageName); + Assert.Equal(originalMgmtStartTask.ContainerSettings.ContainerRunOptions, roundTripMgmtStartTask.ContainerSettings.ContainerRunOptions); + Assert.Equal(originalMgmtStartTask.ContainerSettings.WorkingDirectory, roundTripMgmtStartTask.ContainerSettings.WorkingDirectory); + + // Verify user identity round-trip + Assert.NotNull(roundTripMgmtStartTask.UserIdentity); + Assert.NotNull(roundTripMgmtStartTask.UserIdentity.AutoUser); + Assert.Equal(originalMgmtStartTask.UserIdentity.AutoUser.Scope, roundTripMgmtStartTask.UserIdentity.AutoUser.Scope); + Assert.Equal(originalMgmtStartTask.UserIdentity.AutoUser.ElevationLevel, roundTripMgmtStartTask.UserIdentity.AutoUser.ElevationLevel); + + // Verify environment settings round-trip + Assert.NotNull(roundTripMgmtStartTask.EnvironmentSettings); + Assert.Equal(originalMgmtStartTask.EnvironmentSettings.Count, roundTripMgmtStartTask.EnvironmentSettings.Count); + var originalEnvDict = originalMgmtStartTask.EnvironmentSettings.ToDictionary(e => e.Name, e => e.Value); + var roundTripEnvDict = roundTripMgmtStartTask.EnvironmentSettings.ToDictionary(e => e.Name, e => e.Value); + foreach (var kvp in originalEnvDict) + { + Assert.Equal(kvp.Value, roundTripEnvDict[kvp.Key]); + } + } + + #endregion + + #region Integration Tests + + [Fact] + public void StartTaskConversions_BothDirections_MaintainSemanticEquivalence() + { + // This test ensures that the semantic meaning is preserved across conversions + + // Arrange - Test with realistic start task scenarios + var identityResourceId = "/subscriptions/12345678-1234-1234-1234-123456789abc/resourceGroups/batch-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/start-task-identity"; + var psIdentityRef = new PSComputeNodeIdentityReference { ResourceId = identityResourceId }; + var psRegistry = new PSContainerRegistry( + userName: "batchuser", + password: "batchpass", + registryServer: "batchregistry.azurecr.io", + identityReference: psIdentityRef); + + var psContainerSettings = new PSTaskContainerSettings( + imageName: "mcr.microsoft.com/dotnet/runtime:6.0", + containerRunOptions: "--memory=1g --cpus=0.5", + registry: psRegistry, + workingDirectory: Microsoft.Azure.Batch.Common.ContainerWorkingDirectory.TaskWorkingDirectory); + + var psAutoUserSpec = new PSAutoUserSpecification( + scope: Microsoft.Azure.Batch.Common.AutoUserScope.Pool, + elevationLevel: Microsoft.Azure.Batch.Common.ElevationLevel.Admin); + var psUserIdentity = new PSUserIdentity(psAutoUserSpec); + + var environmentSettings = new Dictionary + { + { "ASPNETCORE_ENVIRONMENT", "Production" }, + { "DOTNET_RUNNING_IN_CONTAINER", "true" }, + { "PATH", "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" } + }; + + var psStartTask = new PSStartTask("dotnet myapp.dll") + { + ContainerSettings = psContainerSettings, + EnvironmentSettings = environmentSettings, + MaxTaskRetryCount = 2, + UserIdentity = psUserIdentity, + WaitForSuccess = true + }; + + // Act + var mgmtStartTask = psStartTask.toMgmtStartTask(); + var backToPs = PSStartTask.fromMgmtStartTask(mgmtStartTask); + + // Assert + Assert.NotNull(mgmtStartTask); + Assert.NotNull(backToPs); + + // Verify semantic equivalence + Assert.Equal("dotnet myapp.dll", mgmtStartTask.CommandLine); + Assert.Equal(2, mgmtStartTask.MaxTaskRetryCount); + Assert.Equal(true, mgmtStartTask.WaitForSuccess); + Assert.NotNull(mgmtStartTask.ContainerSettings); + Assert.Equal("mcr.microsoft.com/dotnet/runtime:6.0", mgmtStartTask.ContainerSettings.ImageName); + Assert.NotNull(mgmtStartTask.UserIdentity); + Assert.Equal(AutoUserScope.Pool, mgmtStartTask.UserIdentity.AutoUser.Scope); + + Assert.Equal("dotnet myapp.dll", backToPs.CommandLine); + Assert.Equal(2, backToPs.MaxTaskRetryCount); + Assert.Equal(true, backToPs.WaitForSuccess); + Assert.NotNull(backToPs.ContainerSettings); + Assert.Equal("mcr.microsoft.com/dotnet/runtime:6.0", backToPs.ContainerSettings.ImageName); + Assert.NotNull(backToPs.UserIdentity); + Assert.Equal(Microsoft.Azure.Batch.Common.AutoUserScope.Pool, backToPs.UserIdentity.AutoUser.Scope); + } + + [Fact] + public void StartTaskConversions_BatchPoolContext_VerifyCorrectUsage() + { + // This test validates the conversions work correctly in the context of Batch pool configuration + // StartTask is used to configure initialization tasks that run when compute nodes join a pool + + // Arrange - Test with different start task scenarios + var scenarios = new[] + { + // Node setup scenario + new { + CommandLine = "apt-get update && apt-get install -y python3 python3-pip", + MaxRetryCount = 0, + WaitForSuccess = true, + Description = "Node setup with package installation" + }, + // Application deployment scenario + new { + CommandLine = "powershell -Command 'Invoke-WebRequest -Uri https://example.com/setup.ps1 -OutFile setup.ps1; .\\setup.ps1'", + MaxRetryCount = 3, + WaitForSuccess = true, + Description = "Application deployment with retry logic" + }, + // Container preparation scenario + new { + CommandLine = "docker pull myregistry.azurecr.io/myapp:latest", + MaxRetryCount = 2, + WaitForSuccess = false, + Description = "Container image pre-loading" + }, + // File system preparation scenario + new { + CommandLine = "/bin/bash -c 'mkdir -p /shared && chmod 777 /shared'", + MaxRetryCount = 1, + WaitForSuccess = true, + Description = "File system setup" + } + }; + + foreach (var scenario in scenarios) + { + // Arrange + var psStartTask = new PSStartTask(scenario.CommandLine) + { + MaxTaskRetryCount = scenario.MaxRetryCount, + WaitForSuccess = scenario.WaitForSuccess + }; + + // Act + var mgmtStartTask = psStartTask.toMgmtStartTask(); + + // Assert - Should convert correctly for Batch pool start task configuration + Assert.NotNull(mgmtStartTask); + Assert.Equal(scenario.CommandLine, mgmtStartTask.CommandLine); + Assert.Equal(scenario.MaxRetryCount, mgmtStartTask.MaxTaskRetryCount); + Assert.Equal(scenario.WaitForSuccess, mgmtStartTask.WaitForSuccess); + + // Verify round-trip conversion maintains start task semantics + var backToPs = PSStartTask.fromMgmtStartTask(mgmtStartTask); + Assert.NotNull(backToPs); + Assert.Equal(scenario.CommandLine, backToPs.CommandLine); + Assert.Equal(scenario.MaxRetryCount, backToPs.MaxTaskRetryCount); + Assert.Equal(scenario.WaitForSuccess, backToPs.WaitForSuccess); + } + } + + [Fact] + public void StartTaskConversions_InstanceCreation_VerifyBehavior() + { + // This test verifies that the conversion methods create appropriate instances + + // Arrange + var identityResourceId = "/subscriptions/test/resourceGroups/test/providers/Microsoft.ManagedIdentity/userAssignedIdentities/test"; + var psIdentityRef = new PSComputeNodeIdentityReference { ResourceId = identityResourceId }; + var psRegistry = new PSContainerRegistry( + userName: "testuser", + password: "testpass", + registryServer: "test.azurecr.io", + identityReference: psIdentityRef); + + var psContainerSettings = new PSTaskContainerSettings( + imageName: "ubuntu:20.04", + containerRunOptions: "--rm", + registry: psRegistry); + + var psStartTask = new PSStartTask("echo 'test'") + { + ContainerSettings = psContainerSettings, + MaxTaskRetryCount = 1 + }; + + var mgmtIdentityRef = new ComputeNodeIdentityReference(identityResourceId); + var mgmtRegistry = new ContainerRegistry( + userName: "testuser", + password: "testpass", + registryServer: "test.azurecr.io", + identityReference: mgmtIdentityRef); + + var mgmtContainerSettings = new TaskContainerSettings( + imageName: "ubuntu:20.04", + containerRunOptions: "--rm", + registry: mgmtRegistry); + + var mgmtStartTask = new StartTask( + commandLine: "echo 'test'", + containerSettings: mgmtContainerSettings, + maxTaskRetryCount: 1); + + // Act + var mgmtResult = psStartTask.toMgmtStartTask(); + var psResult = PSStartTask.fromMgmtStartTask(mgmtStartTask); + + // Assert - Verify proper instance creation + Assert.NotNull(mgmtResult); + Assert.NotNull(psResult); + Assert.IsType(mgmtResult); + Assert.IsType(psResult); + + // Verify new instances are created + Assert.NotSame(mgmtStartTask, mgmtResult); + Assert.NotSame(psStartTask, psResult); + } + + #endregion + + #region Performance and Edge Case Tests + + [Fact] + public void StartTaskConversions_PerformanceTest_ExecutesQuickly() + { + // This test ensures the conversions are efficient + + // Arrange + var identityResourceId = "/subscriptions/12345678-1234-1234-1234-123456789abc/resourceGroups/test/providers/Microsoft.ManagedIdentity/userAssignedIdentities/test"; + var psIdentityRef = new PSComputeNodeIdentityReference { ResourceId = identityResourceId }; + var psRegistry = new PSContainerRegistry( + userName: "testuser", + password: "testpass", + registryServer: "test.azurecr.io", + identityReference: psIdentityRef); + + var psContainerSettings = new PSTaskContainerSettings( + imageName: "ubuntu:20.04", + registry: psRegistry); + + var psAutoUserSpec = new PSAutoUserSpecification( + scope: Microsoft.Azure.Batch.Common.AutoUserScope.Task, + elevationLevel: Microsoft.Azure.Batch.Common.ElevationLevel.Admin); + var psUserIdentity = new PSUserIdentity(psAutoUserSpec); + + var psStartTask = new PSStartTask("echo 'performance test'") + { + ContainerSettings = psContainerSettings, + UserIdentity = psUserIdentity, + MaxTaskRetryCount = 1 + }; + + var mgmtIdentityRef = new ComputeNodeIdentityReference(identityResourceId); + var mgmtRegistry = new ContainerRegistry( + userName: "testuser", + password: "testpass", + registryServer: "test.azurecr.io", + identityReference: mgmtIdentityRef); + + var mgmtContainerSettings = new TaskContainerSettings( + imageName: "ubuntu:20.04", + registry: mgmtRegistry); + + var mgmtAutoUserSpec = new AutoUserSpecification( + scope: AutoUserScope.Task, + elevationLevel: ElevationLevel.Admin); + var mgmtUserIdentity = new UserIdentity(autoUser: mgmtAutoUserSpec); + + var mgmtStartTask = new StartTask( + commandLine: "echo 'performance test'", + containerSettings: mgmtContainerSettings, + userIdentity: mgmtUserIdentity, + maxTaskRetryCount: 1); + + // Act & Assert - Multiple conversions should complete without delay + for (int i = 0; i < 100; i++) + { + var mgmtResult = psStartTask.toMgmtStartTask(); + var psResult = PSStartTask.fromMgmtStartTask(mgmtStartTask); + + Assert.NotNull(mgmtResult); + Assert.NotNull(psResult); + Assert.Equal("echo 'performance test'", mgmtResult.CommandLine); + Assert.Equal("echo 'performance test'", psResult.CommandLine); + } + } + + [Fact] + public void StartTaskConversions_EdgeCaseCommandLines_HandleCorrectly() + { + // Test conversion with various edge case command lines + + var testCommandLines = new[] + { + // Standard commands + "echo 'Hello World'", + "powershell -Command 'Get-Process'", + "/bin/bash -c 'ls -la'", + + // Commands with special characters + "echo 'Hello \"World\" with quotes'", + "cmd /c echo Special chars: !@#$%^&*()", + "/bin/sh -c 'echo $HOME && echo $USER'", + + // Long commands + "powershell -Command 'Get-ChildItem -Path C:\\ -Recurse -ErrorAction SilentlyContinue | Where-Object { $_.LastWriteTime -gt (Get-Date).AddDays(-30) } | Sort-Object LastWriteTime -Descending'", + + // Multi-line equivalent commands + "cmd /c \"echo Line 1 && echo Line 2 && echo Line 3\"", + + // Container-specific commands + "docker run --rm hello-world", + "kubectl apply -f deployment.yaml", + + // Package installation commands + "apt-get update && apt-get install -y curl wget", + "yum update -y && yum install -y git", + "pip install -r requirements.txt", + + // File operations + "mkdir -p /shared/data && chmod 755 /shared/data", + "curl -o setup.sh https://example.com/setup.sh && chmod +x setup.sh && ./setup.sh", + + // Empty command + "", + + // Single character + "a" + }; + + foreach (var commandLine in testCommandLines) + { + // Arrange + var psStartTask = new PSStartTask(commandLine); + + // Act + var mgmtResult = psStartTask.toMgmtStartTask(); + var roundTripResult = PSStartTask.fromMgmtStartTask(mgmtResult); + + // Assert + Assert.NotNull(mgmtResult); + Assert.NotNull(roundTripResult); + Assert.Equal(commandLine, mgmtResult.CommandLine); + Assert.Equal(commandLine, roundTripResult.CommandLine); + } + } + + [Fact] + public void StartTaskConversions_DefaultAndNullValues_HandleCorrectly() + { + // Test conversion with default and null values + + // Scenario 1: Default constructor + var defaultPsStartTask = new PSStartTask(); + defaultPsStartTask.CommandLine = "echo 'default test'"; + + var mgmtDefaultResult = defaultPsStartTask.toMgmtStartTask(); + Assert.NotNull(mgmtDefaultResult); + Assert.Equal("echo 'default test'", mgmtDefaultResult.CommandLine); + + // Scenario 2: Default management StartTask + var defaultMgmtStartTask = new StartTask(); + defaultMgmtStartTask.CommandLine = "echo 'default mgmt test'"; + + var psFromDefault = PSStartTask.fromMgmtStartTask(defaultMgmtStartTask); + Assert.NotNull(psFromDefault); + Assert.Equal("echo 'default mgmt test'", psFromDefault.CommandLine); + + // Scenario 3: Explicit null values + var nullValuesPsStartTask = new PSStartTask("echo 'null values test'") + { + ContainerSettings = null, + EnvironmentSettings = null, + MaxTaskRetryCount = null, + ResourceFiles = null, + UserIdentity = null, + WaitForSuccess = null + }; + + var mgmtNullValuesResult = nullValuesPsStartTask.toMgmtStartTask(); + Assert.NotNull(mgmtNullValuesResult); + Assert.Equal("echo 'null values test'", mgmtNullValuesResult.CommandLine); + Assert.Null(mgmtNullValuesResult.ContainerSettings); + Assert.Null(mgmtNullValuesResult.EnvironmentSettings); + Assert.Null(mgmtNullValuesResult.MaxTaskRetryCount); + Assert.Null(mgmtNullValuesResult.ResourceFiles); + Assert.Null(mgmtNullValuesResult.UserIdentity); + Assert.Null(mgmtNullValuesResult.WaitForSuccess); + + var roundTripNullValues = PSStartTask.fromMgmtStartTask(mgmtNullValuesResult); + Assert.NotNull(roundTripNullValues); + Assert.Equal("echo 'null values test'", roundTripNullValues.CommandLine); + Assert.Null(roundTripNullValues.ContainerSettings); + Assert.Null(roundTripNullValues.EnvironmentSettings); + Assert.Null(roundTripNullValues.MaxTaskRetryCount); + Assert.Null(roundTripNullValues.ResourceFiles); + Assert.Null(roundTripNullValues.UserIdentity); + Assert.Null(roundTripNullValues.WaitForSuccess); + } + + #endregion + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Test/Models/PSTaskContainerSettingsTests.cs b/src/Batch/Batch.Test/Models/PSTaskContainerSettingsTests.cs new file mode 100644 index 000000000000..400fe8c880b6 --- /dev/null +++ b/src/Batch/Batch.Test/Models/PSTaskContainerSettingsTests.cs @@ -0,0 +1,954 @@ +// ----------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ----------------------------------------------------------------------------- + +using Microsoft.Azure.Commands.Batch.Models; +using Microsoft.Azure.Management.Batch.Models; +using System.Collections.Generic; +using Xunit; + +namespace Microsoft.Azure.Commands.Batch.Test.ModelsConversions +{ + public class PSTaskContainerSettingsTests + { + #region toMgmtContainerConfiguration Tests + + [Fact] + public void ToMgmtContainerConfiguration_WithCompleteSettings_ReturnsCorrectMapping() + { + // Arrange + var identityResourceId = "/subscriptions/12345678-1234-1234-1234-123456789abc/resourceGroups/rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/identity"; + var psIdentityRef = new PSComputeNodeIdentityReference { ResourceId = identityResourceId }; + var psRegistry = new PSContainerRegistry( + userName: "testuser", + password: "testpass", + registryServer: "myregistry.azurecr.io", + identityReference: psIdentityRef); + + var psBindMounts = new List + { + new PSContainerHostBatchBindMountEntry { Source = "Shared", IsReadOnly = false }, + new PSContainerHostBatchBindMountEntry { Source = "Task", IsReadOnly = true } + }; + + var psContainerSettings = new PSTaskContainerSettings( + imageName: "ubuntu:20.04", + containerRunOptions: "--rm --network host", + registry: psRegistry, + workingDirectory: Microsoft.Azure.Batch.Common.ContainerWorkingDirectory.TaskWorkingDirectory); + + psContainerSettings.ContainerHostBatchBindMounts = psBindMounts; + + // Act + var result = psContainerSettings.toMgmtContainerConfiguration(); + + // Assert + Assert.NotNull(result); + Assert.Equal("ubuntu:20.04", result.ImageName); + Assert.Equal("--rm --network host", result.ContainerRunOptions); + Assert.Equal(ContainerWorkingDirectory.TaskWorkingDirectory, result.WorkingDirectory); + + // Verify registry mapping + Assert.NotNull(result.Registry); + Assert.Equal("testuser", result.Registry.UserName); + Assert.Equal("testpass", result.Registry.Password); + Assert.Equal("myregistry.azurecr.io", result.Registry.RegistryServer); + Assert.NotNull(result.Registry.IdentityReference); + Assert.Equal(identityResourceId, result.Registry.IdentityReference.ResourceId); + + // Verify bind mounts mapping + Assert.NotNull(result.ContainerHostBatchBindMounts); + Assert.Equal(2, result.ContainerHostBatchBindMounts.Count); + Assert.Equal("Shared", result.ContainerHostBatchBindMounts[0].Source); + Assert.Equal(false, result.ContainerHostBatchBindMounts[0].IsReadOnly); + Assert.Equal("Task", result.ContainerHostBatchBindMounts[1].Source); + Assert.Equal(true, result.ContainerHostBatchBindMounts[1].IsReadOnly); + } + + [Fact] + public void ToMgmtContainerConfiguration_WithMinimalSettings_ReturnsCorrectMapping() + { + // Arrange + var psContainerSettings = new PSTaskContainerSettings( + imageName: "nginx:latest"); + + // Act + var result = psContainerSettings.toMgmtContainerConfiguration(); + + // Assert + Assert.NotNull(result); + Assert.Equal("nginx:latest", result.ImageName); + Assert.Null(result.ContainerRunOptions); + Assert.Null(result.Registry); + Assert.Null(result.WorkingDirectory); + Assert.Null(result.ContainerHostBatchBindMounts); + } + + [Fact] + public void ToMgmtContainerConfiguration_WithContainerImageDefaultWorkingDirectory_ReturnsCorrectMapping() + { + // Arrange + var psContainerSettings = new PSTaskContainerSettings( + imageName: "alpine:latest", + workingDirectory: Microsoft.Azure.Batch.Common.ContainerWorkingDirectory.ContainerImageDefault); + + // Act + var result = psContainerSettings.toMgmtContainerConfiguration(); + + // Assert + Assert.NotNull(result); + Assert.Equal("alpine:latest", result.ImageName); + Assert.Equal(ContainerWorkingDirectory.ContainerImageDefault, result.WorkingDirectory); + } + + [Fact] + public void ToMgmtContainerConfiguration_WithNullWorkingDirectory_ReturnsNullWorkingDirectory() + { + // Arrange + var psContainerSettings = new PSTaskContainerSettings( + imageName: "python:3.9", + workingDirectory: null); + + // Act + var result = psContainerSettings.toMgmtContainerConfiguration(); + + // Assert + Assert.NotNull(result); + Assert.Equal("python:3.9", result.ImageName); + Assert.Null(result.WorkingDirectory); + } + + [Fact] + public void ToMgmtContainerConfiguration_WithNullRegistry_ReturnsNullRegistry() + { + // Arrange + var psContainerSettings = new PSTaskContainerSettings( + imageName: "node:16", + registry: null); + + // Act + var result = psContainerSettings.toMgmtContainerConfiguration(); + + // Assert + Assert.NotNull(result); + Assert.Equal("node:16", result.ImageName); + Assert.Null(result.Registry); + } + + [Fact] + public void ToMgmtContainerConfiguration_WithNullBindMounts_ReturnsNullBindMounts() + { + // Arrange + var psContainerSettings = new PSTaskContainerSettings( + imageName: "redis:6.2"); + psContainerSettings.ContainerHostBatchBindMounts = null; + + // Act + var result = psContainerSettings.toMgmtContainerConfiguration(); + + // Assert + Assert.NotNull(result); + Assert.Equal("redis:6.2", result.ImageName); + Assert.Null(result.ContainerHostBatchBindMounts); + } + + [Theory] + [InlineData("ubuntu:20.04", "--privileged")] + [InlineData("nginx:alpine", "--rm --network bridge")] + [InlineData("mcr.microsoft.com/dotnet/runtime:6.0", "-e ASPNETCORE_ENVIRONMENT=Production")] + [InlineData("python:3.9-slim", "--volume /data:/app/data")] + public void ToMgmtContainerConfiguration_VariousImageNamesAndOptions_ReturnsCorrectMapping(string imageName, string containerRunOptions) + { + // Arrange + var psContainerSettings = new PSTaskContainerSettings( + imageName: imageName, + containerRunOptions: containerRunOptions); + + // Act + var result = psContainerSettings.toMgmtContainerConfiguration(); + + // Assert + Assert.NotNull(result); + Assert.Equal(imageName, result.ImageName); + Assert.Equal(containerRunOptions, result.ContainerRunOptions); + } + + [Fact] + public void ToMgmtContainerConfiguration_AlwaysCreatesNewInstance() + { + // Arrange + var psContainerSettings = new PSTaskContainerSettings( + imageName: "ubuntu:20.04"); + + // Act + var result1 = psContainerSettings.toMgmtContainerConfiguration(); + var result2 = psContainerSettings.toMgmtContainerConfiguration(); + + // Assert + Assert.NotNull(result1); + Assert.NotNull(result2); + Assert.NotSame(result1, result2); + } + + [Fact] + public void ToMgmtContainerConfiguration_VerifyTaskContainerSettingsType() + { + // Arrange + var psContainerSettings = new PSTaskContainerSettings( + imageName: "postgres:13"); + + // Act + var result = psContainerSettings.toMgmtContainerConfiguration(); + + // Assert + Assert.NotNull(result); + Assert.IsType(result); + } + + [Fact] + public void ToMgmtContainerConfiguration_WithEmptyBindMountsList_ReturnsEmptyBindMountsList() + { + // Arrange + var psContainerSettings = new PSTaskContainerSettings( + imageName: "mongo:5.0"); + psContainerSettings.ContainerHostBatchBindMounts = new List(); + + // Act + var result = psContainerSettings.toMgmtContainerConfiguration(); + + // Assert + Assert.NotNull(result); + Assert.NotNull(result.ContainerHostBatchBindMounts); + Assert.Empty(result.ContainerHostBatchBindMounts); + } + + #endregion + + #region fromMgmtContainerConfiguration Tests + + [Fact] + public void FromMgmtContainerConfiguration_WithCompleteSettings_ReturnsCorrectMapping() + { + // Arrange + var identityResourceId = "/subscriptions/12345678-1234-1234-1234-123456789abc/resourceGroups/rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/identity"; + var mgmtIdentityRef = new ComputeNodeIdentityReference(identityResourceId); + var mgmtRegistry = new ContainerRegistry( + userName: "testuser", + password: "testpass", + registryServer: "myregistry.azurecr.io", + identityReference: mgmtIdentityRef); + + var mgmtBindMounts = new List + { + new ContainerHostBatchBindMountEntry("Shared", false), + new ContainerHostBatchBindMountEntry("Applications", true) + }; + + var mgmtContainerSettings = new TaskContainerSettings( + imageName: "ubuntu:20.04", + containerRunOptions: "--rm --network host", + registry: mgmtRegistry, + workingDirectory: ContainerWorkingDirectory.TaskWorkingDirectory, + containerHostBatchBindMounts: mgmtBindMounts); + + // Act + var result = PSTaskContainerSettings.fromMgmtContainerConfiguration(mgmtContainerSettings); + + // Assert + Assert.NotNull(result); + Assert.Equal("ubuntu:20.04", result.ImageName); + Assert.Equal("--rm --network host", result.ContainerRunOptions); + Assert.Equal(Microsoft.Azure.Batch.Common.ContainerWorkingDirectory.TaskWorkingDirectory, result.WorkingDirectory); + + // Verify registry mapping + Assert.NotNull(result.Registry); + Assert.Equal("testuser", result.Registry.UserName); + Assert.Equal("testpass", result.Registry.Password); + Assert.Equal("myregistry.azurecr.io", result.Registry.RegistryServer); + Assert.NotNull(result.Registry.IdentityReference); + Assert.Equal(identityResourceId, result.Registry.IdentityReference.ResourceId); + + // Verify bind mounts mapping + Assert.NotNull(result.ContainerHostBatchBindMounts); + Assert.Equal(2, result.ContainerHostBatchBindMounts.Count); + Assert.Equal("Shared", result.ContainerHostBatchBindMounts[0].Source); + Assert.Equal(false, result.ContainerHostBatchBindMounts[0].IsReadOnly); + Assert.Equal("Applications", result.ContainerHostBatchBindMounts[1].Source); + Assert.Equal(true, result.ContainerHostBatchBindMounts[1].IsReadOnly); + } + + [Fact] + public void FromMgmtContainerConfiguration_WithMinimalSettings_ReturnsCorrectMapping() + { + // Arrange + var mgmtContainerSettings = new TaskContainerSettings( + imageName: "nginx:latest"); + + // Act + var result = PSTaskContainerSettings.fromMgmtContainerConfiguration(mgmtContainerSettings); + + // Assert + Assert.NotNull(result); + Assert.Equal("nginx:latest", result.ImageName); + Assert.Null(result.ContainerRunOptions); + Assert.Null(result.Registry); + Assert.Null(result.WorkingDirectory); + Assert.Null(result.ContainerHostBatchBindMounts); + } + + [Fact] + public void FromMgmtContainerConfiguration_WithNullMgmtSettings_ReturnsNull() + { + // Act + var result = PSTaskContainerSettings.fromMgmtContainerConfiguration(null); + + // Assert + Assert.Null(result); + } + + [Fact] + public void FromMgmtContainerConfiguration_WithContainerImageDefaultWorkingDirectory_ReturnsCorrectMapping() + { + // Arrange + var mgmtContainerSettings = new TaskContainerSettings( + imageName: "alpine:latest", + workingDirectory: ContainerWorkingDirectory.ContainerImageDefault); + + // Act + var result = PSTaskContainerSettings.fromMgmtContainerConfiguration(mgmtContainerSettings); + + // Assert + Assert.NotNull(result); + Assert.Equal("alpine:latest", result.ImageName); + Assert.Equal(Microsoft.Azure.Batch.Common.ContainerWorkingDirectory.ContainerImageDefault, result.WorkingDirectory); + } + + [Fact] + public void FromMgmtContainerConfiguration_WithNullWorkingDirectory_ReturnsNullWorkingDirectory() + { + // Arrange + var mgmtContainerSettings = new TaskContainerSettings( + imageName: "python:3.9", + workingDirectory: null); + + // Act + var result = PSTaskContainerSettings.fromMgmtContainerConfiguration(mgmtContainerSettings); + + // Assert + Assert.NotNull(result); + Assert.Equal("python:3.9", result.ImageName); + Assert.Null(result.WorkingDirectory); + } + + [Fact] + public void FromMgmtContainerConfiguration_WithNullRegistry_ReturnsNullRegistry() + { + // Arrange + var mgmtContainerSettings = new TaskContainerSettings( + imageName: "node:16", + registry: null); + + // Act + var result = PSTaskContainerSettings.fromMgmtContainerConfiguration(mgmtContainerSettings); + + // Assert + Assert.NotNull(result); + Assert.Equal("node:16", result.ImageName); + Assert.Null(result.Registry); + } + + [Fact] + public void FromMgmtContainerConfiguration_WithNullBindMounts_ReturnsNullBindMounts() + { + // Arrange + var mgmtContainerSettings = new TaskContainerSettings( + imageName: "redis:6.2", + containerHostBatchBindMounts: null); + + // Act + var result = PSTaskContainerSettings.fromMgmtContainerConfiguration(mgmtContainerSettings); + + // Assert + Assert.NotNull(result); + Assert.Equal("redis:6.2", result.ImageName); + Assert.Null(result.ContainerHostBatchBindMounts); + } + + [Theory] + [InlineData("ubuntu:20.04", "--privileged")] + [InlineData("nginx:alpine", "--rm --network bridge")] + [InlineData("mcr.microsoft.com/dotnet/runtime:6.0", "-e ASPNETCORE_ENVIRONMENT=Production")] + [InlineData("python:3.9-slim", "--volume /data:/app/data")] + public void FromMgmtContainerConfiguration_VariousImageNamesAndOptions_ReturnsCorrectMapping(string imageName, string containerRunOptions) + { + // Arrange + var mgmtContainerSettings = new TaskContainerSettings( + imageName: imageName, + containerRunOptions: containerRunOptions); + + // Act + var result = PSTaskContainerSettings.fromMgmtContainerConfiguration(mgmtContainerSettings); + + // Assert + Assert.NotNull(result); + Assert.Equal(imageName, result.ImageName); + Assert.Equal(containerRunOptions, result.ContainerRunOptions); + } + + [Fact] + public void FromMgmtContainerConfiguration_StaticMethod_DoesNotRequireInstance() + { + // Arrange + var mgmtContainerSettings = new TaskContainerSettings( + imageName: "postgres:13", + containerRunOptions: "--restart=always"); + + // Act - Call static method directly on class + var result = PSTaskContainerSettings.fromMgmtContainerConfiguration(mgmtContainerSettings); + + // Assert + Assert.NotNull(result); + Assert.Equal("postgres:13", result.ImageName); + Assert.Equal("--restart=always", result.ContainerRunOptions); + } + + [Fact] + public void FromMgmtContainerConfiguration_AlwaysCreatesNewInstance() + { + // Arrange + var mgmtContainerSettings = new TaskContainerSettings( + imageName: "mongo:5.0"); + + // Act + var result1 = PSTaskContainerSettings.fromMgmtContainerConfiguration(mgmtContainerSettings); + var result2 = PSTaskContainerSettings.fromMgmtContainerConfiguration(mgmtContainerSettings); + + // Assert + Assert.NotNull(result1); + Assert.NotNull(result2); + Assert.NotSame(result1, result2); + } + + [Fact] + public void FromMgmtContainerConfiguration_VerifyPSTaskContainerSettingsType() + { + // Arrange + var mgmtContainerSettings = new TaskContainerSettings( + imageName: "elasticsearch:7.17"); + + // Act + var result = PSTaskContainerSettings.fromMgmtContainerConfiguration(mgmtContainerSettings); + + // Assert + Assert.NotNull(result); + Assert.IsType(result); + } + + [Fact] + public void FromMgmtContainerConfiguration_WithEmptyBindMountsList_ReturnsEmptyBindMountsList() + { + // Arrange + var mgmtContainerSettings = new TaskContainerSettings( + imageName: "rabbitmq:3.9", + containerHostBatchBindMounts: new List()); + + // Act + var result = PSTaskContainerSettings.fromMgmtContainerConfiguration(mgmtContainerSettings); + + // Assert + Assert.NotNull(result); + Assert.NotNull(result.ContainerHostBatchBindMounts); + Assert.Empty(result.ContainerHostBatchBindMounts); + } + + [Fact] + public void FromMgmtContainerConfiguration_WithDefaultConstructor_HandlesCorrectly() + { + // Arrange + var mgmtContainerSettings = new TaskContainerSettings(); // Uses default constructor + mgmtContainerSettings.ImageName = "busybox:latest"; + + // Act + var result = PSTaskContainerSettings.fromMgmtContainerConfiguration(mgmtContainerSettings); + + // Assert + Assert.NotNull(result); + Assert.Equal("busybox:latest", result.ImageName); + Assert.Null(result.ContainerRunOptions); + Assert.Null(result.Registry); + Assert.Null(result.WorkingDirectory); + Assert.Null(result.ContainerHostBatchBindMounts); + } + + #endregion + + #region Round-trip Conversion Tests + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesAllProperties() + { + // Arrange + var identityResourceId = "/subscriptions/12345678-1234-1234-1234-123456789abc/resourceGroups/rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/identity"; + var originalIdentityRef = new PSComputeNodeIdentityReference { ResourceId = identityResourceId }; + var originalRegistry = new PSContainerRegistry( + userName: "testuser", + password: "testpass", + registryServer: "myregistry.azurecr.io", + identityReference: originalIdentityRef); + + var originalBindMounts = new List + { + new PSContainerHostBatchBindMountEntry { Source = "Shared", IsReadOnly = false }, + new PSContainerHostBatchBindMountEntry { Source = "Startup", IsReadOnly = true } + }; + + var originalPsContainerSettings = new PSTaskContainerSettings( + imageName: "ubuntu:20.04", + containerRunOptions: "--rm --network host", + registry: originalRegistry, + workingDirectory: Microsoft.Azure.Batch.Common.ContainerWorkingDirectory.TaskWorkingDirectory); + + originalPsContainerSettings.ContainerHostBatchBindMounts = originalBindMounts; + + // Act + var mgmtSettings = originalPsContainerSettings.toMgmtContainerConfiguration(); + var roundTripPsSettings = PSTaskContainerSettings.fromMgmtContainerConfiguration(mgmtSettings); + + // Assert + Assert.NotNull(roundTripPsSettings); + Assert.Equal(originalPsContainerSettings.ImageName, roundTripPsSettings.ImageName); + Assert.Equal(originalPsContainerSettings.ContainerRunOptions, roundTripPsSettings.ContainerRunOptions); + Assert.Equal(originalPsContainerSettings.WorkingDirectory, roundTripPsSettings.WorkingDirectory); + + // Verify registry round-trip + Assert.NotNull(roundTripPsSettings.Registry); + Assert.Equal(originalPsContainerSettings.Registry.UserName, roundTripPsSettings.Registry.UserName); + Assert.Equal(originalPsContainerSettings.Registry.Password, roundTripPsSettings.Registry.Password); + Assert.Equal(originalPsContainerSettings.Registry.RegistryServer, roundTripPsSettings.Registry.RegistryServer); + Assert.NotNull(roundTripPsSettings.Registry.IdentityReference); + Assert.Equal(originalPsContainerSettings.Registry.IdentityReference.ResourceId, roundTripPsSettings.Registry.IdentityReference.ResourceId); + + // Verify bind mounts round-trip + Assert.NotNull(roundTripPsSettings.ContainerHostBatchBindMounts); + Assert.Equal(originalPsContainerSettings.ContainerHostBatchBindMounts.Count, roundTripPsSettings.ContainerHostBatchBindMounts.Count); + for (int i = 0; i < originalPsContainerSettings.ContainerHostBatchBindMounts.Count; i++) + { + Assert.Equal(originalPsContainerSettings.ContainerHostBatchBindMounts[i].Source, roundTripPsSettings.ContainerHostBatchBindMounts[i].Source); + Assert.Equal(originalPsContainerSettings.ContainerHostBatchBindMounts[i].IsReadOnly, roundTripPsSettings.ContainerHostBatchBindMounts[i].IsReadOnly); + } + } + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesMinimalSettings() + { + // Arrange + var originalPsContainerSettings = new PSTaskContainerSettings( + imageName: "nginx:latest"); + + // Act + var mgmtSettings = originalPsContainerSettings.toMgmtContainerConfiguration(); + var roundTripPsSettings = PSTaskContainerSettings.fromMgmtContainerConfiguration(mgmtSettings); + + // Assert + Assert.NotNull(roundTripPsSettings); + Assert.Equal(originalPsContainerSettings.ImageName, roundTripPsSettings.ImageName); + Assert.Null(roundTripPsSettings.ContainerRunOptions); + Assert.Null(roundTripPsSettings.Registry); + Assert.Null(roundTripPsSettings.WorkingDirectory); + Assert.Null(roundTripPsSettings.ContainerHostBatchBindMounts); + } + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesNullValues() + { + // Arrange + var originalPsContainerSettings = new PSTaskContainerSettings( + imageName: "alpine:latest", + containerRunOptions: null, + registry: null, + workingDirectory: null); + originalPsContainerSettings.ContainerHostBatchBindMounts = null; + + // Act + var mgmtSettings = originalPsContainerSettings.toMgmtContainerConfiguration(); + var roundTripPsSettings = PSTaskContainerSettings.fromMgmtContainerConfiguration(mgmtSettings); + + // Assert + Assert.NotNull(roundTripPsSettings); + Assert.Equal(originalPsContainerSettings.ImageName, roundTripPsSettings.ImageName); + Assert.Null(roundTripPsSettings.ContainerRunOptions); + Assert.Null(roundTripPsSettings.Registry); + Assert.Null(roundTripPsSettings.WorkingDirectory); + Assert.Null(roundTripPsSettings.ContainerHostBatchBindMounts); + } + + [Theory] + [InlineData("ubuntu:20.04", "--privileged")] + [InlineData("nginx:alpine", "--rm --network bridge")] + [InlineData("python:3.9", null)] + public void RoundTripConversion_AllValidValues_PreservesOriginalValue(string imageName, string containerRunOptions) + { + // Arrange + var originalPsContainerSettings = new PSTaskContainerSettings( + imageName: imageName, + containerRunOptions: containerRunOptions); + + // Act + var mgmtSettings = originalPsContainerSettings.toMgmtContainerConfiguration(); + var roundTripPsSettings = PSTaskContainerSettings.fromMgmtContainerConfiguration(mgmtSettings); + + // Assert + Assert.NotNull(roundTripPsSettings); + Assert.Equal(originalPsContainerSettings.ImageName, roundTripPsSettings.ImageName); + Assert.Equal(originalPsContainerSettings.ContainerRunOptions, roundTripPsSettings.ContainerRunOptions); + } + + [Fact] + public void RoundTripConversion_FromMgmtAndToMgmt_PreservesValues() + { + // Arrange + var identityResourceId = "/subscriptions/12345678-1234-1234-1234-123456789abc/resourceGroups/rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/identity"; + var originalIdentityRef = new ComputeNodeIdentityReference(identityResourceId); + var originalRegistry = new ContainerRegistry( + userName: "testuser", + password: "testpass", + registryServer: "myregistry.azurecr.io", + identityReference: originalIdentityRef); + + var originalBindMounts = new List + { + new ContainerHostBatchBindMountEntry("VfsMounts", false), + new ContainerHostBatchBindMountEntry("JobPrep", true) + }; + + var originalMgmtSettings = new TaskContainerSettings( + imageName: "postgres:13", + containerRunOptions: "--restart=unless-stopped", + registry: originalRegistry, + workingDirectory: ContainerWorkingDirectory.ContainerImageDefault, + containerHostBatchBindMounts: originalBindMounts); + + // Act + var psSettings = PSTaskContainerSettings.fromMgmtContainerConfiguration(originalMgmtSettings); + var roundTripMgmtSettings = psSettings.toMgmtContainerConfiguration(); + + // Assert + Assert.NotNull(roundTripMgmtSettings); + Assert.Equal(originalMgmtSettings.ImageName, roundTripMgmtSettings.ImageName); + Assert.Equal(originalMgmtSettings.ContainerRunOptions, roundTripMgmtSettings.ContainerRunOptions); + Assert.Equal(originalMgmtSettings.WorkingDirectory, roundTripMgmtSettings.WorkingDirectory); + + // Verify registry round-trip + Assert.NotNull(roundTripMgmtSettings.Registry); + Assert.Equal(originalMgmtSettings.Registry.UserName, roundTripMgmtSettings.Registry.UserName); + Assert.Equal(originalMgmtSettings.Registry.Password, roundTripMgmtSettings.Registry.Password); + Assert.Equal(originalMgmtSettings.Registry.RegistryServer, roundTripMgmtSettings.Registry.RegistryServer); + Assert.Equal(originalMgmtSettings.Registry.IdentityReference.ResourceId, roundTripMgmtSettings.Registry.IdentityReference.ResourceId); + + // Verify bind mounts round-trip + Assert.NotNull(roundTripMgmtSettings.ContainerHostBatchBindMounts); + Assert.Equal(originalMgmtSettings.ContainerHostBatchBindMounts.Count, roundTripMgmtSettings.ContainerHostBatchBindMounts.Count); + for (int i = 0; i < originalMgmtSettings.ContainerHostBatchBindMounts.Count; i++) + { + Assert.Equal(originalMgmtSettings.ContainerHostBatchBindMounts[i].Source, roundTripMgmtSettings.ContainerHostBatchBindMounts[i].Source); + Assert.Equal(originalMgmtSettings.ContainerHostBatchBindMounts[i].IsReadOnly, roundTripMgmtSettings.ContainerHostBatchBindMounts[i].IsReadOnly); + } + } + + #endregion + + #region Integration Tests + + [Fact] + public void TaskContainerSettingsConversions_BothDirections_MaintainSemanticEquivalence() + { + // This test ensures that the semantic meaning is preserved across conversions + + // Arrange - Test with realistic container task scenarios + var identityResourceId = "/subscriptions/12345678-1234-1234-1234-123456789abc/resourceGroups/batch-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/container-identity"; + var psIdentityRef = new PSComputeNodeIdentityReference { ResourceId = identityResourceId }; + var psRegistry = new PSContainerRegistry( + userName: "batchuser", + password: "batchpass", + registryServer: "batchregistry.azurecr.io", + identityReference: psIdentityRef); + + var psBindMounts = new List + { + new PSContainerHostBatchBindMountEntry { Source = "Shared", IsReadOnly = false }, + new PSContainerHostBatchBindMountEntry { Source = "Applications", IsReadOnly = true }, + new PSContainerHostBatchBindMountEntry { Source = "Task", IsReadOnly = false } + }; + + var psContainerSettings = new PSTaskContainerSettings( + imageName: "mcr.microsoft.com/dotnet/runtime:6.0", + containerRunOptions: "--memory=2g --cpus=1.5", + registry: psRegistry, + workingDirectory: Microsoft.Azure.Batch.Common.ContainerWorkingDirectory.TaskWorkingDirectory); + + psContainerSettings.ContainerHostBatchBindMounts = psBindMounts; + + // Act + var mgmtSettings = psContainerSettings.toMgmtContainerConfiguration(); + var backToPs = PSTaskContainerSettings.fromMgmtContainerConfiguration(mgmtSettings); + + // Assert + Assert.NotNull(mgmtSettings); + Assert.NotNull(backToPs); + + // Verify semantic equivalence + Assert.Equal("mcr.microsoft.com/dotnet/runtime:6.0", mgmtSettings.ImageName); + Assert.Equal("--memory=2g --cpus=1.5", mgmtSettings.ContainerRunOptions); + Assert.Equal(ContainerWorkingDirectory.TaskWorkingDirectory, mgmtSettings.WorkingDirectory); + Assert.NotNull(mgmtSettings.Registry); + Assert.Equal("batchregistry.azurecr.io", mgmtSettings.Registry.RegistryServer); + Assert.Equal(3, mgmtSettings.ContainerHostBatchBindMounts.Count); + + Assert.Equal("mcr.microsoft.com/dotnet/runtime:6.0", backToPs.ImageName); + Assert.Equal("--memory=2g --cpus=1.5", backToPs.ContainerRunOptions); + Assert.Equal(Microsoft.Azure.Batch.Common.ContainerWorkingDirectory.TaskWorkingDirectory, backToPs.WorkingDirectory); + Assert.NotNull(backToPs.Registry); + Assert.Equal("batchregistry.azurecr.io", backToPs.Registry.RegistryServer); + Assert.Equal(3, backToPs.ContainerHostBatchBindMounts.Count); + } + + [Fact] + public void TaskContainerSettingsConversions_NullHandling_WorksCorrectly() + { + // Test null handling in conversions + + // Act + var resultFromNull = PSTaskContainerSettings.fromMgmtContainerConfiguration(null); + + // Assert + Assert.Null(resultFromNull); + } + + [Fact] + public void TaskContainerSettingsConversions_BatchContainerContext_VerifyCorrectUsage() + { + // This test validates the conversions work correctly in the context of Batch container tasks + // TaskContainerSettings is used to configure containerized tasks in Azure Batch + + // Arrange - Test with different container scenarios + var containerScenarios = new[] + { + // Data processing scenario + new { + ImageName = "python:3.9-slim", + ContainerRunOptions = "--memory=4g --volume /data:/app/data", + WorkingDirectory = Microsoft.Azure.Batch.Common.ContainerWorkingDirectory.TaskWorkingDirectory, + Description = "Python data processing with task working directory" + }, + // Web application scenario + new { + ImageName = "nginx:alpine", + ContainerRunOptions = "--publish 80:80", + WorkingDirectory = Microsoft.Azure.Batch.Common.ContainerWorkingDirectory.ContainerImageDefault, + Description = "Web server using container default working directory" + }, + // Machine learning scenario + new { + ImageName = "tensorflow/tensorflow:2.8.0-gpu", + ContainerRunOptions = "--gpus all --shm-size=1g", + WorkingDirectory = Microsoft.Azure.Batch.Common.ContainerWorkingDirectory.TaskWorkingDirectory, + Description = "GPU-enabled ML workload with task working directory" + } + }; + + foreach (var scenario in containerScenarios) + { + // Arrange + var psContainerSettings = new PSTaskContainerSettings( + imageName: scenario.ImageName, + containerRunOptions: scenario.ContainerRunOptions, + workingDirectory: scenario.WorkingDirectory); + + // Act + var mgmtSettings = psContainerSettings.toMgmtContainerConfiguration(); + + // Assert - Should convert correctly for Batch container task configuration + Assert.NotNull(mgmtSettings); + Assert.Equal(scenario.ImageName, mgmtSettings.ImageName); + Assert.Equal(scenario.ContainerRunOptions, mgmtSettings.ContainerRunOptions); + + var expectedMgmtWorkingDirectory = scenario.WorkingDirectory == Microsoft.Azure.Batch.Common.ContainerWorkingDirectory.TaskWorkingDirectory + ? ContainerWorkingDirectory.TaskWorkingDirectory + : ContainerWorkingDirectory.ContainerImageDefault; + Assert.Equal(expectedMgmtWorkingDirectory, mgmtSettings.WorkingDirectory); + + // Verify round-trip conversion maintains container task semantics + var backToPs = PSTaskContainerSettings.fromMgmtContainerConfiguration(mgmtSettings); + Assert.NotNull(backToPs); + Assert.Equal(scenario.ImageName, backToPs.ImageName); + Assert.Equal(scenario.ContainerRunOptions, backToPs.ContainerRunOptions); + Assert.Equal(scenario.WorkingDirectory, backToPs.WorkingDirectory); + } + } + + [Fact] + public void TaskContainerSettingsConversions_InstanceCreation_VerifyBehavior() + { + // This test verifies that the conversion methods create appropriate instances + + // Arrange + var identityResourceId = "/subscriptions/test/resourceGroups/test/providers/Microsoft.ManagedIdentity/userAssignedIdentities/test"; + var psIdentityRef = new PSComputeNodeIdentityReference { ResourceId = identityResourceId }; + var psRegistry = new PSContainerRegistry( + userName: "testuser", + password: "testpass", + registryServer: "test.azurecr.io", + identityReference: psIdentityRef); + + var psContainerSettings = new PSTaskContainerSettings( + imageName: "ubuntu:20.04", + containerRunOptions: "--rm", + registry: psRegistry); + + var mgmtIdentityRef = new ComputeNodeIdentityReference(identityResourceId); + var mgmtRegistry = new ContainerRegistry( + userName: "testuser", + password: "testpass", + registryServer: "test.azurecr.io", + identityReference: mgmtIdentityRef); + + var mgmtContainerSettings = new TaskContainerSettings( + imageName: "ubuntu:20.04", + containerRunOptions: "--rm", + registry: mgmtRegistry); + + // Act + var mgmtResult = psContainerSettings.toMgmtContainerConfiguration(); + var psResult = PSTaskContainerSettings.fromMgmtContainerConfiguration(mgmtContainerSettings); + + // Assert - Verify proper instance creation + Assert.NotNull(mgmtResult); + Assert.NotNull(psResult); + Assert.IsType(mgmtResult); + Assert.IsType(psResult); + + // Verify new instances are created + Assert.NotSame(mgmtContainerSettings, mgmtResult); + Assert.NotSame(psContainerSettings, psResult); + } + + #endregion + + #region Performance and Edge Case Tests + + [Fact] + public void TaskContainerSettingsConversions_PerformanceTest_ExecutesQuickly() + { + // This test ensures the conversions are efficient + + // Arrange + var identityResourceId = "/subscriptions/12345678-1234-1234-1234-123456789abc/resourceGroups/test/providers/Microsoft.ManagedIdentity/userAssignedIdentities/test"; + var psIdentityRef = new PSComputeNodeIdentityReference { ResourceId = identityResourceId }; + var psRegistry = new PSContainerRegistry( + userName: "testuser", + password: "testpass", + registryServer: "test.azurecr.io", + identityReference: psIdentityRef); + + var psBindMounts = new List + { + new PSContainerHostBatchBindMountEntry { Source = "Shared", IsReadOnly = false } + }; + + var psContainerSettings = new PSTaskContainerSettings( + imageName: "ubuntu:20.04", + containerRunOptions: "--rm", + registry: psRegistry, + workingDirectory: Microsoft.Azure.Batch.Common.ContainerWorkingDirectory.TaskWorkingDirectory); + psContainerSettings.ContainerHostBatchBindMounts = psBindMounts; + + var mgmtIdentityRef = new ComputeNodeIdentityReference(identityResourceId); + var mgmtRegistry = new ContainerRegistry( + userName: "testuser", + password: "testpass", + registryServer: "test.azurecr.io", + identityReference: mgmtIdentityRef); + + var mgmtBindMounts = new List + { + new ContainerHostBatchBindMountEntry("Shared", false) + }; + + var mgmtContainerSettings = new TaskContainerSettings( + imageName: "ubuntu:20.04", + containerRunOptions: "--rm", + registry: mgmtRegistry, + workingDirectory: ContainerWorkingDirectory.TaskWorkingDirectory, + containerHostBatchBindMounts: mgmtBindMounts); + + // Act & Assert - Multiple conversions should complete without delay + for (int i = 0; i < 100; i++) + { + var mgmtResult = psContainerSettings.toMgmtContainerConfiguration(); + var psResult = PSTaskContainerSettings.fromMgmtContainerConfiguration(mgmtContainerSettings); + + Assert.NotNull(mgmtResult); + Assert.NotNull(psResult); + Assert.Equal("ubuntu:20.04", mgmtResult.ImageName); + Assert.Equal("ubuntu:20.04", psResult.ImageName); + } + } + + [Fact] + public void TaskContainerSettingsConversions_EdgeCaseValues_HandleCorrectly() + { + // Test conversion with various edge case values + + var testContainerSettings = new[] + { + // Standard containers + new { ImageName = "ubuntu:20.04", ContainerRunOptions = "--rm" }, + new { ImageName = "nginx:alpine", ContainerRunOptions = "--publish 80:80" }, + new { ImageName = "python:3.9", ContainerRunOptions = "--volume /data:/app" }, + // Microsoft Container Registry + new { ImageName = "mcr.microsoft.com/dotnet/runtime:6.0", ContainerRunOptions = "--memory=1g" }, + // Docker Hub with organization + new { ImageName = "tensorflow/tensorflow:2.8.0", ContainerRunOptions = "--gpus all" }, + // Private registry + new { ImageName = "myregistry.azurecr.io/myapp:v1.0", ContainerRunOptions = "--network=host" }, + // Edge cases + new { ImageName = "", ContainerRunOptions = "" }, + new { ImageName = "busybox", ContainerRunOptions = (string)null }, + new { ImageName = "alpine:latest", ContainerRunOptions = " " }, // Whitespace + new { ImageName = "very-long-registry-name.azurecr.io/very-long-image-name:very-long-tag-for-testing", ContainerRunOptions = "--memory=4g --cpus=2.5 --volume=/very/long/path/for/testing:/app/data" } + }; + + foreach (var testSetting in testContainerSettings) + { + // Arrange + var psContainerSettings = new PSTaskContainerSettings( + imageName: testSetting.ImageName, + containerRunOptions: testSetting.ContainerRunOptions); + + // Act + var mgmtResult = psContainerSettings.toMgmtContainerConfiguration(); + var roundTripResult = PSTaskContainerSettings.fromMgmtContainerConfiguration(mgmtResult); + + // Assert + Assert.NotNull(mgmtResult); + Assert.NotNull(roundTripResult); + Assert.Equal(testSetting.ImageName, mgmtResult.ImageName); + Assert.Equal(testSetting.ContainerRunOptions, mgmtResult.ContainerRunOptions); + Assert.Equal(testSetting.ImageName, roundTripResult.ImageName); + Assert.Equal(testSetting.ContainerRunOptions, roundTripResult.ContainerRunOptions); + } + } + + #endregion + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Test/Models/PSTaskSchedulingPolicyTests.cs b/src/Batch/Batch.Test/Models/PSTaskSchedulingPolicyTests.cs new file mode 100644 index 000000000000..0150489d3829 --- /dev/null +++ b/src/Batch/Batch.Test/Models/PSTaskSchedulingPolicyTests.cs @@ -0,0 +1,491 @@ +// ----------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ----------------------------------------------------------------------------- + +using Microsoft.Azure.Commands.Batch.Models; +using Microsoft.Azure.Management.Batch.Models; +using System; +using Xunit; + +namespace Microsoft.Azure.Commands.Batch.Test.ModelsConversions +{ + public class PSTaskSchedulingPolicyTests + { + #region toMgmtTaskSchedulingPolicy Tests + + [Fact] + public void ToMgmtTaskSchedulingPolicy_WithPackFillType_ReturnsCorrectMapping() + { + // Arrange + var psPolicy = new PSTaskSchedulingPolicy(Microsoft.Azure.Batch.Common.ComputeNodeFillType.Pack); + + // Act + var result = psPolicy.toMgmtTaskSchedulingPolicy(); + + // Assert + Assert.NotNull(result); + Assert.Equal(ComputeNodeFillType.Pack, result.NodeFillType); + } + + [Fact] + public void ToMgmtTaskSchedulingPolicy_WithSpreadFillType_ReturnsCorrectMapping() + { + // Arrange + var psPolicy = new PSTaskSchedulingPolicy(Microsoft.Azure.Batch.Common.ComputeNodeFillType.Spread); + + // Act + var result = psPolicy.toMgmtTaskSchedulingPolicy(); + + // Assert + Assert.NotNull(result); + Assert.Equal(ComputeNodeFillType.Spread, result.NodeFillType); + } + + [Theory] + [InlineData(Microsoft.Azure.Batch.Common.ComputeNodeFillType.Pack, ComputeNodeFillType.Pack)] + [InlineData(Microsoft.Azure.Batch.Common.ComputeNodeFillType.Spread, ComputeNodeFillType.Spread)] + public void ToMgmtTaskSchedulingPolicy_AllValidComputeNodeFillTypes_ReturnsCorrectMapping( + Microsoft.Azure.Batch.Common.ComputeNodeFillType psComputeNodeFillType, + ComputeNodeFillType expectedMgmtComputeNodeFillType) + { + // Arrange + var psPolicy = new PSTaskSchedulingPolicy(psComputeNodeFillType); + + // Act + var result = psPolicy.toMgmtTaskSchedulingPolicy(); + + // Assert + Assert.NotNull(result); + Assert.Equal(expectedMgmtComputeNodeFillType, result.NodeFillType); + } + + [Fact] + public void ToMgmtTaskSchedulingPolicy_AlwaysCreatesNewInstance() + { + // Arrange + var psPolicy = new PSTaskSchedulingPolicy(Microsoft.Azure.Batch.Common.ComputeNodeFillType.Pack); + + // Act + var result1 = psPolicy.toMgmtTaskSchedulingPolicy(); + var result2 = psPolicy.toMgmtTaskSchedulingPolicy(); + + // Assert + Assert.NotNull(result1); + Assert.NotNull(result2); + Assert.NotSame(result1, result2); + } + + [Fact] + public void ToMgmtTaskSchedulingPolicy_VerifyTaskSchedulingPolicyType() + { + // Arrange + var psPolicy = new PSTaskSchedulingPolicy(Microsoft.Azure.Batch.Common.ComputeNodeFillType.Spread); + + // Act + var result = psPolicy.toMgmtTaskSchedulingPolicy(); + + // Assert + Assert.NotNull(result); + Assert.IsType(result); + } + + [Fact] + public void ToMgmtTaskSchedulingPolicy_PackStrategy_SemanticsPreserved() + { + // Arrange - Pack strategy fills each node completely before moving to next + var psPolicy = new PSTaskSchedulingPolicy(Microsoft.Azure.Batch.Common.ComputeNodeFillType.Pack); + + // Act + var result = psPolicy.toMgmtTaskSchedulingPolicy(); + + // Assert + Assert.NotNull(result); + Assert.Equal(ComputeNodeFillType.Pack, result.NodeFillType); + // Pack semantics: As many tasks as possible should be assigned to each node before moving to next + } + + [Fact] + public void ToMgmtTaskSchedulingPolicy_SpreadStrategy_SemanticsPreserved() + { + // Arrange - Spread strategy distributes tasks evenly across all nodes + var psPolicy = new PSTaskSchedulingPolicy(Microsoft.Azure.Batch.Common.ComputeNodeFillType.Spread); + + // Act + var result = psPolicy.toMgmtTaskSchedulingPolicy(); + + // Assert + Assert.NotNull(result); + Assert.Equal(ComputeNodeFillType.Spread, result.NodeFillType); + // Spread semantics: Tasks should be assigned evenly across all nodes in the pool + } + + #endregion + + #region fromMgmtTaskSchedulingPolicy Tests + + [Fact] + public void FromMgmtTaskSchedulingPolicy_WithPackFillType_ReturnsCorrectMapping() + { + // Arrange + var psPolicy = new PSTaskSchedulingPolicy(Microsoft.Azure.Batch.Common.ComputeNodeFillType.Spread); + var mgmtPolicy = new TaskSchedulingPolicy(ComputeNodeFillType.Pack); + + // Act + var result = psPolicy.fromMgmtTaskSchedulingPolicy(mgmtPolicy); + + // Assert + Assert.NotNull(result); + Assert.Equal(Microsoft.Azure.Batch.Common.ComputeNodeFillType.Pack, result.ComputeNodeFillType); + } + + [Fact] + public void FromMgmtTaskSchedulingPolicy_WithSpreadFillType_ReturnsCorrectMapping() + { + // Arrange + var psPolicy = new PSTaskSchedulingPolicy(Microsoft.Azure.Batch.Common.ComputeNodeFillType.Pack); + var mgmtPolicy = new TaskSchedulingPolicy(ComputeNodeFillType.Spread); + + // Act + var result = psPolicy.fromMgmtTaskSchedulingPolicy(mgmtPolicy); + + // Assert + Assert.NotNull(result); + Assert.Equal(Microsoft.Azure.Batch.Common.ComputeNodeFillType.Spread, result.ComputeNodeFillType); + } + + [Theory] + [InlineData(ComputeNodeFillType.Pack, Microsoft.Azure.Batch.Common.ComputeNodeFillType.Pack)] + [InlineData(ComputeNodeFillType.Spread, Microsoft.Azure.Batch.Common.ComputeNodeFillType.Spread)] + public void FromMgmtTaskSchedulingPolicy_AllValidComputeNodeFillTypes_ReturnsCorrectMapping( + ComputeNodeFillType mgmtComputeNodeFillType, + Microsoft.Azure.Batch.Common.ComputeNodeFillType expectedPsComputeNodeFillType) + { + // Arrange + var psPolicy = new PSTaskSchedulingPolicy(Microsoft.Azure.Batch.Common.ComputeNodeFillType.Pack); + var mgmtPolicy = new TaskSchedulingPolicy(mgmtComputeNodeFillType); + + // Act + var result = psPolicy.fromMgmtTaskSchedulingPolicy(mgmtPolicy); + + // Assert + Assert.NotNull(result); + Assert.Equal(expectedPsComputeNodeFillType, result.ComputeNodeFillType); + } + + [Fact] + public void FromMgmtTaskSchedulingPolicy_WithNullMgmtPolicy_ReturnsNull() + { + // Arrange + var psPolicy = new PSTaskSchedulingPolicy(Microsoft.Azure.Batch.Common.ComputeNodeFillType.Pack); + + // Act + var result = psPolicy.fromMgmtTaskSchedulingPolicy(null); + + // Assert + Assert.Null(result); + } + + [Fact] + public void FromMgmtTaskSchedulingPolicy_CreatesNewInstance_NotSameReference() + { + // Arrange + var psPolicy = new PSTaskSchedulingPolicy(Microsoft.Azure.Batch.Common.ComputeNodeFillType.Pack); + var mgmtPolicy = new TaskSchedulingPolicy(ComputeNodeFillType.Spread); + + // Act + var result = psPolicy.fromMgmtTaskSchedulingPolicy(mgmtPolicy); + + // Assert + Assert.NotNull(result); + Assert.NotSame(psPolicy, result); + } + + [Fact] + public void FromMgmtTaskSchedulingPolicy_VerifyPSTaskSchedulingPolicyType() + { + // Arrange + var psPolicy = new PSTaskSchedulingPolicy(Microsoft.Azure.Batch.Common.ComputeNodeFillType.Pack); + var mgmtPolicy = new TaskSchedulingPolicy(ComputeNodeFillType.Spread); + + // Act + var result = psPolicy.fromMgmtTaskSchedulingPolicy(mgmtPolicy); + + // Assert + Assert.NotNull(result); + Assert.IsType(result); + } + + [Fact] + public void FromMgmtTaskSchedulingPolicy_PackStrategy_SemanticsPreserved() + { + // Arrange + var psPolicy = new PSTaskSchedulingPolicy(Microsoft.Azure.Batch.Common.ComputeNodeFillType.Spread); + var mgmtPolicy = new TaskSchedulingPolicy(ComputeNodeFillType.Pack); + + // Act + var result = psPolicy.fromMgmtTaskSchedulingPolicy(mgmtPolicy); + + // Assert + Assert.NotNull(result); + Assert.Equal(Microsoft.Azure.Batch.Common.ComputeNodeFillType.Pack, result.ComputeNodeFillType); + // Pack semantics preserved: Fill each node completely before moving to next + } + + [Fact] + public void FromMgmtTaskSchedulingPolicy_SpreadStrategy_SemanticsPreserved() + { + // Arrange + var psPolicy = new PSTaskSchedulingPolicy(Microsoft.Azure.Batch.Common.ComputeNodeFillType.Pack); + var mgmtPolicy = new TaskSchedulingPolicy(ComputeNodeFillType.Spread); + + // Act + var result = psPolicy.fromMgmtTaskSchedulingPolicy(mgmtPolicy); + + // Assert + Assert.NotNull(result); + Assert.Equal(Microsoft.Azure.Batch.Common.ComputeNodeFillType.Spread, result.ComputeNodeFillType); + // Spread semantics preserved: Distribute tasks evenly across all nodes + } + + [Fact] + public void FromMgmtTaskSchedulingPolicy_WithDefaultTaskSchedulingPolicy_HandlesCorrectly() + { + // Arrange + var psPolicy = new PSTaskSchedulingPolicy(Microsoft.Azure.Batch.Common.ComputeNodeFillType.Pack); + var mgmtPolicy = new TaskSchedulingPolicy(); // Uses default constructor + + // Act + var result = psPolicy.fromMgmtTaskSchedulingPolicy(mgmtPolicy); + + // Assert + Assert.NotNull(result); + // The result should handle the default NodeFillType from the management policy + Assert.True(Enum.IsDefined(typeof(Microsoft.Azure.Batch.Common.ComputeNodeFillType), result.ComputeNodeFillType)); + } + + #endregion + + #region Round-trip Conversion Tests + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesPackValue() + { + // Arrange + var originalPsPolicy = new PSTaskSchedulingPolicy(Microsoft.Azure.Batch.Common.ComputeNodeFillType.Pack); + + // Act + var mgmtPolicy = originalPsPolicy.toMgmtTaskSchedulingPolicy(); + var roundTripPsPolicy = new PSTaskSchedulingPolicy(Microsoft.Azure.Batch.Common.ComputeNodeFillType.Spread) + .fromMgmtTaskSchedulingPolicy(mgmtPolicy); + + // Assert + Assert.NotNull(roundTripPsPolicy); + Assert.Equal(originalPsPolicy.ComputeNodeFillType, roundTripPsPolicy.ComputeNodeFillType); + Assert.Equal(Microsoft.Azure.Batch.Common.ComputeNodeFillType.Pack, roundTripPsPolicy.ComputeNodeFillType); + } + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesSpreadValue() + { + // Arrange + var originalPsPolicy = new PSTaskSchedulingPolicy(Microsoft.Azure.Batch.Common.ComputeNodeFillType.Spread); + + // Act + var mgmtPolicy = originalPsPolicy.toMgmtTaskSchedulingPolicy(); + var roundTripPsPolicy = new PSTaskSchedulingPolicy(Microsoft.Azure.Batch.Common.ComputeNodeFillType.Pack) + .fromMgmtTaskSchedulingPolicy(mgmtPolicy); + + // Assert + Assert.NotNull(roundTripPsPolicy); + Assert.Equal(originalPsPolicy.ComputeNodeFillType, roundTripPsPolicy.ComputeNodeFillType); + Assert.Equal(Microsoft.Azure.Batch.Common.ComputeNodeFillType.Spread, roundTripPsPolicy.ComputeNodeFillType); + } + + [Theory] + [InlineData(Microsoft.Azure.Batch.Common.ComputeNodeFillType.Pack)] + [InlineData(Microsoft.Azure.Batch.Common.ComputeNodeFillType.Spread)] + public void RoundTripConversion_AllValidValues_PreservesOriginalValue( + Microsoft.Azure.Batch.Common.ComputeNodeFillType originalFillType) + { + // Arrange + var originalPsPolicy = new PSTaskSchedulingPolicy(originalFillType); + + // Act + var mgmtPolicy = originalPsPolicy.toMgmtTaskSchedulingPolicy(); + var roundTripPsPolicy = new PSTaskSchedulingPolicy(Microsoft.Azure.Batch.Common.ComputeNodeFillType.Pack) + .fromMgmtTaskSchedulingPolicy(mgmtPolicy); + + // Assert + Assert.NotNull(roundTripPsPolicy); + Assert.Equal(originalFillType, roundTripPsPolicy.ComputeNodeFillType); + } + + [Fact] + public void RoundTripConversion_FromMgmtAndToMgmt_PreservesValues() + { + // Arrange + var originalMgmtPolicy = new TaskSchedulingPolicy(ComputeNodeFillType.Pack); + + // Act + var psPolicy = new PSTaskSchedulingPolicy(Microsoft.Azure.Batch.Common.ComputeNodeFillType.Spread) + .fromMgmtTaskSchedulingPolicy(originalMgmtPolicy); + var roundTripMgmtPolicy = psPolicy.toMgmtTaskSchedulingPolicy(); + + // Assert + Assert.NotNull(roundTripMgmtPolicy); + Assert.Equal(originalMgmtPolicy.NodeFillType, roundTripMgmtPolicy.NodeFillType); + Assert.Equal(ComputeNodeFillType.Pack, roundTripMgmtPolicy.NodeFillType); + } + + #endregion + + #region Integration Tests + + [Fact] + public void TaskSchedulingPolicyConversions_BothDirections_MaintainSemanticEquivalence() + { + // This test ensures that the semantic meaning is preserved across conversions + + // Test Pack semantics - Tasks fill each node before moving to the next + var psPack = new PSTaskSchedulingPolicy(Microsoft.Azure.Batch.Common.ComputeNodeFillType.Pack); + var mgmtPack = psPack.toMgmtTaskSchedulingPolicy(); + var backToPs = new PSTaskSchedulingPolicy(Microsoft.Azure.Batch.Common.ComputeNodeFillType.Spread) + .fromMgmtTaskSchedulingPolicy(mgmtPack); + + Assert.Equal(ComputeNodeFillType.Pack, mgmtPack.NodeFillType); + Assert.Equal(Microsoft.Azure.Batch.Common.ComputeNodeFillType.Pack, backToPs.ComputeNodeFillType); + + // Test Spread semantics - Tasks are distributed evenly across nodes + var psSpread = new PSTaskSchedulingPolicy(Microsoft.Azure.Batch.Common.ComputeNodeFillType.Spread); + var mgmtSpread = psSpread.toMgmtTaskSchedulingPolicy(); + var backToPsSpread = new PSTaskSchedulingPolicy(Microsoft.Azure.Batch.Common.ComputeNodeFillType.Pack) + .fromMgmtTaskSchedulingPolicy(mgmtSpread); + + Assert.Equal(ComputeNodeFillType.Spread, mgmtSpread.NodeFillType); + Assert.Equal(Microsoft.Azure.Batch.Common.ComputeNodeFillType.Spread, backToPsSpread.ComputeNodeFillType); + } + + [Fact] + public void TaskSchedulingPolicyConversions_NullHandling_WorksCorrectly() + { + // Arrange + var psPolicy = new PSTaskSchedulingPolicy(Microsoft.Azure.Batch.Common.ComputeNodeFillType.Pack); + + // Act + var resultFromNull = psPolicy.fromMgmtTaskSchedulingPolicy(null); + + // Assert + Assert.Null(resultFromNull); + } + + [Fact] + public void TaskSchedulingPolicyConversions_PoolSchedulingContext_VerifyCorrectUsage() + { + // This test validates the conversions work correctly in the context of pool task scheduling + // TaskSchedulingPolicy is used to determine how tasks are assigned to compute nodes + + // Arrange - Test Pack strategy for CPU-intensive workloads + var packPolicy = new PSTaskSchedulingPolicy(Microsoft.Azure.Batch.Common.ComputeNodeFillType.Pack); + var mgmtPackPolicy = packPolicy.toMgmtTaskSchedulingPolicy(); + + // Act & Assert - Pack should convert correctly for maximizing resource utilization per node + Assert.Equal(ComputeNodeFillType.Pack, mgmtPackPolicy.NodeFillType); + + // Arrange - Test Spread strategy for memory-intensive workloads + var spreadPolicy = new PSTaskSchedulingPolicy(Microsoft.Azure.Batch.Common.ComputeNodeFillType.Spread); + var mgmtSpreadPolicy = spreadPolicy.toMgmtTaskSchedulingPolicy(); + + // Act & Assert - Spread should convert correctly for load balancing across nodes + Assert.Equal(ComputeNodeFillType.Spread, mgmtSpreadPolicy.NodeFillType); + + // Verify round-trip conversion maintains pool scheduling semantics + var backToPack = new PSTaskSchedulingPolicy(Microsoft.Azure.Batch.Common.ComputeNodeFillType.Spread) + .fromMgmtTaskSchedulingPolicy(mgmtPackPolicy); + var backToSpread = new PSTaskSchedulingPolicy(Microsoft.Azure.Batch.Common.ComputeNodeFillType.Pack) + .fromMgmtTaskSchedulingPolicy(mgmtSpreadPolicy); + + Assert.Equal(Microsoft.Azure.Batch.Common.ComputeNodeFillType.Pack, backToPack.ComputeNodeFillType); + Assert.Equal(Microsoft.Azure.Batch.Common.ComputeNodeFillType.Spread, backToSpread.ComputeNodeFillType); + } + + [Fact] + public void TaskSchedulingPolicyConversions_InstanceCreation_VerifyBehavior() + { + // This test verifies that the conversion methods create appropriate instances + + // Arrange + var psPolicy = new PSTaskSchedulingPolicy(Microsoft.Azure.Batch.Common.ComputeNodeFillType.Pack); + var mgmtPolicy = new TaskSchedulingPolicy(ComputeNodeFillType.Spread); + + // Act + var mgmtResult = psPolicy.toMgmtTaskSchedulingPolicy(); + var psResult = psPolicy.fromMgmtTaskSchedulingPolicy(mgmtPolicy); + + // Assert - Verify proper instance creation + Assert.NotNull(mgmtResult); + Assert.NotNull(psResult); + Assert.IsType(mgmtResult); + Assert.IsType(psResult); + + // Verify new instances are created + Assert.NotSame(mgmtPolicy, mgmtResult); + Assert.NotSame(psPolicy, psResult); + } + + #endregion + + #region Performance and Edge Case Tests + + [Fact] + public void TaskSchedulingPolicyConversions_PerformanceTest_ExecutesQuickly() + { + // This test ensures the conversions are efficient + + // Arrange + var psPolicy = new PSTaskSchedulingPolicy(Microsoft.Azure.Batch.Common.ComputeNodeFillType.Pack); + var mgmtPolicy = new TaskSchedulingPolicy(ComputeNodeFillType.Spread); + + // Act & Assert - Multiple conversions should complete without delay + for (int i = 0; i < 100; i++) + { + var mgmtResult = psPolicy.toMgmtTaskSchedulingPolicy(); + var psResult = psPolicy.fromMgmtTaskSchedulingPolicy(mgmtPolicy); + + Assert.NotNull(mgmtResult); + Assert.NotNull(psResult); + } + } + + [Fact] + public void TaskSchedulingPolicyConversions_DefaultValues_HandleCorrectly() + { + // Test conversion with default enum values + + // Arrange + var defaultPsPolicy = new PSTaskSchedulingPolicy(default(Microsoft.Azure.Batch.Common.ComputeNodeFillType)); + var defaultMgmtPolicy = new TaskSchedulingPolicy(); // Uses default NodeFillType + + // Act + var mgmtResult = defaultPsPolicy.toMgmtTaskSchedulingPolicy(); + var psResult = defaultPsPolicy.fromMgmtTaskSchedulingPolicy(defaultMgmtPolicy); + + // Assert + Assert.NotNull(mgmtResult); + Assert.NotNull(psResult); + Assert.True(Enum.IsDefined(typeof(ComputeNodeFillType), mgmtResult.NodeFillType)); + Assert.True(Enum.IsDefined(typeof(Microsoft.Azure.Batch.Common.ComputeNodeFillType), psResult.ComputeNodeFillType)); + } + + #endregion + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Test/Models/PSUpgradePolicyTests.cs b/src/Batch/Batch.Test/Models/PSUpgradePolicyTests.cs new file mode 100644 index 000000000000..16bf01148f0b --- /dev/null +++ b/src/Batch/Batch.Test/Models/PSUpgradePolicyTests.cs @@ -0,0 +1,528 @@ +// ----------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ----------------------------------------------------------------------------- + +using Microsoft.Azure.Commands.Batch.Models; +using Microsoft.Azure.Management.Batch.Models; +using System; +using Xunit; + +namespace Microsoft.Azure.Commands.Batch.Test.ModelsConversions +{ + public class PSUpgradePolicyTests + { + #region toMgmtUpgradePolicy Tests + + [Fact] + public void ToMgmtUpgradePolicy_WithValidCompletePolicy_ReturnsCorrectMapping() + { + // Arrange + var psPolicy = new PSUpgradePolicy(Microsoft.Azure.Batch.Common.UpgradeMode.Rolling) + { + AutomaticOSUpgradePolicy = new PSAutomaticOSUpgradePolicy + { + EnableAutomaticOSUpgrade = true, + DisableAutomaticRollback = false, + OsRollingUpgradeDeferral = true, + UseRollingUpgradePolicy = true + }, + RollingUpgradePolicy = new PSRollingUpgradePolicy + { + EnableCrossZoneUpgrade = true, + MaxBatchInstancePercent = 20, + MaxUnhealthyInstancePercent = 25, + MaxUnhealthyUpgradedInstancePercent = 30, + PauseTimeBetweenBatches = TimeSpan.FromMinutes(5), + PrioritizeUnhealthyInstances = false, + RollbackFailedInstancesOnPolicyBreach = true + } + }; + + // Act + var result = psPolicy.toMgmtUpgradePolicy(); + + // Assert + Assert.NotNull(result); + Assert.Equal(UpgradeMode.Rolling, result.Mode); + + // Verify AutomaticOSUpgradePolicy mapping + Assert.NotNull(result.AutomaticOSUpgradePolicy); + Assert.Equal(true, result.AutomaticOSUpgradePolicy.EnableAutomaticOSUpgrade); + Assert.Equal(false, result.AutomaticOSUpgradePolicy.DisableAutomaticRollback); + Assert.Equal(true, result.AutomaticOSUpgradePolicy.OSRollingUpgradeDeferral); + Assert.Equal(true, result.AutomaticOSUpgradePolicy.UseRollingUpgradePolicy); + + // Verify RollingUpgradePolicy mapping + Assert.NotNull(result.RollingUpgradePolicy); + Assert.Equal(true, result.RollingUpgradePolicy.EnableCrossZoneUpgrade); + Assert.Equal(20, result.RollingUpgradePolicy.MaxBatchInstancePercent); + Assert.Equal(25, result.RollingUpgradePolicy.MaxUnhealthyInstancePercent); + Assert.Equal(30, result.RollingUpgradePolicy.MaxUnhealthyUpgradedInstancePercent); + Assert.Equal("PT5M", result.RollingUpgradePolicy.PauseTimeBetweenBatches); + Assert.Equal(false, result.RollingUpgradePolicy.PrioritizeUnhealthyInstances); + Assert.Equal(true, result.RollingUpgradePolicy.RollbackFailedInstancesOnPolicyBreach); + } + + [Fact] + public void ToMgmtUpgradePolicy_WithManualMode_ReturnsCorrectMode() + { + // Arrange + var psPolicy = new PSUpgradePolicy(Microsoft.Azure.Batch.Common.UpgradeMode.Manual) + { + AutomaticOSUpgradePolicy = new PSAutomaticOSUpgradePolicy(), + RollingUpgradePolicy = new PSRollingUpgradePolicy() + }; + + // Act + var result = psPolicy.toMgmtUpgradePolicy(); + + // Assert + Assert.NotNull(result); + Assert.Equal(UpgradeMode.Manual, result.Mode); + } + + [Fact] + public void ToMgmtUpgradePolicy_WithAutomaticMode_ReturnsCorrectMode() + { + // Arrange + var psPolicy = new PSUpgradePolicy(Microsoft.Azure.Batch.Common.UpgradeMode.Automatic) + { + AutomaticOSUpgradePolicy = new PSAutomaticOSUpgradePolicy(), + RollingUpgradePolicy = new PSRollingUpgradePolicy() + }; + + // Act + var result = psPolicy.toMgmtUpgradePolicy(); + + // Assert + Assert.NotNull(result); + Assert.Equal(UpgradeMode.Automatic, result.Mode); + } + + [Theory] + [InlineData(Microsoft.Azure.Batch.Common.UpgradeMode.Manual, UpgradeMode.Manual)] + [InlineData(Microsoft.Azure.Batch.Common.UpgradeMode.Automatic, UpgradeMode.Automatic)] + [InlineData(Microsoft.Azure.Batch.Common.UpgradeMode.Rolling, UpgradeMode.Rolling)] + public void ToMgmtUpgradePolicy_VariousUpgradeModes_ReturnsCorrectMapping( + Microsoft.Azure.Batch.Common.UpgradeMode psMode, + UpgradeMode expectedMgmtMode) + { + // Arrange + var psPolicy = new PSUpgradePolicy(psMode) + { + AutomaticOSUpgradePolicy = new PSAutomaticOSUpgradePolicy(), + RollingUpgradePolicy = new PSRollingUpgradePolicy() + }; + + // Act + var result = psPolicy.toMgmtUpgradePolicy(); + + // Assert + Assert.NotNull(result); + Assert.Equal(expectedMgmtMode, result.Mode); + } + + [Fact] + public void ToMgmtUpgradePolicy_WithNullSubPolicies_HandlesNullValues() + { + // Arrange + var psPolicy = new PSUpgradePolicy(Microsoft.Azure.Batch.Common.UpgradeMode.Manual) + { + AutomaticOSUpgradePolicy = new PSAutomaticOSUpgradePolicy + { + EnableAutomaticOSUpgrade = null, + DisableAutomaticRollback = null, + OsRollingUpgradeDeferral = null, + UseRollingUpgradePolicy = null + }, + RollingUpgradePolicy = new PSRollingUpgradePolicy + { + EnableCrossZoneUpgrade = null, + MaxBatchInstancePercent = null, + MaxUnhealthyInstancePercent = null, + MaxUnhealthyUpgradedInstancePercent = null, + PauseTimeBetweenBatches = null, + PrioritizeUnhealthyInstances = null, + RollbackFailedInstancesOnPolicyBreach = null + } + }; + + // Act + var result = psPolicy.toMgmtUpgradePolicy(); + + // Assert + Assert.NotNull(result); + Assert.Equal(UpgradeMode.Manual, result.Mode); + Assert.NotNull(result.AutomaticOSUpgradePolicy); + Assert.NotNull(result.RollingUpgradePolicy); + } + + #endregion + + #region fromMgmtUpgradePolicy Tests + + [Fact] + public void FromMgmtUpgradePolicy_WithValidCompletePolicy_ReturnsCorrectMapping() + { + // Arrange + var psPolicy = new PSUpgradePolicy(Microsoft.Azure.Batch.Common.UpgradeMode.Manual); + var mgmtPolicy = new UpgradePolicy + { + Mode = UpgradeMode.Rolling, + AutomaticOSUpgradePolicy = new AutomaticOSUpgradePolicy + { + EnableAutomaticOSUpgrade = true, + DisableAutomaticRollback = false, + OSRollingUpgradeDeferral = true, + UseRollingUpgradePolicy = true + }, + RollingUpgradePolicy = new RollingUpgradePolicy + { + EnableCrossZoneUpgrade = true, + MaxBatchInstancePercent = 20, + MaxUnhealthyInstancePercent = 25, + MaxUnhealthyUpgradedInstancePercent = 30, + PauseTimeBetweenBatches = "PT5M", + PrioritizeUnhealthyInstances = false, + RollbackFailedInstancesOnPolicyBreach = true + } + }; + + // Act + var result = psPolicy.fromMgmtUpgradePolicy(mgmtPolicy); + + // Assert + Assert.NotNull(result); + Assert.Equal(Microsoft.Azure.Batch.Common.UpgradeMode.Rolling, result.Mode); + + // Verify AutomaticOSUpgradePolicy mapping + Assert.NotNull(result.AutomaticOSUpgradePolicy); + Assert.Equal(true, result.AutomaticOSUpgradePolicy.EnableAutomaticOSUpgrade); + Assert.Equal(false, result.AutomaticOSUpgradePolicy.DisableAutomaticRollback); + Assert.Equal(true, result.AutomaticOSUpgradePolicy.OsRollingUpgradeDeferral); + Assert.Equal(true, result.AutomaticOSUpgradePolicy.UseRollingUpgradePolicy); + + // Verify RollingUpgradePolicy mapping + Assert.NotNull(result.RollingUpgradePolicy); + Assert.Equal(true, result.RollingUpgradePolicy.EnableCrossZoneUpgrade); + Assert.Equal(20, result.RollingUpgradePolicy.MaxBatchInstancePercent); + Assert.Equal(25, result.RollingUpgradePolicy.MaxUnhealthyInstancePercent); + Assert.Equal(30, result.RollingUpgradePolicy.MaxUnhealthyUpgradedInstancePercent); + Assert.Equal(TimeSpan.FromMinutes(5), result.RollingUpgradePolicy.PauseTimeBetweenBatches); + Assert.Equal(false, result.RollingUpgradePolicy.PrioritizeUnhealthyInstances); + Assert.Equal(true, result.RollingUpgradePolicy.RollbackFailedInstancesOnPolicyBreach); + } + + [Fact] + public void FromMgmtUpgradePolicy_WithNullMgmtPolicy_ReturnsNull() + { + // Arrange + var psPolicy = new PSUpgradePolicy(Microsoft.Azure.Batch.Common.UpgradeMode.Manual); + + // Act + var result = psPolicy.fromMgmtUpgradePolicy(null); + + // Assert + Assert.Null(result); + } + + [Theory] + [InlineData(UpgradeMode.Manual, Microsoft.Azure.Batch.Common.UpgradeMode.Manual)] + [InlineData(UpgradeMode.Automatic, Microsoft.Azure.Batch.Common.UpgradeMode.Automatic)] + [InlineData(UpgradeMode.Rolling, Microsoft.Azure.Batch.Common.UpgradeMode.Rolling)] + public void FromMgmtUpgradePolicy_VariousUpgradeModes_ReturnsCorrectMapping( + UpgradeMode mgmtMode, + Microsoft.Azure.Batch.Common.UpgradeMode expectedPsMode) + { + // Arrange + var psPolicy = new PSUpgradePolicy(Microsoft.Azure.Batch.Common.UpgradeMode.Manual); + var mgmtPolicy = new UpgradePolicy + { + Mode = mgmtMode, + AutomaticOSUpgradePolicy = new AutomaticOSUpgradePolicy(), + RollingUpgradePolicy = new RollingUpgradePolicy() + }; + + // Act + var result = psPolicy.fromMgmtUpgradePolicy(mgmtPolicy); + + // Assert + Assert.NotNull(result); + Assert.Equal(expectedPsMode, result.Mode); + } + + [Fact] + public void FromMgmtUpgradePolicy_WithNullSubPolicies_HandlesNullValues() + { + // Arrange + var psPolicy = new PSUpgradePolicy(Microsoft.Azure.Batch.Common.UpgradeMode.Manual); + var mgmtPolicy = new UpgradePolicy + { + Mode = UpgradeMode.Manual, + AutomaticOSUpgradePolicy = null, + RollingUpgradePolicy = null + }; + + // Act + var result = psPolicy.fromMgmtUpgradePolicy(mgmtPolicy); + + // Assert + Assert.NotNull(result); + Assert.Equal(Microsoft.Azure.Batch.Common.UpgradeMode.Manual, result.Mode); + // Note: The actual implementation may create empty instances or handle nulls differently + // This test verifies the method doesn't crash with null sub-policies + } + + [Fact] + public void FromMgmtUpgradePolicy_WithNullValuesInSubPolicies_HandlesCorrectly() + { + // Arrange + var psPolicy = new PSUpgradePolicy(Microsoft.Azure.Batch.Common.UpgradeMode.Manual); + var mgmtPolicy = new UpgradePolicy + { + Mode = UpgradeMode.Automatic, + AutomaticOSUpgradePolicy = new AutomaticOSUpgradePolicy + { + EnableAutomaticOSUpgrade = null, + DisableAutomaticRollback = null, + OSRollingUpgradeDeferral = null, + UseRollingUpgradePolicy = null + }, + RollingUpgradePolicy = new RollingUpgradePolicy + { + EnableCrossZoneUpgrade = null, + MaxBatchInstancePercent = null, + MaxUnhealthyInstancePercent = null, + MaxUnhealthyUpgradedInstancePercent = null, + PauseTimeBetweenBatches = null, + PrioritizeUnhealthyInstances = null, + RollbackFailedInstancesOnPolicyBreach = null + } + }; + + // Act + var result = psPolicy.fromMgmtUpgradePolicy(mgmtPolicy); + + // Assert + Assert.NotNull(result); + Assert.Equal(Microsoft.Azure.Batch.Common.UpgradeMode.Automatic, result.Mode); + } + + [Fact] + public void FromMgmtUpgradePolicy_CreatesNewInstance_NotSameReference() + { + // Arrange + var psPolicy = new PSUpgradePolicy(Microsoft.Azure.Batch.Common.UpgradeMode.Manual); + var mgmtPolicy = new UpgradePolicy + { + Mode = UpgradeMode.Rolling, + AutomaticOSUpgradePolicy = new AutomaticOSUpgradePolicy + { + EnableAutomaticOSUpgrade = true + }, + RollingUpgradePolicy = new RollingUpgradePolicy + { + MaxBatchInstancePercent = 20 + } + }; + + // Act + var result = psPolicy.fromMgmtUpgradePolicy(mgmtPolicy); + + // Assert + Assert.NotNull(result); + Assert.NotSame(psPolicy, result); + } + + #endregion + + #region Round-trip Conversion Tests + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesValues() + { + // Arrange + var originalPsPolicy = new PSUpgradePolicy(Microsoft.Azure.Batch.Common.UpgradeMode.Rolling) + { + AutomaticOSUpgradePolicy = new PSAutomaticOSUpgradePolicy + { + EnableAutomaticOSUpgrade = true, + DisableAutomaticRollback = false, + OsRollingUpgradeDeferral = true, + UseRollingUpgradePolicy = true + }, + RollingUpgradePolicy = new PSRollingUpgradePolicy + { + EnableCrossZoneUpgrade = true, + MaxBatchInstancePercent = 25, + MaxUnhealthyInstancePercent = 30, + MaxUnhealthyUpgradedInstancePercent = 35, + PauseTimeBetweenBatches = TimeSpan.FromMinutes(10), + PrioritizeUnhealthyInstances = false, + RollbackFailedInstancesOnPolicyBreach = true + } + }; + + // Act + var mgmtPolicy = originalPsPolicy.toMgmtUpgradePolicy(); + var roundTripPsPolicy = new PSUpgradePolicy(Microsoft.Azure.Batch.Common.UpgradeMode.Manual).fromMgmtUpgradePolicy(mgmtPolicy); + + // Assert + Assert.NotNull(roundTripPsPolicy); + Assert.Equal(originalPsPolicy.Mode, roundTripPsPolicy.Mode); + + // Verify AutomaticOSUpgradePolicy round-trip + Assert.Equal(originalPsPolicy.AutomaticOSUpgradePolicy.EnableAutomaticOSUpgrade, + roundTripPsPolicy.AutomaticOSUpgradePolicy.EnableAutomaticOSUpgrade); + Assert.Equal(originalPsPolicy.AutomaticOSUpgradePolicy.DisableAutomaticRollback, + roundTripPsPolicy.AutomaticOSUpgradePolicy.DisableAutomaticRollback); + Assert.Equal(originalPsPolicy.AutomaticOSUpgradePolicy.OsRollingUpgradeDeferral, + roundTripPsPolicy.AutomaticOSUpgradePolicy.OsRollingUpgradeDeferral); + Assert.Equal(originalPsPolicy.AutomaticOSUpgradePolicy.UseRollingUpgradePolicy, + roundTripPsPolicy.AutomaticOSUpgradePolicy.UseRollingUpgradePolicy); + + // Verify RollingUpgradePolicy round-trip + Assert.Equal(originalPsPolicy.RollingUpgradePolicy.EnableCrossZoneUpgrade, + roundTripPsPolicy.RollingUpgradePolicy.EnableCrossZoneUpgrade); + Assert.Equal(originalPsPolicy.RollingUpgradePolicy.MaxBatchInstancePercent, + roundTripPsPolicy.RollingUpgradePolicy.MaxBatchInstancePercent); + Assert.Equal(originalPsPolicy.RollingUpgradePolicy.MaxUnhealthyInstancePercent, + roundTripPsPolicy.RollingUpgradePolicy.MaxUnhealthyInstancePercent); + Assert.Equal(originalPsPolicy.RollingUpgradePolicy.MaxUnhealthyUpgradedInstancePercent, + roundTripPsPolicy.RollingUpgradePolicy.MaxUnhealthyUpgradedInstancePercent); + Assert.Equal(originalPsPolicy.RollingUpgradePolicy.PauseTimeBetweenBatches, + roundTripPsPolicy.RollingUpgradePolicy.PauseTimeBetweenBatches); + Assert.Equal(originalPsPolicy.RollingUpgradePolicy.PrioritizeUnhealthyInstances, + roundTripPsPolicy.RollingUpgradePolicy.PrioritizeUnhealthyInstances); + Assert.Equal(originalPsPolicy.RollingUpgradePolicy.RollbackFailedInstancesOnPolicyBreach, + roundTripPsPolicy.RollingUpgradePolicy.RollbackFailedInstancesOnPolicyBreach); + } + + [Fact] + public void RoundTripConversion_WithNullValues_PreservesNulls() + { + // Arrange + var originalPsPolicy = new PSUpgradePolicy(Microsoft.Azure.Batch.Common.UpgradeMode.Manual) + { + AutomaticOSUpgradePolicy = new PSAutomaticOSUpgradePolicy + { + EnableAutomaticOSUpgrade = null, + DisableAutomaticRollback = null, + OsRollingUpgradeDeferral = null, + UseRollingUpgradePolicy = null + }, + RollingUpgradePolicy = new PSRollingUpgradePolicy + { + EnableCrossZoneUpgrade = null, + MaxBatchInstancePercent = null, + MaxUnhealthyInstancePercent = null, + MaxUnhealthyUpgradedInstancePercent = null, + PauseTimeBetweenBatches = null, + PrioritizeUnhealthyInstances = null, + RollbackFailedInstancesOnPolicyBreach = null + } + }; + + // Act + var mgmtPolicy = originalPsPolicy.toMgmtUpgradePolicy(); + var roundTripPsPolicy = new PSUpgradePolicy(Microsoft.Azure.Batch.Common.UpgradeMode.Automatic).fromMgmtUpgradePolicy(mgmtPolicy); + + // Assert + Assert.NotNull(roundTripPsPolicy); + Assert.Equal(Microsoft.Azure.Batch.Common.UpgradeMode.Manual, roundTripPsPolicy.Mode); + } + + #endregion + + #region Integration Tests + + [Fact] + public void UpgradePolicyConversions_AllUpgradeModes_MaintainSemanticEquivalence() + { + // Test all upgrade modes to ensure semantic meaning is preserved + var upgradeModes = new[] + { + Microsoft.Azure.Batch.Common.UpgradeMode.Manual, + Microsoft.Azure.Batch.Common.UpgradeMode.Automatic, + Microsoft.Azure.Batch.Common.UpgradeMode.Rolling + }; + + foreach (var mode in upgradeModes) + { + // Arrange + var psPolicy = new PSUpgradePolicy(mode) + { + AutomaticOSUpgradePolicy = new PSAutomaticOSUpgradePolicy + { + EnableAutomaticOSUpgrade = true, + DisableAutomaticRollback = false + }, + RollingUpgradePolicy = new PSRollingUpgradePolicy + { + MaxBatchInstancePercent = 20, + PauseTimeBetweenBatches = TimeSpan.FromMinutes(5) + } + }; + + // Act + var mgmtPolicy = psPolicy.toMgmtUpgradePolicy(); + var backToPs = new PSUpgradePolicy(Microsoft.Azure.Batch.Common.UpgradeMode.Manual).fromMgmtUpgradePolicy(mgmtPolicy); + + // Assert + Assert.NotNull(mgmtPolicy); + Assert.NotNull(backToPs); + Assert.Equal(mode, backToPs.Mode); + } + } + + [Fact] + public void UpgradePolicyConversions_SubPolicyInteraction_WorksCorrectly() + { + // This test verifies that the sub-policy conversions work correctly within the upgrade policy context + + // Arrange + var psPolicy = new PSUpgradePolicy(Microsoft.Azure.Batch.Common.UpgradeMode.Rolling) + { + AutomaticOSUpgradePolicy = new PSAutomaticOSUpgradePolicy + { + EnableAutomaticOSUpgrade = true, + UseRollingUpgradePolicy = true + }, + RollingUpgradePolicy = new PSRollingUpgradePolicy + { + EnableCrossZoneUpgrade = false, + MaxBatchInstancePercent = 50, + PauseTimeBetweenBatches = TimeSpan.FromSeconds(30) + } + }; + + // Act + var mgmtPolicy = psPolicy.toMgmtUpgradePolicy(); + + // Assert - Verify both sub-policies are correctly converted and linked + Assert.NotNull(mgmtPolicy); + Assert.Equal(UpgradeMode.Rolling, mgmtPolicy.Mode); + + Assert.NotNull(mgmtPolicy.AutomaticOSUpgradePolicy); + Assert.Equal(true, mgmtPolicy.AutomaticOSUpgradePolicy.EnableAutomaticOSUpgrade); + Assert.Equal(true, mgmtPolicy.AutomaticOSUpgradePolicy.UseRollingUpgradePolicy); + + Assert.NotNull(mgmtPolicy.RollingUpgradePolicy); + Assert.Equal(false, mgmtPolicy.RollingUpgradePolicy.EnableCrossZoneUpgrade); + Assert.Equal(50, mgmtPolicy.RollingUpgradePolicy.MaxBatchInstancePercent); + Assert.Equal("PT30S", mgmtPolicy.RollingUpgradePolicy.PauseTimeBetweenBatches); + } + + #endregion + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Test/Models/PSUserIdentityTests.cs b/src/Batch/Batch.Test/Models/PSUserIdentityTests.cs new file mode 100644 index 000000000000..cdd7a1b57484 --- /dev/null +++ b/src/Batch/Batch.Test/Models/PSUserIdentityTests.cs @@ -0,0 +1,883 @@ +// ----------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ----------------------------------------------------------------------------- + +using Microsoft.Azure.Commands.Batch.Models; +using Microsoft.Azure.Management.Batch.Models; +using Xunit; + +namespace Microsoft.Azure.Commands.Batch.Test.ModelsConversions +{ + public class PSUserIdentityTests + { + #region toMgmtUserIdentity Tests + + [Fact] + public void ToMgmtUserIdentity_WithAutoUser_ReturnsCorrectMapping() + { + // Arrange + var psAutoUserSpec = new PSAutoUserSpecification( + scope: Microsoft.Azure.Batch.Common.AutoUserScope.Task, + elevationLevel: Microsoft.Azure.Batch.Common.ElevationLevel.Admin); + var psUserIdentity = new PSUserIdentity(psAutoUserSpec); + + // Act + var result = psUserIdentity.toMgmtUserIdentity(); + + // Assert + Assert.NotNull(result); + Assert.NotNull(result.AutoUser); + Assert.Equal(AutoUserScope.Task, result.AutoUser.Scope); + Assert.Equal(ElevationLevel.Admin, result.AutoUser.ElevationLevel); + Assert.Null(result.UserName); + } + + [Fact] + public void ToMgmtUserIdentity_WithUserName_ReturnsCorrectMapping() + { + // Arrange + var psUserIdentity = new PSUserIdentity("testuser"); + + // Act + var result = psUserIdentity.toMgmtUserIdentity(); + + // Assert + Assert.NotNull(result); + Assert.Equal("testuser", result.UserName); + Assert.Null(result.AutoUser); + } + + [Fact] + public void ToMgmtUserIdentity_WithAutoUserPoolScopeNonAdmin_ReturnsCorrectMapping() + { + // Arrange + var psAutoUserSpec = new PSAutoUserSpecification( + scope: Microsoft.Azure.Batch.Common.AutoUserScope.Pool, + elevationLevel: Microsoft.Azure.Batch.Common.ElevationLevel.NonAdmin); + var psUserIdentity = new PSUserIdentity(psAutoUserSpec); + + // Act + var result = psUserIdentity.toMgmtUserIdentity(); + + // Assert + Assert.NotNull(result); + Assert.NotNull(result.AutoUser); + Assert.Equal(AutoUserScope.Pool, result.AutoUser.Scope); + Assert.Equal(ElevationLevel.NonAdmin, result.AutoUser.ElevationLevel); + Assert.Null(result.UserName); + } + + [Fact] + public void ToMgmtUserIdentity_WithAutoUserNullValues_ReturnsNullValues() + { + // Arrange + var psAutoUserSpec = new PSAutoUserSpecification( + scope: null, + elevationLevel: null); + var psUserIdentity = new PSUserIdentity(psAutoUserSpec); + + // Act + var result = psUserIdentity.toMgmtUserIdentity(); + + // Assert + Assert.NotNull(result); + Assert.NotNull(result.AutoUser); + Assert.Null(result.AutoUser.Scope); + Assert.Null(result.AutoUser.ElevationLevel); + Assert.Null(result.UserName); + } + + [Fact] + public void ToMgmtUserIdentity_WithEmptyUserName_ReturnsNull() + { + // Arrange + var psUserIdentity = new PSUserIdentity(""); + + // Act + var result = psUserIdentity.toMgmtUserIdentity(); + + // Assert + Assert.Null(result); + } + + [Fact] + public void ToMgmtUserIdentity_WithNullUserName_ReturnsNull() + { + // Arrange + var psUserIdentity = new PSUserIdentity((string)null); + + // Act + var result = psUserIdentity.toMgmtUserIdentity(); + + // Assert + Assert.Null(result); + } + + [Theory] + [InlineData("admin")] + [InlineData("batchuser")] + [InlineData("test-user_123")] + [InlineData("user@domain.com")] + public void ToMgmtUserIdentity_VariousUserNames_ReturnsCorrectMapping(string userName) + { + // Arrange + var psUserIdentity = new PSUserIdentity(userName); + + // Act + var result = psUserIdentity.toMgmtUserIdentity(); + + // Assert + Assert.NotNull(result); + Assert.Equal(userName, result.UserName); + Assert.Null(result.AutoUser); + } + + [Fact] + public void ToMgmtUserIdentity_AlwaysCreatesNewInstance() + { + // Arrange + var psUserIdentity = new PSUserIdentity("testuser"); + + // Act + var result1 = psUserIdentity.toMgmtUserIdentity(); + var result2 = psUserIdentity.toMgmtUserIdentity(); + + // Assert + Assert.NotNull(result1); + Assert.NotNull(result2); + Assert.NotSame(result1, result2); + } + + [Fact] + public void ToMgmtUserIdentity_VerifyUserIdentityType() + { + // Arrange + var psUserIdentity = new PSUserIdentity("testuser"); + + // Act + var result = psUserIdentity.toMgmtUserIdentity(); + + // Assert + Assert.NotNull(result); + Assert.IsType(result); + } + + [Fact] + public void ToMgmtUserIdentity_WithDefaultAutoUserSpec_ReturnsCorrectMapping() + { + // Arrange + var psAutoUserSpec = new PSAutoUserSpecification(); // Default constructor + var psUserIdentity = new PSUserIdentity(psAutoUserSpec); + + // Act + var result = psUserIdentity.toMgmtUserIdentity(); + + // Assert + Assert.NotNull(result); + Assert.NotNull(result.AutoUser); + Assert.Null(result.AutoUser.Scope); + Assert.Null(result.AutoUser.ElevationLevel); + Assert.Null(result.UserName); + } + + #endregion + + #region fromMgmtUserIdentity Tests + + [Fact] + public void FromMgmtUserIdentity_WithAutoUser_ReturnsCorrectMapping() + { + // Arrange + var mgmtAutoUserSpec = new AutoUserSpecification( + scope: AutoUserScope.Task, + elevationLevel: ElevationLevel.Admin); + var mgmtUserIdentity = new UserIdentity(autoUser: mgmtAutoUserSpec); + + // Act + var result = PSUserIdentity.fromMgmtUserIdentity(mgmtUserIdentity); + + // Assert + Assert.NotNull(result); + Assert.NotNull(result.AutoUser); + Assert.Equal(Microsoft.Azure.Batch.Common.AutoUserScope.Task, result.AutoUser.Scope); + Assert.Equal(Microsoft.Azure.Batch.Common.ElevationLevel.Admin, result.AutoUser.ElevationLevel); + Assert.Null(result.UserName); + } + + [Fact] + public void FromMgmtUserIdentity_WithUserName_ReturnsCorrectMapping() + { + // Arrange + var mgmtUserIdentity = new UserIdentity(userName: "testuser"); + + // Act + var result = PSUserIdentity.fromMgmtUserIdentity(mgmtUserIdentity); + + // Assert + Assert.NotNull(result); + Assert.Equal("testuser", result.UserName); + Assert.Null(result.AutoUser); + } + + [Fact] + public void FromMgmtUserIdentity_WithNullMgmtUserIdentity_ReturnsNull() + { + // Act + var result = PSUserIdentity.fromMgmtUserIdentity(null); + + // Assert + Assert.Null(result); + } + + [Fact] + public void FromMgmtUserIdentity_WithAutoUserPoolScopeNonAdmin_ReturnsCorrectMapping() + { + // Arrange + var mgmtAutoUserSpec = new AutoUserSpecification( + scope: AutoUserScope.Pool, + elevationLevel: ElevationLevel.NonAdmin); + var mgmtUserIdentity = new UserIdentity(autoUser: mgmtAutoUserSpec); + + // Act + var result = PSUserIdentity.fromMgmtUserIdentity(mgmtUserIdentity); + + // Assert + Assert.NotNull(result); + Assert.NotNull(result.AutoUser); + Assert.Equal(Microsoft.Azure.Batch.Common.AutoUserScope.Pool, result.AutoUser.Scope); + Assert.Equal(Microsoft.Azure.Batch.Common.ElevationLevel.NonAdmin, result.AutoUser.ElevationLevel); + Assert.Null(result.UserName); + } + + [Fact] + public void FromMgmtUserIdentity_WithAutoUserNullValues_ReturnsNullValues() + { + // Arrange + var mgmtAutoUserSpec = new AutoUserSpecification( + scope: null, + elevationLevel: null); + var mgmtUserIdentity = new UserIdentity(autoUser: mgmtAutoUserSpec); + + // Act + var result = PSUserIdentity.fromMgmtUserIdentity(mgmtUserIdentity); + + // Assert + Assert.NotNull(result); + Assert.NotNull(result.AutoUser); + Assert.Null(result.AutoUser.Scope); + Assert.Null(result.AutoUser.ElevationLevel); + Assert.Null(result.UserName); + } + + [Fact] + public void FromMgmtUserIdentity_WithEmptyUserName_ReturnsNull() + { + // Arrange + var mgmtUserIdentity = new UserIdentity(userName: ""); + + // Act + var result = PSUserIdentity.fromMgmtUserIdentity(mgmtUserIdentity); + + // Assert + Assert.Null(result); + } + + [Fact] + public void FromMgmtUserIdentity_WithNullUserName_ReturnsNull() + { + // Arrange + var mgmtUserIdentity = new UserIdentity(userName: null); + + // Act + var result = PSUserIdentity.fromMgmtUserIdentity(mgmtUserIdentity); + + // Assert + Assert.Null(result); + } + + [Theory] + [InlineData("admin")] + [InlineData("batchuser")] + [InlineData("test-user_123")] + [InlineData("user@domain.com")] + public void FromMgmtUserIdentity_VariousUserNames_ReturnsCorrectMapping(string userName) + { + // Arrange + var mgmtUserIdentity = new UserIdentity(userName: userName); + + // Act + var result = PSUserIdentity.fromMgmtUserIdentity(mgmtUserIdentity); + + // Assert + Assert.NotNull(result); + Assert.Equal(userName, result.UserName); + Assert.Null(result.AutoUser); + } + + [Fact] + public void FromMgmtUserIdentity_StaticMethod_DoesNotRequireInstance() + { + // Arrange + var mgmtUserIdentity = new UserIdentity(userName: "testuser"); + + // Act - Call static method directly on class + var result = PSUserIdentity.fromMgmtUserIdentity(mgmtUserIdentity); + + // Assert + Assert.NotNull(result); + Assert.Equal("testuser", result.UserName); + } + + [Fact] + public void FromMgmtUserIdentity_AlwaysCreatesNewInstance() + { + // Arrange + var mgmtUserIdentity = new UserIdentity(userName: "testuser"); + + // Act + var result1 = PSUserIdentity.fromMgmtUserIdentity(mgmtUserIdentity); + var result2 = PSUserIdentity.fromMgmtUserIdentity(mgmtUserIdentity); + + // Assert + Assert.NotNull(result1); + Assert.NotNull(result2); + Assert.NotSame(result1, result2); + } + + [Fact] + public void FromMgmtUserIdentity_VerifyPSUserIdentityType() + { + // Arrange + var mgmtUserIdentity = new UserIdentity(userName: "testuser"); + + // Act + var result = PSUserIdentity.fromMgmtUserIdentity(mgmtUserIdentity); + + // Assert + Assert.NotNull(result); + Assert.IsType(result); + } + + [Fact] + public void FromMgmtUserIdentity_WithDefaultConstructor_ReturnsNull() + { + // Arrange + var mgmtUserIdentity = new UserIdentity(); // Uses default constructor + + // Act + var result = PSUserIdentity.fromMgmtUserIdentity(mgmtUserIdentity); + + // Assert + Assert.Null(result); + } + + [Fact] + public void FromMgmtUserIdentity_WithDefaultAutoUserSpec_ReturnsCorrectMapping() + { + // Arrange + var mgmtAutoUserSpec = new AutoUserSpecification(); // Default constructor + var mgmtUserIdentity = new UserIdentity(autoUser: mgmtAutoUserSpec); + + // Act + var result = PSUserIdentity.fromMgmtUserIdentity(mgmtUserIdentity); + + // Assert + Assert.NotNull(result); + Assert.NotNull(result.AutoUser); + Assert.Null(result.AutoUser.Scope); + Assert.Null(result.AutoUser.ElevationLevel); + Assert.Null(result.UserName); + } + + #endregion + + #region Round-trip Conversion Tests + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesAutoUserProperties() + { + // Arrange + var originalAutoUserSpec = new PSAutoUserSpecification( + scope: Microsoft.Azure.Batch.Common.AutoUserScope.Task, + elevationLevel: Microsoft.Azure.Batch.Common.ElevationLevel.Admin); + var originalPsUserIdentity = new PSUserIdentity(originalAutoUserSpec); + + // Act + var mgmtUserIdentity = originalPsUserIdentity.toMgmtUserIdentity(); + var roundTripPsUserIdentity = PSUserIdentity.fromMgmtUserIdentity(mgmtUserIdentity); + + // Assert + Assert.NotNull(roundTripPsUserIdentity); + Assert.NotNull(roundTripPsUserIdentity.AutoUser); + Assert.Equal(originalPsUserIdentity.AutoUser.Scope, roundTripPsUserIdentity.AutoUser.Scope); + Assert.Equal(originalPsUserIdentity.AutoUser.ElevationLevel, roundTripPsUserIdentity.AutoUser.ElevationLevel); + Assert.Null(roundTripPsUserIdentity.UserName); + } + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesUserNameProperties() + { + // Arrange + var originalPsUserIdentity = new PSUserIdentity("testuser"); + + // Act + var mgmtUserIdentity = originalPsUserIdentity.toMgmtUserIdentity(); + var roundTripPsUserIdentity = PSUserIdentity.fromMgmtUserIdentity(mgmtUserIdentity); + + // Assert + Assert.NotNull(roundTripPsUserIdentity); + Assert.Equal(originalPsUserIdentity.UserName, roundTripPsUserIdentity.UserName); + Assert.Null(roundTripPsUserIdentity.AutoUser); + } + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesAutoUserNullValues() + { + // Arrange + var originalAutoUserSpec = new PSAutoUserSpecification( + scope: null, + elevationLevel: null); + var originalPsUserIdentity = new PSUserIdentity(originalAutoUserSpec); + + // Act + var mgmtUserIdentity = originalPsUserIdentity.toMgmtUserIdentity(); + var roundTripPsUserIdentity = PSUserIdentity.fromMgmtUserIdentity(mgmtUserIdentity); + + // Assert + Assert.NotNull(roundTripPsUserIdentity); + Assert.NotNull(roundTripPsUserIdentity.AutoUser); + Assert.Null(roundTripPsUserIdentity.AutoUser.Scope); + Assert.Null(roundTripPsUserIdentity.AutoUser.ElevationLevel); + Assert.Null(roundTripPsUserIdentity.UserName); + } + + [Theory] + [InlineData("admin")] + [InlineData("batchuser")] + [InlineData("user@domain.com")] + public void RoundTripConversion_UserNameValues_PreservesOriginalValue(string userName) + { + // Arrange + var originalPsUserIdentity = new PSUserIdentity(userName); + + // Act + var mgmtUserIdentity = originalPsUserIdentity.toMgmtUserIdentity(); + var roundTripPsUserIdentity = PSUserIdentity.fromMgmtUserIdentity(mgmtUserIdentity); + + // Assert + Assert.NotNull(roundTripPsUserIdentity); + Assert.Equal(userName, roundTripPsUserIdentity.UserName); + Assert.Null(roundTripPsUserIdentity.AutoUser); + } + + [Fact] + public void RoundTripConversion_FromMgmtAndToMgmt_PreservesAutoUserValues() + { + // Arrange + var originalAutoUserSpec = new AutoUserSpecification( + scope: AutoUserScope.Pool, + elevationLevel: ElevationLevel.NonAdmin); + var originalMgmtUserIdentity = new UserIdentity(autoUser: originalAutoUserSpec); + + // Act + var psUserIdentity = PSUserIdentity.fromMgmtUserIdentity(originalMgmtUserIdentity); + var roundTripMgmtUserIdentity = psUserIdentity.toMgmtUserIdentity(); + + // Assert + Assert.NotNull(roundTripMgmtUserIdentity); + Assert.NotNull(roundTripMgmtUserIdentity.AutoUser); + Assert.Equal(originalMgmtUserIdentity.AutoUser.Scope, roundTripMgmtUserIdentity.AutoUser.Scope); + Assert.Equal(originalMgmtUserIdentity.AutoUser.ElevationLevel, roundTripMgmtUserIdentity.AutoUser.ElevationLevel); + Assert.Null(roundTripMgmtUserIdentity.UserName); + } + + [Fact] + public void RoundTripConversion_FromMgmtAndToMgmt_PreservesUserNameValues() + { + // Arrange + var originalMgmtUserIdentity = new UserIdentity(userName: "testuser"); + + // Act + var psUserIdentity = PSUserIdentity.fromMgmtUserIdentity(originalMgmtUserIdentity); + var roundTripMgmtUserIdentity = psUserIdentity.toMgmtUserIdentity(); + + // Assert + Assert.NotNull(roundTripMgmtUserIdentity); + Assert.Equal(originalMgmtUserIdentity.UserName, roundTripMgmtUserIdentity.UserName); + Assert.Null(roundTripMgmtUserIdentity.AutoUser); + } + + #endregion + + #region Integration Tests + + [Fact] + public void UserIdentityConversions_BothDirections_MaintainSemanticEquivalence() + { + // This test ensures that the semantic meaning is preserved across conversions + + // Scenario 1: AutoUser with Task scope and Admin elevation + var psAutoUserSpec = new PSAutoUserSpecification( + scope: Microsoft.Azure.Batch.Common.AutoUserScope.Task, + elevationLevel: Microsoft.Azure.Batch.Common.ElevationLevel.Admin); + var psUserIdentity = new PSUserIdentity(psAutoUserSpec); + + var mgmtUserIdentity = psUserIdentity.toMgmtUserIdentity(); + var backToPs = PSUserIdentity.fromMgmtUserIdentity(mgmtUserIdentity); + + Assert.NotNull(mgmtUserIdentity); + Assert.NotNull(mgmtUserIdentity.AutoUser); + Assert.Equal(AutoUserScope.Task, mgmtUserIdentity.AutoUser.Scope); + Assert.Equal(ElevationLevel.Admin, mgmtUserIdentity.AutoUser.ElevationLevel); + Assert.Null(mgmtUserIdentity.UserName); + + Assert.NotNull(backToPs); + Assert.NotNull(backToPs.AutoUser); + Assert.Equal(Microsoft.Azure.Batch.Common.AutoUserScope.Task, backToPs.AutoUser.Scope); + Assert.Equal(Microsoft.Azure.Batch.Common.ElevationLevel.Admin, backToPs.AutoUser.ElevationLevel); + Assert.Null(backToPs.UserName); + + // Scenario 2: Named user + var psNamedUserIdentity = new PSUserIdentity("batchuser"); + + var mgmtNamedUserIdentity = psNamedUserIdentity.toMgmtUserIdentity(); + var backToPsNamed = PSUserIdentity.fromMgmtUserIdentity(mgmtNamedUserIdentity); + + Assert.NotNull(mgmtNamedUserIdentity); + Assert.Equal("batchuser", mgmtNamedUserIdentity.UserName); + Assert.Null(mgmtNamedUserIdentity.AutoUser); + + Assert.NotNull(backToPsNamed); + Assert.Equal("batchuser", backToPsNamed.UserName); + Assert.Null(backToPsNamed.AutoUser); + } + + [Fact] + public void UserIdentityConversions_NullHandling_WorksCorrectly() + { + // Test null handling in conversions + + // Act + var resultFromNull = PSUserIdentity.fromMgmtUserIdentity(null); + + // Assert + Assert.Null(resultFromNull); + + // Test empty/null username handling + var emptyUserNamePs = new PSUserIdentity(""); + var emptyUserNameMgmt = emptyUserNamePs.toMgmtUserIdentity(); + Assert.Null(emptyUserNameMgmt); + + var nullUserNamePs = new PSUserIdentity((string)null); + var nullUserNameMgmt = nullUserNamePs.toMgmtUserIdentity(); + Assert.Null(nullUserNameMgmt); + } + + [Fact] + public void UserIdentityConversions_BatchTaskContext_VerifyCorrectUsage() + { + // This test validates the conversions work correctly in the context of Batch task configuration + // UserIdentity is used to specify the user context for task execution + + // Arrange - Test with different user identity scenarios + var scenarios = new[] + { + // Task-scoped admin auto user for isolated privileged operations + new { + UserType = "AutoUser", + Scope = Microsoft.Azure.Batch.Common.AutoUserScope.Task, + ElevationLevel = Microsoft.Azure.Batch.Common.ElevationLevel.Admin, + UserName = (string)null, + Description = "Task-scoped admin auto user for privileged operations" + }, + // Pool-scoped non-admin auto user for shared standard operations + new { + UserType = "AutoUser", + Scope = Microsoft.Azure.Batch.Common.AutoUserScope.Pool, + ElevationLevel = Microsoft.Azure.Batch.Common.ElevationLevel.NonAdmin, + UserName = (string)null, + Description = "Pool-scoped non-admin auto user for shared operations" + }, + // Named user for specific user context + new { + UserType = "NamedUser", + Scope = Microsoft.Azure.Batch.Common.AutoUserScope.Pool, + ElevationLevel = Microsoft.Azure.Batch.Common.ElevationLevel.NonAdmin, + UserName = "batchuser", + Description = "Named user account for specific user context" + }, + // Named admin user + new { + UserType = "NamedUser", + Scope = Microsoft.Azure.Batch.Common.AutoUserScope.Pool, + ElevationLevel = Microsoft.Azure.Batch.Common.ElevationLevel.NonAdmin, + UserName = "admin", + Description = "Named admin user account" + } + }; + + foreach (var scenario in scenarios) + { + // Arrange + PSUserIdentity psUserIdentity; + if (scenario.UserType == "AutoUser") + { + var autoUserSpec = new PSAutoUserSpecification( + scope: scenario.Scope, + elevationLevel: scenario.ElevationLevel); + psUserIdentity = new PSUserIdentity(autoUserSpec); + } + else + { + psUserIdentity = new PSUserIdentity(scenario.UserName); + } + + // Act + var mgmtUserIdentity = psUserIdentity.toMgmtUserIdentity(); + + // Assert - Should convert correctly for Batch task configuration + Assert.NotNull(mgmtUserIdentity); + + if (scenario.UserType == "AutoUser") + { + Assert.NotNull(mgmtUserIdentity.AutoUser); + Assert.Null(mgmtUserIdentity.UserName); + + var expectedMgmtScope = scenario.Scope == Microsoft.Azure.Batch.Common.AutoUserScope.Task + ? AutoUserScope.Task + : AutoUserScope.Pool; + var expectedMgmtElevationLevel = scenario.ElevationLevel == Microsoft.Azure.Batch.Common.ElevationLevel.Admin + ? ElevationLevel.Admin + : ElevationLevel.NonAdmin; + + Assert.Equal(expectedMgmtScope, mgmtUserIdentity.AutoUser.Scope); + Assert.Equal(expectedMgmtElevationLevel, mgmtUserIdentity.AutoUser.ElevationLevel); + } + else + { + Assert.Equal(scenario.UserName, mgmtUserIdentity.UserName); + Assert.Null(mgmtUserIdentity.AutoUser); + } + + // Verify round-trip conversion maintains user identity semantics + var backToPs = PSUserIdentity.fromMgmtUserIdentity(mgmtUserIdentity); + Assert.NotNull(backToPs); + + if (scenario.UserType == "AutoUser") + { + Assert.NotNull(backToPs.AutoUser); + Assert.Null(backToPs.UserName); + Assert.Equal(scenario.Scope, backToPs.AutoUser.Scope); + Assert.Equal(scenario.ElevationLevel, backToPs.AutoUser.ElevationLevel); + } + else + { + Assert.Equal(scenario.UserName, backToPs.UserName); + Assert.Null(backToPs.AutoUser); + } + } + } + + [Fact] + public void UserIdentityConversions_MutualExclusivity_VerifyBehavior() + { + // This test verifies that the conversion methods properly handle the mutual exclusivity + // of UserName and AutoUser properties as documented in the UserIdentity class + + // Test 1: AutoUser specified (UserName should be null) + var autoUserSpec = new PSAutoUserSpecification( + scope: Microsoft.Azure.Batch.Common.AutoUserScope.Task, + elevationLevel: Microsoft.Azure.Batch.Common.ElevationLevel.Admin); + var autoUserIdentity = new PSUserIdentity(autoUserSpec); + + var mgmtAutoUserIdentity = autoUserIdentity.toMgmtUserIdentity(); + Assert.NotNull(mgmtAutoUserIdentity.AutoUser); + Assert.Null(mgmtAutoUserIdentity.UserName); + + // Test 2: UserName specified (AutoUser should be null) + var namedUserIdentity = new PSUserIdentity("testuser"); + + var mgmtNamedUserIdentity = namedUserIdentity.toMgmtUserIdentity(); + Assert.Equal("testuser", mgmtNamedUserIdentity.UserName); + Assert.Null(mgmtNamedUserIdentity.AutoUser); + + // Test 3: Verify round-trip maintains mutual exclusivity + var roundTripAutoUser = PSUserIdentity.fromMgmtUserIdentity(mgmtAutoUserIdentity); + Assert.NotNull(roundTripAutoUser.AutoUser); + Assert.Null(roundTripAutoUser.UserName); + + var roundTripNamedUser = PSUserIdentity.fromMgmtUserIdentity(mgmtNamedUserIdentity); + Assert.Equal("testuser", roundTripNamedUser.UserName); + Assert.Null(roundTripNamedUser.AutoUser); + } + + [Fact] + public void UserIdentityConversions_InstanceCreation_VerifyBehavior() + { + // This test verifies that the conversion methods create appropriate instances + + // Arrange + var autoUserSpec = new PSAutoUserSpecification( + scope: Microsoft.Azure.Batch.Common.AutoUserScope.Pool, + elevationLevel: Microsoft.Azure.Batch.Common.ElevationLevel.NonAdmin); + var psUserIdentity = new PSUserIdentity(autoUserSpec); + + var mgmtAutoUserSpec = new AutoUserSpecification( + scope: AutoUserScope.Task, + elevationLevel: ElevationLevel.Admin); + var mgmtUserIdentity = new UserIdentity(autoUser: mgmtAutoUserSpec); + + // Act + var mgmtResult = psUserIdentity.toMgmtUserIdentity(); + var psResult = PSUserIdentity.fromMgmtUserIdentity(mgmtUserIdentity); + + // Assert - Verify proper instance creation + Assert.NotNull(mgmtResult); + Assert.NotNull(psResult); + Assert.IsType(mgmtResult); + Assert.IsType(psResult); + + // Verify new instances are created + Assert.NotSame(mgmtUserIdentity, mgmtResult); + Assert.NotSame(psUserIdentity, psResult); + } + + #endregion + + #region Performance and Edge Case Tests + + [Fact] + public void UserIdentityConversions_PerformanceTest_ExecutesQuickly() + { + // This test ensures the conversions are efficient + + // Arrange + var autoUserSpec = new PSAutoUserSpecification( + scope: Microsoft.Azure.Batch.Common.AutoUserScope.Task, + elevationLevel: Microsoft.Azure.Batch.Common.ElevationLevel.Admin); + var psUserIdentity = new PSUserIdentity(autoUserSpec); + + var mgmtAutoUserSpec = new AutoUserSpecification( + scope: AutoUserScope.Pool, + elevationLevel: ElevationLevel.NonAdmin); + var mgmtUserIdentity = new UserIdentity(autoUser: mgmtAutoUserSpec); + + // Act & Assert - Multiple conversions should complete without delay + for (int i = 0; i < 100; i++) + { + var mgmtResult = psUserIdentity.toMgmtUserIdentity(); + var psResult = PSUserIdentity.fromMgmtUserIdentity(mgmtUserIdentity); + + Assert.NotNull(mgmtResult); + Assert.NotNull(psResult); + Assert.NotNull(mgmtResult.AutoUser); + Assert.NotNull(psResult.AutoUser); + } + } + + [Fact] + public void UserIdentityConversions_EdgeCaseUserNames_HandleCorrectly() + { + // Test conversion with various edge case user names + + var testUserNames = new[] + { + // Standard user names + "admin", + "batchuser", + "testuser", + + // User names with special characters + "user-123", + "user_test", + "user@domain.com", + "domain\\user", + "user.name", + + // Azure Active Directory formats + "user@tenant.onmicrosoft.com", + "12345678-1234-1234-1234-123456789abc", // GUID format + + // Long user names + "very-long-user-name-for-testing-purposes-that-exceeds-normal-length", + + // Single character + "a", + + // Numeric user names + "123456", + "user123" + }; + + foreach (var userName in testUserNames) + { + // Arrange + var psUserIdentity = new PSUserIdentity(userName); + + // Act + var mgmtResult = psUserIdentity.toMgmtUserIdentity(); + var roundTripResult = PSUserIdentity.fromMgmtUserIdentity(mgmtResult); + + // Assert + Assert.NotNull(mgmtResult); + Assert.NotNull(roundTripResult); + Assert.Equal(userName, mgmtResult.UserName); + Assert.Null(mgmtResult.AutoUser); + Assert.Equal(userName, roundTripResult.UserName); + Assert.Null(roundTripResult.AutoUser); + } + } + + [Fact] + public void UserIdentityConversions_DefaultAndNullValues_HandleCorrectly() + { + // Test conversion with default and null values + + // Scenario 1: Default AutoUserSpecification + var defaultAutoUserSpec = new PSAutoUserSpecification(); // Default constructor + var defaultAutoUserIdentity = new PSUserIdentity(defaultAutoUserSpec); + + var mgmtDefaultResult = defaultAutoUserIdentity.toMgmtUserIdentity(); + Assert.NotNull(mgmtDefaultResult); + Assert.NotNull(mgmtDefaultResult.AutoUser); + Assert.Null(mgmtDefaultResult.AutoUser.Scope); + Assert.Null(mgmtDefaultResult.AutoUser.ElevationLevel); + Assert.Null(mgmtDefaultResult.UserName); + + // Scenario 2: Empty UserIdentity from management side + var emptyMgmtUserIdentity = new UserIdentity(); // Default constructor + var psFromEmpty = PSUserIdentity.fromMgmtUserIdentity(emptyMgmtUserIdentity); + Assert.Null(psFromEmpty); // Should return null when no valid properties are set + + // Scenario 3: Null values in AutoUserSpecification + var nullValuesAutoUserSpec = new PSAutoUserSpecification( + scope: null, + elevationLevel: null); + var nullValuesUserIdentity = new PSUserIdentity(nullValuesAutoUserSpec); + + var mgmtNullValuesResult = nullValuesUserIdentity.toMgmtUserIdentity(); + Assert.NotNull(mgmtNullValuesResult); + Assert.NotNull(mgmtNullValuesResult.AutoUser); + Assert.Null(mgmtNullValuesResult.AutoUser.Scope); + Assert.Null(mgmtNullValuesResult.AutoUser.ElevationLevel); + + var roundTripNullValues = PSUserIdentity.fromMgmtUserIdentity(mgmtNullValuesResult); + Assert.NotNull(roundTripNullValues); + Assert.NotNull(roundTripNullValues.AutoUser); + Assert.Null(roundTripNullValues.AutoUser.Scope); + Assert.Null(roundTripNullValues.AutoUser.ElevationLevel); + } + + #endregion + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Test/Utils/UtilsAutoUserScopeTests.cs b/src/Batch/Batch.Test/Utils/UtilsAutoUserScopeTests.cs new file mode 100644 index 000000000000..1daea4481283 --- /dev/null +++ b/src/Batch/Batch.Test/Utils/UtilsAutoUserScopeTests.cs @@ -0,0 +1,584 @@ +// ----------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ----------------------------------------------------------------------------- + +using Microsoft.Azure.Commands.Batch.Utils; +using Microsoft.Azure.Management.Batch.Models; +using System; +using System.Linq; +using Xunit; + +namespace Microsoft.Azure.Commands.Batch.Test.ModelsConversions +{ + public class UtilsAutoUserScopeTests + { + #region toMgmtAutoUserScope Tests + + [Fact] + public void ToMgmtAutoUserScope_Task_ReturnsTask() + { + // Arrange + var psAutoUserScope = Microsoft.Azure.Batch.Common.AutoUserScope.Task; + + // Act + var result = Utils.Utils.toMgmtAutoUserScope(psAutoUserScope); + + // Assert + Assert.NotNull(result); + Assert.Equal(AutoUserScope.Task, result.Value); + } + + [Fact] + public void ToMgmtAutoUserScope_Pool_ReturnsPool() + { + // Arrange + var psAutoUserScope = Microsoft.Azure.Batch.Common.AutoUserScope.Pool; + + // Act + var result = Utils.Utils.toMgmtAutoUserScope(psAutoUserScope); + + // Assert + Assert.NotNull(result); + Assert.Equal(AutoUserScope.Pool, result.Value); + } + + [Theory] + [InlineData(Microsoft.Azure.Batch.Common.AutoUserScope.Task, AutoUserScope.Task)] + [InlineData(Microsoft.Azure.Batch.Common.AutoUserScope.Pool, AutoUserScope.Pool)] + public void ToMgmtAutoUserScope_AllValidValues_ReturnsCorrectMapping( + Microsoft.Azure.Batch.Common.AutoUserScope input, + AutoUserScope expected) + { + // Act + var result = Utils.Utils.toMgmtAutoUserScope(input); + + // Assert + Assert.NotNull(result); + Assert.Equal(expected, result.Value); + } + + [Fact] + public void ToMgmtAutoUserScope_NullValue_ReturnsNull() + { + // Arrange + Microsoft.Azure.Batch.Common.AutoUserScope? nullAutoUserScope = null; + + // Act + var result = Utils.Utils.toMgmtAutoUserScope(nullAutoUserScope); + + // Assert + Assert.Null(result); + } + + [Fact] + public void ToMgmtAutoUserScope_DefaultValue_HandlesCorrectly() + { + // Arrange + var defaultValue = default(Microsoft.Azure.Batch.Common.AutoUserScope); + + // Act + var result = Utils.Utils.toMgmtAutoUserScope(defaultValue); + + // Assert + Assert.NotNull(result); + // Default AutoUserScope is typically Task (0) + Assert.Equal(AutoUserScope.Task, result.Value); + } + + [Fact] + public void ToMgmtAutoUserScope_EnumValueConsistency_EnsuresCorrectEnumMapping() + { + // This test ensures that the mapping logic correctly handles all defined enum values + // and verifies that the conversion maintains the semantic meaning of each auto user scope + + // Arrange & Act & Assert + // Task: Auto user is scoped to the task execution context + var taskResult = Utils.Utils.toMgmtAutoUserScope(Microsoft.Azure.Batch.Common.AutoUserScope.Task); + Assert.NotNull(taskResult); + Assert.Equal(AutoUserScope.Task, taskResult.Value); + + // Pool: Auto user is scoped to the pool context and shared across tasks + var poolResult = Utils.Utils.toMgmtAutoUserScope(Microsoft.Azure.Batch.Common.AutoUserScope.Pool); + Assert.NotNull(poolResult); + Assert.Equal(AutoUserScope.Pool, poolResult.Value); + } + + [Fact] + public void ToMgmtAutoUserScope_StaticMethod_DoesNotRequireInstance() + { + // This test verifies that the method is properly static and can be called without instantiation + + // Arrange + var psAutoUserScope = Microsoft.Azure.Batch.Common.AutoUserScope.Pool; + + // Act - Call static method directly on class + var result = Utils.Utils.toMgmtAutoUserScope(psAutoUserScope); + + // Assert + Assert.NotNull(result); + Assert.Equal(AutoUserScope.Pool, result.Value); + } + + [Fact] + public void ToMgmtAutoUserScope_PerformanceTest_ExecutesQuickly() + { + // This test ensures the enum conversion is efficient for all values + + // Arrange + var enumValues = new[] + { + Microsoft.Azure.Batch.Common.AutoUserScope.Task, + Microsoft.Azure.Batch.Common.AutoUserScope.Pool + }; + + // Act & Assert - Each conversion should complete without delay + foreach (var value in enumValues) + { + var result = Utils.Utils.toMgmtAutoUserScope(value); + Assert.NotNull(result); + Assert.True(Enum.IsDefined(typeof(AutoUserScope), result.Value)); + } + } + + [Fact] + public void ToMgmtAutoUserScope_CastingBehavior_VerifyDirectCast() + { + // This test verifies that the conversion uses direct casting as implemented + + // Arrange + var psTask = Microsoft.Azure.Batch.Common.AutoUserScope.Task; + var psPool = Microsoft.Azure.Batch.Common.AutoUserScope.Pool; + + // Act + var mgmtTask = Utils.Utils.toMgmtAutoUserScope(psTask); + var mgmtPool = Utils.Utils.toMgmtAutoUserScope(psPool); + + // Assert + Assert.NotNull(mgmtTask); + Assert.NotNull(mgmtPool); + + // Verify that the underlying values match (direct cast behavior) + Assert.Equal((int)psTask, (int)mgmtTask.Value); + Assert.Equal((int)psPool, (int)mgmtPool.Value); + } + + #endregion + + #region fromMgmtAutoUserScope Tests + + [Fact] + public void FromMgmtAutoUserScope_Task_ReturnsTask() + { + // Arrange + var mgmtAutoUserScope = AutoUserScope.Task; + + // Act + var result = Utils.Utils.fromMgmtAutoUserScope(mgmtAutoUserScope); + + // Assert + Assert.Equal(Microsoft.Azure.Batch.Common.AutoUserScope.Task, result); + } + + [Fact] + public void FromMgmtAutoUserScope_Pool_ReturnsPool() + { + // Arrange + var mgmtAutoUserScope = AutoUserScope.Pool; + + // Act + var result = Utils.Utils.fromMgmtAutoUserScope(mgmtAutoUserScope); + + // Assert + Assert.Equal(Microsoft.Azure.Batch.Common.AutoUserScope.Pool, result); + } + + [Theory] + [InlineData(AutoUserScope.Task, Microsoft.Azure.Batch.Common.AutoUserScope.Task)] + [InlineData(AutoUserScope.Pool, Microsoft.Azure.Batch.Common.AutoUserScope.Pool)] + public void FromMgmtAutoUserScope_AllValidValues_ReturnsCorrectMapping( + AutoUserScope input, + Microsoft.Azure.Batch.Common.AutoUserScope expected) + { + // Act + var result = Utils.Utils.fromMgmtAutoUserScope(input); + + // Assert + Assert.Equal(expected, result); + } + + [Fact] + public void FromMgmtAutoUserScope_DefaultValue_HandlesCorrectly() + { + // Arrange + var defaultValue = default(AutoUserScope); + + // Act + var result = Utils.Utils.fromMgmtAutoUserScope(defaultValue); + + // Assert + // Default AutoUserScope is typically Task (0) + Assert.Equal(Microsoft.Azure.Batch.Common.AutoUserScope.Task, result); + } + + [Fact] + public void FromMgmtAutoUserScope_EnumValueConsistency_EnsuresCorrectEnumMapping() + { + // This test ensures that the mapping logic correctly handles all defined enum values + // and verifies that the conversion maintains the semantic meaning of each auto user scope + + // Arrange & Act & Assert + // Task: Auto user is scoped to the task execution context + var taskResult = Utils.Utils.fromMgmtAutoUserScope(AutoUserScope.Task); + Assert.Equal(Microsoft.Azure.Batch.Common.AutoUserScope.Task, taskResult); + + // Pool: Auto user is scoped to the pool context and shared across tasks + var poolResult = Utils.Utils.fromMgmtAutoUserScope(AutoUserScope.Pool); + Assert.Equal(Microsoft.Azure.Batch.Common.AutoUserScope.Pool, poolResult); + } + + [Fact] + public void FromMgmtAutoUserScope_StaticMethod_DoesNotRequireInstance() + { + // This test verifies that the method is properly static and can be called without instantiation + + // Arrange + var mgmtAutoUserScope = AutoUserScope.Task; + + // Act - Call static method directly on class + var result = Utils.Utils.fromMgmtAutoUserScope(mgmtAutoUserScope); + + // Assert + Assert.Equal(Microsoft.Azure.Batch.Common.AutoUserScope.Task, result); + } + + [Fact] + public void FromMgmtAutoUserScope_PerformanceTest_ExecutesQuickly() + { + // This test ensures the enum conversion is efficient for all values + + // Arrange + var enumValues = new AutoUserScope?[] + { + AutoUserScope.Task, + AutoUserScope.Pool + }; + + // Act & Assert - Each conversion should complete without delay + foreach (var value in enumValues) + { + var result = Utils.Utils.fromMgmtAutoUserScope(value); + Assert.True(Enum.IsDefined(typeof(Microsoft.Azure.Batch.Common.AutoUserScope), result)); + } + } + + [Fact] + public void FromMgmtAutoUserScope_AcceptsNullableType() + { + // This test verifies that the method accepts a nullable AutoUserScope + + // Arrange + AutoUserScope? nullableValue = AutoUserScope.Pool; + + // Act + var result = Utils.Utils.fromMgmtAutoUserScope(nullableValue); + + // Assert + Assert.Equal(Microsoft.Azure.Batch.Common.AutoUserScope.Pool, result); + } + + [Fact] + public void FromMgmtAutoUserScope_CastingBehavior_VerifyDirectCast() + { + // This test verifies that the conversion uses direct casting as implemented + + // Arrange + var mgmtTask = AutoUserScope.Task; + var mgmtPool = AutoUserScope.Pool; + + // Act + var psTask = Utils.Utils.fromMgmtAutoUserScope(mgmtTask); + var psPool = Utils.Utils.fromMgmtAutoUserScope(mgmtPool); + + // Verify that the underlying values match (direct cast behavior) + Assert.Equal((int)mgmtTask, (int)psTask); + Assert.Equal((int)mgmtPool, (int)psPool); + } + + #endregion + + #region Round-trip Conversion Tests + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesTaskValue() + { + // Arrange + var originalPsAutoUserScope = Microsoft.Azure.Batch.Common.AutoUserScope.Task; + + // Act + var mgmtAutoUserScope = Utils.Utils.toMgmtAutoUserScope(originalPsAutoUserScope); + var roundTripPsAutoUserScope = Utils.Utils.fromMgmtAutoUserScope(mgmtAutoUserScope); + + // Assert + Assert.Equal(originalPsAutoUserScope, roundTripPsAutoUserScope); + } + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesPoolValue() + { + // Arrange + var originalPsAutoUserScope = Microsoft.Azure.Batch.Common.AutoUserScope.Pool; + + // Act + var mgmtAutoUserScope = Utils.Utils.toMgmtAutoUserScope(originalPsAutoUserScope); + var roundTripPsAutoUserScope = Utils.Utils.fromMgmtAutoUserScope(mgmtAutoUserScope); + + // Assert + Assert.Equal(originalPsAutoUserScope, roundTripPsAutoUserScope); + } + + [Theory] + [InlineData(Microsoft.Azure.Batch.Common.AutoUserScope.Task)] + [InlineData(Microsoft.Azure.Batch.Common.AutoUserScope.Pool)] + public void RoundTripConversion_AllValidValues_PreservesOriginalValue( + Microsoft.Azure.Batch.Common.AutoUserScope originalAutoUserScope) + { + // Act + var mgmtAutoUserScope = Utils.Utils.toMgmtAutoUserScope(originalAutoUserScope); + var roundTripAutoUserScope = Utils.Utils.fromMgmtAutoUserScope(mgmtAutoUserScope); + + // Assert + Assert.Equal(originalAutoUserScope, roundTripAutoUserScope); + } + + [Fact] + public void RoundTripConversion_FromMgmtAndToMgmt_PreservesValues() + { + // Arrange + var originalMgmtValues = new[] + { + AutoUserScope.Task, + AutoUserScope.Pool + }; + + foreach (var originalValue in originalMgmtValues) + { + // Act + var psValue = Utils.Utils.fromMgmtAutoUserScope(originalValue); + var roundTripValue = Utils.Utils.toMgmtAutoUserScope(psValue); + + // Assert + Assert.NotNull(roundTripValue); + Assert.Equal(originalValue, roundTripValue.Value); + } + } + + #endregion + + #region Enum Value Verification Tests + + [Fact] + public void AutoUserScope_VerifyEnumMemberCount_EnsuresAllValuesHandled() + { + // This test helps ensure that if new enum values are added, the conversion methods are updated + + // Arrange + var psAutoUserScopeValues = Enum.GetValues(typeof(Microsoft.Azure.Batch.Common.AutoUserScope)); + var mgmtAutoUserScopeValues = Enum.GetValues(typeof(AutoUserScope)); + + // Act & Assert + // Verify that both enums have the same number of values (assuming 1:1 mapping) + Assert.Equal(psAutoUserScopeValues.Length, mgmtAutoUserScopeValues.Length); + + // Verify that each PS enum value can be converted successfully + foreach (Microsoft.Azure.Batch.Common.AutoUserScope psValue in psAutoUserScopeValues) + { + var result = Utils.Utils.toMgmtAutoUserScope(psValue); + Assert.NotNull(result); + Assert.True(Enum.IsDefined(typeof(AutoUserScope), result.Value)); + } + + // Verify that each management enum value can be converted successfully + foreach (AutoUserScope mgmtValue in mgmtAutoUserScopeValues) + { + var result = Utils.Utils.fromMgmtAutoUserScope(mgmtValue); + Assert.True(Enum.IsDefined(typeof(Microsoft.Azure.Batch.Common.AutoUserScope), result)); + } + } + + [Fact] + public void AutoUserScope_BijectiveMapping_EnsuresUniqueConversion() + { + // This test verifies that the mapping is bijective (one-to-one) + + // Arrange + var psValues = new[] + { + Microsoft.Azure.Batch.Common.AutoUserScope.Task, + Microsoft.Azure.Batch.Common.AutoUserScope.Pool + }; + + var mgmtValues = new[] + { + AutoUserScope.Task, + AutoUserScope.Pool + }; + + // Act - Convert PS to Management + var convertedMgmtValues = new AutoUserScope?[psValues.Length]; + for (int i = 0; i < psValues.Length; i++) + { + convertedMgmtValues[i] = Utils.Utils.toMgmtAutoUserScope(psValues[i]); + } + + // Act - Convert Management to PS + var convertedPsValues = new Microsoft.Azure.Batch.Common.AutoUserScope?[mgmtValues.Length]; + for (int i = 0; i < mgmtValues.Length; i++) + { + convertedPsValues[i] = Utils.Utils.fromMgmtAutoUserScope(mgmtValues[i]); + } + + // Assert - Each management enum value should be unique (no duplicates) + var distinctMgmtValues = convertedMgmtValues.Where(v => v.HasValue).Select(v => v.Value).Distinct().ToArray(); + Assert.Equal(convertedMgmtValues.Count(v => v.HasValue), distinctMgmtValues.Length); + + // Assert - Each PS enum value should be unique (no duplicates) + var distinctPsValues = convertedPsValues.Where(v => v.HasValue).Select(v => v.Value).Distinct().ToArray(); + Assert.Equal(convertedPsValues.Count(v => v.HasValue), distinctPsValues.Length); + } + + #endregion + + #region Integration Tests + + [Fact] + public void AutoUserScopeConversions_BothDirections_MaintainSemanticEquivalence() + { + // This test ensures that the semantic meaning is preserved across conversions + + // Test Task semantics - Auto user is scoped to the task execution + var psTask = Microsoft.Azure.Batch.Common.AutoUserScope.Task; + var mgmtTask = Utils.Utils.toMgmtAutoUserScope(psTask); + var backToPs = Utils.Utils.fromMgmtAutoUserScope(mgmtTask); + + Assert.NotNull(mgmtTask); + Assert.Equal(AutoUserScope.Task, mgmtTask.Value); + Assert.Equal(psTask, backToPs); + + // Test Pool semantics - Auto user is scoped to the pool and shared across tasks + var psPool = Microsoft.Azure.Batch.Common.AutoUserScope.Pool; + var mgmtPool = Utils.Utils.toMgmtAutoUserScope(psPool); + var backToPsPool = Utils.Utils.fromMgmtAutoUserScope(mgmtPool); + + Assert.NotNull(mgmtPool); + Assert.Equal(AutoUserScope.Pool, mgmtPool.Value); + Assert.Equal(psPool, backToPsPool); + } + + [Fact] + public void AutoUserScopeConversions_BatchAutoUserContext_VerifyCorrectUsage() + { + // This test validates the conversions work correctly in the context of Batch auto user specifications + // AutoUserScope is used to specify the scope of automatically created user accounts in Azure Batch + + // Arrange - Test with realistic Batch auto user scenarios + var autoUserScenarios = new[] + { + // Task-scoped user account for isolated task execution + new { + AutoUserScope = Microsoft.Azure.Batch.Common.AutoUserScope.Task, + Description = "Task-scoped auto user for task isolation and security" + }, + // Pool-scoped user account for shared operations across tasks + new { + AutoUserScope = Microsoft.Azure.Batch.Common.AutoUserScope.Pool, + Description = "Pool-scoped auto user for shared operations and resource access" + } + }; + + foreach (var scenario in autoUserScenarios) + { + // Act + var mgmtAutoUserScope = Utils.Utils.toMgmtAutoUserScope(scenario.AutoUserScope); + + // Assert - Should convert correctly for Batch auto user configuration + Assert.NotNull(mgmtAutoUserScope); + + var expectedMgmtScope = scenario.AutoUserScope == Microsoft.Azure.Batch.Common.AutoUserScope.Task + ? AutoUserScope.Task + : AutoUserScope.Pool; + Assert.Equal(expectedMgmtScope, mgmtAutoUserScope.Value); + + // Verify round-trip conversion maintains auto user semantics + var backToPs = Utils.Utils.fromMgmtAutoUserScope(mgmtAutoUserScope); + Assert.Equal(scenario.AutoUserScope, backToPs); + } + } + + [Fact] + public void AutoUserScopeConversions_DirectCastingBehavior_VerifyImplementation() + { + // This test verifies that the methods use direct casting as implemented + // This is important because it ensures the enum values have the same underlying representation + + // Test that conversion preserves underlying integer values + foreach (Microsoft.Azure.Batch.Common.AutoUserScope psValue in Enum.GetValues(typeof(Microsoft.Azure.Batch.Common.AutoUserScope))) + { + var mgmtResult = Utils.Utils.toMgmtAutoUserScope(psValue); + Assert.NotNull(mgmtResult); + Assert.Equal((int)psValue, (int)mgmtResult.Value); + } + + foreach (AutoUserScope mgmtValue in Enum.GetValues(typeof(AutoUserScope))) + { + var psResult = Utils.Utils.fromMgmtAutoUserScope(mgmtValue); + Assert.Equal((int)mgmtValue, (int)psResult); + } + } + + [Fact] + public void AutoUserScopeConversions_UserIdentityContext_VerifySemantics() + { + // This test validates the semantic usage in the context of user identity configuration + // AutoUserScope determines how auto-created user accounts are managed and shared + + // Task scope semantics - Each task gets its own isolated user account + var taskScope = Microsoft.Azure.Batch.Common.AutoUserScope.Task; + var mgmtTaskScope = Utils.Utils.toMgmtAutoUserScope(taskScope); + + Assert.NotNull(mgmtTaskScope); + Assert.Equal(AutoUserScope.Task, mgmtTaskScope.Value); + + // This scope ensures task isolation and security boundaries + // User account lifecycle is tied to task execution + + // Pool scope semantics - User account is shared across tasks in the pool + var poolScope = Microsoft.Azure.Batch.Common.AutoUserScope.Pool; + var mgmtPoolScope = Utils.Utils.toMgmtAutoUserScope(poolScope); + + Assert.NotNull(mgmtPoolScope); + Assert.Equal(AutoUserScope.Pool, mgmtPoolScope.Value); + + // This scope allows shared resources and inter-task communication + // User account persists for the lifetime of the pool + + // Verify semantic preservation through round-trip + var taskRoundTrip = Utils.Utils.fromMgmtAutoUserScope(mgmtTaskScope); + var poolRoundTrip = Utils.Utils.fromMgmtAutoUserScope(mgmtPoolScope); + + Assert.Equal(taskScope, taskRoundTrip); + Assert.Equal(poolScope, poolRoundTrip); + } + + #endregion + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Test/Utils/UtilsComputeNodeFillTypeTests.cs b/src/Batch/Batch.Test/Utils/UtilsComputeNodeFillTypeTests.cs new file mode 100644 index 000000000000..e1c912ce360a --- /dev/null +++ b/src/Batch/Batch.Test/Utils/UtilsComputeNodeFillTypeTests.cs @@ -0,0 +1,532 @@ +// ----------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ----------------------------------------------------------------------------- + +using Microsoft.Azure.Commands.Batch.Utils; +using Microsoft.Azure.Management.Batch.Models; +using System; +using System.Linq; +using Xunit; + +namespace Microsoft.Azure.Commands.Batch.Test.ModelsConversions +{ + public class UtilsComputeNodeFillTypeTests + { + #region toMgmtComputeNodeFillType Tests + + [Fact] + public void ToMgmtComputeNodeFillType_Pack_ReturnsPack() + { + // Arrange + var psComputeNodeFillType = Microsoft.Azure.Batch.Common.ComputeNodeFillType.Pack; + + // Act + var result = Utils.Utils.toMgmtComputeNodeFillType(psComputeNodeFillType); + + // Assert + Assert.Equal(ComputeNodeFillType.Pack, result); + } + + [Fact] + public void ToMgmtComputeNodeFillType_Spread_ReturnsSpread() + { + // Arrange + var psComputeNodeFillType = Microsoft.Azure.Batch.Common.ComputeNodeFillType.Spread; + + // Act + var result = Utils.Utils.toMgmtComputeNodeFillType(psComputeNodeFillType); + + // Assert + Assert.Equal(ComputeNodeFillType.Spread, result); + } + + [Theory] + [InlineData(Microsoft.Azure.Batch.Common.ComputeNodeFillType.Pack, ComputeNodeFillType.Pack)] + [InlineData(Microsoft.Azure.Batch.Common.ComputeNodeFillType.Spread, ComputeNodeFillType.Spread)] + public void ToMgmtComputeNodeFillType_AllValidValues_ReturnsCorrectMapping( + Microsoft.Azure.Batch.Common.ComputeNodeFillType input, + ComputeNodeFillType expected) + { + // Act + var result = Utils.Utils.toMgmtComputeNodeFillType(input); + + // Assert + Assert.Equal(expected, result); + } + + [Fact] + public void ToMgmtComputeNodeFillType_InvalidValue_ThrowsArgumentOutOfRangeException() + { + // Arrange + var invalidComputeNodeFillType = (Microsoft.Azure.Batch.Common.ComputeNodeFillType)999; // Invalid enum value + + // Act & Assert + var exception = Assert.Throws(() => Utils.Utils.toMgmtComputeNodeFillType(invalidComputeNodeFillType)); + Assert.Equal("psComputeNodeFillType", exception.ParamName); + Assert.Equal(invalidComputeNodeFillType, exception.ActualValue); + } + + [Fact] + public void ToMgmtComputeNodeFillType_EnumValueConsistency_EnsuresCorrectEnumMapping() + { + // This test ensures that the mapping logic correctly handles all defined enum values + // and verifies that the conversion maintains the semantic meaning of each fill type + + // Arrange & Act & Assert + // Pack: Tasks are assigned to compute nodes to fill up each node before assigning to the next + var packResult = Utils.Utils.toMgmtComputeNodeFillType(Microsoft.Azure.Batch.Common.ComputeNodeFillType.Pack); + Assert.Equal(ComputeNodeFillType.Pack, packResult); + + // Spread: Tasks are assigned evenly across all compute nodes in the pool + var spreadResult = Utils.Utils.toMgmtComputeNodeFillType(Microsoft.Azure.Batch.Common.ComputeNodeFillType.Spread); + Assert.Equal(ComputeNodeFillType.Spread, spreadResult); + } + + [Fact] + public void ToMgmtComputeNodeFillType_StaticMethod_DoesNotRequireInstance() + { + // This test verifies that the method is properly static and can be called without instantiation + + // Arrange + var psComputeNodeFillType = Microsoft.Azure.Batch.Common.ComputeNodeFillType.Pack; + + // Act - Call static method directly on class + var result = Utils.Utils.toMgmtComputeNodeFillType(psComputeNodeFillType); + + // Assert + Assert.Equal(ComputeNodeFillType.Pack, result); + } + + [Fact] + public void ToMgmtComputeNodeFillType_PerformanceTest_ExecutesQuickly() + { + // This test ensures the enum conversion is efficient for all values + + // Arrange + var enumValues = new[] + { + Microsoft.Azure.Batch.Common.ComputeNodeFillType.Pack, + Microsoft.Azure.Batch.Common.ComputeNodeFillType.Spread + }; + + // Act & Assert - Each conversion should complete without delay + foreach (var value in enumValues) + { + var result = Utils.Utils.toMgmtComputeNodeFillType(value); + Assert.True(Enum.IsDefined(typeof(ComputeNodeFillType), result)); + } + } + + #endregion + + #region fromMgmtComputeNodeFillType Tests + + [Fact] + public void FromMgmtComputeNodeFillType_Pack_ReturnsPack() + { + // Arrange + var mgmtComputeNodeFillType = ComputeNodeFillType.Pack; + + // Act + var result = Utils.Utils.fromMgmtComputeNodeFillType(mgmtComputeNodeFillType); + + // Assert + Assert.Equal(Microsoft.Azure.Batch.Common.ComputeNodeFillType.Pack, result); + } + + [Fact] + public void FromMgmtComputeNodeFillType_Spread_ReturnsSpread() + { + // Arrange + var mgmtComputeNodeFillType = ComputeNodeFillType.Spread; + + // Act + var result = Utils.Utils.fromMgmtComputeNodeFillType(mgmtComputeNodeFillType); + + // Assert + Assert.Equal(Microsoft.Azure.Batch.Common.ComputeNodeFillType.Spread, result); + } + + [Theory] + [InlineData(ComputeNodeFillType.Pack, Microsoft.Azure.Batch.Common.ComputeNodeFillType.Pack)] + [InlineData(ComputeNodeFillType.Spread, Microsoft.Azure.Batch.Common.ComputeNodeFillType.Spread)] + public void FromMgmtComputeNodeFillType_AllValidValues_ReturnsCorrectMapping( + ComputeNodeFillType input, + Microsoft.Azure.Batch.Common.ComputeNodeFillType expected) + { + // Act + var result = Utils.Utils.fromMgmtComputeNodeFillType(input); + + // Assert + Assert.Equal(expected, result); + } + + [Fact] + public void FromMgmtComputeNodeFillType_InvalidValue_ThrowsArgumentOutOfRangeException() + { + // Arrange + var invalidComputeNodeFillType = (ComputeNodeFillType)999; // Invalid enum value + + // Act & Assert + var exception = Assert.Throws(() => Utils.Utils.fromMgmtComputeNodeFillType(invalidComputeNodeFillType)); + Assert.Equal("mgmtComputeNodeFillType", exception.ParamName); + Assert.Equal(invalidComputeNodeFillType, exception.ActualValue); + } + + [Fact] + public void FromMgmtComputeNodeFillType_EnumValueConsistency_EnsuresCorrectEnumMapping() + { + // This test ensures that the mapping logic correctly handles all defined enum values + // and verifies that the conversion maintains the semantic meaning of each fill type + + // Arrange & Act & Assert + // Pack: Tasks are assigned to compute nodes to fill up each node before assigning to the next + var packResult = Utils.Utils.fromMgmtComputeNodeFillType(ComputeNodeFillType.Pack); + Assert.Equal(Microsoft.Azure.Batch.Common.ComputeNodeFillType.Pack, packResult); + + // Spread: Tasks are assigned evenly across all compute nodes in the pool + var spreadResult = Utils.Utils.fromMgmtComputeNodeFillType(ComputeNodeFillType.Spread); + Assert.Equal(Microsoft.Azure.Batch.Common.ComputeNodeFillType.Spread, spreadResult); + } + + [Fact] + public void FromMgmtComputeNodeFillType_StaticMethod_DoesNotRequireInstance() + { + // This test verifies that the method is properly static and can be called without instantiation + + // Arrange + var mgmtComputeNodeFillType = ComputeNodeFillType.Spread; + + // Act - Call static method directly on class + var result = Utils.Utils.fromMgmtComputeNodeFillType(mgmtComputeNodeFillType); + + // Assert + Assert.Equal(Microsoft.Azure.Batch.Common.ComputeNodeFillType.Spread, result); + } + + [Fact] + public void FromMgmtComputeNodeFillType_PerformanceTest_ExecutesQuickly() + { + // This test ensures the enum conversion is efficient for all values + + // Arrange + var enumValues = new[] + { + ComputeNodeFillType.Pack, + ComputeNodeFillType.Spread + }; + + // Act & Assert - Each conversion should complete without delay + foreach (var value in enumValues) + { + var result = Utils.Utils.fromMgmtComputeNodeFillType(value); + Assert.True(Enum.IsDefined(typeof(Microsoft.Azure.Batch.Common.ComputeNodeFillType), result)); + } + } + + #endregion + + #region Edge Case Tests + + [Fact] + public void ToMgmtComputeNodeFillType_DefaultEnumValue_HandlesZeroValue() + { + // Arrange - Test the default enum value (typically 0) + var defaultValue = default(Microsoft.Azure.Batch.Common.ComputeNodeFillType); + + // Act & Assert - Should handle the default value appropriately + // Note: This test assumes the default value is Pack (0), but will verify actual behavior + try + { + var result = Utils.Utils.toMgmtComputeNodeFillType(defaultValue); + Assert.True(Enum.IsDefined(typeof(ComputeNodeFillType), result)); + } + catch (ArgumentOutOfRangeException) + { + // If default value is not handled, it should throw ArgumentOutOfRangeException + // This is acceptable behavior for enum conversion methods + Assert.True(true); // Test passes - expected behavior for invalid enum values + } + } + + [Fact] + public void FromMgmtComputeNodeFillType_DefaultEnumValue_HandlesZeroValue() + { + // Arrange - Test the default enum value (typically 0) + var defaultValue = default(ComputeNodeFillType); + + // Act & Assert - Should handle the default value appropriately + // Note: This test assumes the default value is Pack (0), but will verify actual behavior + try + { + var result = Utils.Utils.fromMgmtComputeNodeFillType(defaultValue); + Assert.True(Enum.IsDefined(typeof(Microsoft.Azure.Batch.Common.ComputeNodeFillType), result)); + } + catch (ArgumentOutOfRangeException) + { + // If default value is not handled, it should throw ArgumentOutOfRangeException + // This is acceptable behavior for enum conversion methods + Assert.True(true); // Test passes - expected behavior for invalid enum values + } + } + + [Fact] + public void ToMgmtComputeNodeFillType_NegativeValue_ThrowsArgumentOutOfRangeException() + { + // Arrange + var negativeValue = (Microsoft.Azure.Batch.Common.ComputeNodeFillType)(-1); + + // Act & Assert + var exception = Assert.Throws(() => Utils.Utils.toMgmtComputeNodeFillType(negativeValue)); + Assert.Equal("psComputeNodeFillType", exception.ParamName); + Assert.Equal(negativeValue, exception.ActualValue); + } + + [Fact] + public void FromMgmtComputeNodeFillType_NegativeValue_ThrowsArgumentOutOfRangeException() + { + // Arrange + var negativeValue = (ComputeNodeFillType)(-1); + + // Act & Assert + var exception = Assert.Throws(() => Utils.Utils.fromMgmtComputeNodeFillType(negativeValue)); + Assert.Equal("mgmtComputeNodeFillType", exception.ParamName); + Assert.Equal(negativeValue, exception.ActualValue); + } + + [Fact] + public void ToMgmtComputeNodeFillType_LargeValue_ThrowsArgumentOutOfRangeException() + { + // Arrange + var largeValue = (Microsoft.Azure.Batch.Common.ComputeNodeFillType)int.MaxValue; + + // Act & Assert + var exception = Assert.Throws(() => Utils.Utils.toMgmtComputeNodeFillType(largeValue)); + Assert.Equal("psComputeNodeFillType", exception.ParamName); + Assert.Equal(largeValue, exception.ActualValue); + } + + [Fact] + public void FromMgmtComputeNodeFillType_LargeValue_ThrowsArgumentOutOfRangeException() + { + // Arrange + var largeValue = (ComputeNodeFillType)int.MaxValue; + + // Act & Assert + var exception = Assert.Throws(() => Utils.Utils.fromMgmtComputeNodeFillType(largeValue)); + Assert.Equal("mgmtComputeNodeFillType", exception.ParamName); + Assert.Equal(largeValue, exception.ActualValue); + } + + #endregion + + #region Enum Value Verification Tests + + [Fact] + public void ComputeNodeFillType_VerifyEnumMemberCount_EnsuresAllValuesHandled() + { + // This test helps ensure that if new enum values are added, the conversion methods are updated + + // Arrange + var psComputeNodeFillTypeValues = Enum.GetValues(typeof(Microsoft.Azure.Batch.Common.ComputeNodeFillType)); + var mgmtComputeNodeFillTypeValues = Enum.GetValues(typeof(ComputeNodeFillType)); + + // Act & Assert + // Verify that both enums have the same number of values (assuming 1:1 mapping) + Assert.Equal(psComputeNodeFillTypeValues.Length, mgmtComputeNodeFillTypeValues.Length); + + // Verify that each PS enum value can be converted successfully + foreach (Microsoft.Azure.Batch.Common.ComputeNodeFillType psValue in psComputeNodeFillTypeValues) + { + // Should not throw exception for any defined enum value + var result = Utils.Utils.toMgmtComputeNodeFillType(psValue); + Assert.True(Enum.IsDefined(typeof(ComputeNodeFillType), result)); + } + + // Verify that each management enum value can be converted successfully + foreach (ComputeNodeFillType mgmtValue in mgmtComputeNodeFillTypeValues) + { + // Should not throw exception for any defined enum value + var result = Utils.Utils.fromMgmtComputeNodeFillType(mgmtValue); + Assert.True(Enum.IsDefined(typeof(Microsoft.Azure.Batch.Common.ComputeNodeFillType), result)); + } + } + + [Fact] + public void ComputeNodeFillType_BijectiveMapping_EnsuresUniqueConversion() + { + // This test verifies that the mapping is bijective (one-to-one) + + // Arrange + var psValues = new[] + { + Microsoft.Azure.Batch.Common.ComputeNodeFillType.Pack, + Microsoft.Azure.Batch.Common.ComputeNodeFillType.Spread + }; + + var mgmtValues = new[] + { + ComputeNodeFillType.Pack, + ComputeNodeFillType.Spread + }; + + // Act - Convert PS to Management + var convertedMgmtValues = new ComputeNodeFillType[psValues.Length]; + for (int i = 0; i < psValues.Length; i++) + { + convertedMgmtValues[i] = Utils.Utils.toMgmtComputeNodeFillType(psValues[i]); + } + + // Act - Convert Management to PS + var convertedPsValues = new Microsoft.Azure.Batch.Common.ComputeNodeFillType[mgmtValues.Length]; + for (int i = 0; i < mgmtValues.Length; i++) + { + convertedPsValues[i] = Utils.Utils.fromMgmtComputeNodeFillType(mgmtValues[i]); + } + + // Assert - Each management enum value should be unique (no duplicates) + var distinctMgmtValues = convertedMgmtValues.Distinct().ToArray(); + Assert.Equal(convertedMgmtValues.Length, distinctMgmtValues.Length); + + // Assert - Each PS enum value should be unique (no duplicates) + var distinctPsValues = convertedPsValues.Distinct().ToArray(); + Assert.Equal(convertedPsValues.Length, distinctPsValues.Length); + } + + #endregion + + #region Round-trip Conversion Tests + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesValues() + { + // This test verifies that converting PS -> Management -> PS preserves the original value + + // Arrange + var originalPsValues = new[] + { + Microsoft.Azure.Batch.Common.ComputeNodeFillType.Pack, + Microsoft.Azure.Batch.Common.ComputeNodeFillType.Spread + }; + + foreach (var originalValue in originalPsValues) + { + // Act - Convert PS -> Management -> PS + var mgmtValue = Utils.Utils.toMgmtComputeNodeFillType(originalValue); + var roundTripValue = Utils.Utils.fromMgmtComputeNodeFillType(mgmtValue); + + // Assert - Should get back the original value + Assert.Equal(originalValue, roundTripValue); + } + } + + [Fact] + public void RoundTripConversion_FromMgmtAndToMgmt_PreservesValues() + { + // This test verifies that converting Management -> PS -> Management preserves the original value + + // Arrange + var originalMgmtValues = new[] + { + ComputeNodeFillType.Pack, + ComputeNodeFillType.Spread + }; + + foreach (var originalValue in originalMgmtValues) + { + // Act - Convert Management -> PS -> Management + var psValue = Utils.Utils.fromMgmtComputeNodeFillType(originalValue); + var roundTripValue = Utils.Utils.toMgmtComputeNodeFillType(psValue); + + // Assert - Should get back the original value + Assert.Equal(originalValue, roundTripValue); + } + } + + #endregion + + #region Integration Tests + + [Fact] + public void ComputeNodeFillTypeConversions_BothDirections_MaintainSemanticEquivalence() + { + // This test ensures that the semantic meaning is preserved across conversions + + // Test Pack semantics - Tasks fill each node before moving to the next + var psPack = Microsoft.Azure.Batch.Common.ComputeNodeFillType.Pack; + var mgmtPack = Utils.Utils.toMgmtComputeNodeFillType(psPack); + var backToPs = Utils.Utils.fromMgmtComputeNodeFillType(mgmtPack); + + Assert.Equal(ComputeNodeFillType.Pack, mgmtPack); + Assert.Equal(psPack, backToPs); + + // Test Spread semantics - Tasks are distributed evenly across nodes + var psSpread = Microsoft.Azure.Batch.Common.ComputeNodeFillType.Spread; + var mgmtSpread = Utils.Utils.toMgmtComputeNodeFillType(psSpread); + var backToPsSpread = Utils.Utils.fromMgmtComputeNodeFillType(mgmtSpread); + + Assert.Equal(ComputeNodeFillType.Spread, mgmtSpread); + Assert.Equal(psSpread, backToPsSpread); + } + + [Fact] + public void ComputeNodeFillTypeConversions_ErrorHandling_ConsistentBehavior() + { + // This test ensures that both conversion methods handle invalid inputs consistently + + // Test invalid PS compute node fill type + var invalidPs = (Microsoft.Azure.Batch.Common.ComputeNodeFillType)999; + var psException = Assert.Throws(() => Utils.Utils.toMgmtComputeNodeFillType(invalidPs)); + Assert.Equal("psComputeNodeFillType", psException.ParamName); + + // Test invalid Management compute node fill type + var invalidMgmt = (ComputeNodeFillType)999; + var mgmtException = Assert.Throws(() => Utils.Utils.fromMgmtComputeNodeFillType(invalidMgmt)); + Assert.Equal("mgmtComputeNodeFillType", mgmtException.ParamName); + + // Both should throw ArgumentOutOfRangeException with appropriate parameter names + Assert.IsType(psException); + Assert.IsType(mgmtException); + } + + [Fact] + public void ComputeNodeFillTypeConversions_TaskSchedulingContext_VerifyCorrectUsage() + { + // This test validates that the conversions work correctly in the context of task scheduling + // ComputeNodeFillType is used in TaskSchedulingPolicy to determine how tasks are distributed + + // Arrange - Test Pack strategy (fill nodes completely before moving to next) + var packStrategy = Microsoft.Azure.Batch.Common.ComputeNodeFillType.Pack; + var mgmtPackStrategy = Utils.Utils.toMgmtComputeNodeFillType(packStrategy); + + // Act & Assert - Pack should convert correctly + Assert.Equal(ComputeNodeFillType.Pack, mgmtPackStrategy); + + // Arrange - Test Spread strategy (distribute tasks evenly across nodes) + var spreadStrategy = Microsoft.Azure.Batch.Common.ComputeNodeFillType.Spread; + var mgmtSpreadStrategy = Utils.Utils.toMgmtComputeNodeFillType(spreadStrategy); + + // Act & Assert - Spread should convert correctly + Assert.Equal(ComputeNodeFillType.Spread, mgmtSpreadStrategy); + + // Verify round-trip conversion maintains task scheduling semantics + var backToPack = Utils.Utils.fromMgmtComputeNodeFillType(mgmtPackStrategy); + var backToSpread = Utils.Utils.fromMgmtComputeNodeFillType(mgmtSpreadStrategy); + + Assert.Equal(packStrategy, backToPack); + Assert.Equal(spreadStrategy, backToSpread); + } + + #endregion + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Test/Utils/UtilsContainerHostBatchBindMountsTests.cs b/src/Batch/Batch.Test/Utils/UtilsContainerHostBatchBindMountsTests.cs new file mode 100644 index 000000000000..d4e59cd37e22 --- /dev/null +++ b/src/Batch/Batch.Test/Utils/UtilsContainerHostBatchBindMountsTests.cs @@ -0,0 +1,894 @@ +// ----------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ----------------------------------------------------------------------------- + +using Microsoft.Azure.Commands.Batch.Models; +using Microsoft.Azure.Commands.Batch.Utils; +using Microsoft.Azure.Management.Batch.Models; +using System.Collections.Generic; +using System.Linq; +using Xunit; + +namespace Microsoft.Azure.Commands.Batch.Test.ModelsConversions +{ + public class UtilsContainerHostBatchBindMountsTests + { + #region toMgmtContainerHostBatchBindMounts Tests + + [Fact] + public void ToMgmtContainerHostBatchBindMounts_WithSingleMount_ReturnsCorrectMapping() + { + // Arrange + var psBindMounts = new List + { + new PSContainerHostBatchBindMountEntry + { + Source = "Shared", + IsReadOnly = false + } + }; + + // Act + var result = Utils.Utils.toMgmtContainerHostBatchBindMounts(psBindMounts); + + // Assert + Assert.NotNull(result); + Assert.Single(result); + Assert.Equal("Shared", result[0].Source); + Assert.Equal(false, result[0].IsReadOnly); + } + + [Fact] + public void ToMgmtContainerHostBatchBindMounts_WithMultipleMounts_ReturnsCorrectMapping() + { + // Arrange + var psBindMounts = new List + { + new PSContainerHostBatchBindMountEntry + { + Source = "Shared", + IsReadOnly = false + }, + new PSContainerHostBatchBindMountEntry + { + Source = "Startup", + IsReadOnly = true + }, + new PSContainerHostBatchBindMountEntry + { + Source = "VfsMounts", + IsReadOnly = false + } + }; + + // Act + var result = Utils.Utils.toMgmtContainerHostBatchBindMounts(psBindMounts); + + // Assert + Assert.NotNull(result); + Assert.Equal(3, result.Count); + + Assert.Equal("Shared", result[0].Source); + Assert.Equal(false, result[0].IsReadOnly); + + Assert.Equal("Startup", result[1].Source); + Assert.Equal(true, result[1].IsReadOnly); + + Assert.Equal("VfsMounts", result[2].Source); + Assert.Equal(false, result[2].IsReadOnly); + } + + [Fact] + public void ToMgmtContainerHostBatchBindMounts_WithNullList_ReturnsNull() + { + // Act + var result = Utils.Utils.toMgmtContainerHostBatchBindMounts(null); + + // Assert + Assert.Null(result); + } + + [Fact] + public void ToMgmtContainerHostBatchBindMounts_WithEmptyList_ReturnsEmptyList() + { + // Arrange + var psBindMounts = new List(); + + // Act + var result = Utils.Utils.toMgmtContainerHostBatchBindMounts(psBindMounts); + + // Assert + Assert.NotNull(result); + Assert.Empty(result); + } + + [Theory] + [InlineData("Shared", true)] + [InlineData("Startup", false)] + [InlineData("VfsMounts", true)] + [InlineData("Task", false)] + [InlineData("JobPrep", true)] + [InlineData("Applications", false)] + public void ToMgmtContainerHostBatchBindMounts_AllValidSources_ReturnsCorrectMapping(string source, bool isReadOnly) + { + // Arrange + var psBindMounts = new List + { + new PSContainerHostBatchBindMountEntry + { + Source = source, + IsReadOnly = isReadOnly + } + }; + + // Act + var result = Utils.Utils.toMgmtContainerHostBatchBindMounts(psBindMounts); + + // Assert + Assert.NotNull(result); + Assert.Single(result); + Assert.Equal(source, result[0].Source); + Assert.Equal(isReadOnly, result[0].IsReadOnly); + } + + [Fact] + public void ToMgmtContainerHostBatchBindMounts_WithNullSourceAndNullIsReadOnly_PreservesNullValues() + { + // Arrange + var psBindMounts = new List + { + new PSContainerHostBatchBindMountEntry + { + Source = null, + IsReadOnly = null + } + }; + + // Act + var result = Utils.Utils.toMgmtContainerHostBatchBindMounts(psBindMounts); + + // Assert + Assert.NotNull(result); + Assert.Single(result); + Assert.Null(result[0].Source); + Assert.Null(result[0].IsReadOnly); + } + + [Fact] + public void ToMgmtContainerHostBatchBindMounts_AlwaysCreatesNewList() + { + // Arrange + var psBindMounts = new List + { + new PSContainerHostBatchBindMountEntry + { + Source = "Shared", + IsReadOnly = false + } + }; + + // Act + var result1 = Utils.Utils.toMgmtContainerHostBatchBindMounts(psBindMounts); + var result2 = Utils.Utils.toMgmtContainerHostBatchBindMounts(psBindMounts); + + // Assert + Assert.NotNull(result1); + Assert.NotNull(result2); + Assert.NotSame(result1, result2); + Assert.NotSame(result1[0], result2[0]); + } + + [Fact] + public void ToMgmtContainerHostBatchBindMounts_VerifyManagementType() + { + // Arrange + var psBindMounts = new List + { + new PSContainerHostBatchBindMountEntry + { + Source = "Task", + IsReadOnly = true + } + }; + + // Act + var result = Utils.Utils.toMgmtContainerHostBatchBindMounts(psBindMounts); + + // Assert + Assert.NotNull(result); + Assert.IsAssignableFrom>(result); + Assert.IsType(result[0]); + } + + [Fact] + public void ToMgmtContainerHostBatchBindMounts_PreservesOrder() + { + // Arrange + var psBindMounts = new List + { + new PSContainerHostBatchBindMountEntry { Source = "First", IsReadOnly = false }, + new PSContainerHostBatchBindMountEntry { Source = "Second", IsReadOnly = true }, + new PSContainerHostBatchBindMountEntry { Source = "Third", IsReadOnly = false } + }; + + // Act + var result = Utils.Utils.toMgmtContainerHostBatchBindMounts(psBindMounts); + + // Assert + Assert.NotNull(result); + Assert.Equal(3, result.Count); + Assert.Equal("First", result[0].Source); + Assert.Equal("Second", result[1].Source); + Assert.Equal("Third", result[2].Source); + } + + #endregion + + #region fromMgmtContainerHostBatchBindMounts Tests + + [Fact] + public void FromMgmtContainerHostBatchBindMounts_WithSingleMount_ReturnsCorrectMapping() + { + // Arrange + var mgmtBindMounts = new List + { + new Microsoft.Azure.Management.Batch.Models.ContainerHostBatchBindMountEntry + { + Source = "Shared", + IsReadOnly = false + } + }; + + // Act + var result = Utils.Utils.fromMgmtContainerHostBatchBindMounts(mgmtBindMounts); + + // Assert + Assert.NotNull(result); + Assert.Single(result); + Assert.Equal("Shared", result[0].Source); + Assert.Equal(false, result[0].IsReadOnly); + } + + [Fact] + public void FromMgmtContainerHostBatchBindMounts_WithMultipleMounts_ReturnsCorrectMapping() + { + // Arrange + var mgmtBindMounts = new List + { + new Microsoft.Azure.Management.Batch.Models.ContainerHostBatchBindMountEntry + { + Source = "Shared", + IsReadOnly = false + }, + new Microsoft.Azure.Management.Batch.Models.ContainerHostBatchBindMountEntry + { + Source = "Startup", + IsReadOnly = true + }, + new Microsoft.Azure.Management.Batch.Models.ContainerHostBatchBindMountEntry + { + Source = "Applications", + IsReadOnly = false + } + }; + + // Act + var result = Utils.Utils.fromMgmtContainerHostBatchBindMounts(mgmtBindMounts); + + // Assert + Assert.NotNull(result); + Assert.Equal(3, result.Count); + + Assert.Equal("Shared", result[0].Source); + Assert.Equal(false, result[0].IsReadOnly); + + Assert.Equal("Startup", result[1].Source); + Assert.Equal(true, result[1].IsReadOnly); + + Assert.Equal("Applications", result[2].Source); + Assert.Equal(false, result[2].IsReadOnly); + } + + [Fact] + public void FromMgmtContainerHostBatchBindMounts_WithNullList_ReturnsNull() + { + // Act + var result = Utils.Utils.fromMgmtContainerHostBatchBindMounts(null); + + // Assert + Assert.Null(result); + } + + [Fact] + public void FromMgmtContainerHostBatchBindMounts_WithEmptyList_ReturnsEmptyList() + { + // Arrange + var mgmtBindMounts = new List(); + + // Act + var result = Utils.Utils.fromMgmtContainerHostBatchBindMounts(mgmtBindMounts); + + // Assert + Assert.NotNull(result); + Assert.Empty(result); + } + + [Theory] + [InlineData("Shared", true)] + [InlineData("Startup", false)] + [InlineData("VfsMounts", true)] + [InlineData("Task", false)] + [InlineData("JobPrep", true)] + [InlineData("Applications", false)] + public void FromMgmtContainerHostBatchBindMounts_AllValidSources_ReturnsCorrectMapping(string source, bool isReadOnly) + { + // Arrange + var mgmtBindMounts = new List + { + new Microsoft.Azure.Management.Batch.Models.ContainerHostBatchBindMountEntry + { + Source = source, + IsReadOnly = isReadOnly + } + }; + + // Act + var result = Utils.Utils.fromMgmtContainerHostBatchBindMounts(mgmtBindMounts); + + // Assert + Assert.NotNull(result); + Assert.Single(result); + Assert.Equal(source, result[0].Source); + Assert.Equal(isReadOnly, result[0].IsReadOnly); + } + + [Fact] + public void FromMgmtContainerHostBatchBindMounts_WithNullSourceAndNullIsReadOnly_PreservesNullValues() + { + // Arrange + var mgmtBindMounts = new List + { + new Microsoft.Azure.Management.Batch.Models.ContainerHostBatchBindMountEntry + { + Source = null, + IsReadOnly = null + } + }; + + // Act + var result = Utils.Utils.fromMgmtContainerHostBatchBindMounts(mgmtBindMounts); + + // Assert + Assert.NotNull(result); + Assert.Single(result); + Assert.Null(result[0].Source); + Assert.Null(result[0].IsReadOnly); + } + + [Fact] + public void FromMgmtContainerHostBatchBindMounts_StaticMethod_DoesNotRequireInstance() + { + // Arrange + var mgmtBindMounts = new List + { + new Microsoft.Azure.Management.Batch.Models.ContainerHostBatchBindMountEntry + { + Source = "Task", + IsReadOnly = true + } + }; + + // Act - Call static method directly on class + var result = Utils.Utils.fromMgmtContainerHostBatchBindMounts(mgmtBindMounts); + + // Assert + Assert.NotNull(result); + Assert.Single(result); + Assert.Equal("Task", result[0].Source); + Assert.Equal(true, result[0].IsReadOnly); + } + + [Fact] + public void FromMgmtContainerHostBatchBindMounts_AlwaysCreatesNewList() + { + // Arrange + var mgmtBindMounts = new List + { + new Microsoft.Azure.Management.Batch.Models.ContainerHostBatchBindMountEntry + { + Source = "Shared", + IsReadOnly = false + } + }; + + // Act + var result1 = Utils.Utils.fromMgmtContainerHostBatchBindMounts(mgmtBindMounts); + var result2 = Utils.Utils.fromMgmtContainerHostBatchBindMounts(mgmtBindMounts); + + // Assert + Assert.NotNull(result1); + Assert.NotNull(result2); + Assert.NotSame(result1, result2); + Assert.NotSame(result1[0], result2[0]); + } + + [Fact] + public void FromMgmtContainerHostBatchBindMounts_VerifyPSType() + { + // Arrange + var mgmtBindMounts = new List + { + new Microsoft.Azure.Management.Batch.Models.ContainerHostBatchBindMountEntry + { + Source = "JobPrep", + IsReadOnly = true + } + }; + + // Act + var result = Utils.Utils.fromMgmtContainerHostBatchBindMounts(mgmtBindMounts); + + // Assert + Assert.NotNull(result); + Assert.IsAssignableFrom>(result); + Assert.IsType(result[0]); + } + + [Fact] + public void FromMgmtContainerHostBatchBindMounts_PreservesOrder() + { + // Arrange + var mgmtBindMounts = new List + { + new Microsoft.Azure.Management.Batch.Models.ContainerHostBatchBindMountEntry { Source = "First", IsReadOnly = false }, + new Microsoft.Azure.Management.Batch.Models.ContainerHostBatchBindMountEntry { Source = "Second", IsReadOnly = true }, + new Microsoft.Azure.Management.Batch.Models.ContainerHostBatchBindMountEntry { Source = "Third", IsReadOnly = false } + }; + + // Act + var result = Utils.Utils.fromMgmtContainerHostBatchBindMounts(mgmtBindMounts); + + // Assert + Assert.NotNull(result); + Assert.Equal(3, result.Count); + Assert.Equal("First", result[0].Source); + Assert.Equal("Second", result[1].Source); + Assert.Equal("Third", result[2].Source); + } + + #endregion + + #region Round-trip Conversion Tests + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesAllProperties() + { + // Arrange + var originalPsBindMounts = new List + { + new PSContainerHostBatchBindMountEntry + { + Source = "Shared", + IsReadOnly = false + }, + new PSContainerHostBatchBindMountEntry + { + Source = "Startup", + IsReadOnly = true + }, + new PSContainerHostBatchBindMountEntry + { + Source = "Task", + IsReadOnly = false + } + }; + + // Act + var mgmtBindMounts = Utils.Utils.toMgmtContainerHostBatchBindMounts(originalPsBindMounts); + var roundTripPsBindMounts = Utils.Utils.fromMgmtContainerHostBatchBindMounts(mgmtBindMounts); + + // Assert + Assert.NotNull(roundTripPsBindMounts); + Assert.Equal(originalPsBindMounts.Count, roundTripPsBindMounts.Count); + + for (int i = 0; i < originalPsBindMounts.Count; i++) + { + Assert.Equal(originalPsBindMounts[i].Source, roundTripPsBindMounts[i].Source); + Assert.Equal(originalPsBindMounts[i].IsReadOnly, roundTripPsBindMounts[i].IsReadOnly); + } + } + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesNullValues() + { + // Arrange + var originalPsBindMounts = new List + { + new PSContainerHostBatchBindMountEntry + { + Source = null, + IsReadOnly = null + } + }; + + // Act + var mgmtBindMounts = Utils.Utils.toMgmtContainerHostBatchBindMounts(originalPsBindMounts); + var roundTripPsBindMounts = Utils.Utils.fromMgmtContainerHostBatchBindMounts(mgmtBindMounts); + + // Assert + Assert.NotNull(roundTripPsBindMounts); + Assert.Single(roundTripPsBindMounts); + Assert.Null(roundTripPsBindMounts[0].Source); + Assert.Null(roundTripPsBindMounts[0].IsReadOnly); + } + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesEmptyList() + { + // Arrange + var originalPsBindMounts = new List(); + + // Act + var mgmtBindMounts = Utils.Utils.toMgmtContainerHostBatchBindMounts(originalPsBindMounts); + var roundTripPsBindMounts = Utils.Utils.fromMgmtContainerHostBatchBindMounts(mgmtBindMounts); + + // Assert + Assert.NotNull(roundTripPsBindMounts); + Assert.Empty(roundTripPsBindMounts); + } + + [Theory] + [InlineData("Shared", true)] + [InlineData("Startup", false)] + [InlineData("VfsMounts", true)] + [InlineData("Task", false)] + [InlineData("JobPrep", true)] + [InlineData("Applications", false)] + public void RoundTripConversion_AllValidSources_PreservesOriginalValue(string source, bool isReadOnly) + { + // Arrange + var originalPsBindMounts = new List + { + new PSContainerHostBatchBindMountEntry + { + Source = source, + IsReadOnly = isReadOnly + } + }; + + // Act + var mgmtBindMounts = Utils.Utils.toMgmtContainerHostBatchBindMounts(originalPsBindMounts); + var roundTripPsBindMounts = Utils.Utils.fromMgmtContainerHostBatchBindMounts(mgmtBindMounts); + + // Assert + Assert.NotNull(roundTripPsBindMounts); + Assert.Single(roundTripPsBindMounts); + Assert.Equal(source, roundTripPsBindMounts[0].Source); + Assert.Equal(isReadOnly, roundTripPsBindMounts[0].IsReadOnly); + } + + [Fact] + public void RoundTripConversion_FromMgmtAndToMgmt_PreservesValues() + { + // Arrange + var originalMgmtBindMounts = new List + { + new Microsoft.Azure.Management.Batch.Models.ContainerHostBatchBindMountEntry + { + Source = "VfsMounts", + IsReadOnly = true + }, + new Microsoft.Azure.Management.Batch.Models.ContainerHostBatchBindMountEntry + { + Source = "Applications", + IsReadOnly = false + } + }; + + // Act + var psBindMounts = Utils.Utils.fromMgmtContainerHostBatchBindMounts(originalMgmtBindMounts); + var roundTripMgmtBindMounts = Utils.Utils.toMgmtContainerHostBatchBindMounts(psBindMounts); + + // Assert + Assert.NotNull(roundTripMgmtBindMounts); + Assert.Equal(originalMgmtBindMounts.Count, roundTripMgmtBindMounts.Count); + + for (int i = 0; i < originalMgmtBindMounts.Count; i++) + { + Assert.Equal(originalMgmtBindMounts[i].Source, roundTripMgmtBindMounts[i].Source); + Assert.Equal(originalMgmtBindMounts[i].IsReadOnly, roundTripMgmtBindMounts[i].IsReadOnly); + } + } + + #endregion + + #region Integration Tests + + [Fact] + public void ContainerHostBatchBindMountsConversions_BothDirections_MaintainSemanticEquivalence() + { + // This test ensures that the semantic meaning is preserved across conversions + + // Arrange - Test with realistic container bind mount scenarios + var psBindMounts = new List + { + // Shared directory for data exchange between tasks + new PSContainerHostBatchBindMountEntry { Source = "Shared", IsReadOnly = false }, + // Startup scripts mounted as read-only + new PSContainerHostBatchBindMountEntry { Source = "Startup", IsReadOnly = true }, + // VFS mounts for special file system access + new PSContainerHostBatchBindMountEntry { Source = "VfsMounts", IsReadOnly = false }, + // Task working directory + new PSContainerHostBatchBindMountEntry { Source = "Task", IsReadOnly = false }, + // Job preparation artifacts + new PSContainerHostBatchBindMountEntry { Source = "JobPrep", IsReadOnly = true }, + // Application binaries + new PSContainerHostBatchBindMountEntry { Source = "Applications", IsReadOnly = true } + }; + + // Act + var mgmtBindMounts = Utils.Utils.toMgmtContainerHostBatchBindMounts(psBindMounts); + var backToPs = Utils.Utils.fromMgmtContainerHostBatchBindMounts(mgmtBindMounts); + + // Assert + Assert.NotNull(mgmtBindMounts); + Assert.Equal(6, mgmtBindMounts.Count); + Assert.NotNull(backToPs); + Assert.Equal(6, backToPs.Count); + + // Verify semantic meaning is preserved + for (int i = 0; i < psBindMounts.Count; i++) + { + Assert.Equal(psBindMounts[i].Source, mgmtBindMounts[i].Source); + Assert.Equal(psBindMounts[i].IsReadOnly, mgmtBindMounts[i].IsReadOnly); + Assert.Equal(psBindMounts[i].Source, backToPs[i].Source); + Assert.Equal(psBindMounts[i].IsReadOnly, backToPs[i].IsReadOnly); + } + } + + [Fact] + public void ContainerHostBatchBindMountsConversions_NullHandling_WorksCorrectly() + { + // Test null handling in conversions + + // Act + var resultFromNullToMgmt = Utils.Utils.toMgmtContainerHostBatchBindMounts(null); + var resultFromNullFromMgmt = Utils.Utils.fromMgmtContainerHostBatchBindMounts(null); + + // Assert + Assert.Null(resultFromNullToMgmt); + Assert.Null(resultFromNullFromMgmt); + } + + [Fact] + public void ContainerHostBatchBindMountsConversions_BatchContainerContext_VerifyCorrectUsage() + { + // This test validates the conversions work correctly in the context of Batch container configuration + // ContainerHostBatchBindMountEntry is used to mount host paths into container tasks + + // Arrange - Test with realistic Batch container scenarios + var containerScenarios = new[] + { + // Data processing scenario + new { Source = "Shared", IsReadOnly = false, Description = "Shared data directory for task coordination" }, + // Application deployment scenario + new { Source = "Applications", IsReadOnly = true, Description = "Read-only application binaries" }, + // Task execution scenario + new { Source = "Task", IsReadOnly = false, Description = "Task working directory with read/write access" }, + // Job preparation scenario + new { Source = "JobPrep", IsReadOnly = true, Description = "Job preparation artifacts as read-only" }, + // Startup configuration scenario + new { Source = "Startup", IsReadOnly = true, Description = "Startup scripts and configuration" }, + // VFS scenario + new { Source = "VfsMounts", IsReadOnly = false, Description = "Virtual file system mounts" } + }; + + foreach (var scenario in containerScenarios) + { + // Arrange + var psBindMounts = new List + { + new PSContainerHostBatchBindMountEntry + { + Source = scenario.Source, + IsReadOnly = scenario.IsReadOnly + } + }; + + // Act + var mgmtBindMounts = Utils.Utils.toMgmtContainerHostBatchBindMounts(psBindMounts); + + // Assert - Should convert correctly for Batch container configuration + Assert.NotNull(mgmtBindMounts); + Assert.Single(mgmtBindMounts); + Assert.Equal(scenario.Source, mgmtBindMounts[0].Source); + Assert.Equal(scenario.IsReadOnly, mgmtBindMounts[0].IsReadOnly); + + // Verify round-trip conversion maintains container bind mount semantics + var backToPs = Utils.Utils.fromMgmtContainerHostBatchBindMounts(mgmtBindMounts); + Assert.NotNull(backToPs); + Assert.Single(backToPs); + Assert.Equal(scenario.Source, backToPs[0].Source); + Assert.Equal(scenario.IsReadOnly, backToPs[0].IsReadOnly); + } + } + + [Fact] + public void ContainerHostBatchBindMountsConversions_CollectionHandling_VerifyBehavior() + { + // This test verifies that the conversion methods handle collections appropriately + + // Arrange + var psBindMounts = new List + { + new PSContainerHostBatchBindMountEntry { Source = "First", IsReadOnly = false }, + new PSContainerHostBatchBindMountEntry { Source = "Second", IsReadOnly = true }, + new PSContainerHostBatchBindMountEntry { Source = "Third", IsReadOnly = false } + }; + + var mgmtBindMounts = new List + { + new Microsoft.Azure.Management.Batch.Models.ContainerHostBatchBindMountEntry { Source = "Alpha", IsReadOnly = true }, + new Microsoft.Azure.Management.Batch.Models.ContainerHostBatchBindMountEntry { Source = "Beta", IsReadOnly = false } + }; + + // Act + var mgmtResult = Utils.Utils.toMgmtContainerHostBatchBindMounts(psBindMounts); + var psResult = Utils.Utils.fromMgmtContainerHostBatchBindMounts(mgmtBindMounts); + + // Assert - Verify proper collection handling + Assert.NotNull(mgmtResult); + Assert.NotNull(psResult); + Assert.IsAssignableFrom>(mgmtResult); + Assert.IsAssignableFrom>(psResult); + + // Verify collections are independent + Assert.NotSame(psBindMounts, mgmtResult); + Assert.NotSame(mgmtBindMounts, psResult); + + // Verify counts and order + Assert.Equal(3, mgmtResult.Count); + Assert.Equal(2, psResult.Count); + Assert.Equal("First", mgmtResult[0].Source); + Assert.Equal("Alpha", psResult[0].Source); + } + + #endregion + + #region Performance and Edge Case Tests + + [Fact] + public void ContainerHostBatchBindMountsConversions_PerformanceTest_ExecutesQuickly() + { + // This test ensures the conversions are efficient with larger collections + + // Arrange - Create a larger collection + var psBindMounts = new List(); + var mgmtBindMounts = new List(); + + for (int i = 0; i < 100; i++) + { + psBindMounts.Add(new PSContainerHostBatchBindMountEntry + { + Source = $"Source{i}", + IsReadOnly = i % 2 == 0 + }); + + mgmtBindMounts.Add(new Microsoft.Azure.Management.Batch.Models.ContainerHostBatchBindMountEntry + { + Source = $"MgmtSource{i}", + IsReadOnly = i % 3 == 0 + }); + } + + // Act & Assert - Multiple conversions should complete without delay + for (int i = 0; i < 10; i++) + { + var mgmtResult = Utils.Utils.toMgmtContainerHostBatchBindMounts(psBindMounts); + var psResult = Utils.Utils.fromMgmtContainerHostBatchBindMounts(mgmtBindMounts); + + Assert.NotNull(mgmtResult); + Assert.NotNull(psResult); + Assert.Equal(100, mgmtResult.Count); + Assert.Equal(100, psResult.Count); + } + } + + [Fact] + public void ContainerHostBatchBindMountsConversions_EdgeCaseValues_HandleCorrectly() + { + // Test conversion with various edge case values + + var testBindMounts = new[] + { + // Standard sources + new { Source = "Shared", IsReadOnly = (bool?)false }, + new { Source = "Startup", IsReadOnly = (bool?)true }, + new { Source = "VfsMounts", IsReadOnly = (bool?)false }, + new { Source = "Task", IsReadOnly = (bool?)true }, + new { Source = "JobPrep", IsReadOnly = (bool?)false }, + new { Source = "Applications", IsReadOnly = (bool?)true }, + // Edge cases + new { Source = "", IsReadOnly = (bool?)false }, + new { Source = (string)null, IsReadOnly = (bool?)null }, + new { Source = " ", IsReadOnly = (bool?)true }, // Whitespace + new { Source = "VeryLongSourceNameForTestingPurposes", IsReadOnly = (bool?)false } + }; + + foreach (var testMount in testBindMounts) + { + // Arrange + var psBindMounts = new List + { + new PSContainerHostBatchBindMountEntry + { + Source = testMount.Source, + IsReadOnly = testMount.IsReadOnly + } + }; + + // Act + var mgmtResult = Utils.Utils.toMgmtContainerHostBatchBindMounts(psBindMounts); + var roundTripResult = Utils.Utils.fromMgmtContainerHostBatchBindMounts(mgmtResult); + + // Assert + Assert.NotNull(mgmtResult); + Assert.NotNull(roundTripResult); + Assert.Single(mgmtResult); + Assert.Single(roundTripResult); + Assert.Equal(testMount.Source, mgmtResult[0].Source); + Assert.Equal(testMount.IsReadOnly, mgmtResult[0].IsReadOnly); + Assert.Equal(testMount.Source, roundTripResult[0].Source); + Assert.Equal(testMount.IsReadOnly, roundTripResult[0].IsReadOnly); + } + } + + [Fact] + public void ContainerHostBatchBindMountsConversions_LargeCollection_PreservesAllEntries() + { + // Test with a moderately large collection to ensure all entries are processed + + // Arrange + var psBindMounts = new List(); + for (int i = 0; i < 50; i++) + { + psBindMounts.Add(new PSContainerHostBatchBindMountEntry + { + Source = $"Source{i}", + IsReadOnly = i % 2 == 0 + }); + } + + // Act + var mgmtResult = Utils.Utils.toMgmtContainerHostBatchBindMounts(psBindMounts); + var roundTripResult = Utils.Utils.fromMgmtContainerHostBatchBindMounts(mgmtResult); + + // Assert + Assert.NotNull(mgmtResult); + Assert.NotNull(roundTripResult); + Assert.Equal(50, mgmtResult.Count); + Assert.Equal(50, roundTripResult.Count); + + // Verify all entries are correctly converted + for (int i = 0; i < 50; i++) + { + Assert.Equal($"Source{i}", mgmtResult[i].Source); + Assert.Equal(i % 2 == 0, mgmtResult[i].IsReadOnly); + Assert.Equal($"Source{i}", roundTripResult[i].Source); + Assert.Equal(i % 2 == 0, roundTripResult[i].IsReadOnly); + } + } + + #endregion + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Test/Utils/UtilsContainerWorkingDirectoryTests.cs b/src/Batch/Batch.Test/Utils/UtilsContainerWorkingDirectoryTests.cs new file mode 100644 index 000000000000..7a2ce2024342 --- /dev/null +++ b/src/Batch/Batch.Test/Utils/UtilsContainerWorkingDirectoryTests.cs @@ -0,0 +1,596 @@ +// ----------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ----------------------------------------------------------------------------- + +using Microsoft.Azure.Commands.Batch.Utils; +using Microsoft.Azure.Management.Batch.Models; +using System; +using System.Linq; +using Xunit; + +namespace Microsoft.Azure.Commands.Batch.Test.ModelsConversions +{ + public class UtilsContainerWorkingDirectoryTests + { + #region toMgmtContainerWorkingDirectory Tests + + [Fact] + public void ToMgmtContainerWorkingDirectory_TaskWorkingDirectory_ReturnsTaskWorkingDirectory() + { + // Arrange + var psContainerWorkingDirectory = Microsoft.Azure.Batch.Common.ContainerWorkingDirectory.TaskWorkingDirectory; + + // Act + var result = Utils.Utils.toMgmtContainerWorkingDirectory(psContainerWorkingDirectory); + + // Assert + Assert.NotNull(result); + Assert.Equal(ContainerWorkingDirectory.TaskWorkingDirectory, result.Value); + } + + [Fact] + public void ToMgmtContainerWorkingDirectory_ContainerImageDefault_ReturnsContainerImageDefault() + { + // Arrange + var psContainerWorkingDirectory = Microsoft.Azure.Batch.Common.ContainerWorkingDirectory.ContainerImageDefault; + + // Act + var result = Utils.Utils.toMgmtContainerWorkingDirectory(psContainerWorkingDirectory); + + // Assert + Assert.NotNull(result); + Assert.Equal(ContainerWorkingDirectory.ContainerImageDefault, result.Value); + } + + [Theory] + [InlineData(Microsoft.Azure.Batch.Common.ContainerWorkingDirectory.TaskWorkingDirectory, ContainerWorkingDirectory.TaskWorkingDirectory)] + [InlineData(Microsoft.Azure.Batch.Common.ContainerWorkingDirectory.ContainerImageDefault, ContainerWorkingDirectory.ContainerImageDefault)] + public void ToMgmtContainerWorkingDirectory_AllValidValues_ReturnsCorrectMapping( + Microsoft.Azure.Batch.Common.ContainerWorkingDirectory input, + ContainerWorkingDirectory expected) + { + // Act + var result = Utils.Utils.toMgmtContainerWorkingDirectory(input); + + // Assert + Assert.NotNull(result); + Assert.Equal(expected, result.Value); + } + + [Fact] + public void ToMgmtContainerWorkingDirectory_InvalidValue_ReturnsNull() + { + // Arrange + var invalidContainerWorkingDirectory = (Microsoft.Azure.Batch.Common.ContainerWorkingDirectory)999; // Invalid enum value + + // Act + var result = Utils.Utils.toMgmtContainerWorkingDirectory(invalidContainerWorkingDirectory); + + // Assert + Assert.Null(result); + } + + + [Fact] + public void ToMgmtContainerWorkingDirectory_EnumValueConsistency_EnsuresCorrectEnumMapping() + { + // This test ensures that the mapping logic correctly handles all defined enum values + // and verifies that the conversion maintains the semantic meaning of each working directory type + + // Arrange & Act & Assert + // TaskWorkingDirectory: Use the task's working directory as the container working directory + var taskResult = Utils.Utils.toMgmtContainerWorkingDirectory(Microsoft.Azure.Batch.Common.ContainerWorkingDirectory.TaskWorkingDirectory); + Assert.NotNull(taskResult); + Assert.Equal(ContainerWorkingDirectory.TaskWorkingDirectory, taskResult.Value); + + // ContainerImageDefault: Use the default working directory specified in the container image + var containerResult = Utils.Utils.toMgmtContainerWorkingDirectory(Microsoft.Azure.Batch.Common.ContainerWorkingDirectory.ContainerImageDefault); + Assert.NotNull(containerResult); + Assert.Equal(ContainerWorkingDirectory.ContainerImageDefault, containerResult.Value); + } + + [Fact] + public void ToMgmtContainerWorkingDirectory_StaticMethod_DoesNotRequireInstance() + { + // This test verifies that the method is properly static and can be called without instantiation + + // Arrange + var psContainerWorkingDirectory = Microsoft.Azure.Batch.Common.ContainerWorkingDirectory.TaskWorkingDirectory; + + // Act - Call static method directly on class + var result = Utils.Utils.toMgmtContainerWorkingDirectory(psContainerWorkingDirectory); + + // Assert + Assert.NotNull(result); + Assert.Equal(ContainerWorkingDirectory.TaskWorkingDirectory, result.Value); + } + + [Fact] + public void ToMgmtContainerWorkingDirectory_PerformanceTest_ExecutesQuickly() + { + // This test ensures the enum conversion is efficient for all values + + // Arrange + var enumValues = new[] + { + Microsoft.Azure.Batch.Common.ContainerWorkingDirectory.TaskWorkingDirectory, + Microsoft.Azure.Batch.Common.ContainerWorkingDirectory.ContainerImageDefault + }; + + // Act & Assert - Each conversion should complete without delay + foreach (var value in enumValues) + { + var result = Utils.Utils.toMgmtContainerWorkingDirectory(value); + Assert.NotNull(result); + Assert.True(Enum.IsDefined(typeof(ContainerWorkingDirectory), result.Value)); + } + } + + [Fact] + public void ToMgmtContainerWorkingDirectory_ReturnsNullableType() + { + // This test verifies that the method returns a nullable ContainerWorkingDirectory + + // Arrange + var psContainerWorkingDirectory = Microsoft.Azure.Batch.Common.ContainerWorkingDirectory.TaskWorkingDirectory; + + // Act + var result = Utils.Utils.toMgmtContainerWorkingDirectory(psContainerWorkingDirectory); + + // Assert + Assert.IsType(result); + Assert.True(result.HasValue); + } + + #endregion + + #region fromMgmtContainerWorkingDirectory Tests + + [Fact] + public void FromMgmtContainerWorkingDirectory_TaskWorkingDirectory_ReturnsTaskWorkingDirectory() + { + // Arrange + var mgmtContainerWorkingDirectory = ContainerWorkingDirectory.TaskWorkingDirectory; + + // Act + var result = Utils.Utils.fromMgmtContainerWorkingDirectory(mgmtContainerWorkingDirectory); + + // Assert + Assert.Equal(Microsoft.Azure.Batch.Common.ContainerWorkingDirectory.TaskWorkingDirectory, result); + } + + [Fact] + public void FromMgmtContainerWorkingDirectory_ContainerImageDefault_ReturnsContainerImageDefault() + { + // Arrange + var mgmtContainerWorkingDirectory = ContainerWorkingDirectory.ContainerImageDefault; + + // Act + var result = Utils.Utils.fromMgmtContainerWorkingDirectory(mgmtContainerWorkingDirectory); + + // Assert + Assert.Equal(Microsoft.Azure.Batch.Common.ContainerWorkingDirectory.ContainerImageDefault, result); + } + + [Theory] + [InlineData(ContainerWorkingDirectory.TaskWorkingDirectory, Microsoft.Azure.Batch.Common.ContainerWorkingDirectory.TaskWorkingDirectory)] + [InlineData(ContainerWorkingDirectory.ContainerImageDefault, Microsoft.Azure.Batch.Common.ContainerWorkingDirectory.ContainerImageDefault)] + public void FromMgmtContainerWorkingDirectory_AllValidValues_ReturnsCorrectMapping( + ContainerWorkingDirectory input, + Microsoft.Azure.Batch.Common.ContainerWorkingDirectory expected) + { + // Act + var result = Utils.Utils.fromMgmtContainerWorkingDirectory(input); + + // Assert + Assert.Equal(expected, result); + } + + [Fact] + public void FromMgmtContainerWorkingDirectory_NullValue_ReturnsDefault() + { + // Arrange + ContainerWorkingDirectory? nullValue = null; + + // Act + var result = Utils.Utils.fromMgmtContainerWorkingDirectory(nullValue); + + // Assert + Assert.Null(result); + } + + [Fact] + public void FromMgmtContainerWorkingDirectory_InvalidValue_ThrowsArgumentOutOfRangeException() + { + // Arrange + var invalidContainerWorkingDirectory = (ContainerWorkingDirectory)999; // Invalid enum value + + // Act & Assert + var exception = Assert.Throws(() => Utils.Utils.fromMgmtContainerWorkingDirectory(invalidContainerWorkingDirectory)); + Assert.Equal("value", exception.ParamName); + Assert.Equal(invalidContainerWorkingDirectory, exception.ActualValue); + } + + [Fact] + public void FromMgmtContainerWorkingDirectory_EnumValueConsistency_EnsuresCorrectEnumMapping() + { + // This test ensures that the mapping logic correctly handles all defined enum values + // and verifies that the conversion maintains the semantic meaning of each working directory type + + // Arrange & Act & Assert + // TaskWorkingDirectory: Use the task's working directory as the container working directory + var taskResult = Utils.Utils.fromMgmtContainerWorkingDirectory(ContainerWorkingDirectory.TaskWorkingDirectory); + Assert.Equal(Microsoft.Azure.Batch.Common.ContainerWorkingDirectory.TaskWorkingDirectory, taskResult); + + // ContainerImageDefault: Use the default working directory specified in the container image + var containerResult = Utils.Utils.fromMgmtContainerWorkingDirectory(ContainerWorkingDirectory.ContainerImageDefault); + Assert.Equal(Microsoft.Azure.Batch.Common.ContainerWorkingDirectory.ContainerImageDefault, containerResult); + } + + [Fact] + public void FromMgmtContainerWorkingDirectory_StaticMethod_DoesNotRequireInstance() + { + // This test verifies that the method is properly static and can be called without instantiation + + // Arrange + var mgmtContainerWorkingDirectory = ContainerWorkingDirectory.ContainerImageDefault; + + // Act - Call static method directly on class + var result = Utils.Utils.fromMgmtContainerWorkingDirectory(mgmtContainerWorkingDirectory); + + // Assert + Assert.Equal(Microsoft.Azure.Batch.Common.ContainerWorkingDirectory.ContainerImageDefault, result); + } + + [Fact] + public void FromMgmtContainerWorkingDirectory_PerformanceTest_ExecutesQuickly() + { + // This test ensures the enum conversion is efficient for all values + + // Arrange + var enumValues = new ContainerWorkingDirectory?[] + { + ContainerWorkingDirectory.TaskWorkingDirectory, + ContainerWorkingDirectory.ContainerImageDefault, + null + }; + + // Act & Assert - Each conversion should complete without delay + foreach (var value in enumValues) + { + var result = Utils.Utils.fromMgmtContainerWorkingDirectory(value); + if (value.HasValue) + { + Assert.True(Enum.IsDefined(typeof(Microsoft.Azure.Batch.Common.ContainerWorkingDirectory), result)); + } + } + } + + [Fact] + public void FromMgmtContainerWorkingDirectory_AcceptsNullableType() + { + // This test verifies that the method accepts a nullable ContainerWorkingDirectory + + // Arrange + ContainerWorkingDirectory? nullableValue = ContainerWorkingDirectory.TaskWorkingDirectory; + + // Act + var result = Utils.Utils.fromMgmtContainerWorkingDirectory(nullableValue); + + // Assert + Assert.Equal(Microsoft.Azure.Batch.Common.ContainerWorkingDirectory.TaskWorkingDirectory, result); + } + + #endregion + + #region Edge Case Tests + + [Fact] + public void ToMgmtContainerWorkingDirectory_NegativeValue_ReturnsNull() + { + // Arrange + var negativeValue = (Microsoft.Azure.Batch.Common.ContainerWorkingDirectory)(-1); + + // Act + var result = Utils.Utils.toMgmtContainerWorkingDirectory(negativeValue); + + // Assert + Assert.Null(result); + } + + [Fact] + public void FromMgmtContainerWorkingDirectory_NegativeValue_ThrowsArgumentOutOfRangeException() + { + // Arrange + var negativeValue = (ContainerWorkingDirectory)(-1); + + // Act & Assert + var exception = Assert.Throws(() => Utils.Utils.fromMgmtContainerWorkingDirectory(negativeValue)); + Assert.Equal("value", exception.ParamName); + Assert.Equal(negativeValue, exception.ActualValue); + } + + [Fact] + public void ToMgmtContainerWorkingDirectory_LargeValue_ReturnsNull() + { + // Arrange + var largeValue = (Microsoft.Azure.Batch.Common.ContainerWorkingDirectory)int.MaxValue; + + // Act + var result = Utils.Utils.toMgmtContainerWorkingDirectory(largeValue); + + // Assert + Assert.Null(result); + } + + [Fact] + public void FromMgmtContainerWorkingDirectory_LargeValue_ThrowsArgumentOutOfRangeException() + { + // Arrange + var largeValue = (ContainerWorkingDirectory)int.MaxValue; + + // Act & Assert + var exception = Assert.Throws(() => Utils.Utils.fromMgmtContainerWorkingDirectory(largeValue)); + Assert.Equal("value", exception.ParamName); + Assert.Equal(largeValue, exception.ActualValue); + } + + #endregion + + #region Enum Value Verification Tests + + [Fact] + public void ContainerWorkingDirectory_VerifyEnumMemberCount_EnsuresAllValuesHandled() + { + // This test helps ensure that if new enum values are added, the conversion methods are updated + + // Arrange + var psContainerWorkingDirectoryValues = Enum.GetValues(typeof(Microsoft.Azure.Batch.Common.ContainerWorkingDirectory)); + var mgmtContainerWorkingDirectoryValues = Enum.GetValues(typeof(ContainerWorkingDirectory)); + + // Act & Assert + // Verify that both enums have the same number of values (assuming 1:1 mapping) + Assert.Equal(psContainerWorkingDirectoryValues.Length, mgmtContainerWorkingDirectoryValues.Length); + + // Verify that each PS enum value can be converted successfully (or returns null for invalid ones) + foreach (Microsoft.Azure.Batch.Common.ContainerWorkingDirectory psValue in psContainerWorkingDirectoryValues) + { + // Should not throw exception for any defined enum value + var result = Utils.Utils.toMgmtContainerWorkingDirectory(psValue); + // Valid values should return non-null results + if (Enum.IsDefined(typeof(Microsoft.Azure.Batch.Common.ContainerWorkingDirectory), psValue)) + { + Assert.NotNull(result); + } + } + + // Verify that each management enum value can be converted successfully + foreach (ContainerWorkingDirectory mgmtValue in mgmtContainerWorkingDirectoryValues) + { + // Should not throw exception for any defined enum value + var result = Utils.Utils.fromMgmtContainerWorkingDirectory(mgmtValue); + Assert.True(Enum.IsDefined(typeof(Microsoft.Azure.Batch.Common.ContainerWorkingDirectory), result)); + } + } + + [Fact] + public void ContainerWorkingDirectory_BijectiveMapping_EnsuresUniqueConversion() + { + // This test verifies that the mapping is bijective (one-to-one) for valid values + + // Arrange + var psValues = new[] + { + Microsoft.Azure.Batch.Common.ContainerWorkingDirectory.TaskWorkingDirectory, + Microsoft.Azure.Batch.Common.ContainerWorkingDirectory.ContainerImageDefault + }; + + var mgmtValues = new[] + { + ContainerWorkingDirectory.TaskWorkingDirectory, + ContainerWorkingDirectory.ContainerImageDefault + }; + + // Act - Convert PS to Management + var convertedMgmtValues = new ContainerWorkingDirectory?[psValues.Length]; + for (int i = 0; i < psValues.Length; i++) + { + convertedMgmtValues[i] = Utils.Utils.toMgmtContainerWorkingDirectory(psValues[i]); + } + + // Act - Convert Management to PS + var convertedPsValues = new Microsoft.Azure.Batch.Common.ContainerWorkingDirectory?[mgmtValues.Length]; + for (int i = 0; i < mgmtValues.Length; i++) + { + convertedPsValues[i] = Utils.Utils.fromMgmtContainerWorkingDirectory(mgmtValues[i]); + } + + // Assert - Each management enum value should be unique (no duplicates) + var distinctMgmtValues = convertedMgmtValues.Where(v => v.HasValue).Select(v => v.Value).Distinct().ToArray(); + Assert.Equal(convertedMgmtValues.Count(v => v.HasValue), distinctMgmtValues.Length); + + // Assert - Each PS enum value should be unique (no duplicates) + var distinctPsValues = convertedPsValues.Distinct().ToArray(); + Assert.Equal(convertedPsValues.Length, distinctPsValues.Length); + } + + #endregion + + #region Round-trip Conversion Tests + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesValues() + { + // This test verifies that converting PS -> Management -> PS preserves the original value + + // Arrange + var originalPsValues = new[] + { + Microsoft.Azure.Batch.Common.ContainerWorkingDirectory.TaskWorkingDirectory, + Microsoft.Azure.Batch.Common.ContainerWorkingDirectory.ContainerImageDefault + }; + + foreach (var originalValue in originalPsValues) + { + // Act - Convert PS -> Management -> PS + var mgmtValue = Utils.Utils.toMgmtContainerWorkingDirectory(originalValue); + + if (mgmtValue.HasValue) + { + var roundTripValue = Utils.Utils.fromMgmtContainerWorkingDirectory(mgmtValue.Value); + + // Assert - Should get back the original value + Assert.Equal(originalValue, roundTripValue); + } + } + } + + [Fact] + public void RoundTripConversion_FromMgmtAndToMgmt_PreservesValues() + { + // This test verifies that converting Management -> PS -> Management preserves the original value + + // Arrange + var originalMgmtValues = new[] + { + ContainerWorkingDirectory.TaskWorkingDirectory, + ContainerWorkingDirectory.ContainerImageDefault + }; + + foreach (var originalValue in originalMgmtValues) + { + // Act - Convert Management -> PS -> Management + var psValue = Utils.Utils.fromMgmtContainerWorkingDirectory(originalValue); + var roundTripValue = Utils.Utils.toMgmtContainerWorkingDirectory(psValue); + + // Assert - Should get back the original value + Assert.NotNull(roundTripValue); + Assert.Equal(originalValue, roundTripValue.Value); + } + } + + [Fact] + public void RoundTripConversion_NullHandling_WorksCorrectly() + { + // This test verifies null handling in round-trip conversions + + // Arrange + ContainerWorkingDirectory? nullValue = null; + + // Act + var psValue = Utils.Utils.fromMgmtContainerWorkingDirectory(nullValue); + var backToMgmt = Utils.Utils.toMgmtContainerWorkingDirectory(psValue); + + // Assert + // Default PS value converts to null management value + Assert.Null(psValue); + Assert.Null(backToMgmt); + } + + #endregion + + #region Integration Tests + + [Fact] + public void ContainerWorkingDirectoryConversions_BothDirections_MaintainSemanticEquivalence() + { + // This test ensures that the semantic meaning is preserved across conversions + + // Test TaskWorkingDirectory semantics - Use task's working directory + var psTask = Microsoft.Azure.Batch.Common.ContainerWorkingDirectory.TaskWorkingDirectory; + var mgmtTask = Utils.Utils.toMgmtContainerWorkingDirectory(psTask); + var backToPs = Utils.Utils.fromMgmtContainerWorkingDirectory(mgmtTask); + + Assert.NotNull(mgmtTask); + Assert.Equal(ContainerWorkingDirectory.TaskWorkingDirectory, mgmtTask.Value); + Assert.Equal(psTask, backToPs); + + // Test ContainerImageDefault semantics - Use container image's default working directory + var psContainer = Microsoft.Azure.Batch.Common.ContainerWorkingDirectory.ContainerImageDefault; + var mgmtContainer = Utils.Utils.toMgmtContainerWorkingDirectory(psContainer); + var backToPsContainer = Utils.Utils.fromMgmtContainerWorkingDirectory(mgmtContainer); + + Assert.NotNull(mgmtContainer); + Assert.Equal(ContainerWorkingDirectory.ContainerImageDefault, mgmtContainer.Value); + Assert.Equal(psContainer, backToPsContainer); + } + + [Fact] + public void ContainerWorkingDirectoryConversions_ErrorHandling_ConsistentBehavior() + { + // This test ensures that both conversion methods handle invalid inputs consistently + + // Test invalid PS container working directory (returns null instead of throwing) + var invalidPs = (Microsoft.Azure.Batch.Common.ContainerWorkingDirectory)999; + var result = Utils.Utils.toMgmtContainerWorkingDirectory(invalidPs); + Assert.Null(result); + + // Test invalid Management container working directory (throws exception) + var invalidMgmt = (ContainerWorkingDirectory)999; + var mgmtException = Assert.Throws(() => Utils.Utils.fromMgmtContainerWorkingDirectory(invalidMgmt)); + Assert.Equal("value", mgmtException.ParamName); + } + + [Fact] + public void ContainerWorkingDirectoryConversions_ContainerContext_VerifyCorrectUsage() + { + // This test validates the conversions work correctly in the context of container configuration + // ContainerWorkingDirectory is used to specify the working directory for container tasks + + // Arrange - Test TaskWorkingDirectory for Batch task integration + var taskWorkingDir = Microsoft.Azure.Batch.Common.ContainerWorkingDirectory.TaskWorkingDirectory; + var mgmtTaskWorkingDir = Utils.Utils.toMgmtContainerWorkingDirectory(taskWorkingDir); + + // Act & Assert - TaskWorkingDirectory should convert correctly for Batch task compatibility + Assert.NotNull(mgmtTaskWorkingDir); + Assert.Equal(ContainerWorkingDirectory.TaskWorkingDirectory, mgmtTaskWorkingDir.Value); + + // Arrange - Test ContainerImageDefault for Docker image compatibility + var containerImageDefault = Microsoft.Azure.Batch.Common.ContainerWorkingDirectory.ContainerImageDefault; + var mgmtContainerImageDefault = Utils.Utils.toMgmtContainerWorkingDirectory(containerImageDefault); + + // Act & Assert - ContainerImageDefault should convert correctly for Docker compatibility + Assert.NotNull(mgmtContainerImageDefault); + Assert.Equal(ContainerWorkingDirectory.ContainerImageDefault, mgmtContainerImageDefault.Value); + + // Verify round-trip conversion maintains container semantics + var backToTask = Utils.Utils.fromMgmtContainerWorkingDirectory(mgmtTaskWorkingDir); + var backToContainer = Utils.Utils.fromMgmtContainerWorkingDirectory(mgmtContainerImageDefault); + + Assert.Equal(taskWorkingDir, backToTask); + Assert.Equal(containerImageDefault, backToContainer); + } + + [Fact] + public void ContainerWorkingDirectoryConversions_NullabilityHandling_VerifyBehavior() + { + // This test verifies the special nullable handling in these conversion methods + + // toMgmtContainerWorkingDirectory returns null for invalid values (graceful degradation) + var invalidValue = (Microsoft.Azure.Batch.Common.ContainerWorkingDirectory)999; + var result = Utils.Utils.toMgmtContainerWorkingDirectory(invalidValue); + Assert.Null(result); + + // fromMgmtContainerWorkingDirectory returns default for null input + ContainerWorkingDirectory? nullInput = null; + var defaultResult = Utils.Utils.fromMgmtContainerWorkingDirectory(nullInput); + Assert.Null(defaultResult); + + // fromMgmtContainerWorkingDirectory throws for invalid non-null values (strict validation) + var invalidMgmt = (ContainerWorkingDirectory)999; + Assert.Throws(() => Utils.Utils.fromMgmtContainerWorkingDirectory(invalidMgmt)); + } + + #endregion + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Test/Utils/UtilsElevationLevelTests.cs b/src/Batch/Batch.Test/Utils/UtilsElevationLevelTests.cs new file mode 100644 index 000000000000..bb06dc7849d0 --- /dev/null +++ b/src/Batch/Batch.Test/Utils/UtilsElevationLevelTests.cs @@ -0,0 +1,632 @@ +// ----------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ----------------------------------------------------------------------------- + +using Microsoft.Azure.Commands.Batch.Utils; +using Microsoft.Azure.Management.Batch.Models; +using System; +using System.Linq; +using Xunit; + +namespace Microsoft.Azure.Commands.Batch.Test.ModelsConversions +{ + public class UtilsElevationLevelTests + { + #region toMgmtElevationLevel Tests + + [Fact] + public void ToMgmtElevationLevel_NonAdmin_ReturnsNonAdmin() + { + // Arrange + var psElevationLevel = Microsoft.Azure.Batch.Common.ElevationLevel.NonAdmin; + + // Act + var result = Utils.Utils.toMgmtElevationLevel(psElevationLevel); + + // Assert + Assert.NotNull(result); + Assert.Equal(ElevationLevel.NonAdmin, result.Value); + } + + [Fact] + public void ToMgmtElevationLevel_Admin_ReturnsAdmin() + { + // Arrange + var psElevationLevel = Microsoft.Azure.Batch.Common.ElevationLevel.Admin; + + // Act + var result = Utils.Utils.toMgmtElevationLevel(psElevationLevel); + + // Assert + Assert.NotNull(result); + Assert.Equal(ElevationLevel.Admin, result.Value); + } + + [Theory] + [InlineData(Microsoft.Azure.Batch.Common.ElevationLevel.NonAdmin, ElevationLevel.NonAdmin)] + [InlineData(Microsoft.Azure.Batch.Common.ElevationLevel.Admin, ElevationLevel.Admin)] + public void ToMgmtElevationLevel_AllValidValues_ReturnsCorrectMapping( + Microsoft.Azure.Batch.Common.ElevationLevel input, + ElevationLevel expected) + { + // Act + var result = Utils.Utils.toMgmtElevationLevel(input); + + // Assert + Assert.NotNull(result); + Assert.Equal(expected, result.Value); + } + + [Fact] + public void ToMgmtElevationLevel_NullValue_ReturnsNull() + { + // Arrange + Microsoft.Azure.Batch.Common.ElevationLevel? nullElevationLevel = null; + + // Act + var result = Utils.Utils.toMgmtElevationLevel(nullElevationLevel); + + // Assert + Assert.Null(result); + } + + [Fact] + public void ToMgmtElevationLevel_DefaultValue_HandlesCorrectly() + { + // Arrange + var defaultValue = default(Microsoft.Azure.Batch.Common.ElevationLevel); + + // Act + var result = Utils.Utils.toMgmtElevationLevel(defaultValue); + + // Assert + Assert.NotNull(result); + // Default ElevationLevel is typically NonAdmin (0) + Assert.Equal(ElevationLevel.NonAdmin, result.Value); + } + + [Fact] + public void ToMgmtElevationLevel_EnumValueConsistency_EnsuresCorrectEnumMapping() + { + // This test ensures that the mapping logic correctly handles all defined enum values + // and verifies that the conversion maintains the semantic meaning of each elevation level + + // Arrange & Act & Assert + // NonAdmin: Standard user privileges without administrative access + var nonAdminResult = Utils.Utils.toMgmtElevationLevel(Microsoft.Azure.Batch.Common.ElevationLevel.NonAdmin); + Assert.NotNull(nonAdminResult); + Assert.Equal(ElevationLevel.NonAdmin, nonAdminResult.Value); + + // Admin: Administrative privileges for elevated operations + var adminResult = Utils.Utils.toMgmtElevationLevel(Microsoft.Azure.Batch.Common.ElevationLevel.Admin); + Assert.NotNull(adminResult); + Assert.Equal(ElevationLevel.Admin, adminResult.Value); + } + + [Fact] + public void ToMgmtElevationLevel_StaticMethod_DoesNotRequireInstance() + { + // This test verifies that the method is properly static and can be called without instantiation + + // Arrange + var psElevationLevel = Microsoft.Azure.Batch.Common.ElevationLevel.Admin; + + // Act - Call static method directly on class + var result = Utils.Utils.toMgmtElevationLevel(psElevationLevel); + + // Assert + Assert.NotNull(result); + Assert.Equal(ElevationLevel.Admin, result.Value); + } + + [Fact] + public void ToMgmtElevationLevel_PerformanceTest_ExecutesQuickly() + { + // This test ensures the enum conversion is efficient for all values + + // Arrange + var enumValues = new[] + { + Microsoft.Azure.Batch.Common.ElevationLevel.NonAdmin, + Microsoft.Azure.Batch.Common.ElevationLevel.Admin + }; + + // Act & Assert - Each conversion should complete without delay + foreach (var value in enumValues) + { + var result = Utils.Utils.toMgmtElevationLevel(value); + Assert.NotNull(result); + Assert.True(Enum.IsDefined(typeof(ElevationLevel), result.Value)); + } + } + + [Fact] + public void ToMgmtElevationLevel_CastingBehavior_VerifyDirectCast() + { + // This test verifies that the conversion uses direct casting as implemented + + // Arrange + var psNonAdmin = Microsoft.Azure.Batch.Common.ElevationLevel.NonAdmin; + var psAdmin = Microsoft.Azure.Batch.Common.ElevationLevel.Admin; + + // Act + var mgmtNonAdmin = Utils.Utils.toMgmtElevationLevel(psNonAdmin); + var mgmtAdmin = Utils.Utils.toMgmtElevationLevel(psAdmin); + + // Assert + Assert.NotNull(mgmtNonAdmin); + Assert.NotNull(mgmtAdmin); + + // Verify that the underlying values match (direct cast behavior) + Assert.Equal((int)psNonAdmin, (int)mgmtNonAdmin.Value); + Assert.Equal((int)psAdmin, (int)mgmtAdmin.Value); + } + + #endregion + + #region fromMgmtElevationLevel Tests + + [Fact] + public void FromMgmtElevationLevel_NonAdmin_ReturnsNonAdmin() + { + // Arrange + var mgmtElevationLevel = ElevationLevel.NonAdmin; + + // Act + var result = Utils.Utils.fromMgmtElevationLevel(mgmtElevationLevel); + + // Assert + Assert.NotNull(result); + Assert.Equal(Microsoft.Azure.Batch.Common.ElevationLevel.NonAdmin, result.Value); + } + + [Fact] + public void FromMgmtElevationLevel_Admin_ReturnsAdmin() + { + // Arrange + var mgmtElevationLevel = ElevationLevel.Admin; + + // Act + var result = Utils.Utils.fromMgmtElevationLevel(mgmtElevationLevel); + + // Assert + Assert.NotNull(result); + Assert.Equal(Microsoft.Azure.Batch.Common.ElevationLevel.Admin, result.Value); + } + + [Theory] + [InlineData(ElevationLevel.NonAdmin, Microsoft.Azure.Batch.Common.ElevationLevel.NonAdmin)] + [InlineData(ElevationLevel.Admin, Microsoft.Azure.Batch.Common.ElevationLevel.Admin)] + public void FromMgmtElevationLevel_AllValidValues_ReturnsCorrectMapping( + ElevationLevel input, + Microsoft.Azure.Batch.Common.ElevationLevel expected) + { + // Act + var result = Utils.Utils.fromMgmtElevationLevel(input); + + // Assert + Assert.NotNull(result); + Assert.Equal(expected, result.Value); + } + + [Fact] + public void FromMgmtElevationLevel_NullValue_ReturnsNull() + { + // Arrange + ElevationLevel? nullElevationLevel = null; + + // Act + var result = Utils.Utils.fromMgmtElevationLevel(nullElevationLevel); + + // Assert + Assert.Null(result); + } + + [Fact] + public void FromMgmtElevationLevel_DefaultValue_HandlesCorrectly() + { + // Arrange + var defaultValue = default(ElevationLevel); + + // Act + var result = Utils.Utils.fromMgmtElevationLevel(defaultValue); + + // Assert + Assert.NotNull(result); + // Default ElevationLevel is typically NonAdmin (0) + Assert.Equal(Microsoft.Azure.Batch.Common.ElevationLevel.NonAdmin, result.Value); + } + + [Fact] + public void FromMgmtElevationLevel_EnumValueConsistency_EnsuresCorrectEnumMapping() + { + // This test ensures that the mapping logic correctly handles all defined enum values + // and verifies that the conversion maintains the semantic meaning of each elevation level + + // Arrange & Act & Assert + // NonAdmin: Standard user privileges without administrative access + var nonAdminResult = Utils.Utils.fromMgmtElevationLevel(ElevationLevel.NonAdmin); + Assert.NotNull(nonAdminResult); + Assert.Equal(Microsoft.Azure.Batch.Common.ElevationLevel.NonAdmin, nonAdminResult.Value); + + // Admin: Administrative privileges for elevated operations + var adminResult = Utils.Utils.fromMgmtElevationLevel(ElevationLevel.Admin); + Assert.NotNull(adminResult); + Assert.Equal(Microsoft.Azure.Batch.Common.ElevationLevel.Admin, adminResult.Value); + } + + [Fact] + public void FromMgmtElevationLevel_StaticMethod_DoesNotRequireInstance() + { + // This test verifies that the method is properly static and can be called without instantiation + + // Arrange + var mgmtElevationLevel = ElevationLevel.NonAdmin; + + // Act - Call static method directly on class + var result = Utils.Utils.fromMgmtElevationLevel(mgmtElevationLevel); + + // Assert + Assert.NotNull(result); + Assert.Equal(Microsoft.Azure.Batch.Common.ElevationLevel.NonAdmin, result.Value); + } + + [Fact] + public void FromMgmtElevationLevel_PerformanceTest_ExecutesQuickly() + { + // This test ensures the enum conversion is efficient for all values + + // Arrange + var enumValues = new ElevationLevel?[] + { + ElevationLevel.NonAdmin, + ElevationLevel.Admin, + null + }; + + // Act & Assert - Each conversion should complete without delay + foreach (var value in enumValues) + { + var result = Utils.Utils.fromMgmtElevationLevel(value); + if (value.HasValue) + { + Assert.NotNull(result); + Assert.True(Enum.IsDefined(typeof(Microsoft.Azure.Batch.Common.ElevationLevel), result.Value)); + } + else + { + Assert.Null(result); + } + } + } + + [Fact] + public void FromMgmtElevationLevel_AcceptsNullableType() + { + // This test verifies that the method accepts a nullable ElevationLevel + + // Arrange + ElevationLevel? nullableValue = ElevationLevel.Admin; + + // Act + var result = Utils.Utils.fromMgmtElevationLevel(nullableValue); + + // Assert + Assert.NotNull(result); + Assert.Equal(Microsoft.Azure.Batch.Common.ElevationLevel.Admin, result.Value); + } + + [Fact] + public void FromMgmtElevationLevel_CastingBehavior_VerifyDirectCast() + { + // This test verifies that the conversion uses direct casting as implemented + + // Arrange + var mgmtNonAdmin = ElevationLevel.NonAdmin; + var mgmtAdmin = ElevationLevel.Admin; + + // Act + var psNonAdmin = Utils.Utils.fromMgmtElevationLevel(mgmtNonAdmin); + var psAdmin = Utils.Utils.fromMgmtElevationLevel(mgmtAdmin); + + // Assert + Assert.NotNull(psNonAdmin); + Assert.NotNull(psAdmin); + + // Verify that the underlying values match (direct cast behavior) + Assert.Equal((int)mgmtNonAdmin, (int)psNonAdmin.Value); + Assert.Equal((int)mgmtAdmin, (int)psAdmin.Value); + } + + #endregion + + #region Round-trip Conversion Tests + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesNonAdminValue() + { + // Arrange + var originalPsElevationLevel = Microsoft.Azure.Batch.Common.ElevationLevel.NonAdmin; + + // Act + var mgmtElevationLevel = Utils.Utils.toMgmtElevationLevel(originalPsElevationLevel); + var roundTripPsElevationLevel = Utils.Utils.fromMgmtElevationLevel(mgmtElevationLevel); + + // Assert + Assert.NotNull(roundTripPsElevationLevel); + Assert.Equal(originalPsElevationLevel, roundTripPsElevationLevel.Value); + } + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesAdminValue() + { + // Arrange + var originalPsElevationLevel = Microsoft.Azure.Batch.Common.ElevationLevel.Admin; + + // Act + var mgmtElevationLevel = Utils.Utils.toMgmtElevationLevel(originalPsElevationLevel); + var roundTripPsElevationLevel = Utils.Utils.fromMgmtElevationLevel(mgmtElevationLevel); + + // Assert + Assert.NotNull(roundTripPsElevationLevel); + Assert.Equal(originalPsElevationLevel, roundTripPsElevationLevel.Value); + } + + [Theory] + [InlineData(Microsoft.Azure.Batch.Common.ElevationLevel.NonAdmin)] + [InlineData(Microsoft.Azure.Batch.Common.ElevationLevel.Admin)] + public void RoundTripConversion_AllValidValues_PreservesOriginalValue( + Microsoft.Azure.Batch.Common.ElevationLevel originalElevationLevel) + { + // Act + var mgmtElevationLevel = Utils.Utils.toMgmtElevationLevel(originalElevationLevel); + var roundTripElevationLevel = Utils.Utils.fromMgmtElevationLevel(mgmtElevationLevel); + + // Assert + Assert.NotNull(roundTripElevationLevel); + Assert.Equal(originalElevationLevel, roundTripElevationLevel.Value); + } + + [Fact] + public void RoundTripConversion_FromMgmtAndToMgmt_PreservesValues() + { + // Arrange + var originalMgmtValues = new[] + { + ElevationLevel.NonAdmin, + ElevationLevel.Admin + }; + + foreach (var originalValue in originalMgmtValues) + { + // Act + var psValue = Utils.Utils.fromMgmtElevationLevel(originalValue); + var roundTripValue = Utils.Utils.toMgmtElevationLevel(psValue); + + // Assert + Assert.NotNull(roundTripValue); + Assert.Equal(originalValue, roundTripValue.Value); + } + } + + [Fact] + public void RoundTripConversion_NullHandling_WorksCorrectly() + { + // This test verifies null handling in round-trip conversions + + // Arrange + Microsoft.Azure.Batch.Common.ElevationLevel? nullPsValue = null; + ElevationLevel? nullMgmtValue = null; + + // Act + var mgmtFromNullPs = Utils.Utils.toMgmtElevationLevel(nullPsValue); + var psFromNullMgmt = Utils.Utils.fromMgmtElevationLevel(nullMgmtValue); + + // Assert + Assert.Null(mgmtFromNullPs); + Assert.Null(psFromNullMgmt); + } + + #endregion + + #region Enum Value Verification Tests + + [Fact] + public void ElevationLevel_VerifyEnumMemberCount_EnsuresAllValuesHandled() + { + // This test helps ensure that if new enum values are added, the conversion methods are updated + + // Arrange + var psElevationLevelValues = Enum.GetValues(typeof(Microsoft.Azure.Batch.Common.ElevationLevel)); + var mgmtElevationLevelValues = Enum.GetValues(typeof(ElevationLevel)); + + // Act & Assert + // Verify that both enums have the same number of values (assuming 1:1 mapping) + Assert.Equal(psElevationLevelValues.Length, mgmtElevationLevelValues.Length); + + // Verify that each PS enum value can be converted successfully + foreach (Microsoft.Azure.Batch.Common.ElevationLevel psValue in psElevationLevelValues) + { + var result = Utils.Utils.toMgmtElevationLevel(psValue); + Assert.NotNull(result); + Assert.True(Enum.IsDefined(typeof(ElevationLevel), result.Value)); + } + + // Verify that each management enum value can be converted successfully + foreach (ElevationLevel mgmtValue in mgmtElevationLevelValues) + { + var result = Utils.Utils.fromMgmtElevationLevel(mgmtValue); + Assert.NotNull(result); + Assert.True(Enum.IsDefined(typeof(Microsoft.Azure.Batch.Common.ElevationLevel), result.Value)); + } + } + + [Fact] + public void ElevationLevel_BijectiveMapping_EnsuresUniqueConversion() + { + // This test verifies that the mapping is bijective (one-to-one) + + // Arrange + var psValues = new[] + { + Microsoft.Azure.Batch.Common.ElevationLevel.NonAdmin, + Microsoft.Azure.Batch.Common.ElevationLevel.Admin + }; + + var mgmtValues = new[] + { + ElevationLevel.NonAdmin, + ElevationLevel.Admin + }; + + // Act - Convert PS to Management + var convertedMgmtValues = new ElevationLevel?[psValues.Length]; + for (int i = 0; i < psValues.Length; i++) + { + convertedMgmtValues[i] = Utils.Utils.toMgmtElevationLevel(psValues[i]); + } + + // Act - Convert Management to PS + var convertedPsValues = new Microsoft.Azure.Batch.Common.ElevationLevel?[mgmtValues.Length]; + for (int i = 0; i < mgmtValues.Length; i++) + { + convertedPsValues[i] = Utils.Utils.fromMgmtElevationLevel(mgmtValues[i]); + } + + // Assert - Each management enum value should be unique (no duplicates) + var distinctMgmtValues = convertedMgmtValues.Where(v => v.HasValue).Select(v => v.Value).Distinct().ToArray(); + Assert.Equal(convertedMgmtValues.Count(v => v.HasValue), distinctMgmtValues.Length); + + // Assert - Each PS enum value should be unique (no duplicates) + var distinctPsValues = convertedPsValues.Where(v => v.HasValue).Select(v => v.Value).Distinct().ToArray(); + Assert.Equal(convertedPsValues.Count(v => v.HasValue), distinctPsValues.Length); + } + + #endregion + + #region Integration Tests + + [Fact] + public void ElevationLevelConversions_BothDirections_MaintainSemanticEquivalence() + { + // This test ensures that the semantic meaning is preserved across conversions + + // Test NonAdmin semantics - Standard user privileges + var psNonAdmin = Microsoft.Azure.Batch.Common.ElevationLevel.NonAdmin; + var mgmtNonAdmin = Utils.Utils.toMgmtElevationLevel(psNonAdmin); + var backToPs = Utils.Utils.fromMgmtElevationLevel(mgmtNonAdmin); + + Assert.NotNull(mgmtNonAdmin); + Assert.Equal(ElevationLevel.NonAdmin, mgmtNonAdmin.Value); + Assert.NotNull(backToPs); + Assert.Equal(psNonAdmin, backToPs.Value); + + // Test Admin semantics - Administrative privileges + var psAdmin = Microsoft.Azure.Batch.Common.ElevationLevel.Admin; + var mgmtAdmin = Utils.Utils.toMgmtElevationLevel(psAdmin); + var backToPsAdmin = Utils.Utils.fromMgmtElevationLevel(mgmtAdmin); + + Assert.NotNull(mgmtAdmin); + Assert.Equal(ElevationLevel.Admin, mgmtAdmin.Value); + Assert.NotNull(backToPsAdmin); + Assert.Equal(psAdmin, backToPsAdmin.Value); + } + + [Fact] + public void ElevationLevelConversions_NullabilityHandling_VerifyBehavior() + { + // This test verifies the nullable handling in these conversion methods + + // toMgmtElevationLevel returns null for null input + Microsoft.Azure.Batch.Common.ElevationLevel? nullInput = null; + var result = Utils.Utils.toMgmtElevationLevel(nullInput); + Assert.Null(result); + + // fromMgmtElevationLevel returns null for null input + ElevationLevel? nullMgmtInput = null; + var mgmtResult = Utils.Utils.fromMgmtElevationLevel(nullMgmtInput); + Assert.Null(mgmtResult); + + // Both methods handle nullable types correctly + ElevationLevel? nullableAdmin = ElevationLevel.Admin; + var nonNullResult = Utils.Utils.fromMgmtElevationLevel(nullableAdmin); + Assert.NotNull(nonNullResult); + Assert.Equal(Microsoft.Azure.Batch.Common.ElevationLevel.Admin, nonNullResult.Value); + } + + [Fact] + public void ElevationLevelConversions_BatchUserContext_VerifyCorrectUsage() + { + // This test validates the conversions work correctly in the context of Batch user accounts + // ElevationLevel is used to specify privilege level for user accounts in Azure Batch + + // Arrange - Test with realistic Batch user scenarios + var userAccountScenarios = new[] + { + // Standard user account without administrative privileges + new { + ElevationLevel = Microsoft.Azure.Batch.Common.ElevationLevel.NonAdmin, + Description = "Standard user account for running regular batch tasks" + }, + // Administrative user account for privileged operations + new { + ElevationLevel = Microsoft.Azure.Batch.Common.ElevationLevel.Admin, + Description = "Administrative user account for system operations and elevated tasks" + } + }; + + foreach (var scenario in userAccountScenarios) + { + // Act + var mgmtElevationLevel = Utils.Utils.toMgmtElevationLevel(scenario.ElevationLevel); + + // Assert - Should convert correctly for Batch user account configuration + Assert.NotNull(mgmtElevationLevel); + + var expectedMgmtLevel = scenario.ElevationLevel == Microsoft.Azure.Batch.Common.ElevationLevel.NonAdmin + ? ElevationLevel.NonAdmin + : ElevationLevel.Admin; + Assert.Equal(expectedMgmtLevel, mgmtElevationLevel.Value); + + // Verify round-trip conversion maintains user account semantics + var backToPs = Utils.Utils.fromMgmtElevationLevel(mgmtElevationLevel); + Assert.NotNull(backToPs); + Assert.Equal(scenario.ElevationLevel, backToPs.Value); + } + } + + [Fact] + public void ElevationLevelConversions_DirectCastingBehavior_VerifyImplementation() + { + // This test verifies that the methods use direct casting as implemented + // This is important because it ensures the enum values have the same underlying representation + + // Test that conversion preserves underlying integer values + foreach (Microsoft.Azure.Batch.Common.ElevationLevel psValue in Enum.GetValues(typeof(Microsoft.Azure.Batch.Common.ElevationLevel))) + { + var mgmtResult = Utils.Utils.toMgmtElevationLevel(psValue); + Assert.NotNull(mgmtResult); + Assert.Equal((int)psValue, (int)mgmtResult.Value); + } + + foreach (ElevationLevel mgmtValue in Enum.GetValues(typeof(ElevationLevel))) + { + var psResult = Utils.Utils.fromMgmtElevationLevel(mgmtValue); + Assert.NotNull(psResult); + Assert.Equal((int)mgmtValue, (int)psResult.Value); + } + } + + #endregion + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Test/Utils/UtilsEnvironmentSettingsTests.cs b/src/Batch/Batch.Test/Utils/UtilsEnvironmentSettingsTests.cs new file mode 100644 index 000000000000..a9b092cc9023 --- /dev/null +++ b/src/Batch/Batch.Test/Utils/UtilsEnvironmentSettingsTests.cs @@ -0,0 +1,910 @@ +// ----------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ----------------------------------------------------------------------------- + +using Microsoft.Azure.Commands.Batch.Utils; +using Microsoft.Azure.Management.Batch.Models; +using System; +using System.Collections; +using System.Collections.Generic; +using System.Linq; +using Xunit; + +namespace Microsoft.Azure.Commands.Batch.Test.ModelsConversions +{ + public class UtilsEnvironmentSettingsTests + { + #region toMgmtEnvironmentSettings Tests + + [Fact] + public void ToMgmtEnvironmentSettings_WithSingleSetting_ReturnsCorrectMapping() + { + // Arrange + var psEnvironmentSettings = new Dictionary + { + { "PATH", "/usr/local/bin:/usr/bin:/bin" } + }; + + // Act + var result = Utils.Utils.toMgmtEnvironmentSettings(psEnvironmentSettings); + + // Assert + Assert.NotNull(result); + Assert.Single(result); + Assert.Equal("PATH", result[0].Name); + Assert.Equal("/usr/local/bin:/usr/bin:/bin", result[0].Value); + } + + [Fact] + public void ToMgmtEnvironmentSettings_WithMultipleSettings_ReturnsCorrectMapping() + { + // Arrange + var psEnvironmentSettings = new Dictionary + { + { "PATH", "/usr/local/bin:/usr/bin:/bin" }, + { "HOME", "/home/user" }, + { "LANG", "en_US.UTF-8" }, + { "SHELL", "/bin/bash" } + }; + + // Act + var result = Utils.Utils.toMgmtEnvironmentSettings(psEnvironmentSettings); + + // Assert + Assert.NotNull(result); + Assert.Equal(4, result.Count); + + // Verify all settings are present (order may vary due to dictionary) + var resultDict = result.ToDictionary(s => s.Name, s => s.Value); + Assert.Equal("/usr/local/bin:/usr/bin:/bin", resultDict["PATH"]); + Assert.Equal("/home/user", resultDict["HOME"]); + Assert.Equal("en_US.UTF-8", resultDict["LANG"]); + Assert.Equal("/bin/bash", resultDict["SHELL"]); + } + + [Fact] + public void ToMgmtEnvironmentSettings_WithEmptyDictionary_ReturnsEmptyList() + { + // Arrange + var psEnvironmentSettings = new Dictionary(); + + // Act + var result = Utils.Utils.toMgmtEnvironmentSettings(psEnvironmentSettings); + + // Assert + Assert.NotNull(result); + Assert.Empty(result); + } + + [Theory] + [InlineData("JAVA_HOME", "/usr/lib/jvm/java-11-openjdk")] + [InlineData("NODE_ENV", "production")] + [InlineData("DATABASE_URL", "postgresql://user:pass@localhost:5432/db")] + [InlineData("API_KEY", "abc123xyz789")] + [InlineData("DEBUG", "true")] + [InlineData("PORT", "8080")] + public void ToMgmtEnvironmentSettings_VariousEnvironmentVariables_ReturnsCorrectMapping(string name, string value) + { + // Arrange + var psEnvironmentSettings = new Dictionary + { + { name, value } + }; + + // Act + var result = Utils.Utils.toMgmtEnvironmentSettings(psEnvironmentSettings); + + // Assert + Assert.NotNull(result); + Assert.Single(result); + Assert.Equal(name, result[0].Name); + Assert.Equal(value, result[0].Value); + } + + [Fact] + public void ToMgmtEnvironmentSettings_WithEmptyStringValues_PreservesEmptyValues() + { + // Arrange + var psEnvironmentSettings = new Dictionary + { + { "EMPTY_VAR", "" }, + { "NORMAL_VAR", "normal_value" } + }; + + // Act + var result = Utils.Utils.toMgmtEnvironmentSettings(psEnvironmentSettings); + + // Assert + Assert.NotNull(result); + Assert.Equal(2, result.Count); + + var resultDict = result.ToDictionary(s => s.Name, s => s.Value); + Assert.Equal("", resultDict["EMPTY_VAR"]); + Assert.Equal("normal_value", resultDict["NORMAL_VAR"]); + } + + [Fact] + public void ToMgmtEnvironmentSettings_WithNullValues_PreservesNullValues() + { + // Arrange + var psEnvironmentSettings = new Dictionary + { + { "NORMAL_VAR", "normal_value" } + }; + + // Act + var result = Utils.Utils.toMgmtEnvironmentSettings(psEnvironmentSettings); + + // Assert + Assert.NotNull(result); + Assert.Single(result); + + var resultDict = result.ToDictionary(s => s.Name, s => s.Value); + Assert.Equal("normal_value", resultDict["NORMAL_VAR"]); + } + + [Fact] + public void ToMgmtEnvironmentSettings_WithNonStringKey_ThrowsArgumentException() + { + // Arrange + IDictionary psEnvironmentSettings = new Hashtable + { + { 123, "numeric_key_value" }, // Non-string key + { "NORMAL_VAR", "normal_value" } + }; + + // Act & Assert + var exception = Assert.Throws(() => Utils.Utils.toMgmtEnvironmentSettings(psEnvironmentSettings)); + Assert.Contains("EnvironmentSettings dictionary must have string keys and string values", exception.Message); + } + + [Fact] + public void ToMgmtEnvironmentSettings_WithNonStringValue_ThrowsArgumentException() + { + // Arrange + IDictionary psEnvironmentSettings = new Hashtable + { + { "NUMERIC_VALUE", 456 }, // Non-string value + { "NORMAL_VAR", "normal_value" } + }; + + // Act & Assert + var exception = Assert.Throws(() => Utils.Utils.toMgmtEnvironmentSettings(psEnvironmentSettings)); + Assert.Contains("EnvironmentSettings dictionary must have string keys and string values", exception.Message); + } + + [Fact] + public void ToMgmtEnvironmentSettings_AlwaysCreatesNewList() + { + // Arrange + var psEnvironmentSettings = new Dictionary + { + { "TEST_VAR", "test_value" } + }; + + // Act + var result1 = Utils.Utils.toMgmtEnvironmentSettings(psEnvironmentSettings); + var result2 = Utils.Utils.toMgmtEnvironmentSettings(psEnvironmentSettings); + + // Assert + Assert.NotNull(result1); + Assert.NotNull(result2); + Assert.NotSame(result1, result2); + Assert.NotSame(result1[0], result2[0]); + } + + [Fact] + public void ToMgmtEnvironmentSettings_VerifyManagementType() + { + // Arrange + var psEnvironmentSettings = new Dictionary + { + { "TYPE_TEST", "test_value" } + }; + + // Act + var result = Utils.Utils.toMgmtEnvironmentSettings(psEnvironmentSettings); + + // Assert + Assert.NotNull(result); + Assert.IsAssignableFrom>(result); + Assert.IsType(result[0]); + } + + [Fact] + public void ToMgmtEnvironmentSettings_WithHashtable_HandlesCorrectly() + { + // Arrange + IDictionary psEnvironmentSettings = new Hashtable + { + { "HASHTABLE_VAR1", "value1" }, + { "HASHTABLE_VAR2", "value2" } + }; + + // Act + var result = Utils.Utils.toMgmtEnvironmentSettings(psEnvironmentSettings); + + // Assert + Assert.NotNull(result); + Assert.Equal(2, result.Count); + + var resultDict = result.ToDictionary(s => s.Name, s => s.Value); + Assert.Equal("value1", resultDict["HASHTABLE_VAR1"]); + Assert.Equal("value2", resultDict["HASHTABLE_VAR2"]); + } + + #endregion + + #region fromMgmtEnvironmentSettings Tests + + [Fact] + public void FromMgmtEnvironmentSettings_WithSingleSetting_ReturnsCorrectMapping() + { + // Arrange + var mgmtEnvironmentSettings = new List + { + new Microsoft.Azure.Management.Batch.Models.EnvironmentSetting("PATH", "/usr/local/bin:/usr/bin:/bin") + }; + + // Act + var result = Utils.Utils.fromMgmtEnvironmentSettings(mgmtEnvironmentSettings); + + // Assert + Assert.NotNull(result); + Assert.Single(result); + Assert.Equal("/usr/local/bin:/usr/bin:/bin", result["PATH"]); + } + + [Fact] + public void FromMgmtEnvironmentSettings_WithMultipleSettings_ReturnsCorrectMapping() + { + // Arrange + var mgmtEnvironmentSettings = new List + { + new Microsoft.Azure.Management.Batch.Models.EnvironmentSetting("PATH", "/usr/local/bin:/usr/bin:/bin"), + new Microsoft.Azure.Management.Batch.Models.EnvironmentSetting("HOME", "/home/user"), + new Microsoft.Azure.Management.Batch.Models.EnvironmentSetting("LANG", "en_US.UTF-8"), + new Microsoft.Azure.Management.Batch.Models.EnvironmentSetting("SHELL", "/bin/bash") + }; + + // Act + var result = Utils.Utils.fromMgmtEnvironmentSettings(mgmtEnvironmentSettings); + + // Assert + Assert.NotNull(result); + Assert.Equal(4, result.Count); + Assert.Equal("/usr/local/bin:/usr/bin:/bin", result["PATH"]); + Assert.Equal("/home/user", result["HOME"]); + Assert.Equal("en_US.UTF-8", result["LANG"]); + Assert.Equal("/bin/bash", result["SHELL"]); + } + + [Fact] + public void FromMgmtEnvironmentSettings_WithNullList_ReturnsNull() + { + // Act + var result = Utils.Utils.fromMgmtEnvironmentSettings(null); + + // Assert + Assert.Null(result); + } + + [Fact] + public void FromMgmtEnvironmentSettings_WithEmptyList_ReturnsEmptyDictionary() + { + // Arrange + var mgmtEnvironmentSettings = new List(); + + // Act + var result = Utils.Utils.fromMgmtEnvironmentSettings(mgmtEnvironmentSettings); + + // Assert + Assert.NotNull(result); + Assert.Empty(result); + } + + [Theory] + [InlineData("JAVA_HOME", "/usr/lib/jvm/java-11-openjdk")] + [InlineData("NODE_ENV", "production")] + [InlineData("DATABASE_URL", "postgresql://user:pass@localhost:5432/db")] + [InlineData("API_KEY", "abc123xyz789")] + [InlineData("DEBUG", "true")] + [InlineData("PORT", "8080")] + public void FromMgmtEnvironmentSettings_VariousEnvironmentVariables_ReturnsCorrectMapping(string name, string value) + { + // Arrange + var mgmtEnvironmentSettings = new List + { + new Microsoft.Azure.Management.Batch.Models.EnvironmentSetting(name, value) + }; + + // Act + var result = Utils.Utils.fromMgmtEnvironmentSettings(mgmtEnvironmentSettings); + + // Assert + Assert.NotNull(result); + Assert.Single(result); + Assert.Equal(value, result[name]); + } + + [Fact] + public void FromMgmtEnvironmentSettings_WithEmptyStringValues_PreservesEmptyValues() + { + // Arrange + var mgmtEnvironmentSettings = new List + { + new Microsoft.Azure.Management.Batch.Models.EnvironmentSetting("EMPTY_VAR", ""), + new Microsoft.Azure.Management.Batch.Models.EnvironmentSetting("NORMAL_VAR", "normal_value") + }; + + // Act + var result = Utils.Utils.fromMgmtEnvironmentSettings(mgmtEnvironmentSettings); + + // Assert + Assert.NotNull(result); + Assert.Equal(2, result.Count); + Assert.Equal("", result["EMPTY_VAR"]); + Assert.Equal("normal_value", result["NORMAL_VAR"]); + } + + [Fact] + public void FromMgmtEnvironmentSettings_WithNullValues_PreservesNullValues() + { + // Arrange + var mgmtEnvironmentSettings = new List + { + new Microsoft.Azure.Management.Batch.Models.EnvironmentSetting("NULL_VAR", null), + new Microsoft.Azure.Management.Batch.Models.EnvironmentSetting("NORMAL_VAR", "normal_value") + }; + + // Act + var result = Utils.Utils.fromMgmtEnvironmentSettings(mgmtEnvironmentSettings); + + // Assert + Assert.NotNull(result); + Assert.Equal(2, result.Count); + Assert.Null(result["NULL_VAR"]); + Assert.Equal("normal_value", result["NORMAL_VAR"]); + } + + [Fact] + public void FromMgmtEnvironmentSettings_StaticMethod_DoesNotRequireInstance() + { + // Arrange + var mgmtEnvironmentSettings = new List + { + new Microsoft.Azure.Management.Batch.Models.EnvironmentSetting("STATIC_TEST", "static_value") + }; + + // Act - Call static method directly on class + var result = Utils.Utils.fromMgmtEnvironmentSettings(mgmtEnvironmentSettings); + + // Assert + Assert.NotNull(result); + Assert.Single(result); + Assert.Equal("static_value", result["STATIC_TEST"]); + } + + [Fact] + public void FromMgmtEnvironmentSettings_AlwaysCreatesNewDictionary() + { + // Arrange + var mgmtEnvironmentSettings = new List + { + new Microsoft.Azure.Management.Batch.Models.EnvironmentSetting("TEST_VAR", "test_value") + }; + + // Act + var result1 = Utils.Utils.fromMgmtEnvironmentSettings(mgmtEnvironmentSettings); + var result2 = Utils.Utils.fromMgmtEnvironmentSettings(mgmtEnvironmentSettings); + + // Assert + Assert.NotNull(result1); + Assert.NotNull(result2); + Assert.NotSame(result1, result2); + } + + [Fact] + public void FromMgmtEnvironmentSettings_VerifyDictionaryType() + { + // Arrange + var mgmtEnvironmentSettings = new List + { + new Microsoft.Azure.Management.Batch.Models.EnvironmentSetting("TYPE_TEST", "test_value") + }; + + // Act + var result = Utils.Utils.fromMgmtEnvironmentSettings(mgmtEnvironmentSettings); + + // Assert + Assert.NotNull(result); + Assert.IsAssignableFrom(result); + Assert.IsType>(result); + } + + [Fact] + public void FromMgmtEnvironmentSettings_PreservesOrder() + { + // Arrange + var mgmtEnvironmentSettings = new List + { + new Microsoft.Azure.Management.Batch.Models.EnvironmentSetting("FIRST", "first_value"), + new Microsoft.Azure.Management.Batch.Models.EnvironmentSetting("SECOND", "second_value"), + new Microsoft.Azure.Management.Batch.Models.EnvironmentSetting("THIRD", "third_value") + }; + + // Act + var result = Utils.Utils.fromMgmtEnvironmentSettings(mgmtEnvironmentSettings); + + // Assert + Assert.NotNull(result); + Assert.Equal(3, result.Count); + + // Verify all keys are present + Assert.True(result.Contains("FIRST")); + Assert.True(result.Contains("SECOND")); + Assert.True(result.Contains("THIRD")); + + Assert.Equal("first_value", result["FIRST"]); + Assert.Equal("second_value", result["SECOND"]); + Assert.Equal("third_value", result["THIRD"]); + } + + #endregion + + #region Round-trip Conversion Tests + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesAllSettings() + { + // Arrange + var originalPsSettings = new Dictionary + { + { "PATH", "/usr/local/bin:/usr/bin:/bin" }, + { "HOME", "/home/user" }, + { "JAVA_HOME", "/usr/lib/jvm/java-11-openjdk" }, + { "NODE_ENV", "production" }, + { "DEBUG", "true" } + }; + + // Act + var mgmtSettings = Utils.Utils.toMgmtEnvironmentSettings(originalPsSettings); + var roundTripPsSettings = Utils.Utils.fromMgmtEnvironmentSettings(mgmtSettings); + + // Assert + Assert.NotNull(roundTripPsSettings); + Assert.Equal(originalPsSettings.Count, roundTripPsSettings.Count); + + foreach (var kvp in originalPsSettings) + { + Assert.True(roundTripPsSettings.Contains(kvp.Key)); + Assert.Equal(kvp.Value, roundTripPsSettings[kvp.Key]); + } + } + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesEmptyAndNullValues() + { + // Arrange + var originalPsSettings = new Dictionary + { + { "EMPTY_VAR", "" }, + { "NORMAL_VAR", "normal_value" } + }; + + // Act + var mgmtSettings = Utils.Utils.toMgmtEnvironmentSettings(originalPsSettings); + var roundTripPsSettings = Utils.Utils.fromMgmtEnvironmentSettings(mgmtSettings); + + // Assert + Assert.NotNull(roundTripPsSettings); + Assert.Equal(2, roundTripPsSettings.Count); + Assert.Equal("", roundTripPsSettings["EMPTY_VAR"]); + Assert.Equal("normal_value", roundTripPsSettings["NORMAL_VAR"]); + } + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesEmptyDictionary() + { + // Arrange + var originalPsSettings = new Dictionary(); + + // Act + var mgmtSettings = Utils.Utils.toMgmtEnvironmentSettings(originalPsSettings); + var roundTripPsSettings = Utils.Utils.fromMgmtEnvironmentSettings(mgmtSettings); + + // Assert + Assert.NotNull(roundTripPsSettings); + Assert.Empty(roundTripPsSettings); + } + + [Theory] + [InlineData("SIMPLE_VAR", "simple_value")] + [InlineData("COMPLEX_PATH", "/very/long/path/with/multiple/segments")] + [InlineData("CONNECTION_STRING", "Server=localhost;Database=test;Trusted_Connection=true;")] + [InlineData("JSON_CONFIG", "{\"key\":\"value\",\"number\":123}")] + [InlineData("EMPTY_VALUE", "")] + public void RoundTripConversion_AllValidValues_PreservesOriginalValue(string name, string value) + { + // Arrange + var originalPsSettings = new Dictionary + { + { name, value } + }; + + // Act + var mgmtSettings = Utils.Utils.toMgmtEnvironmentSettings(originalPsSettings); + var roundTripPsSettings = Utils.Utils.fromMgmtEnvironmentSettings(mgmtSettings); + + // Assert + Assert.NotNull(roundTripPsSettings); + Assert.Single(roundTripPsSettings); + Assert.Equal(value, roundTripPsSettings[name]); + } + + [Fact] + public void RoundTripConversion_FromMgmtAndToMgmt_PreservesValues() + { + // Arrange + var originalMgmtSettings = new List + { + new Microsoft.Azure.Management.Batch.Models.EnvironmentSetting("DATABASE_URL", "postgresql://user:pass@localhost:5432/db"), + new Microsoft.Azure.Management.Batch.Models.EnvironmentSetting("API_ENDPOINT", "https://api.example.com/v1"), + new Microsoft.Azure.Management.Batch.Models.EnvironmentSetting("LOG_LEVEL", "INFO") + }; + + // Act + var psSettings = Utils.Utils.fromMgmtEnvironmentSettings(originalMgmtSettings); + var roundTripMgmtSettings = Utils.Utils.toMgmtEnvironmentSettings(psSettings); + + // Assert + Assert.NotNull(roundTripMgmtSettings); + Assert.Equal(originalMgmtSettings.Count, roundTripMgmtSettings.Count); + + var originalDict = originalMgmtSettings.ToDictionary(s => s.Name, s => s.Value); + var roundTripDict = roundTripMgmtSettings.ToDictionary(s => s.Name, s => s.Value); + + foreach (var kvp in originalDict) + { + Assert.Equal(kvp.Value, roundTripDict[kvp.Key]); + } + } + + #endregion + + #region Integration Tests + + [Fact] + public void EnvironmentSettingsConversions_BothDirections_MaintainSemanticEquivalence() + { + // This test ensures that the semantic meaning is preserved across conversions + + // Arrange - Test with realistic environment variable scenarios + var psSettings = new Dictionary + { + // System paths + { "PATH", "/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin" }, + { "LD_LIBRARY_PATH", "/usr/local/lib:/usr/lib:/lib" }, + + // Application configuration + { "NODE_ENV", "production" }, + { "JAVA_HOME", "/usr/lib/jvm/java-11-openjdk" }, + { "PYTHON_PATH", "/opt/python/lib/python3.9/site-packages" }, + + // Database configuration + { "DATABASE_URL", "postgresql://batch_user:secure_pass@db.example.com:5432/batch_db" }, + { "REDIS_URL", "redis://cache.example.com:6379/0" }, + + // API and service configuration + { "API_BASE_URL", "https://api.batch.example.com/v2" }, + { "LOG_LEVEL", "INFO" }, + { "MAX_WORKERS", "8" }, + + // Special cases + { "EMPTY_CONFIG", "" } + }; + + // Act + var mgmtSettings = Utils.Utils.toMgmtEnvironmentSettings(psSettings); + var backToPs = Utils.Utils.fromMgmtEnvironmentSettings(mgmtSettings); + + // Assert + Assert.NotNull(mgmtSettings); + Assert.Equal(11, mgmtSettings.Count); + Assert.NotNull(backToPs); + Assert.Equal(11, backToPs.Count); + + // Verify semantic meaning is preserved + var mgmtDict = mgmtSettings.ToDictionary(s => s.Name, s => s.Value); + + Assert.Equal("/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin", mgmtDict["PATH"]); + Assert.Equal("production", mgmtDict["NODE_ENV"]); + Assert.Equal("postgresql://batch_user:secure_pass@db.example.com:5432/batch_db", mgmtDict["DATABASE_URL"]); + Assert.Equal("", mgmtDict["EMPTY_CONFIG"]); + + // Verify round-trip preservation + foreach (var kvp in psSettings) + { + Assert.Equal(kvp.Value, backToPs[kvp.Key]); + } + } + + [Fact] + public void EnvironmentSettingsConversions_NullHandling_WorksCorrectly() + { + // Test null handling in conversions + + // Act + var resultFromNull = Utils.Utils.fromMgmtEnvironmentSettings(null); + + // Assert + Assert.Null(resultFromNull); + } + + [Fact] + public void EnvironmentSettingsConversions_BatchTaskContext_VerifyCorrectUsage() + { + // This test validates the conversions work correctly in the context of Batch task environment settings + // Environment Settings is used to configure environment variables for Batch tasks + + // Arrange - Test with realistic Batch task scenarios + var batchTaskScenarios = new[] + { + // Data processing task + new { + Settings = new Dictionary + { + { "INPUT_PATH", "/mnt/batch/tasks/shared/input" }, + { "OUTPUT_PATH", "/mnt/batch/tasks/shared/output" }, + { "WORKER_THREADS", "4" }, + { "MEMORY_LIMIT", "2048M" } + }, + Description = "Data processing task with input/output paths" + }, + // Machine learning task + new { + Settings = new Dictionary + { + { "MODEL_PATH", "/mnt/batch/tasks/shared/models/latest" }, + { "CUDA_VISIBLE_DEVICES", "0,1" }, + { "TENSORFLOW_GPU_ALLOW_GROWTH", "true" }, + { "BATCH_SIZE", "32" } + }, + Description = "ML task with GPU configuration" + }, + // Container task + new { + Settings = new Dictionary + { + { "DOCKER_HOST", "unix:///var/run/docker.sock" }, + { "CONTAINER_REGISTRY", "myregistry.azurecr.io" }, + { "IMAGE_TAG", "v1.2.3" }, + { "PULL_POLICY", "Always" } + }, + Description = "Container task with Docker configuration" + } + }; + + foreach (var scenario in batchTaskScenarios) + { + // Act + var mgmtSettings = Utils.Utils.toMgmtEnvironmentSettings(scenario.Settings); + + // Assert - Should convert correctly for Batch task configuration + Assert.NotNull(mgmtSettings); + Assert.Equal(scenario.Settings.Count, mgmtSettings.Count); + + var mgmtDict = mgmtSettings.ToDictionary(s => s.Name, s => s.Value); + foreach (var kvp in scenario.Settings) + { + Assert.Equal(kvp.Value, mgmtDict[kvp.Key]); + } + + // Verify round-trip conversion maintains task environment semantics + var backToPs = Utils.Utils.fromMgmtEnvironmentSettings(mgmtSettings); + Assert.NotNull(backToPs); + Assert.Equal(scenario.Settings.Count, backToPs.Count); + + foreach (var kvp in scenario.Settings) + { + Assert.Equal(kvp.Value, backToPs[kvp.Key]); + } + } + } + + [Fact] + public void EnvironmentSettingsConversions_CollectionHandling_VerifyBehavior() + { + // This test verifies that the conversion methods handle collections appropriately + + // Arrange + var psSettings = new Dictionary + { + { "FIRST", "first_value" }, + { "SECOND", "second_value" }, + { "THIRD", "third_value" } + }; + + var mgmtSettings = new List + { + new Microsoft.Azure.Management.Batch.Models.EnvironmentSetting("ALPHA", "alpha_value"), + new Microsoft.Azure.Management.Batch.Models.EnvironmentSetting("BETA", "beta_value") + }; + + // Act + var mgmtResult = Utils.Utils.toMgmtEnvironmentSettings(psSettings); + var psResult = Utils.Utils.fromMgmtEnvironmentSettings(mgmtSettings); + + // Assert - Verify proper collection handling + Assert.NotNull(mgmtResult); + Assert.NotNull(psResult); + Assert.IsAssignableFrom>(mgmtResult); + Assert.IsAssignableFrom(psResult); + + // Verify collections are independent + Assert.NotSame(psSettings, mgmtResult); + Assert.NotSame(mgmtSettings, psResult); + + // Verify counts and content + Assert.Equal(3, mgmtResult.Count); + Assert.Equal(2, psResult.Count); + + var mgmtDict = mgmtResult.ToDictionary(s => s.Name, s => s.Value); + Assert.Equal("first_value", mgmtDict["FIRST"]); + Assert.Equal("alpha_value", psResult["ALPHA"]); + } + + [Fact] + public void EnvironmentSettingsConversions_ErrorHandling_VerifyConsistentBehavior() + { + // This test ensures that error handling is consistent + + // Test invalid key types + IDictionary invalidKeyDict = new Hashtable + { + { 123, "numeric_key" }, + { "VALID_KEY", "valid_value" } + }; + + var keyException = Assert.Throws(() => Utils.Utils.toMgmtEnvironmentSettings(invalidKeyDict)); + Assert.Contains("EnvironmentSettings dictionary must have string keys and string values", keyException.Message); + + // Test invalid value types + IDictionary invalidValueDict = new Hashtable + { + { "VALID_KEY", "valid_value" }, + { "INVALID_VALUE", 456 } + }; + + var valueException = Assert.Throws(() => Utils.Utils.toMgmtEnvironmentSettings(invalidValueDict)); + Assert.Contains("EnvironmentSettings dictionary must have string keys and string values", valueException.Message); + } + + #endregion + + #region Performance and Edge Case Tests + + [Fact] + public void EnvironmentSettingsConversions_PerformanceTest_ExecutesQuickly() + { + // This test ensures the conversions are efficient with larger collections + + // Arrange - Create a larger collection + var psSettings = new Dictionary(); + var mgmtSettings = new List(); + + for (int i = 0; i < 100; i++) + { + psSettings.Add($"VAR_{i}", $"value_{i}"); + mgmtSettings.Add(new Microsoft.Azure.Management.Batch.Models.EnvironmentSetting($"MGMT_VAR_{i}", $"mgmt_value_{i}")); + } + + // Act & Assert - Multiple conversions should complete without delay + for (int i = 0; i < 10; i++) + { + var mgmtResult = Utils.Utils.toMgmtEnvironmentSettings(psSettings); + var psResult = Utils.Utils.fromMgmtEnvironmentSettings(mgmtSettings); + + Assert.NotNull(mgmtResult); + Assert.NotNull(psResult); + Assert.Equal(100, mgmtResult.Count); + Assert.Equal(100, psResult.Count); + } + } + + [Fact] + public void EnvironmentSettingsConversions_EdgeCaseValues_HandleCorrectly() + { + // Test conversion with various edge case values + + var testSettings = new Dictionary + { + // Standard environment variables + { "PATH", "/usr/bin:/bin" }, + { "HOME", "/home/user" }, + { "USER", "batchuser" }, + + // Special characters and formats + { "CONNECTION_STRING", "Server=localhost;Database=test;Integrated Security=true;" }, + { "JSON_CONFIG", "{\"key\":\"value\",\"nested\":{\"prop\":123}}" }, + { "URL_WITH_PARAMS", "https://api.example.com/v1/resource?param1=value1¶m2=value2" }, + { "MULTILINE_VALUE", "line1\nline2\nline3" }, + { "QUOTED_VALUE", "\"This is a quoted string\"" }, + { "SPACES_AND_TABS", " value with spaces \t" }, + + // Unicode and special characters + { "UNICODE_VAR", "こんにちは世界" }, + { "SPECIAL_CHARS", "!@#$%^&*()_+-=[]{}|;':\",./<>?" }, + + // Very long values + { "LONG_VALUE", new string('A', 1000) }, + + // Edge cases + { "EMPTY_VALUE", "" }, + { "WHITESPACE_ONLY", " " }, + { "SINGLE_CHAR", "X" } + }; + + // Act + var mgmtResult = Utils.Utils.toMgmtEnvironmentSettings(testSettings); + var roundTripResult = Utils.Utils.fromMgmtEnvironmentSettings(mgmtResult); + + // Assert + Assert.NotNull(mgmtResult); + Assert.NotNull(roundTripResult); + Assert.Equal(testSettings.Count, mgmtResult.Count); + Assert.Equal(testSettings.Count, roundTripResult.Count); + + // Verify all edge cases are handled correctly + foreach (var kvp in testSettings) + { + Assert.Equal(kvp.Value, roundTripResult[kvp.Key]); + } + } + + [Fact] + public void EnvironmentSettingsConversions_LargeCollection_PreservesAllEntries() + { + // Test with a moderately large collection to ensure all entries are processed + + // Arrange + var psSettings = new Dictionary(); + for (int i = 0; i < 250; i++) + { + psSettings.Add($"LARGE_TEST_VAR_{i:D3}", $"large_test_value_{i}_with_some_longer_content"); + } + + // Act + var mgmtResult = Utils.Utils.toMgmtEnvironmentSettings(psSettings); + var roundTripResult = Utils.Utils.fromMgmtEnvironmentSettings(mgmtResult); + + // Assert + Assert.NotNull(mgmtResult); + Assert.NotNull(roundTripResult); + Assert.Equal(250, mgmtResult.Count); + Assert.Equal(250, roundTripResult.Count); + + // Verify all entries are correctly converted + for (int i = 0; i < 250; i++) + { + var expectedKey = $"LARGE_TEST_VAR_{i:D3}"; + var expectedValue = $"large_test_value_{i}_with_some_longer_content"; + + Assert.True(roundTripResult.Contains(expectedKey)); + Assert.Equal(expectedValue, roundTripResult[expectedKey]); + } + } + + #endregion + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Test/Utils/UtilsTests.cs b/src/Batch/Batch.Test/Utils/UtilsTests.cs new file mode 100644 index 000000000000..55be7adf4ba8 --- /dev/null +++ b/src/Batch/Batch.Test/Utils/UtilsTests.cs @@ -0,0 +1,404 @@ +// ----------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ----------------------------------------------------------------------------- + +using Microsoft.Azure.Commands.Batch.Utils; +using Microsoft.Azure.Management.Batch.Models; +using System; +using System.Linq; +using Xunit; + +namespace Microsoft.Azure.Commands.Batch.Test.ModelsConversions +{ + public class UtilsTests + { + #region toMgmtUpgradeMode Tests + + [Fact] + public void ToMgmtUpgradeMode_Manual_ReturnsManual() + { + // Arrange + var psUpgradeMode = Microsoft.Azure.Batch.Common.UpgradeMode.Manual; + + // Act + var result = Utils.Utils.toMgmtUpgradeMode(psUpgradeMode); + + // Assert + Assert.Equal(UpgradeMode.Manual, result); + } + + [Fact] + public void ToMgmtUpgradeMode_Automatic_ReturnsAutomatic() + { + // Arrange + var psUpgradeMode = Microsoft.Azure.Batch.Common.UpgradeMode.Automatic; + + // Act + var result = Utils.Utils.toMgmtUpgradeMode(psUpgradeMode); + + // Assert + Assert.Equal(UpgradeMode.Automatic, result); + } + + [Fact] + public void ToMgmtUpgradeMode_Rolling_ReturnsRolling() + { + // Arrange + var psUpgradeMode = Microsoft.Azure.Batch.Common.UpgradeMode.Rolling; + + // Act + var result = Utils.Utils.toMgmtUpgradeMode(psUpgradeMode); + + // Assert + Assert.Equal(UpgradeMode.Rolling, result); + } + + [Theory] + [InlineData(Microsoft.Azure.Batch.Common.UpgradeMode.Manual, UpgradeMode.Manual)] + [InlineData(Microsoft.Azure.Batch.Common.UpgradeMode.Automatic, UpgradeMode.Automatic)] + [InlineData(Microsoft.Azure.Batch.Common.UpgradeMode.Rolling, UpgradeMode.Rolling)] + public void ToMgmtUpgradeMode_AllValidValues_ReturnsCorrectMapping( + Microsoft.Azure.Batch.Common.UpgradeMode input, + UpgradeMode expected) + { + // Act + var result = Utils.Utils.toMgmtUpgradeMode(input); + + // Assert + Assert.Equal(expected, result); + } + + [Fact] + public void ToMgmtUpgradeMode_InvalidValue_ThrowsArgumentOutOfRangeException() + { + // Arrange + var invalidUpgradeMode = (Microsoft.Azure.Batch.Common.UpgradeMode)999; // Invalid enum value + + // Act & Assert + var exception = Assert.Throws(() => Utils.Utils.toMgmtUpgradeMode(invalidUpgradeMode)); + Assert.Equal("psUpgradeMode", exception.ParamName); + Assert.Equal(invalidUpgradeMode, exception.ActualValue); + } + + [Fact] + public void ToMgmtUpgradeMode_EnumValueConsistency_EnsuresCorrectEnumMapping() + { + // This test ensures that the mapping logic correctly handles all defined enum values + // and verifies that the conversion maintains the semantic meaning of each mode + + // Arrange & Act & Assert + // Manual mode: User controls the application of updates + var manualResult = Utils.Utils.toMgmtUpgradeMode(Microsoft.Azure.Batch.Common.UpgradeMode.Manual); + Assert.Equal(UpgradeMode.Manual, manualResult); + + // Automatic mode: All VMs updated simultaneously + var automaticResult = Utils.Utils.toMgmtUpgradeMode(Microsoft.Azure.Batch.Common.UpgradeMode.Automatic); + Assert.Equal(UpgradeMode.Automatic, automaticResult); + + // Rolling mode: VMs updated in batches with optional pause + var rollingResult = Utils.Utils.toMgmtUpgradeMode(Microsoft.Azure.Batch.Common.UpgradeMode.Rolling); + Assert.Equal(UpgradeMode.Rolling, rollingResult); + } + + [Fact] + public void ToMgmtUpgradeMode_StaticMethod_DoesNotRequireInstance() + { + // This test verifies that the method is properly static and can be called without instantiation + + // Arrange + var psUpgradeMode = Microsoft.Azure.Batch.Common.UpgradeMode.Automatic; + + // Act - Call static method directly on class + var result = Utils.Utils.toMgmtUpgradeMode(psUpgradeMode); + + // Assert + Assert.Equal(UpgradeMode.Automatic, result); + } + + [Fact] + public void ToMgmtUpgradeMode_PerformanceTest_ExecutesQuickly() + { + // This test ensures the enum conversion is efficient for all values + + // Arrange + var enumValues = new[] + { + Microsoft.Azure.Batch.Common.UpgradeMode.Manual, + Microsoft.Azure.Batch.Common.UpgradeMode.Automatic, + Microsoft.Azure.Batch.Common.UpgradeMode.Rolling + }; + + // Act & Assert - Each conversion should complete without delay + foreach (var value in enumValues) + { + var result = Utils.Utils.toMgmtUpgradeMode(value); + Assert.True(Enum.IsDefined(typeof(UpgradeMode), result)); + } + } + + #endregion + + #region Edge Case Tests + + [Fact] + public void ToMgmtUpgradeMode_DefaultEnumValue_HandlesZeroValue() + { + // Arrange - Test the default enum value (typically 0) + var defaultValue = default(Microsoft.Azure.Batch.Common.UpgradeMode); + + // Act & Assert - Should handle the default value appropriately + // Note: This test assumes the default value is Manual (0), but will verify actual behavior + try + { + var result = Utils.Utils.toMgmtUpgradeMode(defaultValue); + Assert.True(Enum.IsDefined(typeof(UpgradeMode), result)); + } + catch (ArgumentOutOfRangeException) + { + // If default value is not handled, it should throw ArgumentOutOfRangeException + // This is acceptable behavior for enum conversion methods + Assert.True(true); // Test passes - expected behavior for invalid enum values + } + } + + [Fact] + public void ToMgmtUpgradeMode_NegativeValue_ThrowsArgumentOutOfRangeException() + { + // Arrange + var negativeValue = (Microsoft.Azure.Batch.Common.UpgradeMode)(-1); + + // Act & Assert + var exception = Assert.Throws(() => Utils.Utils.toMgmtUpgradeMode(negativeValue)); + Assert.Equal("psUpgradeMode", exception.ParamName); + Assert.Equal(negativeValue, exception.ActualValue); + } + + [Fact] + public void ToMgmtUpgradeMode_LargeValue_ThrowsArgumentOutOfRangeException() + { + // Arrange + var largeValue = (Microsoft.Azure.Batch.Common.UpgradeMode)int.MaxValue; + + // Act & Assert + var exception = Assert.Throws(() => Utils.Utils.toMgmtUpgradeMode(largeValue)); + Assert.Equal("psUpgradeMode", exception.ParamName); + Assert.Equal(largeValue, exception.ActualValue); + } + + #endregion + + #region Enum Value Verification Tests + + [Fact] + public void ToMgmtUpgradeMode_VerifyEnumMemberCount_EnsuresAllValuesHandled() + { + // This test helps ensure that if new enum values are added, the conversion method is updated + + // Arrange + var psUpgradeModeValues = Enum.GetValues(typeof(Microsoft.Azure.Batch.Common.UpgradeMode)); + var mgmtUpgradeModeValues = Enum.GetValues(typeof(UpgradeMode)); + + // Act & Assert + // Verify that both enums have the same number of values (assuming 1:1 mapping) + Assert.Equal(psUpgradeModeValues.Length, mgmtUpgradeModeValues.Length); + + // Verify that each PS enum value can be converted successfully + foreach (Microsoft.Azure.Batch.Common.UpgradeMode psValue in psUpgradeModeValues) + { + // Should not throw exception for any defined enum value + var result = Utils.Utils.toMgmtUpgradeMode(psValue); + Assert.True(Enum.IsDefined(typeof(UpgradeMode), result)); + } + } + + [Fact] + public void ToMgmtUpgradeMode_BijectiveMapping_EnsuresUniqueConversion() + { + // This test verifies that the mapping is bijective (one-to-one) + + // Arrange + var psValues = new[] + { + Microsoft.Azure.Batch.Common.UpgradeMode.Manual, + Microsoft.Azure.Batch.Common.UpgradeMode.Automatic, + Microsoft.Azure.Batch.Common.UpgradeMode.Rolling + }; + + // Act + var mgmtValues = new UpgradeMode[psValues.Length]; + for (int i = 0; i < psValues.Length; i++) + { + mgmtValues[i] = Utils.Utils.toMgmtUpgradeMode(psValues[i]); + } + + // Assert - Each management enum value should be unique (no duplicates) + var distinctValues = mgmtValues.Distinct().ToArray(); + Assert.Equal(mgmtValues.Length, distinctValues.Length); + } + + [Fact] + public void FromMgmtUpgradeMode_VerifyEnumMemberCount_EnsuresAllValuesHandled() + { + // This test helps ensure that if new enum values are added, the conversion method is updated + + // Arrange + var mgmtUpgradeModeValues = Enum.GetValues(typeof(UpgradeMode)); + var psUpgradeModeValues = Enum.GetValues(typeof(Microsoft.Azure.Batch.Common.UpgradeMode)); + + // Act & Assert + // Verify that both enums have the same number of values (assuming 1:1 mapping) + Assert.Equal(mgmtUpgradeModeValues.Length, psUpgradeModeValues.Length); + + // Verify that each management enum value can be converted successfully + foreach (UpgradeMode mgmtValue in mgmtUpgradeModeValues) + { + // Should not throw exception for any defined enum value + var result = Utils.Utils.fromMgmtUpgradeMode(mgmtValue); + Assert.True(Enum.IsDefined(typeof(Microsoft.Azure.Batch.Common.UpgradeMode), result)); + } + } + + [Fact] + public void FromMgmtUpgradeMode_BijectiveMapping_EnsuresUniqueConversion() + { + // This test verifies that the mapping is bijective (one-to-one) + + // Arrange + var mgmtValues = new[] + { + UpgradeMode.Manual, + UpgradeMode.Automatic, + UpgradeMode.Rolling + }; + + // Act + var psValues = new Microsoft.Azure.Batch.Common.UpgradeMode[mgmtValues.Length]; + for (int i = 0; i < mgmtValues.Length; i++) + { + psValues[i] = Utils.Utils.fromMgmtUpgradeMode(mgmtValues[i]); + } + + // Assert - Each PS enum value should be unique (no duplicates) + var distinctValues = psValues.Distinct().ToArray(); + Assert.Equal(psValues.Length, distinctValues.Length); + } + + #endregion + + #region Round-trip Conversion Tests + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesValues() + { + // This test verifies that converting PS -> Management -> PS preserves the original value + + // Arrange + var originalPsValues = new[] + { + Microsoft.Azure.Batch.Common.UpgradeMode.Manual, + Microsoft.Azure.Batch.Common.UpgradeMode.Automatic, + Microsoft.Azure.Batch.Common.UpgradeMode.Rolling + }; + + foreach (var originalValue in originalPsValues) + { + // Act - Convert PS -> Management -> PS + var mgmtValue = Utils.Utils.toMgmtUpgradeMode(originalValue); + var roundTripValue = Utils.Utils.fromMgmtUpgradeMode(mgmtValue); + + // Assert - Should get back the original value + Assert.Equal(originalValue, roundTripValue); + } + } + + [Fact] + public void RoundTripConversion_FromMgmtAndToMgmt_PreservesValues() + { + // This test verifies that converting Management -> PS -> Management preserves the original value + + // Arrange + var originalMgmtValues = new[] + { + UpgradeMode.Manual, + UpgradeMode.Automatic, + UpgradeMode.Rolling + }; + + foreach (var originalValue in originalMgmtValues) + { + // Act - Convert Management -> PS -> Management + var psValue = Utils.Utils.fromMgmtUpgradeMode(originalValue); + var roundTripValue = Utils.Utils.toMgmtUpgradeMode(psValue); + + // Assert - Should get back the original value + Assert.Equal(originalValue, roundTripValue); + } + } + + #endregion + + #region Integration Tests + + [Fact] + public void UpgradeModeConversions_BothDirections_MaintainSemanticEquivalence() + { + // This test ensures that the semantic meaning is preserved across conversions + + // Test Manual mode semantics + var psManual = Microsoft.Azure.Batch.Common.UpgradeMode.Manual; + var mgmtManual = Utils.Utils.toMgmtUpgradeMode(psManual); + var backToPs = Utils.Utils.fromMgmtUpgradeMode(mgmtManual); + + Assert.Equal(UpgradeMode.Manual, mgmtManual); + Assert.Equal(psManual, backToPs); + + // Test Automatic mode semantics + var psAutomatic = Microsoft.Azure.Batch.Common.UpgradeMode.Automatic; + var mgmtAutomatic = Utils.Utils.toMgmtUpgradeMode(psAutomatic); + var backToPsAuto = Utils.Utils.fromMgmtUpgradeMode(mgmtAutomatic); + + Assert.Equal(UpgradeMode.Automatic, mgmtAutomatic); + Assert.Equal(psAutomatic, backToPsAuto); + + // Test Rolling mode semantics + var psRolling = Microsoft.Azure.Batch.Common.UpgradeMode.Rolling; + var mgmtRolling = Utils.Utils.toMgmtUpgradeMode(psRolling); + var backToPsRolling = Utils.Utils.fromMgmtUpgradeMode(mgmtRolling); + + Assert.Equal(UpgradeMode.Rolling, mgmtRolling); + Assert.Equal(psRolling, backToPsRolling); + } + + [Fact] + public void UpgradeModeConversions_ErrorHandling_ConsistentBehavior() + { + // This test ensures that both conversion methods handle invalid inputs consistently + + // Test invalid PS upgrade mode + var invalidPs = (Microsoft.Azure.Batch.Common.UpgradeMode)999; + var psException = Assert.Throws(() => Utils.Utils.toMgmtUpgradeMode(invalidPs)); + Assert.Equal("psUpgradeMode", psException.ParamName); + + // Test invalid Management upgrade mode + var invalidMgmt = (UpgradeMode)999; + var mgmtException = Assert.Throws(() => Utils.Utils.fromMgmtUpgradeMode(invalidMgmt)); + Assert.Equal("mgmtUpgradeMode", mgmtException.ParamName); + + // Both should throw ArgumentOutOfRangeException with appropriate parameter names + Assert.IsType(psException); + Assert.IsType(mgmtException); + } + + #endregion + } +} \ No newline at end of file diff --git a/src/Batch/Batch/Models.Generated/PSAutoUserSpecification.cs b/src/Batch/Batch/Models.Generated/PSAutoUserSpecification.cs index eadc5077536f..78db7e7379fc 100644 --- a/src/Batch/Batch/Models.Generated/PSAutoUserSpecification.cs +++ b/src/Batch/Batch/Models.Generated/PSAutoUserSpecification.cs @@ -27,8 +27,7 @@ namespace Microsoft.Azure.Commands.Batch.Models using System.Collections; using System.Collections.Generic; using Microsoft.Azure.Batch; - - + public partial class PSAutoUserSpecification { diff --git a/src/Batch/Batch/Models/BatchClient.Pools.cs b/src/Batch/Batch/Models/BatchClient.Pools.cs index ebc7f10feb77..c20cce08148b 100644 --- a/src/Batch/Batch/Models/BatchClient.Pools.cs +++ b/src/Batch/Batch/Models/BatchClient.Pools.cs @@ -15,6 +15,8 @@ using Microsoft.Azure.Batch; using Microsoft.Azure.Batch.Common; using Microsoft.Azure.Commands.Batch.Properties; +using Microsoft.Azure.Management.Batch; +using Microsoft.Azure.Management.Batch.Models; using System; using System.Collections; using System.Collections.Generic; @@ -84,53 +86,80 @@ public void CreatePool(NewPoolParameters parameters) PoolOperations poolOperations = parameters.Context.BatchOMClient.PoolOperations; CloudPool pool = poolOperations.CreatePool(); + + Pool mgmtPool = new Pool(); + pool.Id = parameters.PoolId; + //mgmtPool.Id = parameters.PoolId; pool.VirtualMachineSize = parameters.VirtualMachineSize; + mgmtPool.VMSize = parameters.VirtualMachineSize; pool.DisplayName = parameters.DisplayName; + mgmtPool.DisplayName = parameters.DisplayName; pool.ResizeTimeout = parameters.ResizeTimeout; + mgmtPool.ResizeOperationStatus.ResizeTimeout = parameters.ResizeTimeout; pool.TaskSlotsPerNode = parameters.TaskSlotsPerNode; + mgmtPool.TaskSlotsPerNode = parameters.TaskSlotsPerNode; pool.InterComputeNodeCommunicationEnabled = parameters.InterComputeNodeCommunicationEnabled; + mgmtPool.InterNodeCommunication = parameters.InterComputeNodeCommunicationEnabled ? InterNodeCommunicationState.Enabled : InterNodeCommunicationState.Disabled; if (!string.IsNullOrEmpty(parameters.AutoScaleFormula)) { pool.AutoScaleEnabled = true; pool.AutoScaleEvaluationInterval = parameters.AutoScaleEvaluationInterval; pool.AutoScaleFormula = parameters.AutoScaleFormula; + + mgmtPool.ScaleSettings.AutoScale = new AutoScaleSettings + { + Formula = parameters.AutoScaleFormula, + EvaluationInterval = parameters.AutoScaleEvaluationInterval + }; } else if (parameters.TargetDedicatedComputeNodes.HasValue || parameters.TargetLowPriorityComputeNodes.HasValue) { pool.TargetDedicatedComputeNodes = parameters.TargetDedicatedComputeNodes; pool.TargetLowPriorityComputeNodes = parameters.TargetLowPriorityComputeNodes; + + mgmtPool.ScaleSettings.FixedScale = new FixedScaleSettings + { + TargetDedicatedNodes = parameters.TargetDedicatedComputeNodes, + TargetLowPriorityNodes = parameters.TargetLowPriorityComputeNodes, + }; } if (parameters.UpgradePolicy != null) { pool.UpgradePolicy = parameters.UpgradePolicy.omObject; + mgmtPool.UpgradePolicy = parameters.UpgradePolicy.toMgmtUpgradePolicy(); } if (parameters.TaskSchedulingPolicy != null) { pool.TaskSchedulingPolicy = parameters.TaskSchedulingPolicy.omObject; + mgmtPool.TaskSchedulingPolicy = parameters.TaskSchedulingPolicy.toMgmtTaskSchedulingPolicy(); } if (parameters.StartTask != null) { Utils.Utils.StartTaskSyncCollections(parameters.StartTask); pool.StartTask = parameters.StartTask.omObject; + mgmtPool.StartTask = parameters.StartTask.toMgmtStartTask(); } if (parameters.Metadata != null) { - pool.Metadata = new List(); + pool.Metadata = new List(); + mgmtPool.Metadata = new List(); foreach (DictionaryEntry m in parameters.Metadata) { - pool.Metadata.Add(new MetadataItem(m.Key.ToString(), m.Value?.ToString())); + pool.Metadata.Add(new Microsoft.Azure.Batch.MetadataItem(m.Key.ToString(), m.Value?.ToString())); + mgmtPool.Metadata.Add(new Microsoft.Azure.Management.Batch.Models.MetadataItem(m.Key.ToString(), m.Value?.ToString())); } } if (parameters.ApplicationPackageReferences != null) { pool.ApplicationPackageReferences = parameters.ApplicationPackageReferences.ToList().ConvertAll(apr => apr.omObject); + mgmtPool.ApplicationPackages = parameters.ApplicationPackageReferences.ToList().ConvertAll(apr => apr.toMgmtApplicationPackageReference()); } if (parameters.VirtualMachineConfiguration != null) @@ -146,7 +175,7 @@ public void CreatePool(NewPoolParameters parameters) if (parameters.MountConfiguration != null) { - pool.MountConfiguration = new List(); + pool.MountConfiguration = new List(); foreach (PSMountConfiguration m in parameters.MountConfiguration) { pool.MountConfiguration.Add(m.omObject); @@ -159,6 +188,7 @@ public void CreatePool(NewPoolParameters parameters) } WriteVerbose(string.Format(Resources.CreatingPool, parameters.PoolId)); + pool.Commit(parameters.AdditionalBehaviors); } @@ -292,7 +322,7 @@ public PSAutoScaleRun EvaluateAutoScale(EvaluateAutoScaleParameters parameters) WriteVerbose(string.Format(Resources.EvaluateAutoScale, poolId, parameters.AutoScaleFormula)); PoolOperations poolOperations = parameters.Context.BatchOMClient.PoolOperations; - AutoScaleRun evaluation = poolOperations.EvaluateAutoScale(poolId, parameters.AutoScaleFormula, parameters.AdditionalBehaviors); + Microsoft.Azure.Batch.AutoScaleRun evaluation = poolOperations.EvaluateAutoScale(poolId, parameters.AutoScaleFormula, parameters.AdditionalBehaviors); return new PSAutoScaleRun(evaluation); } diff --git a/src/Batch/Batch/Models/NewPoolParameters.cs b/src/Batch/Batch/Models/NewPoolParameters.cs index 68763387bad8..04c07993d62e 100644 --- a/src/Batch/Batch/Models/NewPoolParameters.cs +++ b/src/Batch/Batch/Models/NewPoolParameters.cs @@ -127,10 +127,5 @@ public NewPoolParameters(BatchAccountContext context, string poolId, IEnumerable /// The user accounts to be created on each node in the pool. /// public PSUserAccount[] UserAccounts { get; set; } - - /// - /// The list of application licenses the Batch service will make available on each compute node in the pool. - /// - public List ApplicationLicenses { get; set; } } } diff --git a/src/Batch/Batch/Models/PSApplicationPackageReference.cs b/src/Batch/Batch/Models/PSApplicationPackageReference.cs new file mode 100644 index 000000000000..220e315e3608 --- /dev/null +++ b/src/Batch/Batch/Models/PSApplicationPackageReference.cs @@ -0,0 +1,48 @@ +// ----------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ----------------------------------------------------------------------------- + +using System; +using System.Collections.Generic; +using System.Text; +using Microsoft.Azure.Management.Batch; +using Microsoft.Azure.Management.Batch.Models; +using Microsoft.Azure.Commands.Batch.Utils; + +namespace Microsoft.Azure.Commands.Batch.Models +{ + public partial class PSApplicationPackageReference + { + internal ApplicationPackageReference toMgmtApplicationPackageReference() + { + return new ApplicationPackageReference + { + Id = this.ApplicationId, + Version = this.Version + }; + } + + internal static PSApplicationPackageReference fromMgmtApplicationPackageReference(ApplicationPackageReference mgmtApplicationPackageReference) + { + if (mgmtApplicationPackageReference == null) + { + return null; + } + return new PSApplicationPackageReference + { + ApplicationId = mgmtApplicationPackageReference.Id, + Version = mgmtApplicationPackageReference.Version + }; + } + } +} diff --git a/src/Batch/Batch/Models/PSAutoUserSpecification.cs b/src/Batch/Batch/Models/PSAutoUserSpecification.cs new file mode 100644 index 000000000000..7d00881dd9c1 --- /dev/null +++ b/src/Batch/Batch/Models/PSAutoUserSpecification.cs @@ -0,0 +1,49 @@ +// ----------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ----------------------------------------------------------------------------- + +using System; +using System.Collections.Generic; +using System.Text; +using Microsoft.Azure.Management.Batch; +using Microsoft.Azure.Management.Batch.Models; +using Microsoft.Azure.Commands.Batch.Utils; + +namespace Microsoft.Azure.Commands.Batch.Models +{ + public partial class PSAutoUserSpecification + { + internal Management.Batch.Models.AutoUserSpecification toMgmtAutoUserSpecification() + { + Management.Batch.Models.AutoUserSpecification mgmtAutoUserSpecification = new Management.Batch.Models.AutoUserSpecification(); + mgmtAutoUserSpecification.ElevationLevel = Utils.Utils.toMgmtElevationLevel(this.ElevationLevel); + mgmtAutoUserSpecification.Scope = Utils.Utils.toMgmtAutoUserScope(this.Scope); + return mgmtAutoUserSpecification; + } + + internal static PSAutoUserSpecification fromMgmtAutoUserSpecification(Management.Batch.Models.AutoUserSpecification mgmtAutoUserSpecification) + { + if (mgmtAutoUserSpecification == null) + { + return null; + } + var elevationLevel = Utils.Utils.fromMgmtElevationLevel(mgmtAutoUserSpecification.ElevationLevel); + Azure.Batch.Common.AutoUserScope? scope = mgmtAutoUserSpecification.Scope.HasValue + ? Utils.Utils.fromMgmtAutoUserScope(mgmtAutoUserSpecification.Scope) + : (Azure.Batch.Common.AutoUserScope?)null; + + PSAutoUserSpecification psAutoUserSpecification = new PSAutoUserSpecification(scope, elevationLevel); + return psAutoUserSpecification; + } + } +} diff --git a/src/Batch/Batch/Models/PSAutomaticOSUpgradePolicy.cs b/src/Batch/Batch/Models/PSAutomaticOSUpgradePolicy.cs new file mode 100644 index 000000000000..bd3814a196e8 --- /dev/null +++ b/src/Batch/Batch/Models/PSAutomaticOSUpgradePolicy.cs @@ -0,0 +1,61 @@ +// ----------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ----------------------------------------------------------------------------- + +using System; +using System.Collections.Generic; +using System.Text; +using Microsoft.Azure.Management.Batch; +using Microsoft.Azure.Management.Batch.Models; + +namespace Microsoft.Azure.Commands.Batch.Models +{ + public partial class PSAutomaticOSUpgradePolicy + { + internal AutomaticOSUpgradePolicy toMgmtAutomaticOSUpgradePolicy() + { + if (this.omObject != null) + { + AutomaticOSUpgradePolicy policy = new AutomaticOSUpgradePolicy(); + policy.EnableAutomaticOSUpgrade = this.EnableAutomaticOSUpgrade; + policy.DisableAutomaticRollback = this.DisableAutomaticRollback; + policy.OSRollingUpgradeDeferral = this.OsRollingUpgradeDeferral; + policy.UseRollingUpgradePolicy = this.UseRollingUpgradePolicy; + + return policy; + } + else + { + return null; + } + } + + internal PSAutomaticOSUpgradePolicy ToPSAutomaticOSUpgradePolicy(Microsoft.Azure.Management.Batch.Models.AutomaticOSUpgradePolicy mgmtPolicy) + { + if (mgmtPolicy != null) + { + PSAutomaticOSUpgradePolicy policy = new PSAutomaticOSUpgradePolicy(); + + policy.EnableAutomaticOSUpgrade = mgmtPolicy.EnableAutomaticOSUpgrade; + policy.DisableAutomaticRollback = mgmtPolicy.DisableAutomaticRollback; + policy.OsRollingUpgradeDeferral = mgmtPolicy.OSRollingUpgradeDeferral; + policy.UseRollingUpgradePolicy = mgmtPolicy.UseRollingUpgradePolicy; + return policy; + } + else + { + return null; + } + } + } +} \ No newline at end of file diff --git a/src/Batch/Batch/Models/PSComputeNodeIdentityReference.cs b/src/Batch/Batch/Models/PSComputeNodeIdentityReference.cs new file mode 100644 index 000000000000..f78f7713633f --- /dev/null +++ b/src/Batch/Batch/Models/PSComputeNodeIdentityReference.cs @@ -0,0 +1,49 @@ +// ----------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ----------------------------------------------------------------------------- + +using System; +using System.Collections.Generic; +using System.Text; +using System.Xml; +using Microsoft.Azure.Management.Batch; +using Microsoft.Azure.Management.Batch.Models; + +namespace Microsoft.Azure.Commands.Batch.Models +{ + public partial class PSComputeNodeIdentityReference + { + + internal static Microsoft.Azure.Batch.ComputeNodeIdentityReference fromMgmtIdentityReference(ComputeNodeIdentityReference identityReference) + { + if (identityReference == null) + { + return null; + } + Microsoft.Azure.Batch.ComputeNodeIdentityReference psIdentityReference = new Microsoft.Azure.Batch.ComputeNodeIdentityReference(); + psIdentityReference.ResourceId = identityReference.ResourceId; + return psIdentityReference; + } + + internal ComputeNodeIdentityReference toMgmtIdentityReference() + { + if (this.omObject == null) + { + return null; + } + ComputeNodeIdentityReference identityReference = new ComputeNodeIdentityReference(); + identityReference.ResourceId = this.ResourceId; + return identityReference; + } + } +} diff --git a/src/Batch/Batch/Models/PSContainerRegistry.cs b/src/Batch/Batch/Models/PSContainerRegistry.cs new file mode 100644 index 000000000000..b6887cd2ee61 --- /dev/null +++ b/src/Batch/Batch/Models/PSContainerRegistry.cs @@ -0,0 +1,60 @@ +// ----------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ----------------------------------------------------------------------------- + +using System; +using System.Collections.Generic; +using System.Text; +using System.Xml; +using Microsoft.Azure.Management.Batch; +using Microsoft.Azure.Management.Batch.Models; + +namespace Microsoft.Azure.Commands.Batch.Models +{ + public partial class PSContainerRegistry + { + internal ContainerRegistry toMgmtContainerRegistry() + { + if (this.omObject == null) + { + return null; + } + ContainerRegistry containerRegistry = new ContainerRegistry(); + containerRegistry.UserName = this.UserName; + containerRegistry.Password = this.Password; + containerRegistry.RegistryServer = this.RegistryServer; + containerRegistry.IdentityReference = (this.IdentityReference != null) ? this.IdentityReference.toMgmtIdentityReference() : null; + return containerRegistry; + } + + internal static PSContainerRegistry fromMgmtContainerRegistry(ContainerRegistry containerRegistry) + { + if (containerRegistry == null) + { + return null; + } + + PSComputeNodeIdentityReference identityReference = containerRegistry.IdentityReference != null + ? new PSComputeNodeIdentityReference(PSComputeNodeIdentityReference.fromMgmtIdentityReference(containerRegistry.IdentityReference)) + : null; + + PSContainerRegistry psContainerRegistry = new PSContainerRegistry( + userName: containerRegistry.UserName, + password: containerRegistry.Password, + registryServer: containerRegistry.RegistryServer, + identityReference: identityReference); + + return psContainerRegistry; + } + } +} diff --git a/src/Batch/Batch/Models/PSRollingUpgradePolicy.cs b/src/Batch/Batch/Models/PSRollingUpgradePolicy.cs new file mode 100644 index 000000000000..ec9c4a0d093e --- /dev/null +++ b/src/Batch/Batch/Models/PSRollingUpgradePolicy.cs @@ -0,0 +1,74 @@ +// ----------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ----------------------------------------------------------------------------- + +using System; +using System.Collections.Generic; +using System.Text; +using System.Xml; +using Microsoft.Azure.Management.Batch; +using Microsoft.Azure.Management.Batch.Models; + +namespace Microsoft.Azure.Commands.Batch.Models +{ + public partial class PSRollingUpgradePolicy + { + internal RollingUpgradePolicy toMgmtRollingUpgradePolicy() + { + if (this.omObject == null) + { + return null; + } + + RollingUpgradePolicy rollingUpgradePolicy = new RollingUpgradePolicy(); + + rollingUpgradePolicy.EnableCrossZoneUpgrade = this.EnableCrossZoneUpgrade; + rollingUpgradePolicy.MaxBatchInstancePercent = this.MaxBatchInstancePercent; + rollingUpgradePolicy.MaxUnhealthyInstancePercent = this.MaxUnhealthyInstancePercent; + rollingUpgradePolicy.MaxUnhealthyUpgradedInstancePercent = this.MaxUnhealthyUpgradedInstancePercent; + // Convert TimeSpan to ISO 8601 duration format, handle null values + rollingUpgradePolicy.PauseTimeBetweenBatches = this.PauseTimeBetweenBatches.HasValue + ? XmlConvert.ToString(this.PauseTimeBetweenBatches.Value) + : null; + + rollingUpgradePolicy.PrioritizeUnhealthyInstances = this.PrioritizeUnhealthyInstances; + rollingUpgradePolicy.RollbackFailedInstancesOnPolicyBreach = this.RollbackFailedInstancesOnPolicyBreach; + return rollingUpgradePolicy; + } + + internal PSRollingUpgradePolicy fromMgmtRollingUpgradePolicy(RollingUpgradePolicy rollingUpgradePolicy) + { + if (rollingUpgradePolicy == null) + { + return null; + } + + PSRollingUpgradePolicy psRollingUpgradePolicy = new PSRollingUpgradePolicy(); + + psRollingUpgradePolicy.EnableCrossZoneUpgrade = rollingUpgradePolicy.EnableCrossZoneUpgrade; + psRollingUpgradePolicy.MaxBatchInstancePercent = rollingUpgradePolicy.MaxBatchInstancePercent; + psRollingUpgradePolicy.MaxUnhealthyInstancePercent = rollingUpgradePolicy.MaxUnhealthyInstancePercent; + psRollingUpgradePolicy.MaxUnhealthyUpgradedInstancePercent = rollingUpgradePolicy.MaxUnhealthyUpgradedInstancePercent; + + + // Convert ISO 8601 duration to TimeSpan, handle null/empty values + if (!string.IsNullOrEmpty(rollingUpgradePolicy.PauseTimeBetweenBatches)) + { + psRollingUpgradePolicy.PauseTimeBetweenBatches = XmlConvert.ToTimeSpan(rollingUpgradePolicy.PauseTimeBetweenBatches); + } + psRollingUpgradePolicy.PrioritizeUnhealthyInstances = rollingUpgradePolicy.PrioritizeUnhealthyInstances; + psRollingUpgradePolicy.RollbackFailedInstancesOnPolicyBreach = rollingUpgradePolicy.RollbackFailedInstancesOnPolicyBreach; + return psRollingUpgradePolicy; + } + } +} diff --git a/src/Batch/Batch/Models/PSStartTask.cs b/src/Batch/Batch/Models/PSStartTask.cs new file mode 100644 index 000000000000..932243022862 --- /dev/null +++ b/src/Batch/Batch/Models/PSStartTask.cs @@ -0,0 +1,53 @@ +// ----------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ----------------------------------------------------------------------------- + +using System; +using System.Collections.Generic; +using System.Text; +using System.Xml; +using Microsoft.Azure.Management.Batch; +using Microsoft.Azure.Management.Batch.Models; +using Microsoft.Azure.Commands.Batch.Utils; + +namespace Microsoft.Azure.Commands.Batch.Models +{ + public partial class PSStartTask + { + internal StartTask toMgmtStartTask() + { + StartTask mgmtStartTask = new StartTask(); + mgmtStartTask.CommandLine = this.CommandLine; + mgmtStartTask.ContainerSettings = this.ContainerSettings?.toMgmtContainerConfiguration(); + mgmtStartTask.EnvironmentSettings = Utils.Utils.toMgmtEnvironmentSettings(this.EnvironmentSettings); + mgmtStartTask.MaxTaskRetryCount = this.MaxTaskRetryCount; + mgmtStartTask.ResourceFiles = Utils.Utils.toMgmtResourceFiles(this.ResourceFiles); + mgmtStartTask.UserIdentity = this.UserIdentity?.toMgmtUserIdentity(); + mgmtStartTask.WaitForSuccess = this.WaitForSuccess; + return mgmtStartTask; + } + + internal static PSStartTask fromMgmtStartTask(StartTask mgmtStartTask) + { + PSStartTask psStartTask = new PSStartTask(); + psStartTask.CommandLine = mgmtStartTask.CommandLine; + psStartTask.ContainerSettings = PSTaskContainerSettings.fromMgmtContainerConfiguration(mgmtStartTask.ContainerSettings); + psStartTask.EnvironmentSettings = Utils.Utils.fromMgmtEnvironmentSettings(mgmtStartTask.EnvironmentSettings); + psStartTask.MaxTaskRetryCount = mgmtStartTask.MaxTaskRetryCount; + psStartTask.ResourceFiles = Utils.Utils.fromMgmtResourceFiles(mgmtStartTask.ResourceFiles); + psStartTask.UserIdentity = PSUserIdentity.fromMgmtUserIdentity(mgmtStartTask.UserIdentity); + psStartTask.WaitForSuccess = mgmtStartTask.WaitForSuccess; + return psStartTask; + } + } +} diff --git a/src/Batch/Batch/Models/PSTaskContainerSettings.cs b/src/Batch/Batch/Models/PSTaskContainerSettings.cs new file mode 100644 index 000000000000..bc4967a255e6 --- /dev/null +++ b/src/Batch/Batch/Models/PSTaskContainerSettings.cs @@ -0,0 +1,54 @@ +// ----------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ----------------------------------------------------------------------------- + +using System; +using System.Collections.Generic; +using System.Text; +using Microsoft.Azure.Management.Batch; +using Microsoft.Azure.Management.Batch.Models; +using Microsoft.Azure.Commands.Batch.Utils; + +namespace Microsoft.Azure.Commands.Batch.Models +{ + public partial class PSTaskContainerSettings + { + internal TaskContainerSettings toMgmtContainerConfiguration() + { + TaskContainerSettings mgmtContainerConfiguration = new TaskContainerSettings(); + mgmtContainerConfiguration.ImageName = this.ImageName; + mgmtContainerConfiguration.WorkingDirectory = (this.WorkingDirectory != null) ? Utils.Utils.toMgmtContainerWorkingDirectory(this.WorkingDirectory.Value) : (ContainerWorkingDirectory?)null; + mgmtContainerConfiguration.Registry = (this.Registry != null) ? this.Registry.toMgmtContainerRegistry() : null; + mgmtContainerConfiguration.ContainerRunOptions = this.ContainerRunOptions; + mgmtContainerConfiguration.ContainerHostBatchBindMounts = (this.ContainerHostBatchBindMounts != null) ? Utils.Utils.toMgmtContainerHostBatchBindMounts(this.ContainerHostBatchBindMounts) : null; + return mgmtContainerConfiguration; + } + + internal static PSTaskContainerSettings fromMgmtContainerConfiguration(TaskContainerSettings mgmtContainerConfiguration) + { + if (mgmtContainerConfiguration == null) + { + return null; + } + PSTaskContainerSettings psContainerConfiguration = new PSTaskContainerSettings( + imageName: mgmtContainerConfiguration.ImageName, + containerRunOptions: mgmtContainerConfiguration.ContainerRunOptions, + registry: (mgmtContainerConfiguration.Registry != null) ? PSContainerRegistry.fromMgmtContainerRegistry(mgmtContainerConfiguration.Registry) : null, + workingDirectory: (mgmtContainerConfiguration.WorkingDirectory != null) ? Utils.Utils.fromMgmtContainerWorkingDirectory(mgmtContainerConfiguration.WorkingDirectory) : null + ); + psContainerConfiguration.ContainerHostBatchBindMounts = (mgmtContainerConfiguration.ContainerHostBatchBindMounts != null) ? Utils.Utils.fromMgmtContainerHostBatchBindMounts(mgmtContainerConfiguration.ContainerHostBatchBindMounts) : null; + + return psContainerConfiguration; + } + } +} diff --git a/src/Batch/Batch/Models/PSTaskSchedulingPolicy.cs b/src/Batch/Batch/Models/PSTaskSchedulingPolicy.cs new file mode 100644 index 000000000000..8c55d5ff7685 --- /dev/null +++ b/src/Batch/Batch/Models/PSTaskSchedulingPolicy.cs @@ -0,0 +1,43 @@ +// ----------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ----------------------------------------------------------------------------- + +using System; +using System.Collections.Generic; +using System.Text; +using Microsoft.Azure.Management.Batch; +using Microsoft.Azure.Management.Batch.Models; +using Microsoft.Azure.Commands.Batch.Utils; + +namespace Microsoft.Azure.Commands.Batch.Models +{ + public partial class PSTaskSchedulingPolicy + { + internal TaskSchedulingPolicy toMgmtTaskSchedulingPolicy() + { + TaskSchedulingPolicy mgmtTaskSchedulingPolicy = new TaskSchedulingPolicy(); + mgmtTaskSchedulingPolicy.NodeFillType = Utils.Utils.toMgmtComputeNodeFillType(this.ComputeNodeFillType); + return mgmtTaskSchedulingPolicy; + } + + internal PSTaskSchedulingPolicy fromMgmtTaskSchedulingPolicy(TaskSchedulingPolicy mgmtTaskSchedulingPolicy) + { + if (mgmtTaskSchedulingPolicy == null) + { + return null; + } + PSTaskSchedulingPolicy psTaskSchedulingPolicy = new PSTaskSchedulingPolicy(Utils.Utils.fromMgmtComputeNodeFillType(mgmtTaskSchedulingPolicy.NodeFillType)); + return psTaskSchedulingPolicy; + } + } +} diff --git a/src/Batch/Batch/Models/PSUpgradePolicy.cs b/src/Batch/Batch/Models/PSUpgradePolicy.cs new file mode 100644 index 000000000000..d466e9302b1a --- /dev/null +++ b/src/Batch/Batch/Models/PSUpgradePolicy.cs @@ -0,0 +1,48 @@ +// ----------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ----------------------------------------------------------------------------- + +using System; +using System.Collections.Generic; +using System.Text; +using Microsoft.Azure.Management.Batch; +using Microsoft.Azure.Management.Batch.Models; +using Microsoft.Azure.Commands.Batch.Utils; + +namespace Microsoft.Azure.Commands.Batch.Models +{ + public partial class PSUpgradePolicy + { + internal UpgradePolicy toMgmtUpgradePolicy() + { + UpgradePolicy upgradePolicy = new UpgradePolicy(); + upgradePolicy.AutomaticOSUpgradePolicy = this.AutomaticOSUpgradePolicy.toMgmtAutomaticOSUpgradePolicy(); + upgradePolicy.RollingUpgradePolicy = this.RollingUpgradePolicy.toMgmtRollingUpgradePolicy(); + upgradePolicy.Mode = Utils.Utils.toMgmtUpgradeMode(this.Mode); + return upgradePolicy; + } + + internal PSUpgradePolicy fromMgmtUpgradePolicy(UpgradePolicy upgradePolicy) + { + if (upgradePolicy == null) + { + return null; + } + PSUpgradePolicy psUpgradePolicy = new PSUpgradePolicy(Utils.Utils.fromMgmtUpgradeMode(upgradePolicy.Mode)); + psUpgradePolicy.AutomaticOSUpgradePolicy = new PSAutomaticOSUpgradePolicy().ToPSAutomaticOSUpgradePolicy(upgradePolicy.AutomaticOSUpgradePolicy); + psUpgradePolicy.RollingUpgradePolicy = new PSRollingUpgradePolicy().fromMgmtRollingUpgradePolicy(upgradePolicy.RollingUpgradePolicy); + return psUpgradePolicy; + } + + } +} diff --git a/src/Batch/Batch/Models/PSUserIdentity.cs b/src/Batch/Batch/Models/PSUserIdentity.cs new file mode 100644 index 000000000000..00b143b3336f --- /dev/null +++ b/src/Batch/Batch/Models/PSUserIdentity.cs @@ -0,0 +1,59 @@ +// ----------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ----------------------------------------------------------------------------- + +using System; +using System.Collections.Generic; +using System.Text; +using Microsoft.Azure.Management.Batch; +using Microsoft.Azure.Management.Batch.Models; +using Microsoft.Azure.Commands.Batch.Utils; + +namespace Microsoft.Azure.Commands.Batch.Models +{ + public partial class PSUserIdentity + { + internal UserIdentity toMgmtUserIdentity() + { + UserIdentity mgmtUserIdentity = null; + if (this.AutoUser != null) + { + mgmtUserIdentity = new UserIdentity(); + mgmtUserIdentity.AutoUser = this.AutoUser.toMgmtAutoUserSpecification(); + } + else if (!string.IsNullOrEmpty(this.UserName)) + { + mgmtUserIdentity = new UserIdentity(); + mgmtUserIdentity.UserName = this.UserName; + } + return mgmtUserIdentity; + } + + internal static PSUserIdentity fromMgmtUserIdentity(UserIdentity userIdentity) + { + if (userIdentity == null) + { + return null; + } + + PSUserIdentity psUserIdentity = null; + + if (userIdentity.AutoUser != null) { + psUserIdentity = new PSUserIdentity(PSAutoUserSpecification.fromMgmtAutoUserSpecification(userIdentity.AutoUser)); + }else if (!string.IsNullOrEmpty(userIdentity.UserName)) { + psUserIdentity = new PSUserIdentity(userIdentity.UserName); + } + return psUserIdentity; + } + } +} diff --git a/src/Batch/Batch/Models/PSVirtualMachineConfiguration.cs b/src/Batch/Batch/Models/PSVirtualMachineConfiguration.cs new file mode 100644 index 000000000000..3fa827856d6f --- /dev/null +++ b/src/Batch/Batch/Models/PSVirtualMachineConfiguration.cs @@ -0,0 +1,27 @@ +// ----------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ----------------------------------------------------------------------------- + +using System; +using System.Collections.Generic; +using System.Text; +using Microsoft.Azure.Management.Batch; +using Microsoft.Azure.Management.Batch.Models; +using Microsoft.Azure.Commands.Batch.Utils; + +namespace Microsoft.Azure.Commands.Batch.Models +{ + public partial class PSVirtualMachineConfiguration + { + } +} diff --git a/src/Batch/Batch/Utils/Utils.cs b/src/Batch/Batch/Utils/Utils.cs index 05d93a393dfe..ad4186a765e0 100644 --- a/src/Batch/Batch/Utils/Utils.cs +++ b/src/Batch/Batch/Utils/Utils.cs @@ -14,9 +14,11 @@ using Microsoft.Azure.Batch; using Microsoft.Azure.Commands.Batch.Models; +using Microsoft.Azure.Management.Batch.Models; using System; using System.Collections; using System.Collections.Generic; +using System.IO; using System.Linq; namespace Microsoft.Azure.Commands.Batch.Utils @@ -130,7 +132,7 @@ internal static void JobManagerTaskSyncCollections(PSJobManagerTask jobManager) jobManager.omObject.ApplicationPackageReferences = CreateSyncedList(jobManager.ApplicationPackageReferences, a => { - ApplicationPackageReference applicationPackageReference = new ApplicationPackageReference + Microsoft.Azure.Batch.ApplicationPackageReference applicationPackageReference = new Microsoft.Azure.Batch.ApplicationPackageReference { ApplicationId = a.ApplicationId, Version = a.Version @@ -212,7 +214,7 @@ internal static void PoolSpecificationSyncCollections(PSPoolSpecification spec) spec.omObject.ApplicationPackageReferences = CreateSyncedList(spec.ApplicationPackageReferences, (apr) => { - return new ApplicationPackageReference() + return new Microsoft.Azure.Batch.ApplicationPackageReference() { ApplicationId = apr.ApplicationId, Version = apr.Version @@ -222,7 +224,7 @@ internal static void PoolSpecificationSyncCollections(PSPoolSpecification spec) spec.omObject.UserAccounts = CreateSyncedList(spec.UserAccounts, (user) => { - return new UserAccount( + return new Microsoft.Azure.Batch.UserAccount( user.Name, user.Password, user.ElevationLevel, @@ -282,7 +284,7 @@ internal static void VirtualMachineConfigurationSyncCollections(PSVirtualMachine { if (virtualMachineConfiguration.omObject.ContainerConfiguration != null) { - virtualMachineConfiguration.omObject.ContainerConfiguration.ContainerImageNames = + virtualMachineConfiguration.omObject.ContainerConfiguration.ContainerImageNames = CreateSyncedList(virtualMachineConfiguration.ContainerConfiguration.ContainerImageNames, s => s); virtualMachineConfiguration.omObject.ContainerConfiguration.ContainerRegistries = @@ -345,16 +347,16 @@ private static IList CreateSyncedDict(IDictionary psDict, Func new MetadataItem(key, value); + private static Microsoft.Azure.Batch.MetadataItem ConvertMetadataItem(string key, string value) => new Microsoft.Azure.Batch.MetadataItem(key, value); - private static EnvironmentSetting ConvertEnvironmentSetting(string key, string value) => new EnvironmentSetting(key, value); + private static Microsoft.Azure.Batch.EnvironmentSetting ConvertEnvironmentSetting(string key, string value) => new Microsoft.Azure.Batch.EnvironmentSetting(key, value); /// /// Converts a PSApplicationPackageReference to a ApplicationPackageReference /// - private static ApplicationPackageReference ConvertApplicationPackageReference(PSApplicationPackageReference psApr) + private static Microsoft.Azure.Batch.ApplicationPackageReference ConvertApplicationPackageReference(PSApplicationPackageReference psApr) { - ApplicationPackageReference applicationPackageReference = new ApplicationPackageReference() + Microsoft.Azure.Batch.ApplicationPackageReference applicationPackageReference = new Microsoft.Azure.Batch.ApplicationPackageReference() { ApplicationId = psApr.ApplicationId, Version = psApr.Version @@ -370,8 +372,8 @@ public static void ExitConditionsSyncCollections(PSExitConditions exitConditions exitConditions.ExitCodeRanges, (e) => { - ExitCodeRangeMapping exitCodeRangeMapping = new ExitCodeRangeMapping(e.Start, e.End, e.omObject.ExitOptions); - return exitCodeRangeMapping; + ExitCodeRangeMapping exitCodeRangeMapping = new ExitCodeRangeMapping(e.Start, e.End, e.omObject.ExitOptions); + return exitCodeRangeMapping; }); exitConditions.omObject.ExitCodes = CreateSyncedList(exitConditions.ExitCodes, (e) => @@ -382,27 +384,27 @@ public static void ExitConditionsSyncCollections(PSExitConditions exitConditions } } - internal static ResourceFile ConvertResourceFile(PSResourceFile psResourceFile) + internal static Microsoft.Azure.Batch.ResourceFile ConvertResourceFile(PSResourceFile psResourceFile) { if (!string.IsNullOrEmpty(psResourceFile.AutoStorageContainerName)) { - return ResourceFile.FromAutoStorageContainer( + return Microsoft.Azure.Batch.ResourceFile.FromAutoStorageContainer( psResourceFile.AutoStorageContainerName, filePath: psResourceFile.FilePath, blobPrefix: psResourceFile.BlobPrefix, fileMode: psResourceFile.FileMode); } - else if(!string.IsNullOrEmpty(psResourceFile.StorageContainerUrl)) + else if (!string.IsNullOrEmpty(psResourceFile.StorageContainerUrl)) { - return ResourceFile.FromStorageContainerUrl( + return Microsoft.Azure.Batch.ResourceFile.FromStorageContainerUrl( psResourceFile.StorageContainerUrl, filePath: psResourceFile.FilePath, blobPrefix: psResourceFile.BlobPrefix, fileMode: psResourceFile.FileMode); } - else if(!string.IsNullOrEmpty(psResourceFile.HttpUrl)) + else if (!string.IsNullOrEmpty(psResourceFile.HttpUrl)) { - return ResourceFile.FromUrl( + return Microsoft.Azure.Batch.ResourceFile.FromUrl( psResourceFile.HttpUrl, filePath: psResourceFile.FilePath, fileMode: psResourceFile.FileMode); @@ -412,5 +414,259 @@ internal static ResourceFile ConvertResourceFile(PSResourceFile psResourceFile) throw new ArgumentException($"ResourceFile missing expected fields"); } } + + internal static UpgradeMode toMgmtUpgradeMode(Azure.Batch.Common.UpgradeMode psUpgradeMode) + { + switch (psUpgradeMode) + { + case Azure.Batch.Common.UpgradeMode.Manual: + return UpgradeMode.Manual; + case Azure.Batch.Common.UpgradeMode.Automatic: + return UpgradeMode.Automatic; + case Azure.Batch.Common.UpgradeMode.Rolling: + return UpgradeMode.Rolling; + default: + throw new ArgumentOutOfRangeException(nameof(psUpgradeMode), psUpgradeMode, null); + } + } + + internal static Azure.Batch.Common.UpgradeMode fromMgmtUpgradeMode(UpgradeMode mgmtUpgradeMode) + { + switch (mgmtUpgradeMode) + { + case UpgradeMode.Manual: + return Azure.Batch.Common.UpgradeMode.Manual; + case UpgradeMode.Automatic: + return Azure.Batch.Common.UpgradeMode.Automatic; + case UpgradeMode.Rolling: + return Azure.Batch.Common.UpgradeMode.Rolling; + default: + throw new ArgumentOutOfRangeException(nameof(mgmtUpgradeMode), mgmtUpgradeMode, null); + } + } + + internal static ComputeNodeFillType toMgmtComputeNodeFillType(Azure.Batch.Common.ComputeNodeFillType psComputeNodeFillType) + { + switch (psComputeNodeFillType) + { + case Azure.Batch.Common.ComputeNodeFillType.Pack: + return ComputeNodeFillType.Pack; + case Azure.Batch.Common.ComputeNodeFillType.Spread: + return ComputeNodeFillType.Spread; + default: + throw new ArgumentOutOfRangeException(nameof(psComputeNodeFillType), psComputeNodeFillType, null); + } + } + + internal static Azure.Batch.Common.ComputeNodeFillType fromMgmtComputeNodeFillType(ComputeNodeFillType mgmtComputeNodeFillType) + { + switch (mgmtComputeNodeFillType) + { + case ComputeNodeFillType.Pack: + return Azure.Batch.Common.ComputeNodeFillType.Pack; + case ComputeNodeFillType.Spread: + return Azure.Batch.Common.ComputeNodeFillType.Spread; + default: + throw new ArgumentOutOfRangeException(nameof(mgmtComputeNodeFillType), mgmtComputeNodeFillType, null); + } + } + + internal static ContainerWorkingDirectory? toMgmtContainerWorkingDirectory(Azure.Batch.Common.ContainerWorkingDirectory? value) + { + if (!value.HasValue) + { + return null; + } + switch (value) + { + case Azure.Batch.Common.ContainerWorkingDirectory.TaskWorkingDirectory: + return ContainerWorkingDirectory.TaskWorkingDirectory; + case Azure.Batch.Common.ContainerWorkingDirectory.ContainerImageDefault: + return ContainerWorkingDirectory.ContainerImageDefault; + default: + return null; + } + } + + internal static Azure.Batch.Common.ContainerWorkingDirectory? fromMgmtContainerWorkingDirectory(ContainerWorkingDirectory? value) + { + if (!value.HasValue) + { + return null; + } + switch (value.Value) + { + case ContainerWorkingDirectory.TaskWorkingDirectory: + return Azure.Batch.Common.ContainerWorkingDirectory.TaskWorkingDirectory; + case ContainerWorkingDirectory.ContainerImageDefault: + return Azure.Batch.Common.ContainerWorkingDirectory.ContainerImageDefault; + default: + throw new ArgumentOutOfRangeException(nameof(value), value, null); + } + } + + internal static IList toMgmtContainerHostBatchBindMounts(IList containerHostBatchBindMounts) + { + if (containerHostBatchBindMounts == null) + { + return null; + } + List mgmtContainerHostBatchBindMounts = new List(); + + foreach (var mount in containerHostBatchBindMounts) + { + mgmtContainerHostBatchBindMounts.Add(new Management.Batch.Models.ContainerHostBatchBindMountEntry + { + Source = mount.Source, + IsReadOnly = mount.IsReadOnly + }); + } + return mgmtContainerHostBatchBindMounts; + } + + internal static IList fromMgmtContainerHostBatchBindMounts(IList containerHostBatchBindMounts) + { + if (containerHostBatchBindMounts == null) + { + return null; + } + List psContainerHostBatchBindMounts = new List(); + foreach (var mount in containerHostBatchBindMounts) + { + psContainerHostBatchBindMounts.Add(new PSContainerHostBatchBindMountEntry + { + Source = mount.Source, + IsReadOnly = mount.IsReadOnly + }); + } + return psContainerHostBatchBindMounts; + } + + internal static IList toMgmtEnvironmentSettings(IDictionary psEnvironmentSettings) + { + if(psEnvironmentSettings == null) + { + return null; + } + + List mgmtEnvironmentSettings = new List(); + foreach (DictionaryEntry item in psEnvironmentSettings) + { + if (!(item.Key is string) || !(item.Value is string)) + { + throw new ArgumentException("EnvironmentSettings dictionary must have string keys and string values"); + } + mgmtEnvironmentSettings.Add(new Management.Batch.Models.EnvironmentSetting + { + Name = (string)item.Key, + Value = (string)item.Value + }); + } + return mgmtEnvironmentSettings; + } + + internal static IDictionary fromMgmtEnvironmentSettings(IList mgmtEnvironmentSettings) + { + if (mgmtEnvironmentSettings == null) + { + return null; + } + Dictionary psEnvironmentSettings = new Dictionary(); + foreach (var item in mgmtEnvironmentSettings) + { + psEnvironmentSettings.Add(item.Name, item.Value); + } + return psEnvironmentSettings; + } + + internal static IList toMgmtResourceFiles(IList resourceFiles) + { + if (resourceFiles == null) + { + return null; + } + List mgmtResourceFiles = new List(); + foreach (var psResourceFile in resourceFiles) + { + mgmtResourceFiles.Add(new Management.Batch.Models.ResourceFile + { + AutoStorageContainerName = psResourceFile.AutoStorageContainerName, + StorageContainerUrl = psResourceFile.StorageContainerUrl, + HttpUrl = psResourceFile.HttpUrl, + BlobPrefix = psResourceFile.BlobPrefix, + FilePath = psResourceFile.FilePath, + FileMode = psResourceFile.FileMode, + IdentityReference = psResourceFile.IdentityReference.toMgmtIdentityReference() + }); + } + return mgmtResourceFiles; + } + + internal static IList fromMgmtResourceFiles(IList resourceFiles) + { + if (resourceFiles == null) + { + return null; + } + List psResourceFiles = new List(); + foreach (var mgmtResourceFile in resourceFiles) + { + Microsoft.Azure.Batch.ComputeNodeIdentityReference identityReference= PSComputeNodeIdentityReference.fromMgmtIdentityReference(mgmtResourceFile.IdentityReference); + Microsoft.Azure.Batch.ResourceFile resourceFile; + if (!string.IsNullOrEmpty(mgmtResourceFile.HttpUrl)) + { + resourceFile = Microsoft.Azure.Batch.ResourceFile.FromUrl(mgmtResourceFile.HttpUrl, mgmtResourceFile.FilePath, fileMode: mgmtResourceFile.FileMode); + } + else if (!string.IsNullOrEmpty(mgmtResourceFile.StorageContainerUrl)) + { + resourceFile = Microsoft.Azure.Batch.ResourceFile.FromStorageContainerUrl( + storageContainerUrl: mgmtResourceFile.StorageContainerUrl, + identityReference: identityReference, + mgmtResourceFile.FilePath, + blobPrefix: mgmtResourceFile.BlobPrefix, + fileMode: mgmtResourceFile.FileMode); + } + else + { + resourceFile = Microsoft.Azure.Batch.ResourceFile.FromAutoStorageContainer(mgmtResourceFile.AutoStorageContainerName, mgmtResourceFile.FilePath, blobPrefix: mgmtResourceFile.BlobPrefix, fileMode: mgmtResourceFile.FileMode); + } + + + psResourceFiles.Add(new PSResourceFile(resourceFile)); + } + return psResourceFiles; + } + + internal static ElevationLevel? toMgmtElevationLevel(Azure.Batch.Common.ElevationLevel? elevationLevel) + { + if (!elevationLevel.HasValue) + { + return null; + } + return (ElevationLevel)elevationLevel.Value; + } + + internal static Azure.Batch.Common.ElevationLevel? fromMgmtElevationLevel(ElevationLevel? elevationLevel) + { + if (!elevationLevel.HasValue) + { + return null; + } + return (Azure.Batch.Common.ElevationLevel)elevationLevel.Value; + } + + internal static AutoUserScope? toMgmtAutoUserScope(Azure.Batch.Common.AutoUserScope? scope) + { + if (!scope.HasValue) + { + return null; + } + return (AutoUserScope)scope.Value; + } + + internal static Azure.Batch.Common.AutoUserScope fromMgmtAutoUserScope(AutoUserScope? scope) + { + return (Azure.Batch.Common.AutoUserScope)scope.Value; + } } -} +} \ No newline at end of file From 1a4ef0f99fdfdcc12aa50036326ff49132f1532c Mon Sep 17 00:00:00 2001 From: "REDMOND\\wiboris" Date: Fri, 3 Oct 2025 16:47:28 -0700 Subject: [PATCH 12/13] more pool conversions --- .../Models/PSContainerConfigurationTests.cs | 1022 ++++++++++++++++ .../Batch.Test/Models/PSDataDiskTests.cs | 984 +++++++++++++++ .../PSDiskEncryptionConfigurationTests.cs | 947 +++++++++++++++ .../Models/PSImageReferenceTests.cs | 1058 +++++++++++++++++ .../Models/PSWindowsConfigurationTests.cs | 742 ++++++++++++ .../Batch.Test/Utils/UtilsCachingTypeTests.cs | 758 ++++++++++++ .../Utils/UtilsDiskEncryptionTargetTests.cs | 627 ++++++++++ .../Utils/UtilsStorageAccountTypeTests.cs | 813 +++++++++++++ src/Batch/Batch/Models/BatchClient.Pools.cs | 5 + .../Batch/Models/PSContainerConfiguration.cs | 54 + src/Batch/Batch/Models/PSDataDisk.cs | 51 + .../Models/PSDiskEncryptionConfiguration.cs | 46 + src/Batch/Batch/Models/PSImageReference.cs | 37 +- .../Models/PSVirtualMachineConfiguration.cs | 19 + .../Batch/Models/PSWindowsConfiguration.cs | 43 + src/Batch/Batch/Utils/Utils.cs | 46 + 16 files changed, 7251 insertions(+), 1 deletion(-) create mode 100644 src/Batch/Batch.Test/Models/PSContainerConfigurationTests.cs create mode 100644 src/Batch/Batch.Test/Models/PSDataDiskTests.cs create mode 100644 src/Batch/Batch.Test/Models/PSDiskEncryptionConfigurationTests.cs create mode 100644 src/Batch/Batch.Test/Models/PSImageReferenceTests.cs create mode 100644 src/Batch/Batch.Test/Models/PSWindowsConfigurationTests.cs create mode 100644 src/Batch/Batch.Test/Utils/UtilsCachingTypeTests.cs create mode 100644 src/Batch/Batch.Test/Utils/UtilsDiskEncryptionTargetTests.cs create mode 100644 src/Batch/Batch.Test/Utils/UtilsStorageAccountTypeTests.cs create mode 100644 src/Batch/Batch/Models/PSContainerConfiguration.cs create mode 100644 src/Batch/Batch/Models/PSDataDisk.cs create mode 100644 src/Batch/Batch/Models/PSDiskEncryptionConfiguration.cs create mode 100644 src/Batch/Batch/Models/PSWindowsConfiguration.cs diff --git a/src/Batch/Batch.Test/Models/PSContainerConfigurationTests.cs b/src/Batch/Batch.Test/Models/PSContainerConfigurationTests.cs new file mode 100644 index 000000000000..7f311a729af3 --- /dev/null +++ b/src/Batch/Batch.Test/Models/PSContainerConfigurationTests.cs @@ -0,0 +1,1022 @@ +// ----------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ----------------------------------------------------------------------------- + +using Microsoft.Azure.Commands.Batch.Models; +using Microsoft.Azure.Management.Batch.Models; +using System.Collections.Generic; +using System.Linq; +using Xunit; + +namespace Microsoft.Azure.Commands.Batch.Test.ModelsConversions +{ + public class PSContainerConfigurationTests + { + #region toMgmtContainerConfiguration Tests + + [Fact] + public void ToMgmtContainerConfiguration_WithAllProperties_ReturnsCorrectMapping() + { + // Arrange + var identityResourceId = "/subscriptions/12345678-1234-1234-1234-123456789abc/resourceGroups/rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/identity"; + var psIdentityRef = new PSComputeNodeIdentityReference { ResourceId = identityResourceId }; + var psRegistry = new PSContainerRegistry( + userName: "testuser", + password: "testpass", + registryServer: "myregistry.azurecr.io", + identityReference: psIdentityRef); + + var psContainerConfig = new PSContainerConfiguration + { + Type = "DockerCompatible", + ContainerImageNames = new List { "ubuntu:20.04", "nginx:alpine" }, + ContainerRegistries = new List { psRegistry } + }; + + // Act + var result = psContainerConfig.toMgmtContainerConfiguration(); + + // Assert + Assert.NotNull(result); + Assert.Equal("DockerCompatible", result.Type); + Assert.NotNull(result.ContainerImageNames); + Assert.Equal(2, result.ContainerImageNames.Count); + Assert.Contains("ubuntu:20.04", result.ContainerImageNames); + Assert.Contains("nginx:alpine", result.ContainerImageNames); + Assert.NotNull(result.ContainerRegistries); + Assert.Single(result.ContainerRegistries); + Assert.Equal("testuser", result.ContainerRegistries.First().UserName); + Assert.Equal("myregistry.azurecr.io", result.ContainerRegistries.First().RegistryServer); + } + + [Fact] + public void ToMgmtContainerConfiguration_WithDockerCompatible_ReturnsCorrectMapping() + { + // Arrange + var psContainerConfig = new PSContainerConfiguration + { + Type = "DockerCompatible", + ContainerImageNames = new List { "mcr.microsoft.com/dotnet/runtime:6.0" }, + ContainerRegistries = new List() + }; + + // Act + var result = psContainerConfig.toMgmtContainerConfiguration(); + + // Assert + Assert.NotNull(result); + Assert.Equal("DockerCompatible", result.Type); + Assert.NotNull(result.ContainerImageNames); + Assert.Single(result.ContainerImageNames); + Assert.Equal("mcr.microsoft.com/dotnet/runtime:6.0", result.ContainerImageNames.First()); + Assert.NotNull(result.ContainerRegistries); + Assert.Empty(result.ContainerRegistries); + } + + [Fact] + public void ToMgmtContainerConfiguration_WithCriCompatible_ReturnsCorrectMapping() + { + // Arrange + var psContainerConfig = new PSContainerConfiguration + { + Type = "CriCompatible", + ContainerImageNames = new List { "docker.io/library/alpine:latest" }, + ContainerRegistries = new List() + }; + + // Act + var result = psContainerConfig.toMgmtContainerConfiguration(); + + // Assert + Assert.NotNull(result); + Assert.Equal("CriCompatible", result.Type); + Assert.NotNull(result.ContainerImageNames); + Assert.Single(result.ContainerImageNames); + Assert.Equal("docker.io/library/alpine:latest", result.ContainerImageNames.First()); + Assert.NotNull(result.ContainerRegistries); + Assert.Empty(result.ContainerRegistries); + } + + [Fact] + public void ToMgmtContainerConfiguration_WithMultipleRegistries_ReturnsCorrectMapping() + { + // Arrange + var psRegistry1 = new PSContainerRegistry( + userName: "user1", + password: "pass1", + registryServer: "registry1.azurecr.io"); + + var psRegistry2 = new PSContainerRegistry( + userName: "user2", + password: "pass2", + registryServer: "registry2.azurecr.io"); + + var psContainerConfig = new PSContainerConfiguration + { + Type = "DockerCompatible", + ContainerImageNames = new List { "registry1.azurecr.io/myapp:v1", "registry2.azurecr.io/myapp:v2" }, + ContainerRegistries = new List { psRegistry1, psRegistry2 } + }; + + // Act + var result = psContainerConfig.toMgmtContainerConfiguration(); + + // Assert + Assert.NotNull(result); + Assert.Equal("DockerCompatible", result.Type); + Assert.NotNull(result.ContainerImageNames); + Assert.Equal(2, result.ContainerImageNames.Count); + Assert.NotNull(result.ContainerRegistries); + Assert.Equal(2, result.ContainerRegistries.Count); + + var registryServers = result.ContainerRegistries.Select(r => r.RegistryServer).ToList(); + Assert.Contains("registry1.azurecr.io", registryServers); + Assert.Contains("registry2.azurecr.io", registryServers); + } + + [Fact] + public void ToMgmtContainerConfiguration_WithNullContainerImageNames_ReturnsNullImageNames() + { + // Arrange + var psContainerConfig = new PSContainerConfiguration + { + Type = "DockerCompatible", + ContainerImageNames = null, + ContainerRegistries = new List() + }; + + // Act + var result = psContainerConfig.toMgmtContainerConfiguration(); + + // Assert + Assert.NotNull(result); + Assert.Equal("DockerCompatible", result.Type); + Assert.Null(result.ContainerImageNames); + Assert.NotNull(result.ContainerRegistries); + Assert.Empty(result.ContainerRegistries); + } + + [Fact] + public void ToMgmtContainerConfiguration_WithNullContainerRegistries_ReturnsEmptyRegistries() + { + // Arrange + var psContainerConfig = new PSContainerConfiguration + { + Type = "DockerCompatible", + ContainerImageNames = new List { "ubuntu:20.04" }, + ContainerRegistries = null + }; + + // Act + var result = psContainerConfig.toMgmtContainerConfiguration(); + + // Assert + Assert.NotNull(result); + Assert.Equal("DockerCompatible", result.Type); + Assert.NotNull(result.ContainerImageNames); + Assert.Single(result.ContainerImageNames); + Assert.Null(result.ContainerRegistries); + } + + [Theory] + [InlineData("DockerCompatible")] + [InlineData("CriCompatible")] + public void ToMgmtContainerConfiguration_VariousContainerTypes_ReturnsCorrectMapping(string containerType) + { + // Arrange + var psContainerConfig = new PSContainerConfiguration + { + Type = containerType, + ContainerImageNames = new List { "test:image" }, + ContainerRegistries = new List() + }; + + // Act + var result = psContainerConfig.toMgmtContainerConfiguration(); + + // Assert + Assert.NotNull(result); + Assert.Equal(containerType, result.Type); + Assert.NotNull(result.ContainerImageNames); + Assert.Single(result.ContainerImageNames); + Assert.Equal("test:image", result.ContainerImageNames.First()); + } + + [Fact] + public void ToMgmtContainerConfiguration_AlwaysCreatesNewInstance() + { + // Arrange + var psContainerConfig = new PSContainerConfiguration + { + Type = "DockerCompatible", + ContainerImageNames = new List { "ubuntu:20.04" }, + ContainerRegistries = new List() + }; + + // Act + var result1 = psContainerConfig.toMgmtContainerConfiguration(); + var result2 = psContainerConfig.toMgmtContainerConfiguration(); + + // Assert + Assert.NotNull(result1); + Assert.NotNull(result2); + Assert.NotSame(result1, result2); + } + + [Fact] + public void ToMgmtContainerConfiguration_VerifyContainerConfigurationType() + { + // Arrange + var psContainerConfig = new PSContainerConfiguration + { + Type = "DockerCompatible", + ContainerImageNames = new List { "ubuntu:20.04" }, + ContainerRegistries = new List() + }; + + // Act + var result = psContainerConfig.toMgmtContainerConfiguration(); + + // Assert + Assert.NotNull(result); + Assert.IsType(result); + } + + #endregion + + #region fromMgmtContainerConfiguration Tests + + [Fact] + public void FromMgmtContainerConfiguration_WithAllProperties_ReturnsCorrectMapping() + { + // Arrange + var identityResourceId = "/subscriptions/12345678-1234-1234-1234-123456789abc/resourceGroups/rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/identity"; + var mgmtIdentityRef = new ComputeNodeIdentityReference(identityResourceId); + var mgmtRegistry = new ContainerRegistry( + userName: "testuser", + password: "testpass", + registryServer: "myregistry.azurecr.io", + identityReference: mgmtIdentityRef); + + var mgmtContainerConfig = new ContainerConfiguration( + type: "DockerCompatible", + containerImageNames: new List { "ubuntu:20.04", "nginx:alpine" }, + containerRegistries: new List { mgmtRegistry }); + + // Act + var psContainerConfig = new PSContainerConfiguration(); + var result = psContainerConfig.fromMgmtContainerConfiguration(mgmtContainerConfig); + + // Assert + Assert.NotNull(result); + Assert.Equal("DockerCompatible", result.Type); + Assert.NotNull(result.ContainerImageNames); + Assert.Equal(2, result.ContainerImageNames.Count); + Assert.Contains("ubuntu:20.04", result.ContainerImageNames); + Assert.Contains("nginx:alpine", result.ContainerImageNames); + Assert.NotNull(result.ContainerRegistries); + Assert.Single(result.ContainerRegistries); + Assert.Equal("testuser", result.ContainerRegistries.First().UserName); + Assert.Equal("myregistry.azurecr.io", result.ContainerRegistries.First().RegistryServer); + } + + [Fact] + public void FromMgmtContainerConfiguration_WithDockerCompatible_ReturnsCorrectMapping() + { + // Arrange + var mgmtContainerConfig = new ContainerConfiguration( + type: "DockerCompatible", + containerImageNames: new List { "mcr.microsoft.com/dotnet/runtime:6.0" }, + containerRegistries: new List()); + + // Act + var psContainerConfig = new PSContainerConfiguration(); + var result = psContainerConfig.fromMgmtContainerConfiguration(mgmtContainerConfig); + + // Assert + Assert.NotNull(result); + Assert.Equal("DockerCompatible", result.Type); + Assert.NotNull(result.ContainerImageNames); + Assert.Single(result.ContainerImageNames); + Assert.Equal("mcr.microsoft.com/dotnet/runtime:6.0", result.ContainerImageNames.First()); + Assert.NotNull(result.ContainerRegistries); + Assert.Empty(result.ContainerRegistries); + } + + [Fact] + public void FromMgmtContainerConfiguration_WithCriCompatible_ReturnsCorrectMapping() + { + // Arrange + var mgmtContainerConfig = new ContainerConfiguration( + type: "CriCompatible", + containerImageNames: new List { "docker.io/library/alpine:latest" }, + containerRegistries: new List()); + + // Act + var psContainerConfig = new PSContainerConfiguration(); + var result = psContainerConfig.fromMgmtContainerConfiguration(mgmtContainerConfig); + + // Assert + Assert.NotNull(result); + Assert.Equal("CriCompatible", result.Type); + Assert.NotNull(result.ContainerImageNames); + Assert.Single(result.ContainerImageNames); + Assert.Equal("docker.io/library/alpine:latest", result.ContainerImageNames.First()); + Assert.NotNull(result.ContainerRegistries); + Assert.Empty(result.ContainerRegistries); + } + + [Fact] + public void FromMgmtContainerConfiguration_WithNullMgmtConfiguration_ReturnsNull() + { + // Act + var psContainerConfig = new PSContainerConfiguration(); + var result = psContainerConfig.fromMgmtContainerConfiguration(null); + + // Assert + Assert.Null(result); + } + + [Fact] + public void FromMgmtContainerConfiguration_WithMultipleRegistries_ReturnsCorrectMapping() + { + // Arrange + var mgmtRegistry1 = new ContainerRegistry( + userName: "user1", + password: "pass1", + registryServer: "registry1.azurecr.io"); + + var mgmtRegistry2 = new ContainerRegistry( + userName: "user2", + password: "pass2", + registryServer: "registry2.azurecr.io"); + + var mgmtContainerConfig = new ContainerConfiguration( + type: "DockerCompatible", + containerImageNames: new List { "registry1.azurecr.io/myapp:v1", "registry2.azurecr.io/myapp:v2" }, + containerRegistries: new List { mgmtRegistry1, mgmtRegistry2 }); + + // Act + var psContainerConfig = new PSContainerConfiguration(); + var result = psContainerConfig.fromMgmtContainerConfiguration(mgmtContainerConfig); + + // Assert + Assert.NotNull(result); + Assert.Equal("DockerCompatible", result.Type); + Assert.NotNull(result.ContainerImageNames); + Assert.Equal(2, result.ContainerImageNames.Count); + Assert.NotNull(result.ContainerRegistries); + Assert.Equal(2, result.ContainerRegistries.Count); + + var registryServers = result.ContainerRegistries.Select(r => r.RegistryServer).ToList(); + Assert.Contains("registry1.azurecr.io", registryServers); + Assert.Contains("registry2.azurecr.io", registryServers); + } + + [Fact] + public void FromMgmtContainerConfiguration_WithNullContainerImageNames_ReturnsNullImageNames() + { + // Arrange + var mgmtContainerConfig = new ContainerConfiguration( + type: "DockerCompatible", + containerImageNames: null, + containerRegistries: new List()); + + // Act + var psContainerConfig = new PSContainerConfiguration(); + var result = psContainerConfig.fromMgmtContainerConfiguration(mgmtContainerConfig); + + // Assert + Assert.NotNull(result); + Assert.Equal("DockerCompatible", result.Type); + Assert.Null(result.ContainerImageNames); + Assert.NotNull(result.ContainerRegistries); + Assert.Empty(result.ContainerRegistries); + } + + [Fact] + public void FromMgmtContainerConfiguration_WithNullContainerRegistries_ReturnsNullRegistries() + { + // Arrange + var mgmtContainerConfig = new ContainerConfiguration( + type: "DockerCompatible", + containerImageNames: new List { "ubuntu:20.04" }, + containerRegistries: null); + + // Act + var psContainerConfig = new PSContainerConfiguration(); + var result = psContainerConfig.fromMgmtContainerConfiguration(mgmtContainerConfig); + + // Assert + Assert.NotNull(result); + Assert.Equal("DockerCompatible", result.Type); + Assert.NotNull(result.ContainerImageNames); + Assert.Single(result.ContainerImageNames); + Assert.Null(result.ContainerRegistries); + } + + [Theory] + [InlineData("DockerCompatible")] + [InlineData("CriCompatible")] + public void FromMgmtContainerConfiguration_VariousContainerTypes_ReturnsCorrectMapping(string containerType) + { + // Arrange + var mgmtContainerConfig = new ContainerConfiguration( + type: containerType, + containerImageNames: new List { "test:image" }, + containerRegistries: new List()); + + // Act + var psContainerConfig = new PSContainerConfiguration(); + var result = psContainerConfig.fromMgmtContainerConfiguration(mgmtContainerConfig); + + // Assert + Assert.NotNull(result); + Assert.Equal(containerType, result.Type); + Assert.NotNull(result.ContainerImageNames); + Assert.Single(result.ContainerImageNames); + Assert.Equal("test:image", result.ContainerImageNames.First()); + } + + [Fact] + public void FromMgmtContainerConfiguration_AlwaysCreatesNewInstance() + { + // Arrange + var mgmtContainerConfig = new ContainerConfiguration( + type: "DockerCompatible", + containerImageNames: new List { "ubuntu:20.04" }, + containerRegistries: new List()); + + // Act + var psContainerConfig = new PSContainerConfiguration(); + var result1 = psContainerConfig.fromMgmtContainerConfiguration(mgmtContainerConfig); + var result2 = psContainerConfig.fromMgmtContainerConfiguration(mgmtContainerConfig); + + // Assert + Assert.NotNull(result1); + Assert.NotNull(result2); + Assert.NotSame(result1, result2); + } + + [Fact] + public void FromMgmtContainerConfiguration_VerifyPSContainerConfigurationType() + { + // Arrange + var mgmtContainerConfig = new ContainerConfiguration( + type: "DockerCompatible", + containerImageNames: new List { "ubuntu:20.04" }, + containerRegistries: new List()); + + // Act + var psContainerConfig = new PSContainerConfiguration(); + var result = psContainerConfig.fromMgmtContainerConfiguration(mgmtContainerConfig); + + // Assert + Assert.NotNull(result); + Assert.IsType(result); + } + + [Fact] + public void FromMgmtContainerConfiguration_WithDefaultConstructor_HandlesCorrectly() + { + // Arrange + var mgmtContainerConfig = new ContainerConfiguration(); // Uses default constructor + mgmtContainerConfig.Type = "DockerCompatible"; + mgmtContainerConfig.ContainerImageNames = new List { "ubuntu:latest" }; + + // Act + var psContainerConfig = new PSContainerConfiguration(); + var result = psContainerConfig.fromMgmtContainerConfiguration(mgmtContainerConfig); + + // Assert + Assert.NotNull(result); + Assert.Equal("DockerCompatible", result.Type); + Assert.NotNull(result.ContainerImageNames); + Assert.Single(result.ContainerImageNames); + Assert.Equal("ubuntu:latest", result.ContainerImageNames.First()); + } + + #endregion + + #region Round-trip Conversion Tests + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesAllProperties() + { + // Arrange + var identityResourceId = "/subscriptions/12345678-1234-1234-1234-123456789abc/resourceGroups/rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/identity"; + var originalIdentityRef = new PSComputeNodeIdentityReference { ResourceId = identityResourceId }; + var originalRegistry = new PSContainerRegistry( + userName: "testuser", + password: "testpass", + registryServer: "myregistry.azurecr.io", + identityReference: originalIdentityRef); + + var originalPsContainerConfig = new PSContainerConfiguration + { + Type = "DockerCompatible", + ContainerImageNames = new List { "ubuntu:20.04", "nginx:alpine", "postgres:13" }, + ContainerRegistries = new List { originalRegistry } + }; + + // Act + var mgmtContainerConfig = originalPsContainerConfig.toMgmtContainerConfiguration(); + var psContainerConfig = new PSContainerConfiguration(); + var roundTripPsContainerConfig = psContainerConfig.fromMgmtContainerConfiguration(mgmtContainerConfig); + + // Assert + Assert.NotNull(roundTripPsContainerConfig); + Assert.Equal(originalPsContainerConfig.Type, roundTripPsContainerConfig.Type); + Assert.Equal(originalPsContainerConfig.ContainerImageNames.Count, roundTripPsContainerConfig.ContainerImageNames.Count); + + foreach (var imageName in originalPsContainerConfig.ContainerImageNames) + { + Assert.Contains(imageName, roundTripPsContainerConfig.ContainerImageNames); + } + + Assert.Equal(originalPsContainerConfig.ContainerRegistries.Count, roundTripPsContainerConfig.ContainerRegistries.Count); + Assert.Equal(originalPsContainerConfig.ContainerRegistries.First().UserName, + roundTripPsContainerConfig.ContainerRegistries.First().UserName); + Assert.Equal(originalPsContainerConfig.ContainerRegistries.First().RegistryServer, + roundTripPsContainerConfig.ContainerRegistries.First().RegistryServer); + } + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesMinimalProperties() + { + // Arrange + var originalPsContainerConfig = new PSContainerConfiguration + { + Type = "CriCompatible", + ContainerImageNames = new List { "alpine:latest" }, + ContainerRegistries = new List() + }; + + // Act + var mgmtContainerConfig = originalPsContainerConfig.toMgmtContainerConfiguration(); + var psContainerConfig = new PSContainerConfiguration(); + var roundTripPsContainerConfig = psContainerConfig.fromMgmtContainerConfiguration(mgmtContainerConfig); + + // Assert + Assert.NotNull(roundTripPsContainerConfig); + Assert.Equal(originalPsContainerConfig.Type, roundTripPsContainerConfig.Type); + Assert.Equal(originalPsContainerConfig.ContainerImageNames.Count, roundTripPsContainerConfig.ContainerImageNames.Count); + Assert.Equal(originalPsContainerConfig.ContainerImageNames.First(), roundTripPsContainerConfig.ContainerImageNames.First()); + Assert.Equal(originalPsContainerConfig.ContainerRegistries.Count, roundTripPsContainerConfig.ContainerRegistries.Count); + } + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesNullValues() + { + // Arrange + var originalPsContainerConfig = new PSContainerConfiguration + { + Type = "DockerCompatible", + ContainerImageNames = null, + ContainerRegistries = null + }; + + // Act + var mgmtContainerConfig = originalPsContainerConfig.toMgmtContainerConfiguration(); + var psContainerConfig = new PSContainerConfiguration(); + var roundTripPsContainerConfig = psContainerConfig.fromMgmtContainerConfiguration(mgmtContainerConfig); + + // Assert + Assert.NotNull(roundTripPsContainerConfig); + Assert.Equal(originalPsContainerConfig.Type, roundTripPsContainerConfig.Type); + Assert.Null(roundTripPsContainerConfig.ContainerImageNames); + Assert.Null(roundTripPsContainerConfig.ContainerRegistries); + } + + [Theory] + [InlineData("DockerCompatible")] + [InlineData("CriCompatible")] + public void RoundTripConversion_AllValidTypes_PreservesOriginalValue(string containerType) + { + // Arrange + var originalPsContainerConfig = new PSContainerConfiguration + { + Type = containerType, + ContainerImageNames = new List { "test:image" }, + ContainerRegistries = new List() + }; + + // Act + var mgmtContainerConfig = originalPsContainerConfig.toMgmtContainerConfiguration(); + var psContainerConfig = new PSContainerConfiguration(); + var roundTripPsContainerConfig = psContainerConfig.fromMgmtContainerConfiguration(mgmtContainerConfig); + + // Assert + Assert.NotNull(roundTripPsContainerConfig); + Assert.Equal(originalPsContainerConfig.Type, roundTripPsContainerConfig.Type); + Assert.Equal(originalPsContainerConfig.ContainerImageNames.First(), roundTripPsContainerConfig.ContainerImageNames.First()); + } + + [Fact] + public void RoundTripConversion_FromMgmtAndToMgmt_PreservesValues() + { + // Arrange + var identityResourceId = "/subscriptions/12345678-1234-1234-1234-123456789abc/resourceGroups/rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/identity"; + var originalIdentityRef = new ComputeNodeIdentityReference(identityResourceId); + var originalRegistry = new ContainerRegistry( + userName: "testuser", + password: "testpass", + registryServer: "myregistry.azurecr.io", + identityReference: originalIdentityRef); + + var originalMgmtContainerConfig = new ContainerConfiguration( + type: "DockerCompatible", + containerImageNames: new List { "ubuntu:20.04", "nginx:alpine" }, + containerRegistries: new List { originalRegistry }); + + // Act + var psContainerConfig = new PSContainerConfiguration(); + var convertedPsContainerConfig = psContainerConfig.fromMgmtContainerConfiguration(originalMgmtContainerConfig); + var roundTripMgmtContainerConfig = convertedPsContainerConfig.toMgmtContainerConfiguration(); + + // Assert + Assert.NotNull(roundTripMgmtContainerConfig); + Assert.Equal(originalMgmtContainerConfig.Type, roundTripMgmtContainerConfig.Type); + Assert.Equal(originalMgmtContainerConfig.ContainerImageNames.Count, roundTripMgmtContainerConfig.ContainerImageNames.Count); + + foreach (var imageName in originalMgmtContainerConfig.ContainerImageNames) + { + Assert.Contains(imageName, roundTripMgmtContainerConfig.ContainerImageNames); + } + + Assert.Equal(originalMgmtContainerConfig.ContainerRegistries.Count, roundTripMgmtContainerConfig.ContainerRegistries.Count); + Assert.Equal(originalMgmtContainerConfig.ContainerRegistries.First().UserName, + roundTripMgmtContainerConfig.ContainerRegistries.First().UserName); + Assert.Equal(originalMgmtContainerConfig.ContainerRegistries.First().RegistryServer, + roundTripMgmtContainerConfig.ContainerRegistries.First().RegistryServer); + } + + #endregion + + #region Integration Tests + + [Fact] + public void ContainerConfigurationConversions_BothDirections_MaintainSemanticEquivalence() + { + // This test ensures that the semantic meaning is preserved across conversions + + // Arrange - Test with realistic container configuration scenario + var identityResourceId = "/subscriptions/12345678-1234-1234-1234-123456789abc/resourceGroups/batch-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/container-identity"; + var psIdentityRef = new PSComputeNodeIdentityReference { ResourceId = identityResourceId }; + var psRegistry = new PSContainerRegistry( + userName: "batchuser", + password: "batchpass", + registryServer: "batchregistry.azurecr.io", + identityReference: psIdentityRef); + + var psContainerConfig = new PSContainerConfiguration + { + Type = "DockerCompatible", + ContainerImageNames = new List + { + "mcr.microsoft.com/dotnet/runtime:6.0", + "batchregistry.azurecr.io/myapp:latest", + "docker.io/library/ubuntu:20.04" + }, + ContainerRegistries = new List { psRegistry } + }; + + // Act + var mgmtContainerConfig = psContainerConfig.toMgmtContainerConfiguration(); + var psContainerConfigInstance = new PSContainerConfiguration(); + var backToPs = psContainerConfigInstance.fromMgmtContainerConfiguration(mgmtContainerConfig); + + // Assert + Assert.NotNull(mgmtContainerConfig); + Assert.Equal("DockerCompatible", mgmtContainerConfig.Type); + Assert.Equal(3, mgmtContainerConfig.ContainerImageNames.Count); + Assert.Single(mgmtContainerConfig.ContainerRegistries); + Assert.Equal("batchregistry.azurecr.io", mgmtContainerConfig.ContainerRegistries.First().RegistryServer); + + Assert.NotNull(backToPs); + Assert.Equal("DockerCompatible", backToPs.Type); + Assert.Equal(3, backToPs.ContainerImageNames.Count); + Assert.Single(backToPs.ContainerRegistries); + Assert.Equal("batchregistry.azurecr.io", backToPs.ContainerRegistries.First().RegistryServer); + } + + [Fact] + public void ContainerConfigurationConversions_NullHandling_WorksCorrectly() + { + // Test null handling in conversions + + // Act + var psContainerConfig = new PSContainerConfiguration(); + var resultFromNull = psContainerConfig.fromMgmtContainerConfiguration(null); + + // Assert + Assert.Null(resultFromNull); + } + + [Fact] + public void ContainerConfigurationConversions_BatchPoolContext_VerifyCorrectUsage() + { + // This test validates the conversions work correctly in the context of Batch pool configuration + // ContainerConfiguration is used to configure container support for Batch pool compute nodes + + // Arrange - Test with different container configuration scenarios + var scenarios = new[] + { + // Docker workload with private registry + new { + Type = "DockerCompatible", + ImageNames = new List { "myregistry.azurecr.io/myapp:v1.0", "nginx:alpine" }, + HasRegistry = true, + Description = "Docker workload with private Azure Container Registry" + }, + // Docker workload with public images only + new { + Type = "DockerCompatible", + ImageNames = new List { "ubuntu:20.04", "mcr.microsoft.com/dotnet/runtime:6.0" }, + HasRegistry = false, + Description = "Docker workload with public images from Docker Hub and MCR" + }, + // CRI-compatible workload + new { + Type = "CriCompatible", + ImageNames = new List { "docker.io/library/alpine:latest" }, + HasRegistry = false, + Description = "CRI-compatible workload for Kubernetes-style containers" + }, + // Single container workload + new { + Type = "DockerCompatible", + ImageNames = new List { "postgres:13" }, + HasRegistry = false, + Description = "Single container database workload" + } + }; + + foreach (var scenario in scenarios) + { + // Arrange + var psContainerRegistries = scenario.HasRegistry + ? new List + { + new PSContainerRegistry( + userName: "testuser", + password: "testpass", + registryServer: "myregistry.azurecr.io") + } + : new List(); + + var psContainerConfig = new PSContainerConfiguration + { + Type = scenario.Type, + ContainerImageNames = scenario.ImageNames, + ContainerRegistries = psContainerRegistries + }; + + // Act + var mgmtContainerConfig = psContainerConfig.toMgmtContainerConfiguration(); + + // Assert - Should convert correctly for Batch pool configuration + Assert.NotNull(mgmtContainerConfig); + Assert.Equal(scenario.Type, mgmtContainerConfig.Type); + Assert.Equal(scenario.ImageNames.Count, mgmtContainerConfig.ContainerImageNames.Count); + + foreach (var imageName in scenario.ImageNames) + { + Assert.Contains(imageName, mgmtContainerConfig.ContainerImageNames); + } + + Assert.Equal(psContainerRegistries.Count, mgmtContainerConfig.ContainerRegistries.Count); + + // Verify round-trip conversion maintains container configuration semantics + var psContainerConfigInstance = new PSContainerConfiguration(); + var backToPs = psContainerConfigInstance.fromMgmtContainerConfiguration(mgmtContainerConfig); + Assert.NotNull(backToPs); + Assert.Equal(scenario.Type, backToPs.Type); + Assert.Equal(scenario.ImageNames.Count, backToPs.ContainerImageNames.Count); + + foreach (var imageName in scenario.ImageNames) + { + Assert.Contains(imageName, backToPs.ContainerImageNames); + } + + Assert.Equal(psContainerRegistries.Count, backToPs.ContainerRegistries.Count); + } + } + + [Fact] + public void ContainerConfigurationConversions_InstanceCreation_VerifyBehavior() + { + // This test verifies that the conversion methods create appropriate instances + + // Arrange + var identityResourceId = "/subscriptions/test/resourceGroups/test/providers/Microsoft.ManagedIdentity/userAssignedIdentities/test"; + var psIdentityRef = new PSComputeNodeIdentityReference { ResourceId = identityResourceId }; + var psRegistry = new PSContainerRegistry( + userName: "testuser", + password: "testpass", + registryServer: "test.azurecr.io", + identityReference: psIdentityRef); + + var psContainerConfig = new PSContainerConfiguration + { + Type = "DockerCompatible", + ContainerImageNames = new List { "ubuntu:20.04" }, + ContainerRegistries = new List { psRegistry } + }; + + var mgmtIdentityRef = new ComputeNodeIdentityReference(identityResourceId); + var mgmtRegistry = new ContainerRegistry( + userName: "testuser", + password: "testpass", + registryServer: "test.azurecr.io", + identityReference: mgmtIdentityRef); + + var mgmtContainerConfig = new ContainerConfiguration( + type: "DockerCompatible", + containerImageNames: new List { "ubuntu:20.04" }, + containerRegistries: new List { mgmtRegistry }); + + // Act + var mgmtResult = psContainerConfig.toMgmtContainerConfiguration(); + var psContainerConfigInstance = new PSContainerConfiguration(); + var psResult = psContainerConfigInstance.fromMgmtContainerConfiguration(mgmtContainerConfig); + + // Assert - Verify proper instance creation + Assert.NotNull(mgmtResult); + Assert.NotNull(psResult); + Assert.IsType(mgmtResult); + Assert.IsType(psResult); + + // Verify new instances are created + Assert.NotSame(mgmtContainerConfig, mgmtResult); + Assert.NotSame(psContainerConfig, psResult); + } + + #endregion + + #region Performance and Edge Case Tests + + [Fact] + public void ContainerConfigurationConversions_PerformanceTest_ExecutesQuickly() + { + // This test ensures the conversions are efficient + + // Arrange + var identityResourceId = "/subscriptions/12345678-1234-1234-1234-123456789abc/resourceGroups/test/providers/Microsoft.ManagedIdentity/userAssignedIdentities/test"; + var psIdentityRef = new PSComputeNodeIdentityReference { ResourceId = identityResourceId }; + var psRegistry = new PSContainerRegistry( + userName: "testuser", + password: "testpass", + registryServer: "test.azurecr.io", + identityReference: psIdentityRef); + + var psContainerConfig = new PSContainerConfiguration + { + Type = "DockerCompatible", + ContainerImageNames = new List { "ubuntu:20.04", "nginx:alpine" }, + ContainerRegistries = new List { psRegistry } + }; + + var mgmtIdentityRef = new ComputeNodeIdentityReference(identityResourceId); + var mgmtRegistry = new ContainerRegistry( + userName: "testuser", + password: "testpass", + registryServer: "test.azurecr.io", + identityReference: mgmtIdentityRef); + + var mgmtContainerConfig = new ContainerConfiguration( + type: "DockerCompatible", + containerImageNames: new List { "ubuntu:20.04", "nginx:alpine" }, + containerRegistries: new List { mgmtRegistry }); + + // Act & Assert - Multiple conversions should complete without delay + for (int i = 0; i < 100; i++) + { + var mgmtResult = psContainerConfig.toMgmtContainerConfiguration(); + var psContainerConfigInstance = new PSContainerConfiguration(); + var psResult = psContainerConfigInstance.fromMgmtContainerConfiguration(mgmtContainerConfig); + + Assert.NotNull(mgmtResult); + Assert.NotNull(psResult); + Assert.Equal("DockerCompatible", mgmtResult.Type); + Assert.Equal("DockerCompatible", psResult.Type); + } + } + + [Fact] + public void ContainerConfigurationConversions_DefaultAndNullValues_HandleCorrectly() + { + // Test conversion with default and null values + + // Scenario 1: Default PS constructor + var defaultPsContainerConfig = new PSContainerConfiguration + { + Type = "DockerCompatible" + // Other properties use default values (null) + }; + + var mgmtFromDefault = defaultPsContainerConfig.toMgmtContainerConfiguration(); + Assert.NotNull(mgmtFromDefault); + Assert.Equal("DockerCompatible", mgmtFromDefault.Type); + Assert.Null(mgmtFromDefault.ContainerImageNames); + Assert.Null(mgmtFromDefault.ContainerRegistries); + + // Scenario 2: Default management constructor + var defaultMgmtContainerConfig = new ContainerConfiguration(); + defaultMgmtContainerConfig.Type = "CriCompatible"; + + var psContainerConfigInstance = new PSContainerConfiguration(); + var psFromDefault = psContainerConfigInstance.fromMgmtContainerConfiguration(defaultMgmtContainerConfig); + Assert.NotNull(psFromDefault); + Assert.Equal("CriCompatible", psFromDefault.Type); + Assert.Null(psFromDefault.ContainerImageNames); + Assert.Null(psFromDefault.ContainerRegistries); + + // Scenario 3: Explicit null values + var nullValuesPsContainerConfig = new PSContainerConfiguration + { + Type = "DockerCompatible", + ContainerImageNames = null, + ContainerRegistries = null + }; + + var mgmtNullValuesResult = nullValuesPsContainerConfig.toMgmtContainerConfiguration(); + Assert.NotNull(mgmtNullValuesResult); + Assert.Equal("DockerCompatible", mgmtNullValuesResult.Type); + Assert.Null(mgmtNullValuesResult.ContainerImageNames); + Assert.Null(mgmtNullValuesResult.ContainerRegistries); + + var psContainerConfigInstance2 = new PSContainerConfiguration(); + var roundTripNullValues = psContainerConfigInstance2.fromMgmtContainerConfiguration(mgmtNullValuesResult); + Assert.NotNull(roundTripNullValues); + Assert.Equal("DockerCompatible", roundTripNullValues.Type); + Assert.Null(roundTripNullValues.ContainerImageNames); + Assert.Null(roundTripNullValues.ContainerRegistries); + } + + [Fact] + public void ContainerConfigurationConversions_ContainerTypeSemantics_VerifyCorrectness() + { + // This test validates the semantic meaning of different container types + + var containerTypeScenarios = new[] + { + new { + Type = "DockerCompatible", + Description = "Docker-compatible containers using standard Docker runtime", + TypicalImages = new[] { "ubuntu:20.04", "nginx:alpine", "postgres:13" }, + UseCases = new[] { "Standard containerized applications", "Docker Compose workloads", "Legacy Docker applications" } + }, + new { + Type = "CriCompatible", + Description = "CRI-compatible containers for Kubernetes-style orchestration", + TypicalImages = new[] { "docker.io/library/alpine:latest", "k8s.gcr.io/pause:3.5" }, + UseCases = new[] { "Kubernetes workloads", "CRI-O runtime", "containerd runtime" } + } + }; + + foreach (var scenario in containerTypeScenarios) + { + // Act - Convert configuration with specific container type + var psContainerConfig = new PSContainerConfiguration + { + Type = scenario.Type, + ContainerImageNames = scenario.TypicalImages.ToList(), + ContainerRegistries = new List() + }; + + var mgmtContainerConfig = psContainerConfig.toMgmtContainerConfiguration(); + var psContainerConfigInstance = new PSContainerConfiguration(); + var roundTripContainerConfig = psContainerConfigInstance.fromMgmtContainerConfiguration(mgmtContainerConfig); + + // Assert - Container type semantics should be preserved + Assert.NotNull(mgmtContainerConfig); + Assert.NotNull(roundTripContainerConfig); + Assert.Equal(scenario.Type, mgmtContainerConfig.Type); + Assert.Equal(scenario.Type, roundTripContainerConfig.Type); + + // Verify image names are preserved + Assert.Equal(scenario.TypicalImages.Length, mgmtContainerConfig.ContainerImageNames.Count); + Assert.Equal(scenario.TypicalImages.Length, roundTripContainerConfig.ContainerImageNames.Count); + + foreach (var image in scenario.TypicalImages) + { + Assert.Contains(image, mgmtContainerConfig.ContainerImageNames); + Assert.Contains(image, roundTripContainerConfig.ContainerImageNames); + } + } + } + + #endregion + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Test/Models/PSDataDiskTests.cs b/src/Batch/Batch.Test/Models/PSDataDiskTests.cs new file mode 100644 index 000000000000..cbd9d4e24686 --- /dev/null +++ b/src/Batch/Batch.Test/Models/PSDataDiskTests.cs @@ -0,0 +1,984 @@ +// ----------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ----------------------------------------------------------------------------- + +using Microsoft.Azure.Commands.Batch.Models; +using Microsoft.Azure.Management.Batch.Models; +using System; +using Xunit; + +namespace Microsoft.Azure.Commands.Batch.Test.ModelsConversions +{ + public class PSDataDiskTests + { + #region toMgmtDataDisk Tests + + [Fact] + public void ToMgmtDataDisk_WithAllProperties_ReturnsCorrectMapping() + { + // Arrange + var psDataDisk = new PSDataDisk( + lun: 1, + diskSizeGB: 128, + caching: Microsoft.Azure.Batch.Common.CachingType.ReadWrite, + storageAccountType: Microsoft.Azure.Batch.Common.StorageAccountType.PremiumLrs); + + // Act + var result = psDataDisk.toMgmtDataDisk(); + + // Assert + Assert.NotNull(result); + Assert.Equal(1, result.Lun); + Assert.Equal(128, result.DiskSizeGb); + Assert.Equal(CachingType.ReadWrite, result.Caching); + Assert.Equal(StorageAccountType.PremiumLRS, result.StorageAccountType); + } + + [Fact] + public void ToMgmtDataDisk_WithMinimalProperties_ReturnsCorrectMapping() + { + // Arrange + var psDataDisk = new PSDataDisk( + lun: 0, + diskSizeGB: 64); + + // Act + var result = psDataDisk.toMgmtDataDisk(); + + // Assert + Assert.NotNull(result); + Assert.Equal(0, result.Lun); + Assert.Equal(64, result.DiskSizeGb); + Assert.Null(result.Caching); + Assert.Null(result.StorageAccountType); + } + + [Fact] + public void ToMgmtDataDisk_WithStandardSSDStorage_ReturnsCorrectMapping() + { + // Arrange + var psDataDisk = new PSDataDisk( + lun: 2, + diskSizeGB: 256, + caching: Microsoft.Azure.Batch.Common.CachingType.ReadOnly, + storageAccountType: Microsoft.Azure.Batch.Common.StorageAccountType.StandardSSDLRS); + + // Act + var result = psDataDisk.toMgmtDataDisk(); + + // Assert + Assert.NotNull(result); + Assert.Equal(2, result.Lun); + Assert.Equal(256, result.DiskSizeGb); + Assert.Equal(CachingType.ReadOnly, result.Caching); + Assert.Equal(StorageAccountType.StandardSSDLRS, result.StorageAccountType); + } + + [Fact] + public void ToMgmtDataDisk_WithStandardLRSStorage_ReturnsCorrectMapping() + { + // Arrange + var psDataDisk = new PSDataDisk( + lun: 3, + diskSizeGB: 512, + caching: Microsoft.Azure.Batch.Common.CachingType.None, + storageAccountType: Microsoft.Azure.Batch.Common.StorageAccountType.StandardLrs); + + // Act + var result = psDataDisk.toMgmtDataDisk(); + + // Assert + Assert.NotNull(result); + Assert.Equal(3, result.Lun); + Assert.Equal(512, result.DiskSizeGb); + Assert.Equal(CachingType.None, result.Caching); + Assert.Equal(StorageAccountType.StandardLRS, result.StorageAccountType); + } + + [Fact] + public void ToMgmtDataDisk_WithNullCaching_ReturnsNullCaching() + { + // Arrange + var psDataDisk = new PSDataDisk( + lun: 4, + diskSizeGB: 1024, + caching: null, + storageAccountType: Microsoft.Azure.Batch.Common.StorageAccountType.PremiumLrs); + + // Act + var result = psDataDisk.toMgmtDataDisk(); + + // Assert + Assert.NotNull(result); + Assert.Equal(4, result.Lun); + Assert.Equal(1024, result.DiskSizeGb); + Assert.Null(result.Caching); + Assert.Equal(StorageAccountType.PremiumLRS, result.StorageAccountType); + } + + [Fact] + public void ToMgmtDataDisk_WithNullStorageAccountType_ReturnsNullStorageAccountType() + { + // Arrange + var psDataDisk = new PSDataDisk( + lun: 5, + diskSizeGB: 2048, + caching: Microsoft.Azure.Batch.Common.CachingType.ReadWrite, + storageAccountType: null); + + // Act + var result = psDataDisk.toMgmtDataDisk(); + + // Assert + Assert.NotNull(result); + Assert.Equal(5, result.Lun); + Assert.Equal(2048, result.DiskSizeGb); + Assert.Equal(CachingType.ReadWrite, result.Caching); + Assert.Null(result.StorageAccountType); + } + + [Theory] + [InlineData(0, 64, Microsoft.Azure.Batch.Common.CachingType.None, Microsoft.Azure.Batch.Common.StorageAccountType.StandardLrs)] + [InlineData(1, 128, Microsoft.Azure.Batch.Common.CachingType.ReadOnly, Microsoft.Azure.Batch.Common.StorageAccountType.StandardSSDLRS)] + [InlineData(2, 256, Microsoft.Azure.Batch.Common.CachingType.ReadWrite, Microsoft.Azure.Batch.Common.StorageAccountType.PremiumLrs)] + [InlineData(63, 4096, Microsoft.Azure.Batch.Common.CachingType.None, Microsoft.Azure.Batch.Common.StorageAccountType.StandardLrs)] + public void ToMgmtDataDisk_VariousConfigurations_ReturnsCorrectMapping( + int lun, + int diskSizeGB, + Microsoft.Azure.Batch.Common.CachingType caching, + Microsoft.Azure.Batch.Common.StorageAccountType storageAccountType) + { + // Arrange + var psDataDisk = new PSDataDisk(lun, diskSizeGB, caching, storageAccountType); + + // Act + var result = psDataDisk.toMgmtDataDisk(); + + // Assert + Assert.NotNull(result); + Assert.Equal(lun, result.Lun); + Assert.Equal(diskSizeGB, result.DiskSizeGb); + Assert.Equal((CachingType)caching, result.Caching); + Assert.Equal((StorageAccountType)storageAccountType, result.StorageAccountType); + } + + [Fact] + public void ToMgmtDataDisk_AlwaysCreatesNewInstance() + { + // Arrange + var psDataDisk = new PSDataDisk(1, 128); + + // Act + var result1 = psDataDisk.toMgmtDataDisk(); + var result2 = psDataDisk.toMgmtDataDisk(); + + // Assert + Assert.NotNull(result1); + Assert.NotNull(result2); + Assert.NotSame(result1, result2); + } + + [Fact] + public void ToMgmtDataDisk_VerifyDataDiskType() + { + // Arrange + var psDataDisk = new PSDataDisk(1, 128); + + // Act + var result = psDataDisk.toMgmtDataDisk(); + + // Assert + Assert.NotNull(result); + Assert.IsType(result); + } + + [Fact] + public void ToMgmtDataDisk_WithBoundaryValues_ReturnsCorrectMapping() + { + // Test with boundary values for LUN (0-63) and disk sizes + + // Minimum LUN and disk size + var minDataDisk = new PSDataDisk(0, 1); + var minResult = minDataDisk.toMgmtDataDisk(); + Assert.Equal(0, minResult.Lun); + Assert.Equal(1, minResult.DiskSizeGb); + + // Maximum LUN + var maxLunDataDisk = new PSDataDisk(63, 32767); + var maxLunResult = maxLunDataDisk.toMgmtDataDisk(); + Assert.Equal(63, maxLunResult.Lun); + Assert.Equal(32767, maxLunResult.DiskSizeGb); + } + + #endregion + + #region fromMgmtDataDisk Tests + + [Fact] + public void FromMgmtDataDisk_WithAllProperties_ReturnsCorrectMapping() + { + // Arrange + var mgmtDataDisk = new DataDisk( + lun: 1, + diskSizeGb: 128, + caching: CachingType.ReadWrite, + storageAccountType: StorageAccountType.PremiumLRS); + + // Act + var result = PSDataDisk.fromMgmtDataDisk(mgmtDataDisk); + + // Assert + Assert.NotNull(result); + Assert.Equal(1, result.Lun); + Assert.Equal(128, result.DiskSizeGB); + Assert.Equal(Microsoft.Azure.Batch.Common.CachingType.ReadWrite, result.Caching); + Assert.Equal(Microsoft.Azure.Batch.Common.StorageAccountType.PremiumLrs, result.StorageAccountType); + } + + [Fact] + public void FromMgmtDataDisk_WithMinimalProperties_ReturnsCorrectMapping() + { + // Arrange + var mgmtDataDisk = new DataDisk( + lun: 0, + diskSizeGb: 64); + + // Act + var result = PSDataDisk.fromMgmtDataDisk(mgmtDataDisk); + + // Assert + Assert.NotNull(result); + Assert.Equal(0, result.Lun); + Assert.Equal(64, result.DiskSizeGB); + Assert.Null(result.Caching); + Assert.Null(result.StorageAccountType); + } + + [Fact] + public void FromMgmtDataDisk_WithNullMgmtDataDisk_ReturnsNull() + { + // Act + var result = PSDataDisk.fromMgmtDataDisk(null); + + // Assert + Assert.Null(result); + } + + [Fact] + public void FromMgmtDataDisk_WithStandardSSDStorage_ReturnsCorrectMapping() + { + // Arrange + var mgmtDataDisk = new DataDisk( + lun: 2, + diskSizeGb: 256, + caching: CachingType.ReadOnly, + storageAccountType: StorageAccountType.StandardSSDLRS); + + // Act + var result = PSDataDisk.fromMgmtDataDisk(mgmtDataDisk); + + // Assert + Assert.NotNull(result); + Assert.Equal(2, result.Lun); + Assert.Equal(256, result.DiskSizeGB); + Assert.Equal(Microsoft.Azure.Batch.Common.CachingType.ReadOnly, result.Caching); + Assert.Equal(Microsoft.Azure.Batch.Common.StorageAccountType.StandardSSDLRS, result.StorageAccountType); + } + + [Fact] + public void FromMgmtDataDisk_WithStandardLRSStorage_ReturnsCorrectMapping() + { + // Arrange + var mgmtDataDisk = new DataDisk( + lun: 3, + diskSizeGb: 512, + caching: CachingType.None, + storageAccountType: StorageAccountType.StandardLRS); + + // Act + var result = PSDataDisk.fromMgmtDataDisk(mgmtDataDisk); + + // Assert + Assert.NotNull(result); + Assert.Equal(3, result.Lun); + Assert.Equal(512, result.DiskSizeGB); + Assert.Equal(Microsoft.Azure.Batch.Common.CachingType.None, result.Caching); + Assert.Equal(Microsoft.Azure.Batch.Common.StorageAccountType.StandardLrs, result.StorageAccountType); + } + + [Fact] + public void FromMgmtDataDisk_WithNullCaching_ReturnsNullCaching() + { + // Arrange + var mgmtDataDisk = new DataDisk( + lun: 4, + diskSizeGb: 1024, + caching: null, + storageAccountType: StorageAccountType.PremiumLRS); + + // Act + var result = PSDataDisk.fromMgmtDataDisk(mgmtDataDisk); + + // Assert + Assert.NotNull(result); + Assert.Equal(4, result.Lun); + Assert.Equal(1024, result.DiskSizeGB); + Assert.Null(result.Caching); + Assert.Equal(Microsoft.Azure.Batch.Common.StorageAccountType.PremiumLrs, result.StorageAccountType); + } + + [Fact] + public void FromMgmtDataDisk_WithNullStorageAccountType_ReturnsNullStorageAccountType() + { + // Arrange + var mgmtDataDisk = new DataDisk( + lun: 5, + diskSizeGb: 2048, + caching: CachingType.ReadWrite, + storageAccountType: null); + + // Act + var result = PSDataDisk.fromMgmtDataDisk(mgmtDataDisk); + + // Assert + Assert.NotNull(result); + Assert.Equal(5, result.Lun); + Assert.Equal(2048, result.DiskSizeGB); + Assert.Equal(Microsoft.Azure.Batch.Common.CachingType.ReadWrite, result.Caching); + Assert.Null(result.StorageAccountType); + } + + [Theory] + [InlineData(0, 64, CachingType.None, StorageAccountType.StandardLRS)] + [InlineData(1, 128, CachingType.ReadOnly, StorageAccountType.StandardSSDLRS)] + [InlineData(2, 256, CachingType.ReadWrite, StorageAccountType.PremiumLRS)] + [InlineData(63, 4096, CachingType.None, StorageAccountType.StandardLRS)] + public void FromMgmtDataDisk_VariousConfigurations_ReturnsCorrectMapping( + int lun, + int diskSizeGb, + CachingType caching, + StorageAccountType storageAccountType) + { + // Arrange + var mgmtDataDisk = new DataDisk(lun, diskSizeGb, caching, storageAccountType); + + // Act + var result = PSDataDisk.fromMgmtDataDisk(mgmtDataDisk); + + // Assert + Assert.NotNull(result); + Assert.Equal(lun, result.Lun); + Assert.Equal(diskSizeGb, result.DiskSizeGB); + Assert.Equal((Microsoft.Azure.Batch.Common.CachingType)caching, result.Caching); + Assert.Equal((Microsoft.Azure.Batch.Common.StorageAccountType)storageAccountType, result.StorageAccountType); + } + + [Fact] + public void FromMgmtDataDisk_StaticMethod_DoesNotRequireInstance() + { + // Arrange + var mgmtDataDisk = new DataDisk(1, 128); + + // Act - Call static method directly on class + var result = PSDataDisk.fromMgmtDataDisk(mgmtDataDisk); + + // Assert + Assert.NotNull(result); + Assert.Equal(1, result.Lun); + Assert.Equal(128, result.DiskSizeGB); + } + + [Fact] + public void FromMgmtDataDisk_AlwaysCreatesNewInstance() + { + // Arrange + var mgmtDataDisk = new DataDisk(1, 128); + + // Act + var result1 = PSDataDisk.fromMgmtDataDisk(mgmtDataDisk); + var result2 = PSDataDisk.fromMgmtDataDisk(mgmtDataDisk); + + // Assert + Assert.NotNull(result1); + Assert.NotNull(result2); + Assert.NotSame(result1, result2); + } + + [Fact] + public void FromMgmtDataDisk_VerifyPSDataDiskType() + { + // Arrange + var mgmtDataDisk = new DataDisk(1, 128); + + // Act + var result = PSDataDisk.fromMgmtDataDisk(mgmtDataDisk); + + // Assert + Assert.NotNull(result); + Assert.IsType(result); + } + + [Fact] + public void FromMgmtDataDisk_WithDefaultConstructor_HandlesCorrectly() + { + // Arrange + var mgmtDataDisk = new DataDisk(); // Uses default constructor + mgmtDataDisk.Lun = 10; + mgmtDataDisk.DiskSizeGb = 512; + + // Act + var result = PSDataDisk.fromMgmtDataDisk(mgmtDataDisk); + + // Assert + Assert.NotNull(result); + Assert.Equal(10, result.Lun); + Assert.Equal(512, result.DiskSizeGB); + Assert.Null(result.Caching); + Assert.Null(result.StorageAccountType); + } + + [Fact] + public void FromMgmtDataDisk_WithBoundaryValues_ReturnsCorrectMapping() + { + // Test with boundary values for LUN (0-63) and disk sizes + + // Minimum LUN and disk size + var minMgmtDataDisk = new DataDisk(0, 1); + var minResult = PSDataDisk.fromMgmtDataDisk(minMgmtDataDisk); + Assert.Equal(0, minResult.Lun); + Assert.Equal(1, minResult.DiskSizeGB); + + // Maximum LUN + var maxLunMgmtDataDisk = new DataDisk(63, 32767); + var maxLunResult = PSDataDisk.fromMgmtDataDisk(maxLunMgmtDataDisk); + Assert.Equal(63, maxLunResult.Lun); + Assert.Equal(32767, maxLunResult.DiskSizeGB); + } + + #endregion + + #region Round-trip Conversion Tests + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesAllProperties() + { + // Arrange + var originalPsDataDisk = new PSDataDisk( + lun: 1, + diskSizeGB: 128, + caching: Microsoft.Azure.Batch.Common.CachingType.ReadWrite, + storageAccountType: Microsoft.Azure.Batch.Common.StorageAccountType.PremiumLrs); + + // Act + var mgmtDataDisk = originalPsDataDisk.toMgmtDataDisk(); + var roundTripPsDataDisk = PSDataDisk.fromMgmtDataDisk(mgmtDataDisk); + + // Assert + Assert.NotNull(roundTripPsDataDisk); + Assert.Equal(originalPsDataDisk.Lun, roundTripPsDataDisk.Lun); + Assert.Equal(originalPsDataDisk.DiskSizeGB, roundTripPsDataDisk.DiskSizeGB); + Assert.Equal(originalPsDataDisk.Caching, roundTripPsDataDisk.Caching); + Assert.Equal(originalPsDataDisk.StorageAccountType, roundTripPsDataDisk.StorageAccountType); + } + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesMinimalProperties() + { + // Arrange + var originalPsDataDisk = new PSDataDisk(0, 64); + + // Act + var mgmtDataDisk = originalPsDataDisk.toMgmtDataDisk(); + var roundTripPsDataDisk = PSDataDisk.fromMgmtDataDisk(mgmtDataDisk); + + // Assert + Assert.NotNull(roundTripPsDataDisk); + Assert.Equal(originalPsDataDisk.Lun, roundTripPsDataDisk.Lun); + Assert.Equal(originalPsDataDisk.DiskSizeGB, roundTripPsDataDisk.DiskSizeGB); + Assert.Null(roundTripPsDataDisk.Caching); + Assert.Null(roundTripPsDataDisk.StorageAccountType); + } + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesNullValues() + { + // Arrange + var originalPsDataDisk = new PSDataDisk( + lun: 2, + diskSizeGB: 256, + caching: null, + storageAccountType: null); + + // Act + var mgmtDataDisk = originalPsDataDisk.toMgmtDataDisk(); + var roundTripPsDataDisk = PSDataDisk.fromMgmtDataDisk(mgmtDataDisk); + + // Assert + Assert.NotNull(roundTripPsDataDisk); + Assert.Equal(originalPsDataDisk.Lun, roundTripPsDataDisk.Lun); + Assert.Equal(originalPsDataDisk.DiskSizeGB, roundTripPsDataDisk.DiskSizeGB); + Assert.Null(roundTripPsDataDisk.Caching); + Assert.Null(roundTripPsDataDisk.StorageAccountType); + } + + [Theory] + [InlineData(0, 64, Microsoft.Azure.Batch.Common.CachingType.None, Microsoft.Azure.Batch.Common.StorageAccountType.StandardLrs)] + [InlineData(1, 128, Microsoft.Azure.Batch.Common.CachingType.ReadOnly, Microsoft.Azure.Batch.Common.StorageAccountType.StandardSSDLRS)] + [InlineData(2, 256, Microsoft.Azure.Batch.Common.CachingType.ReadWrite, Microsoft.Azure.Batch.Common.StorageAccountType.PremiumLrs)] + [InlineData(63, 4096, Microsoft.Azure.Batch.Common.CachingType.None, Microsoft.Azure.Batch.Common.StorageAccountType.StandardLrs)] + public void RoundTripConversion_AllValidValues_PreservesOriginalValue( + int lun, + int diskSizeGB, + Microsoft.Azure.Batch.Common.CachingType caching, + Microsoft.Azure.Batch.Common.StorageAccountType storageAccountType) + { + // Arrange + var originalPsDataDisk = new PSDataDisk(lun, diskSizeGB, caching, storageAccountType); + + // Act + var mgmtDataDisk = originalPsDataDisk.toMgmtDataDisk(); + var roundTripPsDataDisk = PSDataDisk.fromMgmtDataDisk(mgmtDataDisk); + + // Assert + Assert.NotNull(roundTripPsDataDisk); + Assert.Equal(originalPsDataDisk.Lun, roundTripPsDataDisk.Lun); + Assert.Equal(originalPsDataDisk.DiskSizeGB, roundTripPsDataDisk.DiskSizeGB); + Assert.Equal(originalPsDataDisk.Caching, roundTripPsDataDisk.Caching); + Assert.Equal(originalPsDataDisk.StorageAccountType, roundTripPsDataDisk.StorageAccountType); + } + + [Fact] + public void RoundTripConversion_FromMgmtAndToMgmt_PreservesValues() + { + // Arrange + var originalMgmtDataDisk = new DataDisk( + lun: 3, + diskSizeGb: 512, + caching: CachingType.ReadOnly, + storageAccountType: StorageAccountType.StandardSSDLRS); + + // Act + var psDataDisk = PSDataDisk.fromMgmtDataDisk(originalMgmtDataDisk); + var roundTripMgmtDataDisk = psDataDisk.toMgmtDataDisk(); + + // Assert + Assert.NotNull(roundTripMgmtDataDisk); + Assert.Equal(originalMgmtDataDisk.Lun, roundTripMgmtDataDisk.Lun); + Assert.Equal(originalMgmtDataDisk.DiskSizeGb, roundTripMgmtDataDisk.DiskSizeGb); + Assert.Equal(originalMgmtDataDisk.Caching, roundTripMgmtDataDisk.Caching); + Assert.Equal(originalMgmtDataDisk.StorageAccountType, roundTripMgmtDataDisk.StorageAccountType); + } + + #endregion + + #region Integration Tests + + [Fact] + public void DataDiskConversions_BothDirections_MaintainSemanticEquivalence() + { + // This test ensures that the semantic meaning is preserved across conversions + + // Arrange - Test with high-performance data disk configuration + var psDataDisk = new PSDataDisk( + lun: 1, + diskSizeGB: 1024, + caching: Microsoft.Azure.Batch.Common.CachingType.ReadWrite, + storageAccountType: Microsoft.Azure.Batch.Common.StorageAccountType.PremiumLrs); + + // Act + var mgmtDataDisk = psDataDisk.toMgmtDataDisk(); + var backToPs = PSDataDisk.fromMgmtDataDisk(mgmtDataDisk); + + // Assert + Assert.NotNull(mgmtDataDisk); + Assert.Equal(1, mgmtDataDisk.Lun); + Assert.Equal(1024, mgmtDataDisk.DiskSizeGb); + Assert.Equal(CachingType.ReadWrite, mgmtDataDisk.Caching); + Assert.Equal(StorageAccountType.PremiumLRS, mgmtDataDisk.StorageAccountType); + + Assert.NotNull(backToPs); + Assert.Equal(1, backToPs.Lun); + Assert.Equal(1024, backToPs.DiskSizeGB); + Assert.Equal(Microsoft.Azure.Batch.Common.CachingType.ReadWrite, backToPs.Caching); + Assert.Equal(Microsoft.Azure.Batch.Common.StorageAccountType.PremiumLrs, backToPs.StorageAccountType); + } + + [Fact] + public void DataDiskConversions_NullHandling_WorksCorrectly() + { + // Test null handling in conversions + + // Act + var resultFromNull = PSDataDisk.fromMgmtDataDisk(null); + + // Assert + Assert.Null(resultFromNull); + } + + [Fact] + public void DataDiskConversions_BatchPoolContext_VerifyCorrectUsage() + { + // This test validates the conversions work correctly in the context of Batch pool configuration + // DataDisk is used to configure additional storage for Batch pool compute nodes + + // Arrange - Test with different data disk scenarios + var scenarios = new[] + { + // High-performance database storage + new { + Lun = 0, + DiskSizeGB = 512, + Caching = Microsoft.Azure.Batch.Common.CachingType.ReadWrite, + StorageAccountType = Microsoft.Azure.Batch.Common.StorageAccountType.PremiumLrs, + Description = "High-performance database storage with Premium SSD and read-write caching" + }, + // Analytics workload storage + new { + Lun = 1, + DiskSizeGB = 1024, + Caching = Microsoft.Azure.Batch.Common.CachingType.ReadOnly, + StorageAccountType = Microsoft.Azure.Batch.Common.StorageAccountType.StandardSSDLRS, + Description = "Analytics workload storage with Standard SSD and read-only caching" + }, + // Archive storage + new { + Lun = 2, + DiskSizeGB = 2048, + Caching = Microsoft.Azure.Batch.Common.CachingType.None, + StorageAccountType = Microsoft.Azure.Batch.Common.StorageAccountType.StandardLrs, + Description = "Archive storage with Standard HDD and no caching" + } + }; + + foreach (var scenario in scenarios) + { + // Arrange + var psDataDisk = new PSDataDisk( + lun: scenario.Lun, + diskSizeGB: scenario.DiskSizeGB, + caching: scenario.Caching, + storageAccountType: scenario.StorageAccountType); + + // Act + var mgmtDataDisk = psDataDisk.toMgmtDataDisk(); + + // Assert - Should convert correctly for Batch pool configuration + Assert.NotNull(mgmtDataDisk); + Assert.Equal(scenario.Lun, mgmtDataDisk.Lun); + Assert.Equal(scenario.DiskSizeGB, mgmtDataDisk.DiskSizeGb); + + Assert.Equal((CachingType)scenario.Caching, mgmtDataDisk.Caching); + + + Assert.Equal((StorageAccountType)scenario.StorageAccountType, mgmtDataDisk.StorageAccountType); + + // Verify round-trip conversion maintains data disk semantics + var backToPs = PSDataDisk.fromMgmtDataDisk(mgmtDataDisk); + Assert.NotNull(backToPs); + Assert.Equal(scenario.Lun, backToPs.Lun); + Assert.Equal(scenario.DiskSizeGB, backToPs.DiskSizeGB); + Assert.Equal(scenario.Caching, backToPs.Caching); + Assert.Equal(scenario.StorageAccountType, backToPs.StorageAccountType); + } + } + + [Fact] + public void DataDiskConversions_PropertyMapping_VerifyCorrectness() + { + // This test verifies the property mapping between PS and Management types + // PSDataDisk.DiskSizeGB <-> DataDisk.DiskSizeGb (different casing) + // Other properties map directly + + // Test 1: PS to Management mapping + var psDataDisk = new PSDataDisk( + lun: 5, + diskSizeGB: 512, + caching: Microsoft.Azure.Batch.Common.CachingType.ReadOnly, + storageAccountType: Microsoft.Azure.Batch.Common.StorageAccountType.StandardSSDLRS); + + var mgmtDataDisk = psDataDisk.toMgmtDataDisk(); + + // Verify DiskSizeGB maps to DiskSizeGb (different casing) + Assert.Equal(psDataDisk.DiskSizeGB, mgmtDataDisk.DiskSizeGb); + // Verify direct mappings + Assert.Equal(psDataDisk.Lun, mgmtDataDisk.Lun); + Assert.Equal((CachingType)psDataDisk.Caching.Value, mgmtDataDisk.Caching); + Assert.Equal((StorageAccountType)psDataDisk.StorageAccountType.Value, mgmtDataDisk.StorageAccountType); + + // Test 2: Management to PS mapping + var originalMgmtDisk = new DataDisk( + lun: 10, + diskSizeGb: 256, + caching: CachingType.ReadWrite, + storageAccountType: StorageAccountType.PremiumLRS); + + var resultPsDisk = PSDataDisk.fromMgmtDataDisk(originalMgmtDisk); + + // Verify DiskSizeGb maps to DiskSizeGB (different casing) + Assert.Equal(originalMgmtDisk.DiskSizeGb, resultPsDisk.DiskSizeGB); + // Verify direct mappings + Assert.Equal(originalMgmtDisk.Lun, resultPsDisk.Lun); + Assert.Equal((Microsoft.Azure.Batch.Common.CachingType)originalMgmtDisk.Caching.Value, resultPsDisk.Caching); + Assert.Equal((Microsoft.Azure.Batch.Common.StorageAccountType)originalMgmtDisk.StorageAccountType.Value, resultPsDisk.StorageAccountType); + } + + [Fact] + public void DataDiskConversions_InstanceCreation_VerifyBehavior() + { + // This test verifies that the conversion methods create appropriate instances + + // Arrange + var psDataDisk = new PSDataDisk(1, 128, Microsoft.Azure.Batch.Common.CachingType.ReadWrite, Microsoft.Azure.Batch.Common.StorageAccountType.PremiumLrs); + + var mgmtDataDisk = new DataDisk(2, 256, CachingType.ReadOnly, StorageAccountType.StandardSSDLRS); + + // Act + var mgmtResult = psDataDisk.toMgmtDataDisk(); + var psResult = PSDataDisk.fromMgmtDataDisk(mgmtDataDisk); + + // Assert - Verify proper instance creation + Assert.NotNull(mgmtResult); + Assert.NotNull(psResult); + Assert.IsType(mgmtResult); + Assert.IsType(psResult); + + // Verify new instances are created + Assert.NotSame(mgmtDataDisk, mgmtResult); + Assert.NotSame(psDataDisk, psResult); + } + + #endregion + + #region Performance and Edge Case Tests + + [Fact] + public void DataDiskConversions_PerformanceTest_ExecutesQuickly() + { + // This test ensures the conversions are efficient + + // Arrange + var psDataDisk = new PSDataDisk(1, 128, Microsoft.Azure.Batch.Common.CachingType.ReadWrite, Microsoft.Azure.Batch.Common.StorageAccountType.PremiumLrs); + + var mgmtDataDisk = new DataDisk(2, 256, CachingType.ReadOnly, StorageAccountType.StandardSSDLRS); + + // Act & Assert - Multiple conversions should complete without delay + for (int i = 0; i < 1000; i++) + { + var mgmtResult = psDataDisk.toMgmtDataDisk(); + var psResult = PSDataDisk.fromMgmtDataDisk(mgmtDataDisk); + + Assert.NotNull(mgmtResult); + Assert.NotNull(psResult); + Assert.Equal(1, mgmtResult.Lun); + Assert.Equal(2, psResult.Lun); + } + } + + [Fact] + public void DataDiskConversions_EdgeCaseDiskSizes_HandleCorrectly() + { + // Test conversion with various edge case disk sizes + + var testDiskSizes = new[] + { + // Minimum sizes + 1, + 4, + + // Common sizes + 32, + 64, + 128, + 256, + 512, + 1024, + 2048, + 4096, + + // Large sizes + 8192, + 16384, + 32767 // Near maximum for int16 + }; + + foreach (var diskSize in testDiskSizes) + { + // Arrange + var psDataDisk = new PSDataDisk(0, diskSize); + + // Act + var mgmtResult = psDataDisk.toMgmtDataDisk(); + var roundTripResult = PSDataDisk.fromMgmtDataDisk(mgmtResult); + + // Assert + Assert.NotNull(mgmtResult); + Assert.NotNull(roundTripResult); + Assert.Equal(diskSize, mgmtResult.DiskSizeGb); + Assert.Equal(diskSize, roundTripResult.DiskSizeGB); + } + } + + [Fact] + public void DataDiskConversions_EdgeCaseLunValues_HandleCorrectly() + { + // Test conversion with valid LUN range (0-63) + + var testLunValues = new[] + { + 0, // Minimum LUN + 1, // Common LUN + 15, // Common LUN + 31, // Common LUN + 62, // Near maximum LUN + 63 // Maximum LUN + }; + + foreach (var lun in testLunValues) + { + // Arrange + var psDataDisk = new PSDataDisk(lun, 128); + + // Act + var mgmtResult = psDataDisk.toMgmtDataDisk(); + var roundTripResult = PSDataDisk.fromMgmtDataDisk(mgmtResult); + + // Assert + Assert.NotNull(mgmtResult); + Assert.NotNull(roundTripResult); + Assert.Equal(lun, mgmtResult.Lun); + Assert.Equal(lun, roundTripResult.Lun); + } + } + + [Fact] + public void DataDiskConversions_DefaultAndNullValues_HandleCorrectly() + { + // Test conversion with default and null values + + // Scenario 1: Default PS constructor values + var defaultPsDataDisk = new PSDataDisk(0, 64); // Minimal required parameters + + var mgmtFromDefault = defaultPsDataDisk.toMgmtDataDisk(); + Assert.NotNull(mgmtFromDefault); + Assert.Equal(0, mgmtFromDefault.Lun); + Assert.Equal(64, mgmtFromDefault.DiskSizeGb); + Assert.Null(mgmtFromDefault.Caching); + Assert.Null(mgmtFromDefault.StorageAccountType); + + // Scenario 2: Default management constructor + var defaultMgmtDataDisk = new DataDisk(); + defaultMgmtDataDisk.Lun = 1; + defaultMgmtDataDisk.DiskSizeGb = 128; + + var psFromDefault = PSDataDisk.fromMgmtDataDisk(defaultMgmtDataDisk); + Assert.NotNull(psFromDefault); + Assert.Equal(1, psFromDefault.Lun); + Assert.Equal(128, psFromDefault.DiskSizeGB); + Assert.Null(psFromDefault.Caching); + Assert.Null(psFromDefault.StorageAccountType); + + // Scenario 3: Explicit null values + var nullValuesPsDataDisk = new PSDataDisk( + lun: 2, + diskSizeGB: 256, + caching: null, + storageAccountType: null); + + var mgmtNullValuesResult = nullValuesPsDataDisk.toMgmtDataDisk(); + Assert.NotNull(mgmtNullValuesResult); + Assert.Equal(2, mgmtNullValuesResult.Lun); + Assert.Equal(256, mgmtNullValuesResult.DiskSizeGb); + Assert.Null(mgmtNullValuesResult.Caching); + Assert.Null(mgmtNullValuesResult.StorageAccountType); + + var roundTripNullValues = PSDataDisk.fromMgmtDataDisk(mgmtNullValuesResult); + Assert.NotNull(roundTripNullValues); + Assert.Equal(2, roundTripNullValues.Lun); + Assert.Equal(256, roundTripNullValues.DiskSizeGB); + Assert.Null(roundTripNullValues.Caching); + Assert.Null(roundTripNullValues.StorageAccountType); + } + + [Fact] + public void DataDiskConversions_StoragePerformanceProfiles_VerifySemantics() + { + // This test validates different storage performance profiles used in real scenarios + + var performanceProfiles = new[] + { + new { + Profile = "Ultra High Performance", + Lun = 0, + DiskSizeGB = 1024, + Caching = Microsoft.Azure.Batch.Common.CachingType.ReadWrite, + StorageAccountType = Microsoft.Azure.Batch.Common.StorageAccountType.PremiumLrs, + UseCases = new[] { "OLTP databases", "High-performance computing", "Real-time analytics" } + }, + new { + Profile = "Balanced Performance", + Lun = 1, + DiskSizeGB = 512, + Caching = Microsoft.Azure.Batch.Common.CachingType.ReadOnly, + StorageAccountType = Microsoft.Azure.Batch.Common.StorageAccountType.StandardSSDLRS, + UseCases = new[] { "Web applications", "Development environments", "General workloads" } + }, + new { + Profile = "Cost Optimized", + Lun = 2, + DiskSizeGB = 2048, + Caching = Microsoft.Azure.Batch.Common.CachingType.None, + StorageAccountType = Microsoft.Azure.Batch.Common.StorageAccountType.StandardLrs, + UseCases = new[] { "Backup storage", "Archive data", "Batch processing temp files" } + } + }; + + foreach (var profile in performanceProfiles) + { + // Act - Convert to management type and back + var psDataDisk = new PSDataDisk(profile.Lun, profile.DiskSizeGB, profile.Caching, profile.StorageAccountType); + var mgmtDataDisk = psDataDisk.toMgmtDataDisk(); + var roundTripDataDisk = PSDataDisk.fromMgmtDataDisk(mgmtDataDisk); + + // Assert - Performance profile characteristics should be preserved + Assert.NotNull(mgmtDataDisk); + Assert.NotNull(roundTripDataDisk); + Assert.Equal(profile.Lun, roundTripDataDisk.Lun); + Assert.Equal(profile.DiskSizeGB, roundTripDataDisk.DiskSizeGB); + Assert.Equal(profile.Caching, roundTripDataDisk.Caching); + Assert.Equal(profile.StorageAccountType, roundTripDataDisk.StorageAccountType); + + // Verify the conversion maintains the semantic meaning + var expectedMgmtCaching = profile.Caching switch + { + Microsoft.Azure.Batch.Common.CachingType.None => CachingType.None, + Microsoft.Azure.Batch.Common.CachingType.ReadOnly => CachingType.ReadOnly, + Microsoft.Azure.Batch.Common.CachingType.ReadWrite => CachingType.ReadWrite, + _ => throw new ArgumentOutOfRangeException() + }; + + var expectedMgmtStorage = profile.StorageAccountType switch + { + Microsoft.Azure.Batch.Common.StorageAccountType.StandardLrs => StorageAccountType.StandardLRS, + Microsoft.Azure.Batch.Common.StorageAccountType.PremiumLrs => StorageAccountType.PremiumLRS, + Microsoft.Azure.Batch.Common.StorageAccountType.StandardSSDLRS => StorageAccountType.StandardSSDLRS, + _ => throw new ArgumentOutOfRangeException() + }; + + Assert.Equal(expectedMgmtCaching, mgmtDataDisk.Caching); + Assert.Equal(expectedMgmtStorage, mgmtDataDisk.StorageAccountType); + } + } + + #endregion + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Test/Models/PSDiskEncryptionConfigurationTests.cs b/src/Batch/Batch.Test/Models/PSDiskEncryptionConfigurationTests.cs new file mode 100644 index 000000000000..359a08678ca6 --- /dev/null +++ b/src/Batch/Batch.Test/Models/PSDiskEncryptionConfigurationTests.cs @@ -0,0 +1,947 @@ +// ----------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ----------------------------------------------------------------------------- + +using Microsoft.Azure.Commands.Batch.Models; +using Microsoft.Azure.Management.Batch.Models; +using System.Collections.Generic; +using System.Linq; +using Xunit; + +namespace Microsoft.Azure.Commands.Batch.Test.ModelsConversions +{ + public class PSDiskEncryptionConfigurationTests + { + #region toMgmtDiskEncryptionConfiguration Tests + + [Fact] + public void ToMgmtDiskEncryptionConfiguration_WithOsDiskTarget_ReturnsCorrectMapping() + { + // Arrange + var psDiskEncryptionConfig = new PSDiskEncryptionConfiguration( + new List + { + Microsoft.Azure.Batch.Common.DiskEncryptionTarget.OsDisk + }); + + // Act + var result = psDiskEncryptionConfig.toMgmtDiskEncryptionConfiguration(); + + // Assert + Assert.NotNull(result); + Assert.NotNull(result.Targets); + Assert.Single(result.Targets); + Assert.Equal(DiskEncryptionTarget.OsDisk, result.Targets.First()); + } + + [Fact] + public void ToMgmtDiskEncryptionConfiguration_WithTemporaryDiskTarget_ReturnsCorrectMapping() + { + // Arrange + var psDiskEncryptionConfig = new PSDiskEncryptionConfiguration( + new List + { + Microsoft.Azure.Batch.Common.DiskEncryptionTarget.TemporaryDisk + }); + + // Act + var result = psDiskEncryptionConfig.toMgmtDiskEncryptionConfiguration(); + + // Assert + Assert.NotNull(result); + Assert.NotNull(result.Targets); + Assert.Single(result.Targets); + Assert.Equal(DiskEncryptionTarget.TemporaryDisk, result.Targets.First()); + } + + [Fact] + public void ToMgmtDiskEncryptionConfiguration_WithBothTargets_ReturnsCorrectMapping() + { + // Arrange + var psDiskEncryptionConfig = new PSDiskEncryptionConfiguration( + new List + { + Microsoft.Azure.Batch.Common.DiskEncryptionTarget.OsDisk, + Microsoft.Azure.Batch.Common.DiskEncryptionTarget.TemporaryDisk + }); + + // Act + var result = psDiskEncryptionConfig.toMgmtDiskEncryptionConfiguration(); + + // Assert + Assert.NotNull(result); + Assert.NotNull(result.Targets); + Assert.Equal(2, result.Targets.Count); + Assert.Contains(DiskEncryptionTarget.OsDisk, result.Targets); + Assert.Contains(DiskEncryptionTarget.TemporaryDisk, result.Targets); + } + + [Fact] + public void ToMgmtDiskEncryptionConfiguration_WithNullTargets_ReturnsNullTargets() + { + // Arrange + var psDiskEncryptionConfig = new PSDiskEncryptionConfiguration(targets: null); + + // Act + var result = psDiskEncryptionConfig.toMgmtDiskEncryptionConfiguration(); + + // Assert + Assert.NotNull(result); + Assert.Null(result.Targets); + } + + [Fact] + public void ToMgmtDiskEncryptionConfiguration_WithEmptyTargets_ReturnsEmptyTargets() + { + // Arrange + var psDiskEncryptionConfig = new PSDiskEncryptionConfiguration( + new List()); + + // Act + var result = psDiskEncryptionConfig.toMgmtDiskEncryptionConfiguration(); + + // Assert + Assert.NotNull(result); + Assert.NotNull(result.Targets); + Assert.Empty(result.Targets); + } + + [Theory] + [InlineData(Microsoft.Azure.Batch.Common.DiskEncryptionTarget.OsDisk)] + [InlineData(Microsoft.Azure.Batch.Common.DiskEncryptionTarget.TemporaryDisk)] + public void ToMgmtDiskEncryptionConfiguration_SingleTargetValues_ReturnsCorrectMapping( + Microsoft.Azure.Batch.Common.DiskEncryptionTarget target) + { + // Arrange + var psDiskEncryptionConfig = new PSDiskEncryptionConfiguration( + new List { target }); + + // Act + var result = psDiskEncryptionConfig.toMgmtDiskEncryptionConfiguration(); + + // Assert + Assert.NotNull(result); + Assert.NotNull(result.Targets); + Assert.Single(result.Targets); + Assert.Equal((DiskEncryptionTarget)target, result.Targets.First()); + } + + [Fact] + public void ToMgmtDiskEncryptionConfiguration_AlwaysCreatesNewInstance() + { + // Arrange + var psDiskEncryptionConfig = new PSDiskEncryptionConfiguration( + new List + { + Microsoft.Azure.Batch.Common.DiskEncryptionTarget.OsDisk + }); + + // Act + var result1 = psDiskEncryptionConfig.toMgmtDiskEncryptionConfiguration(); + var result2 = psDiskEncryptionConfig.toMgmtDiskEncryptionConfiguration(); + + // Assert + Assert.NotNull(result1); + Assert.NotNull(result2); + Assert.NotSame(result1, result2); + } + + [Fact] + public void ToMgmtDiskEncryptionConfiguration_VerifyDiskEncryptionConfigurationType() + { + // Arrange + var psDiskEncryptionConfig = new PSDiskEncryptionConfiguration( + new List + { + Microsoft.Azure.Batch.Common.DiskEncryptionTarget.OsDisk + }); + + // Act + var result = psDiskEncryptionConfig.toMgmtDiskEncryptionConfiguration(); + + // Assert + Assert.NotNull(result); + Assert.IsType(result); + } + + [Fact] + public void ToMgmtDiskEncryptionConfiguration_WindowsPoolConfiguration_ReturnsCorrectMapping() + { + // Arrange - Windows pool requires both OsDisk and TemporaryDisk as per documentation + var psDiskEncryptionConfig = new PSDiskEncryptionConfiguration( + new List + { + Microsoft.Azure.Batch.Common.DiskEncryptionTarget.OsDisk, + Microsoft.Azure.Batch.Common.DiskEncryptionTarget.TemporaryDisk + }); + + // Act + var result = psDiskEncryptionConfig.toMgmtDiskEncryptionConfiguration(); + + // Assert + Assert.NotNull(result); + Assert.NotNull(result.Targets); + Assert.Equal(2, result.Targets.Count); + Assert.Contains(DiskEncryptionTarget.OsDisk, result.Targets); + Assert.Contains(DiskEncryptionTarget.TemporaryDisk, result.Targets); + } + + [Fact] + public void ToMgmtDiskEncryptionConfiguration_LinuxPoolConfiguration_ReturnsCorrectMapping() + { + // Arrange - Linux pool supports only TemporaryDisk as per documentation + var psDiskEncryptionConfig = new PSDiskEncryptionConfiguration( + new List + { + Microsoft.Azure.Batch.Common.DiskEncryptionTarget.TemporaryDisk + }); + + // Act + var result = psDiskEncryptionConfig.toMgmtDiskEncryptionConfiguration(); + + // Assert + Assert.NotNull(result); + Assert.NotNull(result.Targets); + Assert.Single(result.Targets); + Assert.Equal(DiskEncryptionTarget.TemporaryDisk, result.Targets.First()); + } + + #endregion + + #region fromMgmtDiskEncryptionConfiguration Tests + + [Fact] + public void FromMgmtDiskEncryptionConfiguration_WithOsDiskTarget_ReturnsCorrectMapping() + { + // Arrange + var mgmtDiskEncryptionConfig = new DiskEncryptionConfiguration( + new List { DiskEncryptionTarget.OsDisk }); + + // Act + var result = PSDiskEncryptionConfiguration.fromMgmtDiskEncryptionConfiguration(mgmtDiskEncryptionConfig); + + // Assert + Assert.NotNull(result); + Assert.NotNull(result.Targets); + Assert.Single(result.Targets); + Assert.Equal(Microsoft.Azure.Batch.Common.DiskEncryptionTarget.OsDisk, result.Targets.First()); + } + + [Fact] + public void FromMgmtDiskEncryptionConfiguration_WithTemporaryDiskTarget_ReturnsCorrectMapping() + { + // Arrange + var mgmtDiskEncryptionConfig = new DiskEncryptionConfiguration( + new List { DiskEncryptionTarget.TemporaryDisk }); + + // Act + var result = PSDiskEncryptionConfiguration.fromMgmtDiskEncryptionConfiguration(mgmtDiskEncryptionConfig); + + // Assert + Assert.NotNull(result); + Assert.NotNull(result.Targets); + Assert.Single(result.Targets); + Assert.Equal(Microsoft.Azure.Batch.Common.DiskEncryptionTarget.TemporaryDisk, result.Targets.First()); + } + + [Fact] + public void FromMgmtDiskEncryptionConfiguration_WithBothTargets_ReturnsCorrectMapping() + { + // Arrange + var mgmtDiskEncryptionConfig = new DiskEncryptionConfiguration( + new List + { + DiskEncryptionTarget.OsDisk, + DiskEncryptionTarget.TemporaryDisk + }); + + // Act + var result = PSDiskEncryptionConfiguration.fromMgmtDiskEncryptionConfiguration(mgmtDiskEncryptionConfig); + + // Assert + Assert.NotNull(result); + Assert.NotNull(result.Targets); + Assert.Equal(2, result.Targets.Count); + Assert.Contains(Microsoft.Azure.Batch.Common.DiskEncryptionTarget.OsDisk, result.Targets); + Assert.Contains(Microsoft.Azure.Batch.Common.DiskEncryptionTarget.TemporaryDisk, result.Targets); + } + + [Fact] + public void FromMgmtDiskEncryptionConfiguration_WithNullMgmtConfiguration_ReturnsNull() + { + // Act + var result = PSDiskEncryptionConfiguration.fromMgmtDiskEncryptionConfiguration(null); + + // Assert + Assert.Null(result); + } + + [Fact] + public void FromMgmtDiskEncryptionConfiguration_WithNullTargets_ReturnsNullTargets() + { + // Arrange + var mgmtDiskEncryptionConfig = new DiskEncryptionConfiguration(null); + + // Act + var result = PSDiskEncryptionConfiguration.fromMgmtDiskEncryptionConfiguration(mgmtDiskEncryptionConfig); + + // Assert + Assert.NotNull(result); + Assert.Null(result.Targets); + } + + [Fact] + public void FromMgmtDiskEncryptionConfiguration_WithEmptyTargets_ReturnsEmptyTargets() + { + // Arrange + var mgmtDiskEncryptionConfig = new DiskEncryptionConfiguration( + new List()); + + // Act + var result = PSDiskEncryptionConfiguration.fromMgmtDiskEncryptionConfiguration(mgmtDiskEncryptionConfig); + + // Assert + Assert.NotNull(result); + Assert.NotNull(result.Targets); + Assert.Empty(result.Targets); + } + + [Theory] + [InlineData(DiskEncryptionTarget.OsDisk)] + [InlineData(DiskEncryptionTarget.TemporaryDisk)] + public void FromMgmtDiskEncryptionConfiguration_SingleTargetValues_ReturnsCorrectMapping( + DiskEncryptionTarget target) + { + // Arrange + var mgmtDiskEncryptionConfig = new DiskEncryptionConfiguration( + new List { target }); + + // Act + var result = PSDiskEncryptionConfiguration.fromMgmtDiskEncryptionConfiguration(mgmtDiskEncryptionConfig); + + // Assert + Assert.NotNull(result); + Assert.NotNull(result.Targets); + Assert.Single(result.Targets); + Assert.Equal((Microsoft.Azure.Batch.Common.DiskEncryptionTarget)target, result.Targets.First()); + } + + [Fact] + public void FromMgmtDiskEncryptionConfiguration_StaticMethod_DoesNotRequireInstance() + { + // Arrange + var mgmtDiskEncryptionConfig = new DiskEncryptionConfiguration( + new List { DiskEncryptionTarget.OsDisk }); + + // Act - Call static method directly on class + var result = PSDiskEncryptionConfiguration.fromMgmtDiskEncryptionConfiguration(mgmtDiskEncryptionConfig); + + // Assert + Assert.NotNull(result); + Assert.NotNull(result.Targets); + Assert.Single(result.Targets); + Assert.Equal(Microsoft.Azure.Batch.Common.DiskEncryptionTarget.OsDisk, result.Targets.First()); + } + + [Fact] + public void FromMgmtDiskEncryptionConfiguration_AlwaysCreatesNewInstance() + { + // Arrange + var mgmtDiskEncryptionConfig = new DiskEncryptionConfiguration( + new List { DiskEncryptionTarget.OsDisk }); + + // Act + var result1 = PSDiskEncryptionConfiguration.fromMgmtDiskEncryptionConfiguration(mgmtDiskEncryptionConfig); + var result2 = PSDiskEncryptionConfiguration.fromMgmtDiskEncryptionConfiguration(mgmtDiskEncryptionConfig); + + // Assert + Assert.NotNull(result1); + Assert.NotNull(result2); + Assert.NotSame(result1, result2); + } + + [Fact] + public void FromMgmtDiskEncryptionConfiguration_VerifyPSDiskEncryptionConfigurationType() + { + // Arrange + var mgmtDiskEncryptionConfig = new DiskEncryptionConfiguration( + new List { DiskEncryptionTarget.OsDisk }); + + // Act + var result = PSDiskEncryptionConfiguration.fromMgmtDiskEncryptionConfiguration(mgmtDiskEncryptionConfig); + + // Assert + Assert.NotNull(result); + Assert.IsType(result); + } + + [Fact] + public void FromMgmtDiskEncryptionConfiguration_WithDefaultConstructor_HandlesCorrectly() + { + // Arrange + var mgmtDiskEncryptionConfig = new DiskEncryptionConfiguration(); // Uses default constructor + + // Act + var result = PSDiskEncryptionConfiguration.fromMgmtDiskEncryptionConfiguration(mgmtDiskEncryptionConfig); + + // Assert + Assert.NotNull(result); + Assert.Null(result.Targets); + } + + [Fact] + public void FromMgmtDiskEncryptionConfiguration_WindowsPoolConfiguration_ReturnsCorrectMapping() + { + // Arrange - Windows pool requires both OsDisk and TemporaryDisk as per documentation + var mgmtDiskEncryptionConfig = new DiskEncryptionConfiguration( + new List + { + DiskEncryptionTarget.OsDisk, + DiskEncryptionTarget.TemporaryDisk + }); + + // Act + var result = PSDiskEncryptionConfiguration.fromMgmtDiskEncryptionConfiguration(mgmtDiskEncryptionConfig); + + // Assert + Assert.NotNull(result); + Assert.NotNull(result.Targets); + Assert.Equal(2, result.Targets.Count); + Assert.Contains(Microsoft.Azure.Batch.Common.DiskEncryptionTarget.OsDisk, result.Targets); + Assert.Contains(Microsoft.Azure.Batch.Common.DiskEncryptionTarget.TemporaryDisk, result.Targets); + } + + [Fact] + public void FromMgmtDiskEncryptionConfiguration_LinuxPoolConfiguration_ReturnsCorrectMapping() + { + // Arrange - Linux pool supports only TemporaryDisk as per documentation + var mgmtDiskEncryptionConfig = new DiskEncryptionConfiguration( + new List { DiskEncryptionTarget.TemporaryDisk }); + + // Act + var result = PSDiskEncryptionConfiguration.fromMgmtDiskEncryptionConfiguration(mgmtDiskEncryptionConfig); + + // Assert + Assert.NotNull(result); + Assert.NotNull(result.Targets); + Assert.Single(result.Targets); + Assert.Equal(Microsoft.Azure.Batch.Common.DiskEncryptionTarget.TemporaryDisk, result.Targets.First()); + } + + #endregion + + #region Round-trip Conversion Tests + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesOsDiskTarget() + { + // Arrange + var originalPsDiskEncryptionConfig = new PSDiskEncryptionConfiguration( + new List + { + Microsoft.Azure.Batch.Common.DiskEncryptionTarget.OsDisk + }); + + // Act + var mgmtDiskEncryptionConfig = originalPsDiskEncryptionConfig.toMgmtDiskEncryptionConfiguration(); + var roundTripPsDiskEncryptionConfig = PSDiskEncryptionConfiguration.fromMgmtDiskEncryptionConfiguration(mgmtDiskEncryptionConfig); + + // Assert + Assert.NotNull(roundTripPsDiskEncryptionConfig); + Assert.NotNull(roundTripPsDiskEncryptionConfig.Targets); + Assert.Equal(originalPsDiskEncryptionConfig.Targets.Count, roundTripPsDiskEncryptionConfig.Targets.Count); + Assert.Equal(originalPsDiskEncryptionConfig.Targets.First(), roundTripPsDiskEncryptionConfig.Targets.First()); + } + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesTemporaryDiskTarget() + { + // Arrange + var originalPsDiskEncryptionConfig = new PSDiskEncryptionConfiguration( + new List + { + Microsoft.Azure.Batch.Common.DiskEncryptionTarget.TemporaryDisk + }); + + // Act + var mgmtDiskEncryptionConfig = originalPsDiskEncryptionConfig.toMgmtDiskEncryptionConfiguration(); + var roundTripPsDiskEncryptionConfig = PSDiskEncryptionConfiguration.fromMgmtDiskEncryptionConfiguration(mgmtDiskEncryptionConfig); + + // Assert + Assert.NotNull(roundTripPsDiskEncryptionConfig); + Assert.NotNull(roundTripPsDiskEncryptionConfig.Targets); + Assert.Equal(originalPsDiskEncryptionConfig.Targets.Count, roundTripPsDiskEncryptionConfig.Targets.Count); + Assert.Equal(originalPsDiskEncryptionConfig.Targets.First(), roundTripPsDiskEncryptionConfig.Targets.First()); + } + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesBothTargets() + { + // Arrange + var originalPsDiskEncryptionConfig = new PSDiskEncryptionConfiguration( + new List + { + Microsoft.Azure.Batch.Common.DiskEncryptionTarget.OsDisk, + Microsoft.Azure.Batch.Common.DiskEncryptionTarget.TemporaryDisk + }); + + // Act + var mgmtDiskEncryptionConfig = originalPsDiskEncryptionConfig.toMgmtDiskEncryptionConfiguration(); + var roundTripPsDiskEncryptionConfig = PSDiskEncryptionConfiguration.fromMgmtDiskEncryptionConfiguration(mgmtDiskEncryptionConfig); + + // Assert + Assert.NotNull(roundTripPsDiskEncryptionConfig); + Assert.NotNull(roundTripPsDiskEncryptionConfig.Targets); + Assert.Equal(originalPsDiskEncryptionConfig.Targets.Count, roundTripPsDiskEncryptionConfig.Targets.Count); + + foreach (var originalTarget in originalPsDiskEncryptionConfig.Targets) + { + Assert.Contains(originalTarget, roundTripPsDiskEncryptionConfig.Targets); + } + } + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesNullTargets() + { + // Arrange + var originalPsDiskEncryptionConfig = new PSDiskEncryptionConfiguration(targets: null); + + // Act + var mgmtDiskEncryptionConfig = originalPsDiskEncryptionConfig.toMgmtDiskEncryptionConfiguration(); + var roundTripPsDiskEncryptionConfig = PSDiskEncryptionConfiguration.fromMgmtDiskEncryptionConfiguration(mgmtDiskEncryptionConfig); + + // Assert + Assert.NotNull(roundTripPsDiskEncryptionConfig); + Assert.Null(roundTripPsDiskEncryptionConfig.Targets); + } + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesEmptyTargets() + { + // Arrange + var originalPsDiskEncryptionConfig = new PSDiskEncryptionConfiguration( + new List()); + + // Act + var mgmtDiskEncryptionConfig = originalPsDiskEncryptionConfig.toMgmtDiskEncryptionConfiguration(); + var roundTripPsDiskEncryptionConfig = PSDiskEncryptionConfiguration.fromMgmtDiskEncryptionConfiguration(mgmtDiskEncryptionConfig); + + // Assert + Assert.NotNull(roundTripPsDiskEncryptionConfig); + Assert.NotNull(roundTripPsDiskEncryptionConfig.Targets); + Assert.Empty(roundTripPsDiskEncryptionConfig.Targets); + } + + [Theory] + [InlineData(Microsoft.Azure.Batch.Common.DiskEncryptionTarget.OsDisk)] + [InlineData(Microsoft.Azure.Batch.Common.DiskEncryptionTarget.TemporaryDisk)] + public void RoundTripConversion_AllValidTargets_PreservesOriginalValue( + Microsoft.Azure.Batch.Common.DiskEncryptionTarget target) + { + // Arrange + var originalPsDiskEncryptionConfig = new PSDiskEncryptionConfiguration( + new List { target }); + + // Act + var mgmtDiskEncryptionConfig = originalPsDiskEncryptionConfig.toMgmtDiskEncryptionConfiguration(); + var roundTripPsDiskEncryptionConfig = PSDiskEncryptionConfiguration.fromMgmtDiskEncryptionConfiguration(mgmtDiskEncryptionConfig); + + // Assert + Assert.NotNull(roundTripPsDiskEncryptionConfig); + Assert.NotNull(roundTripPsDiskEncryptionConfig.Targets); + Assert.Single(roundTripPsDiskEncryptionConfig.Targets); + Assert.Equal(target, roundTripPsDiskEncryptionConfig.Targets.First()); + } + + [Fact] + public void RoundTripConversion_FromMgmtAndToMgmt_PreservesValues() + { + // Arrange + var originalMgmtDiskEncryptionConfig = new DiskEncryptionConfiguration( + new List + { + DiskEncryptionTarget.OsDisk, + DiskEncryptionTarget.TemporaryDisk + }); + + // Act + var psDiskEncryptionConfig = PSDiskEncryptionConfiguration.fromMgmtDiskEncryptionConfiguration(originalMgmtDiskEncryptionConfig); + var roundTripMgmtDiskEncryptionConfig = psDiskEncryptionConfig.toMgmtDiskEncryptionConfiguration(); + + // Assert + Assert.NotNull(roundTripMgmtDiskEncryptionConfig); + Assert.NotNull(roundTripMgmtDiskEncryptionConfig.Targets); + Assert.Equal(originalMgmtDiskEncryptionConfig.Targets.Count, roundTripMgmtDiskEncryptionConfig.Targets.Count); + + foreach (var originalTarget in originalMgmtDiskEncryptionConfig.Targets) + { + Assert.Contains(originalTarget, roundTripMgmtDiskEncryptionConfig.Targets); + } + } + + #endregion + + #region Integration Tests + + [Fact] + public void DiskEncryptionConfigurationConversions_BothDirections_MaintainSemanticEquivalence() + { + // This test ensures that the semantic meaning is preserved across conversions + + // Arrange - Test with Windows pool disk encryption configuration + var psDiskEncryptionConfig = new PSDiskEncryptionConfiguration( + new List + { + Microsoft.Azure.Batch.Common.DiskEncryptionTarget.OsDisk, + Microsoft.Azure.Batch.Common.DiskEncryptionTarget.TemporaryDisk + }); + + // Act + var mgmtDiskEncryptionConfig = psDiskEncryptionConfig.toMgmtDiskEncryptionConfiguration(); + var backToPs = PSDiskEncryptionConfiguration.fromMgmtDiskEncryptionConfiguration(mgmtDiskEncryptionConfig); + + // Assert + Assert.NotNull(mgmtDiskEncryptionConfig); + Assert.NotNull(mgmtDiskEncryptionConfig.Targets); + Assert.Equal(2, mgmtDiskEncryptionConfig.Targets.Count); + Assert.Contains(DiskEncryptionTarget.OsDisk, mgmtDiskEncryptionConfig.Targets); + Assert.Contains(DiskEncryptionTarget.TemporaryDisk, mgmtDiskEncryptionConfig.Targets); + + Assert.NotNull(backToPs); + Assert.NotNull(backToPs.Targets); + Assert.Equal(2, backToPs.Targets.Count); + Assert.Contains(Microsoft.Azure.Batch.Common.DiskEncryptionTarget.OsDisk, backToPs.Targets); + Assert.Contains(Microsoft.Azure.Batch.Common.DiskEncryptionTarget.TemporaryDisk, backToPs.Targets); + } + + [Fact] + public void DiskEncryptionConfigurationConversions_NullHandling_WorksCorrectly() + { + // Test null handling in conversions + + // Act + var resultFromNull = PSDiskEncryptionConfiguration.fromMgmtDiskEncryptionConfiguration(null); + + // Assert + Assert.Null(resultFromNull); + } + + [Fact] + public void DiskEncryptionConfigurationConversions_BatchPoolContext_VerifyCorrectUsage() + { + // This test validates the conversions work correctly in the context of Batch pool configuration + // DiskEncryptionConfiguration is used to configure disk encryption for Batch pool compute nodes + + // Arrange - Test with different disk encryption scenarios + var scenarios = new[] + { + // Windows pool configuration (requires both targets) + new { + PoolType = "Windows", + Targets = new List + { + Microsoft.Azure.Batch.Common.DiskEncryptionTarget.OsDisk, + Microsoft.Azure.Batch.Common.DiskEncryptionTarget.TemporaryDisk + }, + Description = "Windows pool disk encryption with both OS and temporary disk targets" + }, + // Linux pool configuration (only TemporaryDisk supported) + new { + PoolType = "Linux", + Targets = new List + { + Microsoft.Azure.Batch.Common.DiskEncryptionTarget.TemporaryDisk + }, + Description = "Linux pool disk encryption with temporary disk target only" + }, + // Minimal configuration + new { + PoolType = "Linux", + Targets = new List + { + Microsoft.Azure.Batch.Common.DiskEncryptionTarget.TemporaryDisk + }, + Description = "Minimal disk encryption configuration for compliance" + }, + // Empty configuration (no encryption) + new { + PoolType = "Any", + Targets = new List(), + Description = "Empty disk encryption configuration (no targets)" + } + }; + + foreach (var scenario in scenarios) + { + // Arrange + var psDiskEncryptionConfig = new PSDiskEncryptionConfiguration(scenario.Targets); + + // Act + var mgmtDiskEncryptionConfig = psDiskEncryptionConfig.toMgmtDiskEncryptionConfiguration(); + + // Assert - Should convert correctly for Batch pool configuration + Assert.NotNull(mgmtDiskEncryptionConfig); + Assert.NotNull(mgmtDiskEncryptionConfig.Targets); + Assert.Equal(scenario.Targets.Count, mgmtDiskEncryptionConfig.Targets.Count); + + foreach (var target in scenario.Targets) + { + Assert.Contains((DiskEncryptionTarget)target, mgmtDiskEncryptionConfig.Targets); + } + + // Verify round-trip conversion maintains disk encryption semantics + var backToPs = PSDiskEncryptionConfiguration.fromMgmtDiskEncryptionConfiguration(mgmtDiskEncryptionConfig); + Assert.NotNull(backToPs); + Assert.NotNull(backToPs.Targets); + Assert.Equal(scenario.Targets.Count, backToPs.Targets.Count); + + foreach (var target in scenario.Targets) + { + Assert.Contains(target, backToPs.Targets); + } + } + } + + [Fact] + public void DiskEncryptionConfigurationConversions_InstanceCreation_VerifyBehavior() + { + // This test verifies that the conversion methods create appropriate instances + + // Arrange + var psDiskEncryptionConfig = new PSDiskEncryptionConfiguration( + new List + { + Microsoft.Azure.Batch.Common.DiskEncryptionTarget.OsDisk, + Microsoft.Azure.Batch.Common.DiskEncryptionTarget.TemporaryDisk + }); + + var mgmtDiskEncryptionConfig = new DiskEncryptionConfiguration( + new List + { + DiskEncryptionTarget.TemporaryDisk + }); + + // Act + var mgmtResult = psDiskEncryptionConfig.toMgmtDiskEncryptionConfiguration(); + var psResult = PSDiskEncryptionConfiguration.fromMgmtDiskEncryptionConfiguration(mgmtDiskEncryptionConfig); + + // Assert - Verify proper instance creation + Assert.NotNull(mgmtResult); + Assert.NotNull(psResult); + Assert.IsType(mgmtResult); + Assert.IsType(psResult); + + // Verify new instances are created + Assert.NotSame(mgmtDiskEncryptionConfig, mgmtResult); + Assert.NotSame(psDiskEncryptionConfig, psResult); + } + + #endregion + + #region Performance and Edge Case Tests + + [Fact] + public void DiskEncryptionConfigurationConversions_PerformanceTest_ExecutesQuickly() + { + // This test ensures the conversions are efficient + + // Arrange + var psDiskEncryptionConfig = new PSDiskEncryptionConfiguration( + new List + { + Microsoft.Azure.Batch.Common.DiskEncryptionTarget.OsDisk, + Microsoft.Azure.Batch.Common.DiskEncryptionTarget.TemporaryDisk + }); + + var mgmtDiskEncryptionConfig = new DiskEncryptionConfiguration( + new List + { + DiskEncryptionTarget.OsDisk, + DiskEncryptionTarget.TemporaryDisk + }); + + // Act & Assert - Multiple conversions should complete without delay + for (int i = 0; i < 1000; i++) + { + var mgmtResult = psDiskEncryptionConfig.toMgmtDiskEncryptionConfiguration(); + var psResult = PSDiskEncryptionConfiguration.fromMgmtDiskEncryptionConfiguration(mgmtDiskEncryptionConfig); + + Assert.NotNull(mgmtResult); + Assert.NotNull(psResult); + Assert.Equal(2, mgmtResult.Targets.Count); + Assert.Equal(2, psResult.Targets.Count); + } + } + + [Fact] + public void DiskEncryptionConfigurationConversions_DefaultAndNullValues_HandleCorrectly() + { + // Test conversion with default and null values + + // Scenario 1: Default PS constructor with null targets + var defaultPsDiskEncryptionConfig = new PSDiskEncryptionConfiguration(targets: null); + + var mgmtFromDefault = defaultPsDiskEncryptionConfig.toMgmtDiskEncryptionConfiguration(); + Assert.NotNull(mgmtFromDefault); + Assert.Null(mgmtFromDefault.Targets); + + // Scenario 2: Default management constructor + var defaultMgmtDiskEncryptionConfig = new DiskEncryptionConfiguration(); + + var psFromDefault = PSDiskEncryptionConfiguration.fromMgmtDiskEncryptionConfiguration(defaultMgmtDiskEncryptionConfig); + Assert.NotNull(psFromDefault); + Assert.Null(psFromDefault.Targets); + + // Scenario 3: Empty targets list + var emptyTargetsPsDiskEncryptionConfig = new PSDiskEncryptionConfiguration( + new List()); + + var mgmtEmptyTargetsResult = emptyTargetsPsDiskEncryptionConfig.toMgmtDiskEncryptionConfiguration(); + Assert.NotNull(mgmtEmptyTargetsResult); + Assert.NotNull(mgmtEmptyTargetsResult.Targets); + Assert.Empty(mgmtEmptyTargetsResult.Targets); + + var roundTripEmptyTargets = PSDiskEncryptionConfiguration.fromMgmtDiskEncryptionConfiguration(mgmtEmptyTargetsResult); + Assert.NotNull(roundTripEmptyTargets); + Assert.NotNull(roundTripEmptyTargets.Targets); + Assert.Empty(roundTripEmptyTargets.Targets); + } + + [Fact] + public void DiskEncryptionConfigurationConversions_PlatformSpecificScenarios_VerifySemantics() + { + // This test validates platform-specific disk encryption scenarios + + var platformScenarios = new[] + { + new { + Platform = "Windows Server 2019", + Targets = new List + { + Microsoft.Azure.Batch.Common.DiskEncryptionTarget.OsDisk, + Microsoft.Azure.Batch.Common.DiskEncryptionTarget.TemporaryDisk + }, + ComplianceRequirement = "FIPS 140-2", + Description = "Windows pool with full disk encryption for FIPS compliance" + }, + new { + Platform = "Ubuntu 20.04 LTS", + Targets = new List + { + Microsoft.Azure.Batch.Common.DiskEncryptionTarget.TemporaryDisk + }, + ComplianceRequirement = "PCI DSS", + Description = "Linux pool with temporary disk encryption for PCI compliance" + }, + new { + Platform = "Windows Server 2022", + Targets = new List + { + Microsoft.Azure.Batch.Common.DiskEncryptionTarget.OsDisk, + Microsoft.Azure.Batch.Common.DiskEncryptionTarget.TemporaryDisk + }, + ComplianceRequirement = "SOC 2", + Description = "Modern Windows pool with comprehensive disk encryption" + } + }; + + foreach (var scenario in platformScenarios) + { + // Act - Convert configuration with platform-specific requirements + var psDiskEncryptionConfig = new PSDiskEncryptionConfiguration(scenario.Targets); + var mgmtDiskEncryptionConfig = psDiskEncryptionConfig.toMgmtDiskEncryptionConfiguration(); + var roundTripDiskEncryptionConfig = PSDiskEncryptionConfiguration.fromMgmtDiskEncryptionConfiguration(mgmtDiskEncryptionConfig); + + // Assert - Platform-specific encryption semantics should be preserved + Assert.NotNull(mgmtDiskEncryptionConfig); + Assert.NotNull(roundTripDiskEncryptionConfig); + Assert.Equal(scenario.Targets.Count, mgmtDiskEncryptionConfig.Targets.Count); + Assert.Equal(scenario.Targets.Count, roundTripDiskEncryptionConfig.Targets.Count); + + // Verify target preservation + foreach (var target in scenario.Targets) + { + Assert.Contains((DiskEncryptionTarget)target, mgmtDiskEncryptionConfig.Targets); + Assert.Contains(target, roundTripDiskEncryptionConfig.Targets); + } + } + } + + [Fact] + public void DiskEncryptionConfigurationConversions_SecurityComplianceContext_VerifyCorrectUsage() + { + // This test validates the conversions work correctly in the context of security compliance requirements + + // Arrange - Test with compliance-driven disk encryption scenarios + var complianceScenarios = new[] + { + // Healthcare HIPAA compliance + new { + Compliance = "HIPAA", + Targets = new List + { + Microsoft.Azure.Batch.Common.DiskEncryptionTarget.OsDisk, + Microsoft.Azure.Batch.Common.DiskEncryptionTarget.TemporaryDisk + }, + UseCase = "Healthcare data processing with full disk encryption" + }, + // Financial PCI DSS compliance + new { + Compliance = "PCI DSS", + Targets = new List + { + Microsoft.Azure.Batch.Common.DiskEncryptionTarget.TemporaryDisk + }, + UseCase = "Payment processing with temporary disk encryption" + }, + // Government FedRAMP compliance + new { + Compliance = "FedRAMP", + Targets = new List + { + Microsoft.Azure.Batch.Common.DiskEncryptionTarget.OsDisk, + Microsoft.Azure.Batch.Common.DiskEncryptionTarget.TemporaryDisk + }, + UseCase = "Government workloads with comprehensive encryption" + } + }; + + foreach (var scenario in complianceScenarios) + { + // Act + var psDiskEncryptionConfig = new PSDiskEncryptionConfiguration(scenario.Targets); + var mgmtDiskEncryptionConfig = psDiskEncryptionConfig.toMgmtDiskEncryptionConfiguration(); + var roundTripDiskEncryptionConfig = PSDiskEncryptionConfiguration.fromMgmtDiskEncryptionConfiguration(mgmtDiskEncryptionConfig); + + // Assert - Compliance requirements should be preserved + Assert.NotNull(mgmtDiskEncryptionConfig); + Assert.NotNull(roundTripDiskEncryptionConfig); + Assert.Equal(scenario.Targets.Count, mgmtDiskEncryptionConfig.Targets.Count); + Assert.Equal(scenario.Targets.Count, roundTripDiskEncryptionConfig.Targets.Count); + + // Verify compliance semantics are maintained + foreach (var target in scenario.Targets) + { + var expectedMgmtTarget = target == Microsoft.Azure.Batch.Common.DiskEncryptionTarget.OsDisk + ? DiskEncryptionTarget.OsDisk + : DiskEncryptionTarget.TemporaryDisk; + + Assert.Contains(expectedMgmtTarget, mgmtDiskEncryptionConfig.Targets); + Assert.Contains(target, roundTripDiskEncryptionConfig.Targets); + } + } + } + + #endregion + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Test/Models/PSImageReferenceTests.cs b/src/Batch/Batch.Test/Models/PSImageReferenceTests.cs new file mode 100644 index 000000000000..caa4c8ea5f1a --- /dev/null +++ b/src/Batch/Batch.Test/Models/PSImageReferenceTests.cs @@ -0,0 +1,1058 @@ +// ----------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ----------------------------------------------------------------------------- + +using Microsoft.Azure.Commands.Batch.Models; +using Microsoft.Azure.Management.Batch.Models; +using Xunit; + +namespace Microsoft.Azure.Commands.Batch.Test.ModelsConversions +{ + public class PSImageReferenceTests + { + #region toMgmtImageReference Tests + + [Fact] + public void ToMgmtImageReference_WithMarketplaceImage_ReturnsCorrectMapping() + { + // Arrange + var psImageRef = new PSImageReference("UbuntuServer", "Canonical", "18.04-LTS", "latest"); + + // Act + var result = psImageRef.toMgmtImageReference(); + + // Assert + Assert.NotNull(result); + Assert.Equal("Canonical", result.Publisher); + Assert.Equal("UbuntuServer", result.Offer); + Assert.Equal("18.04-LTS", result.Sku); + Assert.Equal("latest", result.Version); + Assert.Null(result.Id); + Assert.Null(result.CommunityGalleryImageId); + Assert.Null(result.SharedGalleryImageId); + } + + [Fact] + public void ToMgmtImageReference_WithCustomVMImage_ReturnsCorrectMapping() + { + // Arrange + var customImageId = "/subscriptions/12345678-1234-1234-1234-123456789abc/resourceGroups/myRG/providers/Microsoft.Compute/images/myCustomImage"; + var psImageRef = new PSImageReference(customImageId); + + // Act + var result = psImageRef.toMgmtImageReference(); + + // Assert + Assert.NotNull(result); + Assert.Equal(customImageId, result.Id); + Assert.Null(result.Publisher); + Assert.Null(result.Offer); + Assert.Null(result.Sku); + Assert.Null(result.Version); + Assert.Null(result.CommunityGalleryImageId); + Assert.Null(result.SharedGalleryImageId); + } + + [Fact] + public void ToMgmtImageReference_WithSharedGalleryImage_ReturnsCorrectMapping() + { + // Arrange + var sharedGalleryImageId = "/subscriptions/12345678-1234-1234-1234-123456789abc/resourceGroups/myRG/providers/Microsoft.Compute/galleries/myGallery/images/myImage/versions/1.0.0"; + var psImageRef = new PSImageReference + { + SharedGalleryImageId = sharedGalleryImageId + }; + + // Act + var result = psImageRef.toMgmtImageReference(); + + // Assert + Assert.NotNull(result); + Assert.Equal(sharedGalleryImageId, result.SharedGalleryImageId); + Assert.Null(result.Publisher); + Assert.Null(result.Offer); + Assert.Null(result.Sku); + Assert.Null(result.Version); + Assert.Null(result.Id); + Assert.Null(result.CommunityGalleryImageId); + } + + [Fact] + public void ToMgmtImageReference_WithCommunityGalleryImage_ReturnsCorrectMapping() + { + // Arrange + var communityGalleryImageId = "/CommunityGalleries/myPublicGallery/Images/myImage/Versions/1.0.0"; + var psImageRef = new PSImageReference + { + CommunityGalleryImageId = communityGalleryImageId + }; + + // Act + var result = psImageRef.toMgmtImageReference(); + + // Assert + Assert.NotNull(result); + Assert.Equal(communityGalleryImageId, result.CommunityGalleryImageId); + Assert.Null(result.Publisher); + Assert.Null(result.Offer); + Assert.Null(result.Sku); + Assert.Null(result.Version); + Assert.Null(result.Id); + Assert.Null(result.SharedGalleryImageId); + } + + [Fact] + public void ToMgmtImageReference_WithAllProperties_ReturnsCorrectMapping() + { + // Arrange - This scenario tests all properties set (though mutually exclusive in practice) + var customImageId = "/subscriptions/12345678-1234-1234-1234-123456789abc/resourceGroups/myRG/providers/Microsoft.Compute/images/myCustomImage"; + var sharedGalleryImageId = "/subscriptions/12345678-1234-1234-1234-123456789abc/resourceGroups/myRG/providers/Microsoft.Compute/galleries/myGallery/images/myImage/versions/1.0.0"; + var communityGalleryImageId = "/CommunityGalleries/myPublicGallery/Images/myImage/Versions/1.0.0"; + + var psImageRef = new PSImageReference + { + Publisher = "Canonical", + Offer = "UbuntuServer", + Sku = "18.04-LTS", + Version = "latest", + VirtualMachineImageId = customImageId, + SharedGalleryImageId = sharedGalleryImageId, + CommunityGalleryImageId = communityGalleryImageId + }; + + // Act + var result = psImageRef.toMgmtImageReference(); + + // Assert + Assert.NotNull(result); + Assert.Equal("Canonical", result.Publisher); + Assert.Equal("UbuntuServer", result.Offer); + Assert.Equal("18.04-LTS", result.Sku); + Assert.Equal("latest", result.Version); + Assert.Equal(customImageId, result.Id); + Assert.Equal(sharedGalleryImageId, result.SharedGalleryImageId); + Assert.Equal(communityGalleryImageId, result.CommunityGalleryImageId); + } + + [Fact] + public void ToMgmtImageReference_WithNullVersion_ReturnsNullVersion() + { + // Arrange + var psImageRef = new PSImageReference("UbuntuServer", "Canonical", "18.04-LTS", null); + + // Act + var result = psImageRef.toMgmtImageReference(); + + // Assert + Assert.NotNull(result); + Assert.Equal("Canonical", result.Publisher); + Assert.Equal("UbuntuServer", result.Offer); + Assert.Equal("18.04-LTS", result.Sku); + Assert.Null(result.Version); + } + + [Theory] + [InlineData("Canonical", "UbuntuServer", "18.04-LTS", "latest")] + [InlineData("MicrosoftWindowsServer", "WindowsServer", "2022-datacenter", "latest")] + [InlineData("RedHat", "RHEL", "8-gen2", "8.7.2022112201")] + [InlineData("SUSE", "sles-15-sp4", "gen2", "2022.11.19")] + [InlineData("microsoft-ads", "windows-data-science-vm", "windows2016", "19.01.14")] + public void ToMgmtImageReference_VariousMarketplaceImages_ReturnsCorrectMapping(string publisher, string offer, string sku, string version) + { + // Arrange + var psImageRef = new PSImageReference(offer, publisher, sku, version); + + // Act + var result = psImageRef.toMgmtImageReference(); + + // Assert + Assert.NotNull(result); + Assert.Equal(publisher, result.Publisher); + Assert.Equal(offer, result.Offer); + Assert.Equal(sku, result.Sku); + Assert.Equal(version, result.Version); + Assert.Null(result.Id); + } + + [Fact] + public void ToMgmtImageReference_AlwaysCreatesNewInstance() + { + // Arrange + var psImageRef = new PSImageReference("UbuntuServer", "Canonical", "18.04-LTS", "latest"); + + // Act + var result1 = psImageRef.toMgmtImageReference(); + var result2 = psImageRef.toMgmtImageReference(); + + // Assert + Assert.NotNull(result1); + Assert.NotNull(result2); + Assert.NotSame(result1, result2); + } + + [Fact] + public void ToMgmtImageReference_VerifyImageReferenceType() + { + // Arrange + var psImageRef = new PSImageReference("UbuntuServer", "Canonical", "18.04-LTS", "latest"); + + // Act + var result = psImageRef.toMgmtImageReference(); + + // Assert + Assert.NotNull(result); + Assert.IsType(result); + } + + [Fact] + public void ToMgmtImageReference_WithDefaultConstructor_HandlesNullValues() + { + // Arrange + var psImageRef = new PSImageReference(); // Default constructor + + // Act + var result = psImageRef.toMgmtImageReference(); + + // Assert + Assert.NotNull(result); + Assert.Null(result.Publisher); + Assert.Null(result.Offer); + Assert.Null(result.Sku); + Assert.Null(result.Version); + Assert.Null(result.Id); + Assert.Null(result.SharedGalleryImageId); + Assert.Null(result.CommunityGalleryImageId); + } + + #endregion + + #region fromMgmtImageReference Tests + + [Fact] + public void FromMgmtImageReference_WithMarketplaceImage_ReturnsCorrectMapping() + { + // Arrange + var mgmtImageRef = new ImageReference( + publisher: "Canonical", + offer: "UbuntuServer", + sku: "18.04-LTS", + version: "latest"); + + // Act + var result = PSImageReference.fromMgmtImageReference(mgmtImageRef); + + // Assert + Assert.NotNull(result); + Assert.Equal("Canonical", result.Publisher); + Assert.Equal("UbuntuServer", result.Offer); + Assert.Equal("18.04-LTS", result.Sku); + Assert.Equal("latest", result.Version); + Assert.Null(result.VirtualMachineImageId); + Assert.Null(result.CommunityGalleryImageId); + Assert.Null(result.SharedGalleryImageId); + } + + [Fact] + public void FromMgmtImageReference_WithCustomVMImage_ReturnsCorrectMapping() + { + // Arrange + var customImageId = "/subscriptions/12345678-1234-1234-1234-123456789abc/resourceGroups/myRG/providers/Microsoft.Compute/images/myCustomImage"; + var mgmtImageRef = new ImageReference(id: customImageId); + + // Act + var result = PSImageReference.fromMgmtImageReference(mgmtImageRef); + + // Assert + Assert.NotNull(result); + Assert.Equal(customImageId, result.VirtualMachineImageId); + Assert.Null(result.Publisher); + Assert.Null(result.Offer); + Assert.Null(result.Sku); + Assert.Null(result.Version); + Assert.Null(result.CommunityGalleryImageId); + Assert.Null(result.SharedGalleryImageId); + } + + [Fact] + public void FromMgmtImageReference_WithSharedGalleryImage_ReturnsCorrectMapping() + { + // Arrange + var sharedGalleryImageId = "/subscriptions/12345678-1234-1234-1234-123456789abc/resourceGroups/myRG/providers/Microsoft.Compute/galleries/myGallery/images/myImage/versions/1.0.0"; + var mgmtImageRef = new ImageReference(sharedGalleryImageId: sharedGalleryImageId); + + // Act + var result = PSImageReference.fromMgmtImageReference(mgmtImageRef); + + // Assert + Assert.NotNull(result); + Assert.Equal(sharedGalleryImageId, result.SharedGalleryImageId); + Assert.Null(result.Publisher); + Assert.Null(result.Offer); + Assert.Null(result.Sku); + Assert.Null(result.Version); + Assert.Null(result.VirtualMachineImageId); + Assert.Null(result.CommunityGalleryImageId); + } + + [Fact] + public void FromMgmtImageReference_WithCommunityGalleryImage_ReturnsCorrectMapping() + { + // Arrange + var communityGalleryImageId = "/CommunityGalleries/myPublicGallery/Images/myImage/Versions/1.0.0"; + var mgmtImageRef = new ImageReference(communityGalleryImageId: communityGalleryImageId); + + // Act + var result = PSImageReference.fromMgmtImageReference(mgmtImageRef); + + // Assert + Assert.NotNull(result); + Assert.Equal(communityGalleryImageId, result.CommunityGalleryImageId); + Assert.Null(result.Publisher); + Assert.Null(result.Offer); + Assert.Null(result.Sku); + Assert.Null(result.Version); + Assert.Null(result.VirtualMachineImageId); + Assert.Null(result.SharedGalleryImageId); + } + + [Fact] + public void FromMgmtImageReference_WithNullMgmtImageReference_ReturnsNull() + { + // Act + var result = PSImageReference.fromMgmtImageReference(null); + + // Assert + Assert.Null(result); + } + + [Fact] + public void FromMgmtImageReference_WithAllProperties_ReturnsCorrectMapping() + { + // Arrange - This scenario tests all properties set (though mutually exclusive in practice) + var customImageId = "/subscriptions/12345678-1234-1234-1234-123456789abc/resourceGroups/myRG/providers/Microsoft.Compute/images/myCustomImage"; + var sharedGalleryImageId = "/subscriptions/12345678-1234-1234-1234-123456789abc/resourceGroups/myRG/providers/Microsoft.Compute/galleries/myGallery/images/myImage/versions/1.0.0"; + var communityGalleryImageId = "/CommunityGalleries/myPublicGallery/Images/myImage/Versions/1.0.0"; + + var mgmtImageRef = new ImageReference( + publisher: "Canonical", + offer: "UbuntuServer", + sku: "18.04-LTS", + version: "latest", + id: customImageId, + sharedGalleryImageId: sharedGalleryImageId, + communityGalleryImageId: communityGalleryImageId); + + // Act + var result = PSImageReference.fromMgmtImageReference(mgmtImageRef); + + // Assert + Assert.NotNull(result); + Assert.Equal("Canonical", result.Publisher); + Assert.Equal("UbuntuServer", result.Offer); + Assert.Equal("18.04-LTS", result.Sku); + Assert.Equal("latest", result.Version); + Assert.Equal(customImageId, result.VirtualMachineImageId); + Assert.Equal(sharedGalleryImageId, result.SharedGalleryImageId); + Assert.Equal(communityGalleryImageId, result.CommunityGalleryImageId); + } + + [Theory] + [InlineData("Canonical", "UbuntuServer", "18.04-LTS", "latest")] + [InlineData("MicrosoftWindowsServer", "WindowsServer", "2022-datacenter", "latest")] + [InlineData("RedHat", "RHEL", "8-gen2", "8.7.2022112201")] + [InlineData("SUSE", "sles-15-sp4", "gen2", "2022.11.19")] + [InlineData("microsoft-ads", "windows-data-science-vm", "windows2016", "19.01.14")] + public void FromMgmtImageReference_VariousMarketplaceImages_ReturnsCorrectMapping(string publisher, string offer, string sku, string version) + { + // Arrange + var mgmtImageRef = new ImageReference( + publisher: publisher, + offer: offer, + sku: sku, + version: version); + + // Act + var result = PSImageReference.fromMgmtImageReference(mgmtImageRef); + + // Assert + Assert.NotNull(result); + Assert.Equal(publisher, result.Publisher); + Assert.Equal(offer, result.Offer); + Assert.Equal(sku, result.Sku); + Assert.Equal(version, result.Version); + Assert.Null(result.VirtualMachineImageId); + } + + [Fact] + public void FromMgmtImageReference_StaticMethod_DoesNotRequireInstance() + { + // Arrange + var mgmtImageRef = new ImageReference( + publisher: "Canonical", + offer: "UbuntuServer", + sku: "18.04-LTS", + version: "latest"); + + // Act - Call static method directly on class + var result = PSImageReference.fromMgmtImageReference(mgmtImageRef); + + // Assert + Assert.NotNull(result); + Assert.Equal("Canonical", result.Publisher); + Assert.Equal("UbuntuServer", result.Offer); + Assert.Equal("18.04-LTS", result.Sku); + Assert.Equal("latest", result.Version); + } + + [Fact] + public void FromMgmtImageReference_AlwaysCreatesNewInstance() + { + // Arrange + var mgmtImageRef = new ImageReference( + publisher: "Canonical", + offer: "UbuntuServer", + sku: "18.04-LTS", + version: "latest"); + + // Act + var result1 = PSImageReference.fromMgmtImageReference(mgmtImageRef); + var result2 = PSImageReference.fromMgmtImageReference(mgmtImageRef); + + // Assert + Assert.NotNull(result1); + Assert.NotNull(result2); + Assert.NotSame(result1, result2); + } + + [Fact] + public void FromMgmtImageReference_VerifyPSImageReferenceType() + { + // Arrange + var mgmtImageRef = new ImageReference( + publisher: "Canonical", + offer: "UbuntuServer", + sku: "18.04-LTS", + version: "latest"); + + // Act + var result = PSImageReference.fromMgmtImageReference(mgmtImageRef); + + // Assert + Assert.NotNull(result); + Assert.IsType(result); + } + + [Fact] + public void FromMgmtImageReference_WithDefaultConstructor_HandlesNullValues() + { + // Arrange + var mgmtImageRef = new ImageReference(); // Default constructor + + // Act + var result = PSImageReference.fromMgmtImageReference(mgmtImageRef); + + // Assert + Assert.NotNull(result); + Assert.Null(result.Publisher); + Assert.Null(result.Offer); + Assert.Null(result.Sku); + Assert.Null(result.Version); + Assert.Null(result.VirtualMachineImageId); + Assert.Null(result.SharedGalleryImageId); + Assert.Null(result.CommunityGalleryImageId); + } + + #endregion + + #region Round-trip Conversion Tests + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesMarketplaceImageProperties() + { + // Arrange + var originalPsImageRef = new PSImageReference("UbuntuServer", "Canonical", "18.04-LTS", "latest"); + + // Act + var mgmtImageRef = originalPsImageRef.toMgmtImageReference(); + var roundTripPsImageRef = PSImageReference.fromMgmtImageReference(mgmtImageRef); + + // Assert + Assert.NotNull(roundTripPsImageRef); + Assert.Equal(originalPsImageRef.Publisher, roundTripPsImageRef.Publisher); + Assert.Equal(originalPsImageRef.Offer, roundTripPsImageRef.Offer); + Assert.Equal(originalPsImageRef.Sku, roundTripPsImageRef.Sku); + Assert.Equal(originalPsImageRef.Version, roundTripPsImageRef.Version); + Assert.Null(roundTripPsImageRef.VirtualMachineImageId); + } + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesCustomImageProperties() + { + // Arrange + var customImageId = "/subscriptions/12345678-1234-1234-1234-123456789abc/resourceGroups/myRG/providers/Microsoft.Compute/images/myCustomImage"; + var originalPsImageRef = new PSImageReference(customImageId); + + // Act + var mgmtImageRef = originalPsImageRef.toMgmtImageReference(); + var roundTripPsImageRef = PSImageReference.fromMgmtImageReference(mgmtImageRef); + + // Assert + Assert.NotNull(roundTripPsImageRef); + Assert.Equal(originalPsImageRef.VirtualMachineImageId, roundTripPsImageRef.VirtualMachineImageId); + Assert.Null(roundTripPsImageRef.Publisher); + Assert.Null(roundTripPsImageRef.Offer); + Assert.Null(roundTripPsImageRef.Sku); + Assert.Null(roundTripPsImageRef.Version); + } + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesGalleryImageProperties() + { + // Arrange + var sharedGalleryImageId = "/subscriptions/12345678-1234-1234-1234-123456789abc/resourceGroups/myRG/providers/Microsoft.Compute/galleries/myGallery/images/myImage/versions/1.0.0"; + var communityGalleryImageId = "/CommunityGalleries/myPublicGallery/Images/myImage/Versions/1.0.0"; + + var originalPsImageRef = new PSImageReference + { + SharedGalleryImageId = sharedGalleryImageId, + CommunityGalleryImageId = communityGalleryImageId + }; + + // Act + var mgmtImageRef = originalPsImageRef.toMgmtImageReference(); + var roundTripPsImageRef = PSImageReference.fromMgmtImageReference(mgmtImageRef); + + // Assert + Assert.NotNull(roundTripPsImageRef); + Assert.Equal(originalPsImageRef.SharedGalleryImageId, roundTripPsImageRef.SharedGalleryImageId); + Assert.Equal(originalPsImageRef.CommunityGalleryImageId, roundTripPsImageRef.CommunityGalleryImageId); + } + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesNullValues() + { + // Arrange + var originalPsImageRef = new PSImageReference(); // Default constructor with null values + + // Act + var mgmtImageRef = originalPsImageRef.toMgmtImageReference(); + var roundTripPsImageRef = PSImageReference.fromMgmtImageReference(mgmtImageRef); + + // Assert + Assert.NotNull(roundTripPsImageRef); + Assert.Null(roundTripPsImageRef.Publisher); + Assert.Null(roundTripPsImageRef.Offer); + Assert.Null(roundTripPsImageRef.Sku); + Assert.Null(roundTripPsImageRef.Version); + Assert.Null(roundTripPsImageRef.VirtualMachineImageId); + Assert.Null(roundTripPsImageRef.SharedGalleryImageId); + Assert.Null(roundTripPsImageRef.CommunityGalleryImageId); + } + + [Theory] + [InlineData("Canonical", "UbuntuServer", "18.04-LTS", "latest")] + [InlineData("MicrosoftWindowsServer", "WindowsServer", "2022-datacenter", "latest")] + [InlineData("RedHat", "RHEL", "8-gen2", null)] + public void RoundTripConversion_AllValidMarketplaceValues_PreservesOriginalValue(string publisher, string offer, string sku, string version) + { + // Arrange + var originalPsImageRef = new PSImageReference(offer, publisher, sku, version); + + // Act + var mgmtImageRef = originalPsImageRef.toMgmtImageReference(); + var roundTripPsImageRef = PSImageReference.fromMgmtImageReference(mgmtImageRef); + + // Assert + Assert.NotNull(roundTripPsImageRef); + Assert.Equal(originalPsImageRef.Publisher, roundTripPsImageRef.Publisher); + Assert.Equal(originalPsImageRef.Offer, roundTripPsImageRef.Offer); + Assert.Equal(originalPsImageRef.Sku, roundTripPsImageRef.Sku); + Assert.Equal(originalPsImageRef.Version, roundTripPsImageRef.Version); + } + + [Fact] + public void RoundTripConversion_FromMgmtAndToMgmt_PreservesValues() + { + // Arrange + var customImageId = "/subscriptions/12345678-1234-1234-1234-123456789abc/resourceGroups/myRG/providers/Microsoft.Compute/images/myCustomImage"; + var originalMgmtImageRef = new ImageReference( + publisher: "Canonical", + offer: "UbuntuServer", + sku: "18.04-LTS", + version: "latest", + id: customImageId); + + // Act + var psImageRef = PSImageReference.fromMgmtImageReference(originalMgmtImageRef); + var roundTripMgmtImageRef = psImageRef.toMgmtImageReference(); + + // Assert + Assert.NotNull(roundTripMgmtImageRef); + Assert.Equal(originalMgmtImageRef.Publisher, roundTripMgmtImageRef.Publisher); + Assert.Equal(originalMgmtImageRef.Offer, roundTripMgmtImageRef.Offer); + Assert.Equal(originalMgmtImageRef.Sku, roundTripMgmtImageRef.Sku); + Assert.Equal(originalMgmtImageRef.Version, roundTripMgmtImageRef.Version); + Assert.Equal(originalMgmtImageRef.Id, roundTripMgmtImageRef.Id); + } + + #endregion + + #region Integration Tests + + [Fact] + public void ImageReferenceConversions_BothDirections_MaintainSemanticEquivalence() + { + // This test ensures that the semantic meaning is preserved across conversions + + // Scenario 1: Ubuntu marketplace image + var psUbuntuImageRef = new PSImageReference("UbuntuServer", "Canonical", "18.04-LTS", "latest"); + + var mgmtUbuntuImageRef = psUbuntuImageRef.toMgmtImageReference(); + var backToPs = PSImageReference.fromMgmtImageReference(mgmtUbuntuImageRef); + + Assert.NotNull(mgmtUbuntuImageRef); + Assert.Equal("Canonical", mgmtUbuntuImageRef.Publisher); + Assert.Equal("UbuntuServer", mgmtUbuntuImageRef.Offer); + Assert.Equal("18.04-LTS", mgmtUbuntuImageRef.Sku); + Assert.Equal("latest", mgmtUbuntuImageRef.Version); + + Assert.NotNull(backToPs); + Assert.Equal("Canonical", backToPs.Publisher); + Assert.Equal("UbuntuServer", backToPs.Offer); + Assert.Equal("18.04-LTS", backToPs.Sku); + Assert.Equal("latest", backToPs.Version); + + // Scenario 2: Custom VM image + var customImageId = "/subscriptions/12345678-1234-1234-1234-123456789abc/resourceGroups/myRG/providers/Microsoft.Compute/images/myCustomImage"; + var psCustomImageRef = new PSImageReference(customImageId); + + var mgmtCustomImageRef = psCustomImageRef.toMgmtImageReference(); + var backToPsCustom = PSImageReference.fromMgmtImageReference(mgmtCustomImageRef); + + Assert.NotNull(mgmtCustomImageRef); + Assert.Equal(customImageId, mgmtCustomImageRef.Id); + Assert.Null(mgmtCustomImageRef.Publisher); + + Assert.NotNull(backToPsCustom); + Assert.Equal(customImageId, backToPsCustom.VirtualMachineImageId); + Assert.Null(backToPsCustom.Publisher); + } + + [Fact] + public void ImageReferenceConversions_NullHandling_WorksCorrectly() + { + // Test null handling in conversions + + // Act + var resultFromNull = PSImageReference.fromMgmtImageReference(null); + + // Assert + Assert.Null(resultFromNull); + } + + [Fact] + public void ImageReferenceConversions_BatchPoolContext_VerifyCorrectUsage() + { + // This test validates the conversions work correctly in the context of Batch pool configuration + // ImageReference is used to specify VM images for Batch pool compute nodes + + // Arrange - Test with different image reference scenarios + var scenarios = new[] + { + // Standard Ubuntu marketplace image + new { + Type = "Marketplace", + Publisher = "Canonical", + Offer = "UbuntuServer", + Sku = "18.04-LTS", + Version = "latest", + CustomImageId = (string)null, + Description = "Standard Ubuntu LTS marketplace image" + }, + // Windows Server marketplace image + new { + Type = "Marketplace", + Publisher = "MicrosoftWindowsServer", + Offer = "WindowsServer", + Sku = "2022-datacenter", + Version = "latest", + CustomImageId = (string)null, + Description = "Windows Server 2022 Datacenter marketplace image" + }, + // Custom VM image + new { + Type = "Custom", + Publisher = (string)null, + Offer = (string)null, + Sku = (string)null, + Version = (string)null, + CustomImageId = "/subscriptions/12345678-1234-1234-1234-123456789abc/resourceGroups/myRG/providers/Microsoft.Compute/images/myCustomImage", + Description = "Custom VM image with pre-installed software" + }, + // Data Science VM marketplace image + new { + Type = "Marketplace", + Publisher = "microsoft-ads", + Offer = "windows-data-science-vm", + Sku = "windows2016", + Version = "19.01.14", + CustomImageId = (string)null, + Description = "Data Science VM with ML tools pre-installed" + } + }; + + foreach (var scenario in scenarios) + { + // Arrange + PSImageReference psImageRef; + if (scenario.Type == "Custom") + { + psImageRef = new PSImageReference(scenario.CustomImageId); + } + else + { + psImageRef = new PSImageReference(scenario.Offer, scenario.Publisher, scenario.Sku, scenario.Version); + } + + // Act + var mgmtImageRef = psImageRef.toMgmtImageReference(); + + // Assert - Should convert correctly for Batch pool configuration + Assert.NotNull(mgmtImageRef); + + if (scenario.Type == "Custom") + { + Assert.Equal(scenario.CustomImageId, mgmtImageRef.Id); + Assert.Null(mgmtImageRef.Publisher); + Assert.Null(mgmtImageRef.Offer); + Assert.Null(mgmtImageRef.Sku); + Assert.Null(mgmtImageRef.Version); + } + else + { + Assert.Equal(scenario.Publisher, mgmtImageRef.Publisher); + Assert.Equal(scenario.Offer, mgmtImageRef.Offer); + Assert.Equal(scenario.Sku, mgmtImageRef.Sku); + Assert.Equal(scenario.Version, mgmtImageRef.Version); + Assert.Null(mgmtImageRef.Id); + } + + // Verify round-trip conversion maintains image reference semantics + var backToPs = PSImageReference.fromMgmtImageReference(mgmtImageRef); + Assert.NotNull(backToPs); + + if (scenario.Type == "Custom") + { + Assert.Equal(scenario.CustomImageId, backToPs.VirtualMachineImageId); + Assert.Null(backToPs.Publisher); + } + else + { + Assert.Equal(scenario.Publisher, backToPs.Publisher); + Assert.Equal(scenario.Offer, backToPs.Offer); + Assert.Equal(scenario.Sku, backToPs.Sku); + Assert.Equal(scenario.Version, backToPs.Version); + Assert.Null(backToPs.VirtualMachineImageId); + } + } + } + + [Fact] + public void ImageReferenceConversions_PropertyMapping_VerifyCorrectness() + { + // This test verifies the property mapping between PS and Management types + // PSImageReference.VirtualMachineImageId <-> ImageReference.Id + // Other properties map directly + + // Test 1: PS to Management mapping + var customImageId = "/subscriptions/12345678-1234-1234-1234-123456789abc/resourceGroups/myRG/providers/Microsoft.Compute/images/myCustomImage"; + var psImageRef = new PSImageReference + { + Publisher = "TestPublisher", + Offer = "TestOffer", + Sku = "TestSku", + Version = "1.0.0", + VirtualMachineImageId = customImageId, + SharedGalleryImageId = "/subscriptions/test/resourceGroups/test/providers/Microsoft.Compute/galleries/test/images/test/versions/1.0.0", + CommunityGalleryImageId = "/CommunityGalleries/test/Images/test/Versions/1.0.0" + }; + + var mgmtImageRef = psImageRef.toMgmtImageReference(); + + // Verify VirtualMachineImageId maps to Id + Assert.Equal(psImageRef.VirtualMachineImageId, mgmtImageRef.Id); + // Verify direct mappings + Assert.Equal(psImageRef.Publisher, mgmtImageRef.Publisher); + Assert.Equal(psImageRef.Offer, mgmtImageRef.Offer); + Assert.Equal(psImageRef.Sku, mgmtImageRef.Sku); + Assert.Equal(psImageRef.Version, mgmtImageRef.Version); + Assert.Equal(psImageRef.SharedGalleryImageId, mgmtImageRef.SharedGalleryImageId); + Assert.Equal(psImageRef.CommunityGalleryImageId, mgmtImageRef.CommunityGalleryImageId); + + // Test 2: Management to PS mapping + var originalMgmtRef = new ImageReference( + publisher: "ReversePublisher", + offer: "ReverseOffer", + sku: "ReverseSku", + version: "2.0.0", + id: customImageId, + sharedGalleryImageId: "/subscriptions/reverse/resourceGroups/reverse/providers/Microsoft.Compute/galleries/reverse/images/reverse/versions/2.0.0", + communityGalleryImageId: "/CommunityGalleries/reverse/Images/reverse/Versions/2.0.0"); + + var resultPsRef = PSImageReference.fromMgmtImageReference(originalMgmtRef); + + // Verify Id maps to VirtualMachineImageId + Assert.Equal(originalMgmtRef.Id, resultPsRef.VirtualMachineImageId); + // Verify direct mappings + Assert.Equal(originalMgmtRef.Publisher, resultPsRef.Publisher); + Assert.Equal(originalMgmtRef.Offer, resultPsRef.Offer); + Assert.Equal(originalMgmtRef.Sku, resultPsRef.Sku); + Assert.Equal(originalMgmtRef.Version, resultPsRef.Version); + Assert.Equal(originalMgmtRef.SharedGalleryImageId, resultPsRef.SharedGalleryImageId); + Assert.Equal(originalMgmtRef.CommunityGalleryImageId, resultPsRef.CommunityGalleryImageId); + } + + [Fact] + public void ImageReferenceConversions_MutualExclusivity_VerifyDocumentedBehavior() + { + // This test verifies the documented mutual exclusivity behavior + // According to the documentation, Id, SharedGalleryImageId, and CommunityGalleryImageId + // are mutually exclusive with marketplace image properties + + // Test 1: Custom image (Id) should be used alone + var customImageId = "/subscriptions/12345678-1234-1234-1234-123456789abc/resourceGroups/myRG/providers/Microsoft.Compute/images/myCustomImage"; + var customImageRef = new PSImageReference(customImageId); + + var mgmtCustomRef = customImageRef.toMgmtImageReference(); + Assert.Equal(customImageId, mgmtCustomRef.Id); + Assert.Null(mgmtCustomRef.Publisher); // Should be null for custom images + + // Test 2: Shared gallery image should be used alone + var sharedGalleryImageId = "/subscriptions/12345678-1234-1234-1234-123456789abc/resourceGroups/myRG/providers/Microsoft.Compute/galleries/myGallery/images/myImage/versions/1.0.0"; + var sharedGalleryRef = new PSImageReference { SharedGalleryImageId = sharedGalleryImageId }; + + var mgmtSharedRef = sharedGalleryRef.toMgmtImageReference(); + Assert.Equal(sharedGalleryImageId, mgmtSharedRef.SharedGalleryImageId); + Assert.Null(mgmtSharedRef.Publisher); // Should be null for gallery images + + // Test 3: Community gallery image should be used alone + var communityGalleryImageId = "/CommunityGalleries/myPublicGallery/Images/myImage/Versions/1.0.0"; + var communityGalleryRef = new PSImageReference { CommunityGalleryImageId = communityGalleryImageId }; + + var mgmtCommunityRef = communityGalleryRef.toMgmtImageReference(); + Assert.Equal(communityGalleryImageId, mgmtCommunityRef.CommunityGalleryImageId); + Assert.Null(mgmtCommunityRef.Publisher); // Should be null for gallery images + + // Test 4: Marketplace image uses Publisher, Offer, Sku, Version + var marketplaceRef = new PSImageReference("UbuntuServer", "Canonical", "18.04-LTS", "latest"); + + var mgmtMarketplaceRef = marketplaceRef.toMgmtImageReference(); + Assert.Equal("Canonical", mgmtMarketplaceRef.Publisher); + Assert.Equal("UbuntuServer", mgmtMarketplaceRef.Offer); + Assert.Equal("18.04-LTS", mgmtMarketplaceRef.Sku); + Assert.Equal("latest", mgmtMarketplaceRef.Version); + Assert.Null(mgmtMarketplaceRef.Id); // Should be null for marketplace images + } + + [Fact] + public void ImageReferenceConversions_InstanceCreation_VerifyBehavior() + { + // This test verifies that the conversion methods create appropriate instances + + // Arrange + var psImageRef = new PSImageReference("UbuntuServer", "Canonical", "18.04-LTS", "latest"); + + var mgmtImageRef = new ImageReference( + publisher: "MicrosoftWindowsServer", + offer: "WindowsServer", + sku: "2022-datacenter", + version: "latest"); + + // Act + var mgmtResult = psImageRef.toMgmtImageReference(); + var psResult = PSImageReference.fromMgmtImageReference(mgmtImageRef); + + // Assert - Verify proper instance creation + Assert.NotNull(mgmtResult); + Assert.NotNull(psResult); + Assert.IsType(mgmtResult); + Assert.IsType(psResult); + + // Verify new instances are created + Assert.NotSame(mgmtImageRef, mgmtResult); + Assert.NotSame(psImageRef, psResult); + } + + #endregion + + #region Performance and Edge Case Tests + + [Fact] + public void ImageReferenceConversions_PerformanceTest_ExecutesQuickly() + { + // This test ensures the conversions are efficient + + // Arrange + var psImageRef = new PSImageReference("UbuntuServer", "Canonical", "18.04-LTS", "latest"); + + var mgmtImageRef = new ImageReference( + publisher: "MicrosoftWindowsServer", + offer: "WindowsServer", + sku: "2022-datacenter", + version: "latest"); + + // Act & Assert - Multiple conversions should complete without delay + for (int i = 0; i < 1000; i++) + { + var mgmtResult = psImageRef.toMgmtImageReference(); + var psResult = PSImageReference.fromMgmtImageReference(mgmtImageRef); + + Assert.NotNull(mgmtResult); + Assert.NotNull(psResult); + Assert.Equal("Canonical", mgmtResult.Publisher); + Assert.Equal("MicrosoftWindowsServer", psResult.Publisher); + } + } + + [Fact] + public void ImageReferenceConversions_EdgeCaseImageIds_HandleCorrectly() + { + // Test conversion with various edge case image IDs + + var testImageIds = new[] + { + // Standard custom image + "/subscriptions/12345678-1234-1234-1234-123456789abc/resourceGroups/myRG/providers/Microsoft.Compute/images/myImage", + + // Shared gallery image + "/subscriptions/12345678-1234-1234-1234-123456789abc/resourceGroups/myRG/providers/Microsoft.Compute/galleries/myGallery/images/myImage/versions/1.0.0", + + // Community gallery image + "/CommunityGalleries/myPublicGallery/Images/myImage/Versions/1.0.0", + + // Long image ID + "/subscriptions/12345678-1234-1234-1234-123456789abc/resourceGroups/very-long-resource-group-name/providers/Microsoft.Compute/images/very-long-image-name-with-lots-of-details", + + // Image with special characters + "/subscriptions/12345678-1234-1234-1234-123456789abc/resourceGroups/test-rg_123/providers/Microsoft.Compute/images/test-image_v2", + + // Empty string + "", + + // Null value + null + }; + + foreach (var imageId in testImageIds) + { + // Arrange + var psImageRef = new PSImageReference { VirtualMachineImageId = imageId }; + + // Act + var mgmtResult = psImageRef.toMgmtImageReference(); + var roundTripResult = PSImageReference.fromMgmtImageReference(mgmtResult); + + // Assert + Assert.NotNull(mgmtResult); + Assert.NotNull(roundTripResult); + Assert.Equal(imageId, mgmtResult.Id); + Assert.Equal(imageId, roundTripResult.VirtualMachineImageId); + } + } + + [Fact] + public void ImageReferenceConversions_EdgeCaseVersions_HandleCorrectly() + { + // Test conversion with various edge case version strings + + var testVersions = new[] + { + // Standard versions + "latest", + "1.0.0", + "2022.11.19", + + // Date-based versions + "20221119", + "2022-11-19", + + // Build numbers + "19041.928.210409-1908", + + // Special versions + "latest-gen2", + "latest-smalldisk", + + // Long version string + "very-long-version-string-with-build-details-2022.11.19.123456789", + + // Empty string + "", + + // Null value + null + }; + + foreach (var version in testVersions) + { + // Arrange + var psImageRef = new PSImageReference("UbuntuServer", "Canonical", "18.04-LTS", version); + + // Act + var mgmtResult = psImageRef.toMgmtImageReference(); + var roundTripResult = PSImageReference.fromMgmtImageReference(mgmtResult); + + // Assert + Assert.NotNull(mgmtResult); + Assert.NotNull(roundTripResult); + Assert.Equal("Canonical", mgmtResult.Publisher); + Assert.Equal("UbuntuServer", mgmtResult.Offer); + Assert.Equal("18.04-LTS", mgmtResult.Sku); + Assert.Equal(version, mgmtResult.Version); + Assert.Equal("Canonical", roundTripResult.Publisher); + Assert.Equal("UbuntuServer", roundTripResult.Offer); + Assert.Equal("18.04-LTS", roundTripResult.Sku); + Assert.Equal(version, roundTripResult.Version); + } + } + + [Fact] + public void ImageReferenceConversions_ToStringMethod_VerifyBehavior() + { + // This test verifies the ToString() method behavior to ensure it works correctly + // with the converted objects + + // Test marketplace image ToString + var marketplaceImageRef = new PSImageReference("UbuntuServer", "Canonical", "18.04-LTS", "latest"); + var marketplaceString = marketplaceImageRef.ToString(); + Assert.Equal("Canonical:UbuntuServer:18.04-LTS:latest", marketplaceString); + + // Test custom image ToString + var customImageId = "/subscriptions/12345678-1234-1234-1234-123456789abc/resourceGroups/myRG/providers/Microsoft.Compute/images/myImage"; + var customImageRef = new PSImageReference(customImageId); + var customImageString = customImageRef.ToString(); + Assert.Equal(customImageId, customImageString); + + // Test conversion preserves ToString behavior + var mgmtMarketplaceRef = marketplaceImageRef.toMgmtImageReference(); + var roundTripMarketplaceRef = PSImageReference.fromMgmtImageReference(mgmtMarketplaceRef); + Assert.Equal(marketplaceString, roundTripMarketplaceRef.ToString()); + + var mgmtCustomRef = customImageRef.toMgmtImageReference(); + var roundTripCustomRef = PSImageReference.fromMgmtImageReference(mgmtCustomRef); + Assert.Equal(customImageString, roundTripCustomRef.ToString()); + } + + #endregion + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Test/Models/PSWindowsConfigurationTests.cs b/src/Batch/Batch.Test/Models/PSWindowsConfigurationTests.cs new file mode 100644 index 000000000000..13dcaf05835e --- /dev/null +++ b/src/Batch/Batch.Test/Models/PSWindowsConfigurationTests.cs @@ -0,0 +1,742 @@ +// ----------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ----------------------------------------------------------------------------- + +using Microsoft.Azure.Commands.Batch.Models; +using Microsoft.Azure.Management.Batch.Models; +using Xunit; + +namespace Microsoft.Azure.Commands.Batch.Test.ModelsConversions +{ + public class PSWindowsConfigurationTests + { + #region toMgmtWindowsConfiguration Tests + + [Fact] + public void ToMgmtWindowsConfiguration_WithAutomaticUpdatesEnabled_ReturnsCorrectMapping() + { + // Arrange + var psWindowsConfig = new PSWindowsConfiguration(enableAutomaticUpdates: true); + + // Act + var result = psWindowsConfig.toMgmtWindowsConfiguration(); + + // Assert + Assert.NotNull(result); + Assert.Equal(true, result.EnableAutomaticUpdates); + } + + [Fact] + public void ToMgmtWindowsConfiguration_WithAutomaticUpdatesDisabled_ReturnsCorrectMapping() + { + // Arrange + var psWindowsConfig = new PSWindowsConfiguration(enableAutomaticUpdates: false); + + // Act + var result = psWindowsConfig.toMgmtWindowsConfiguration(); + + // Assert + Assert.NotNull(result); + Assert.Equal(false, result.EnableAutomaticUpdates); + } + + [Fact] + public void ToMgmtWindowsConfiguration_WithNullAutomaticUpdates_ReturnsNullAutomaticUpdates() + { + // Arrange + var psWindowsConfig = new PSWindowsConfiguration(enableAutomaticUpdates: null); + + // Act + var result = psWindowsConfig.toMgmtWindowsConfiguration(); + + // Assert + Assert.NotNull(result); + Assert.Null(result.EnableAutomaticUpdates); + } + + [Fact] + public void ToMgmtWindowsConfiguration_WithDefaultConstructor_ReturnsNullAutomaticUpdates() + { + // Arrange + var psWindowsConfig = new PSWindowsConfiguration(); // Default constructor + + // Act + var result = psWindowsConfig.toMgmtWindowsConfiguration(); + + // Assert + Assert.NotNull(result); + Assert.Null(result.EnableAutomaticUpdates); + } + + [Theory] + [InlineData(true)] + [InlineData(false)] + [InlineData(null)] + public void ToMgmtWindowsConfiguration_AllValidValues_ReturnsCorrectMapping(bool? enableAutomaticUpdates) + { + // Arrange + var psWindowsConfig = new PSWindowsConfiguration(enableAutomaticUpdates); + + // Act + var result = psWindowsConfig.toMgmtWindowsConfiguration(); + + // Assert + Assert.NotNull(result); + Assert.Equal(enableAutomaticUpdates, result.EnableAutomaticUpdates); + } + + [Fact] + public void ToMgmtWindowsConfiguration_AlwaysCreatesNewInstance() + { + // Arrange + var psWindowsConfig = new PSWindowsConfiguration(enableAutomaticUpdates: true); + + // Act + var result1 = psWindowsConfig.toMgmtWindowsConfiguration(); + var result2 = psWindowsConfig.toMgmtWindowsConfiguration(); + + // Assert + Assert.NotNull(result1); + Assert.NotNull(result2); + Assert.NotSame(result1, result2); + } + + [Fact] + public void ToMgmtWindowsConfiguration_VerifyWindowsConfigurationType() + { + // Arrange + var psWindowsConfig = new PSWindowsConfiguration(enableAutomaticUpdates: true); + + // Act + var result = psWindowsConfig.toMgmtWindowsConfiguration(); + + // Assert + Assert.NotNull(result); + Assert.IsType(result); + } + + [Fact] + public void ToMgmtWindowsConfiguration_VerifyPropertyMapping() + { + // Arrange - Test that PSWindowsConfiguration.EnableAutomaticUpdates maps to WindowsConfiguration.EnableAutomaticUpdates + var testValues = new bool?[] { true, false, null }; + + foreach (var testValue in testValues) + { + var psWindowsConfig = new PSWindowsConfiguration(testValue); + + // Act + var result = psWindowsConfig.toMgmtWindowsConfiguration(); + + // Assert + Assert.NotNull(result); + Assert.Equal(testValue, result.EnableAutomaticUpdates); + Assert.Equal(psWindowsConfig.EnableAutomaticUpdates, result.EnableAutomaticUpdates); + } + } + + #endregion + + #region fromMgmtWindowsConfiguration Tests + + [Fact] + public void FromMgmtWindowsConfiguration_WithAutomaticUpdatesEnabled_ReturnsCorrectMapping() + { + // Arrange + var mgmtWindowsConfig = new WindowsConfiguration(enableAutomaticUpdates: true); + + // Act + var result = PSWindowsConfiguration.fromMgmtWindowsConfiguration(mgmtWindowsConfig); + + // Assert + Assert.NotNull(result); + Assert.Equal(true, result.EnableAutomaticUpdates); + } + + [Fact] + public void FromMgmtWindowsConfiguration_WithAutomaticUpdatesDisabled_ReturnsCorrectMapping() + { + // Arrange + var mgmtWindowsConfig = new WindowsConfiguration(enableAutomaticUpdates: false); + + // Act + var result = PSWindowsConfiguration.fromMgmtWindowsConfiguration(mgmtWindowsConfig); + + // Assert + Assert.NotNull(result); + Assert.Equal(false, result.EnableAutomaticUpdates); + } + + [Fact] + public void FromMgmtWindowsConfiguration_WithNullAutomaticUpdates_ReturnsNullAutomaticUpdates() + { + // Arrange + var mgmtWindowsConfig = new WindowsConfiguration(enableAutomaticUpdates: null); + + // Act + var result = PSWindowsConfiguration.fromMgmtWindowsConfiguration(mgmtWindowsConfig); + + // Assert + Assert.NotNull(result); + Assert.Null(result.EnableAutomaticUpdates); + } + + [Fact] + public void FromMgmtWindowsConfiguration_WithNullMgmtConfiguration_ReturnsNull() + { + // Act + var result = PSWindowsConfiguration.fromMgmtWindowsConfiguration(null); + + // Assert + Assert.Null(result); + } + + [Fact] + public void FromMgmtWindowsConfiguration_WithDefaultConstructor_ReturnsNullAutomaticUpdates() + { + // Arrange + var mgmtWindowsConfig = new WindowsConfiguration(); // Default constructor + + // Act + var result = PSWindowsConfiguration.fromMgmtWindowsConfiguration(mgmtWindowsConfig); + + // Assert + Assert.NotNull(result); + Assert.Null(result.EnableAutomaticUpdates); + } + + [Theory] + [InlineData(true)] + [InlineData(false)] + [InlineData(null)] + public void FromMgmtWindowsConfiguration_AllValidValues_ReturnsCorrectMapping(bool? enableAutomaticUpdates) + { + // Arrange + var mgmtWindowsConfig = new WindowsConfiguration(enableAutomaticUpdates); + + // Act + var result = PSWindowsConfiguration.fromMgmtWindowsConfiguration(mgmtWindowsConfig); + + // Assert + Assert.NotNull(result); + Assert.Equal(enableAutomaticUpdates, result.EnableAutomaticUpdates); + } + + [Fact] + public void FromMgmtWindowsConfiguration_StaticMethod_DoesNotRequireInstance() + { + // Arrange + var mgmtWindowsConfig = new WindowsConfiguration(enableAutomaticUpdates: true); + + // Act - Call static method directly on class + var result = PSWindowsConfiguration.fromMgmtWindowsConfiguration(mgmtWindowsConfig); + + // Assert + Assert.NotNull(result); + Assert.Equal(true, result.EnableAutomaticUpdates); + } + + [Fact] + public void FromMgmtWindowsConfiguration_AlwaysCreatesNewInstance() + { + // Arrange + var mgmtWindowsConfig = new WindowsConfiguration(enableAutomaticUpdates: true); + + // Act + var result1 = PSWindowsConfiguration.fromMgmtWindowsConfiguration(mgmtWindowsConfig); + var result2 = PSWindowsConfiguration.fromMgmtWindowsConfiguration(mgmtWindowsConfig); + + // Assert + Assert.NotNull(result1); + Assert.NotNull(result2); + Assert.NotSame(result1, result2); + } + + [Fact] + public void FromMgmtWindowsConfiguration_VerifyPSWindowsConfigurationType() + { + // Arrange + var mgmtWindowsConfig = new WindowsConfiguration(enableAutomaticUpdates: true); + + // Act + var result = PSWindowsConfiguration.fromMgmtWindowsConfiguration(mgmtWindowsConfig); + + // Assert + Assert.NotNull(result); + Assert.IsType(result); + } + + [Fact] + public void FromMgmtWindowsConfiguration_VerifyPropertyMapping() + { + // Arrange - Test that WindowsConfiguration.EnableAutomaticUpdates maps to PSWindowsConfiguration.EnableAutomaticUpdates + var testValues = new bool?[] { true, false, null }; + + foreach (var testValue in testValues) + { + var mgmtWindowsConfig = new WindowsConfiguration(testValue); + + // Act + var result = PSWindowsConfiguration.fromMgmtWindowsConfiguration(mgmtWindowsConfig); + + // Assert + Assert.NotNull(result); + Assert.Equal(testValue, result.EnableAutomaticUpdates); + Assert.Equal(mgmtWindowsConfig.EnableAutomaticUpdates, result.EnableAutomaticUpdates); + } + } + + [Fact] + public void FromMgmtWindowsConfiguration_VerifyConstructorUsage() + { + // This test verifies that the PSWindowsConfiguration constructor is called correctly + + // Arrange + var mgmtWindowsConfig = new WindowsConfiguration(enableAutomaticUpdates: false); + + // Act + var result = PSWindowsConfiguration.fromMgmtWindowsConfiguration(mgmtWindowsConfig); + + // Assert + Assert.NotNull(result); + Assert.Equal(false, result.EnableAutomaticUpdates); + + // Verify the constructor parameter was passed correctly + Assert.Equal(mgmtWindowsConfig.EnableAutomaticUpdates, result.EnableAutomaticUpdates); + } + + #endregion + + #region Round-trip Conversion Tests + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesEnabledValue() + { + // Arrange + var originalPsWindowsConfig = new PSWindowsConfiguration(enableAutomaticUpdates: true); + + // Act + var mgmtWindowsConfig = originalPsWindowsConfig.toMgmtWindowsConfiguration(); + var roundTripPsWindowsConfig = PSWindowsConfiguration.fromMgmtWindowsConfiguration(mgmtWindowsConfig); + + // Assert + Assert.NotNull(roundTripPsWindowsConfig); + Assert.Equal(originalPsWindowsConfig.EnableAutomaticUpdates, roundTripPsWindowsConfig.EnableAutomaticUpdates); + Assert.Equal(true, roundTripPsWindowsConfig.EnableAutomaticUpdates); + } + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesDisabledValue() + { + // Arrange + var originalPsWindowsConfig = new PSWindowsConfiguration(enableAutomaticUpdates: false); + + // Act + var mgmtWindowsConfig = originalPsWindowsConfig.toMgmtWindowsConfiguration(); + var roundTripPsWindowsConfig = PSWindowsConfiguration.fromMgmtWindowsConfiguration(mgmtWindowsConfig); + + // Assert + Assert.NotNull(roundTripPsWindowsConfig); + Assert.Equal(originalPsWindowsConfig.EnableAutomaticUpdates, roundTripPsWindowsConfig.EnableAutomaticUpdates); + Assert.Equal(false, roundTripPsWindowsConfig.EnableAutomaticUpdates); + } + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesNullValue() + { + // Arrange + var originalPsWindowsConfig = new PSWindowsConfiguration(enableAutomaticUpdates: null); + + // Act + var mgmtWindowsConfig = originalPsWindowsConfig.toMgmtWindowsConfiguration(); + var roundTripPsWindowsConfig = PSWindowsConfiguration.fromMgmtWindowsConfiguration(mgmtWindowsConfig); + + // Assert + Assert.NotNull(roundTripPsWindowsConfig); + Assert.Equal(originalPsWindowsConfig.EnableAutomaticUpdates, roundTripPsWindowsConfig.EnableAutomaticUpdates); + Assert.Null(roundTripPsWindowsConfig.EnableAutomaticUpdates); + } + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesDefaultValue() + { + // Arrange + var originalPsWindowsConfig = new PSWindowsConfiguration(); // Default constructor + + // Act + var mgmtWindowsConfig = originalPsWindowsConfig.toMgmtWindowsConfiguration(); + var roundTripPsWindowsConfig = PSWindowsConfiguration.fromMgmtWindowsConfiguration(mgmtWindowsConfig); + + // Assert + Assert.NotNull(roundTripPsWindowsConfig); + Assert.Equal(originalPsWindowsConfig.EnableAutomaticUpdates, roundTripPsWindowsConfig.EnableAutomaticUpdates); + Assert.Null(roundTripPsWindowsConfig.EnableAutomaticUpdates); + } + + [Theory] + [InlineData(true)] + [InlineData(false)] + [InlineData(null)] + public void RoundTripConversion_AllValidValues_PreservesOriginalValue(bool? enableAutomaticUpdates) + { + // Arrange + var originalPsWindowsConfig = new PSWindowsConfiguration(enableAutomaticUpdates); + + // Act + var mgmtWindowsConfig = originalPsWindowsConfig.toMgmtWindowsConfiguration(); + var roundTripPsWindowsConfig = PSWindowsConfiguration.fromMgmtWindowsConfiguration(mgmtWindowsConfig); + + // Assert + Assert.NotNull(roundTripPsWindowsConfig); + Assert.Equal(originalPsWindowsConfig.EnableAutomaticUpdates, roundTripPsWindowsConfig.EnableAutomaticUpdates); + Assert.Equal(enableAutomaticUpdates, roundTripPsWindowsConfig.EnableAutomaticUpdates); + } + + [Fact] + public void RoundTripConversion_FromMgmtAndToMgmt_PreservesValues() + { + // Arrange + var originalMgmtWindowsConfig = new WindowsConfiguration(enableAutomaticUpdates: false); + + // Act + var psWindowsConfig = PSWindowsConfiguration.fromMgmtWindowsConfiguration(originalMgmtWindowsConfig); + var roundTripMgmtWindowsConfig = psWindowsConfig.toMgmtWindowsConfiguration(); + + // Assert + Assert.NotNull(roundTripMgmtWindowsConfig); + Assert.Equal(originalMgmtWindowsConfig.EnableAutomaticUpdates, roundTripMgmtWindowsConfig.EnableAutomaticUpdates); + Assert.Equal(false, roundTripMgmtWindowsConfig.EnableAutomaticUpdates); + } + + [Theory] + [InlineData(true)] + [InlineData(false)] + [InlineData(null)] + public void RoundTripConversion_FromMgmtAllValues_PreservesOriginalValue(bool? enableAutomaticUpdates) + { + // Arrange + var originalMgmtWindowsConfig = new WindowsConfiguration(enableAutomaticUpdates); + + // Act + var psWindowsConfig = PSWindowsConfiguration.fromMgmtWindowsConfiguration(originalMgmtWindowsConfig); + var roundTripMgmtWindowsConfig = psWindowsConfig.toMgmtWindowsConfiguration(); + + // Assert + Assert.NotNull(roundTripMgmtWindowsConfig); + Assert.Equal(originalMgmtWindowsConfig.EnableAutomaticUpdates, roundTripMgmtWindowsConfig.EnableAutomaticUpdates); + Assert.Equal(enableAutomaticUpdates, roundTripMgmtWindowsConfig.EnableAutomaticUpdates); + } + + #endregion + + #region Integration Tests + + [Fact] + public void WindowsConfigurationConversions_BothDirections_MaintainSemanticEquivalence() + { + // This test ensures that the semantic meaning is preserved across conversions + + // Scenario 1: Automatic updates enabled + var psEnabledConfig = new PSWindowsConfiguration(enableAutomaticUpdates: true); + + var mgmtEnabledConfig = psEnabledConfig.toMgmtWindowsConfiguration(); + var backToPs = PSWindowsConfiguration.fromMgmtWindowsConfiguration(mgmtEnabledConfig); + + Assert.NotNull(mgmtEnabledConfig); + Assert.Equal(true, mgmtEnabledConfig.EnableAutomaticUpdates); + + Assert.NotNull(backToPs); + Assert.Equal(true, backToPs.EnableAutomaticUpdates); + + // Scenario 2: Automatic updates disabled + var psDisabledConfig = new PSWindowsConfiguration(enableAutomaticUpdates: false); + + var mgmtDisabledConfig = psDisabledConfig.toMgmtWindowsConfiguration(); + var backToPsDisabled = PSWindowsConfiguration.fromMgmtWindowsConfiguration(mgmtDisabledConfig); + + Assert.NotNull(mgmtDisabledConfig); + Assert.Equal(false, mgmtDisabledConfig.EnableAutomaticUpdates); + + Assert.NotNull(backToPsDisabled); + Assert.Equal(false, backToPsDisabled.EnableAutomaticUpdates); + + // Scenario 3: Default behavior (null value) + var psDefaultConfig = new PSWindowsConfiguration(); + + var mgmtDefaultConfig = psDefaultConfig.toMgmtWindowsConfiguration(); + var backToPsDefault = PSWindowsConfiguration.fromMgmtWindowsConfiguration(mgmtDefaultConfig); + + Assert.NotNull(mgmtDefaultConfig); + Assert.Null(mgmtDefaultConfig.EnableAutomaticUpdates); + + Assert.NotNull(backToPsDefault); + Assert.Null(backToPsDefault.EnableAutomaticUpdates); + } + + [Fact] + public void WindowsConfigurationConversions_NullHandling_WorksCorrectly() + { + // Test null handling in conversions + + // Act + var resultFromNull = PSWindowsConfiguration.fromMgmtWindowsConfiguration(null); + + // Assert + Assert.Null(resultFromNull); + } + + [Fact] + public void WindowsConfigurationConversions_BatchVMContext_VerifyCorrectUsage() + { + // This test validates the conversions work correctly in the context of Batch VM configuration + // WindowsConfiguration is used to configure Windows-specific settings for Batch pool compute nodes + + // Arrange - Test with different Windows configuration scenarios + var scenarios = new[] + { + // Production environment with automatic updates enabled + new { + EnableAutomaticUpdates = (bool?)true, + Description = "Production environment with automatic updates for security patches" + }, + // Development environment with automatic updates disabled + new { + EnableAutomaticUpdates = (bool?)false, + Description = "Development environment with controlled update schedule" + }, + // Default configuration (let Azure manage the default behavior) + new { + EnableAutomaticUpdates = (bool?)null, + Description = "Default configuration using Azure's recommended settings" + } + }; + + foreach (var scenario in scenarios) + { + // Arrange + var psWindowsConfig = new PSWindowsConfiguration(scenario.EnableAutomaticUpdates); + + // Act + var mgmtWindowsConfig = psWindowsConfig.toMgmtWindowsConfiguration(); + + // Assert - Should convert correctly for Batch VM configuration + Assert.NotNull(mgmtWindowsConfig); + Assert.Equal(scenario.EnableAutomaticUpdates, mgmtWindowsConfig.EnableAutomaticUpdates); + + // Verify round-trip conversion maintains Windows configuration semantics + var backToPs = PSWindowsConfiguration.fromMgmtWindowsConfiguration(mgmtWindowsConfig); + Assert.NotNull(backToPs); + Assert.Equal(scenario.EnableAutomaticUpdates, backToPs.EnableAutomaticUpdates); + } + } + + [Fact] + public void WindowsConfigurationConversions_DefaultBehavior_VerifyDocumentedBehavior() + { + // This test verifies the documented default behavior of WindowsConfiguration + // According to the documentation, if EnableAutomaticUpdates is omitted, the default value is true + + // Test 1: Default PS constructor should result in null (omitted) + var defaultPsConfig = new PSWindowsConfiguration(); + var mgmtFromDefault = defaultPsConfig.toMgmtWindowsConfiguration(); + + Assert.NotNull(mgmtFromDefault); + Assert.Null(mgmtFromDefault.EnableAutomaticUpdates); // Should be null (omitted) + + // Test 2: Default management constructor should result in null + var defaultMgmtConfig = new WindowsConfiguration(); + var psFromDefault = PSWindowsConfiguration.fromMgmtWindowsConfiguration(defaultMgmtConfig); + + Assert.NotNull(psFromDefault); + Assert.Null(psFromDefault.EnableAutomaticUpdates); // Should be null (omitted) + + // Test 3: Explicit null value should remain null + var explicitNullPsConfig = new PSWindowsConfiguration(enableAutomaticUpdates: null); + var mgmtFromNull = explicitNullPsConfig.toMgmtWindowsConfiguration(); + + Assert.NotNull(mgmtFromNull); + Assert.Null(mgmtFromNull.EnableAutomaticUpdates); + + var explicitNullMgmtConfig = new WindowsConfiguration(enableAutomaticUpdates: null); + var psFromNull = PSWindowsConfiguration.fromMgmtWindowsConfiguration(explicitNullMgmtConfig); + + Assert.NotNull(psFromNull); + Assert.Null(psFromNull.EnableAutomaticUpdates); + } + + [Fact] + public void WindowsConfigurationConversions_InstanceCreation_VerifyBehavior() + { + // This test verifies that the conversion methods create appropriate instances + + // Arrange + var psWindowsConfig = new PSWindowsConfiguration(enableAutomaticUpdates: true); + + var mgmtWindowsConfig = new WindowsConfiguration(enableAutomaticUpdates: false); + + // Act + var mgmtResult = psWindowsConfig.toMgmtWindowsConfiguration(); + var psResult = PSWindowsConfiguration.fromMgmtWindowsConfiguration(mgmtWindowsConfig); + + // Assert - Verify proper instance creation + Assert.NotNull(mgmtResult); + Assert.NotNull(psResult); + Assert.IsType(mgmtResult); + Assert.IsType(psResult); + + // Verify new instances are created + Assert.NotSame(mgmtWindowsConfig, mgmtResult); + Assert.NotSame(psWindowsConfig, psResult); + + // Verify correct values + Assert.Equal(true, mgmtResult.EnableAutomaticUpdates); + Assert.Equal(false, psResult.EnableAutomaticUpdates); + } + + #endregion + + #region Performance and Edge Case Tests + + [Fact] + public void WindowsConfigurationConversions_PerformanceTest_ExecutesQuickly() + { + // This test ensures the conversions are efficient + + // Arrange + var psWindowsConfig = new PSWindowsConfiguration(enableAutomaticUpdates: true); + + var mgmtWindowsConfig = new WindowsConfiguration(enableAutomaticUpdates: false); + + // Act & Assert - Multiple conversions should complete without delay + for (int i = 0; i < 10000; i++) + { + var mgmtResult = psWindowsConfig.toMgmtWindowsConfiguration(); + var psResult = PSWindowsConfiguration.fromMgmtWindowsConfiguration(mgmtWindowsConfig); + + Assert.NotNull(mgmtResult); + Assert.NotNull(psResult); + Assert.Equal(true, mgmtResult.EnableAutomaticUpdates); + Assert.Equal(false, psResult.EnableAutomaticUpdates); + } + } + + [Fact] + public void WindowsConfigurationConversions_BooleanNullableHandling_VerifyCorrectness() + { + // This test specifically validates nullable boolean handling across all scenarios + + // Test all possible boolean? values + var testValues = new bool?[] { true, false, null }; + + foreach (var testValue in testValues) + { + // Test PS to Management conversion + var psConfig = new PSWindowsConfiguration(testValue); + var mgmtConfig = psConfig.toMgmtWindowsConfiguration(); + + Assert.NotNull(mgmtConfig); + Assert.Equal(testValue, mgmtConfig.EnableAutomaticUpdates); + + // Test Management to PS conversion + var mgmtConfigForPs = new WindowsConfiguration(testValue); + var psConfigFromMgmt = PSWindowsConfiguration.fromMgmtWindowsConfiguration(mgmtConfigForPs); + + Assert.NotNull(psConfigFromMgmt); + Assert.Equal(testValue, psConfigFromMgmt.EnableAutomaticUpdates); + + // Test round-trip preservation + var roundTripMgmt = psConfigFromMgmt.toMgmtWindowsConfiguration(); + Assert.NotNull(roundTripMgmt); + Assert.Equal(testValue, roundTripMgmt.EnableAutomaticUpdates); + + var roundTripPs = PSWindowsConfiguration.fromMgmtWindowsConfiguration(roundTripMgmt); + Assert.NotNull(roundTripPs); + Assert.Equal(testValue, roundTripPs.EnableAutomaticUpdates); + } + } + + [Fact] + public void WindowsConfigurationConversions_PropertyAccessor_VerifyReadOnlyBehavior() + { + // This test verifies that the EnableAutomaticUpdates property is read-only on PSWindowsConfiguration + // and that the value is set correctly during construction + + // Test with true value + var psConfigTrue = new PSWindowsConfiguration(enableAutomaticUpdates: true); + Assert.Equal(true, psConfigTrue.EnableAutomaticUpdates); + + // Test with false value + var psConfigFalse = new PSWindowsConfiguration(enableAutomaticUpdates: false); + Assert.Equal(false, psConfigFalse.EnableAutomaticUpdates); + + // Test with null value + var psConfigNull = new PSWindowsConfiguration(enableAutomaticUpdates: null); + Assert.Null(psConfigNull.EnableAutomaticUpdates); + + // Test with default constructor + var psConfigDefault = new PSWindowsConfiguration(); + Assert.Null(psConfigDefault.EnableAutomaticUpdates); + + // Verify that fromMgmtWindowsConfiguration creates objects with correct property values + var mgmtConfigTrue = new WindowsConfiguration(enableAutomaticUpdates: true); + var psFromMgmtTrue = PSWindowsConfiguration.fromMgmtWindowsConfiguration(mgmtConfigTrue); + Assert.Equal(true, psFromMgmtTrue.EnableAutomaticUpdates); + + var mgmtConfigFalse = new WindowsConfiguration(enableAutomaticUpdates: false); + var psFromMgmtFalse = PSWindowsConfiguration.fromMgmtWindowsConfiguration(mgmtConfigFalse); + Assert.Equal(false, psFromMgmtFalse.EnableAutomaticUpdates); + } + + [Fact] + public void WindowsConfigurationConversions_BatchPoolIntegration_VerifySemantics() + { + // This test validates the semantic usage in the context of Azure Batch pool creation + // WindowsConfiguration is typically used when creating Windows-based compute nodes + + // Scenario 1: Enterprise production pool with managed updates + var enterpriseConfig = new PSWindowsConfiguration(enableAutomaticUpdates: true); + var enterpriseMgmt = enterpriseConfig.toMgmtWindowsConfiguration(); + + Assert.NotNull(enterpriseMgmt); + Assert.Equal(true, enterpriseMgmt.EnableAutomaticUpdates); + // In production, enabling automatic updates ensures security patches are applied + + // Scenario 2: Development/testing pool with controlled updates + var devConfig = new PSWindowsConfiguration(enableAutomaticUpdates: false); + var devMgmt = devConfig.toMgmtWindowsConfiguration(); + + Assert.NotNull(devMgmt); + Assert.Equal(false, devMgmt.EnableAutomaticUpdates); + // In development, disabling automatic updates provides stability for testing + + // Scenario 3: Default pool configuration (Azure manages the default) + var defaultConfig = new PSWindowsConfiguration(); + var defaultMgmt = defaultConfig.toMgmtWindowsConfiguration(); + + Assert.NotNull(defaultMgmt); + Assert.Null(defaultMgmt.EnableAutomaticUpdates); + // When null, Azure applies the documented default behavior (true) + + // Verify all scenarios preserve semantic meaning through round-trip + var enterpriseRoundTrip = PSWindowsConfiguration.fromMgmtWindowsConfiguration(enterpriseMgmt); + var devRoundTrip = PSWindowsConfiguration.fromMgmtWindowsConfiguration(devMgmt); + var defaultRoundTrip = PSWindowsConfiguration.fromMgmtWindowsConfiguration(defaultMgmt); + + Assert.Equal(true, enterpriseRoundTrip.EnableAutomaticUpdates); + Assert.Equal(false, devRoundTrip.EnableAutomaticUpdates); + Assert.Null(defaultRoundTrip.EnableAutomaticUpdates); + } + + #endregion + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Test/Utils/UtilsCachingTypeTests.cs b/src/Batch/Batch.Test/Utils/UtilsCachingTypeTests.cs new file mode 100644 index 000000000000..d2e656546cd7 --- /dev/null +++ b/src/Batch/Batch.Test/Utils/UtilsCachingTypeTests.cs @@ -0,0 +1,758 @@ +// ----------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ----------------------------------------------------------------------------- + +using Microsoft.Azure.Commands.Batch.Utils; +using Microsoft.Azure.Management.Batch.Models; +using System; +using System.Linq; +using Xunit; + +namespace Microsoft.Azure.Commands.Batch.Test.ModelsConversions +{ + public class UtilsCachingTypeTests + { + #region toMgmtCaching Tests + + [Fact] + public void ToMgmtCaching_None_ReturnsNone() + { + // Arrange + var psCachingType = Microsoft.Azure.Batch.Common.CachingType.None; + + // Act + var result = Utils.Utils.toMgmtCaching(psCachingType); + + // Assert + Assert.NotNull(result); + Assert.Equal(CachingType.None, result.Value); + } + + [Fact] + public void ToMgmtCaching_ReadOnly_ReturnsReadOnly() + { + // Arrange + var psCachingType = Microsoft.Azure.Batch.Common.CachingType.ReadOnly; + + // Act + var result = Utils.Utils.toMgmtCaching(psCachingType); + + // Assert + Assert.NotNull(result); + Assert.Equal(CachingType.ReadOnly, result.Value); + } + + [Fact] + public void ToMgmtCaching_ReadWrite_ReturnsReadWrite() + { + // Arrange + var psCachingType = Microsoft.Azure.Batch.Common.CachingType.ReadWrite; + + // Act + var result = Utils.Utils.toMgmtCaching(psCachingType); + + // Assert + Assert.NotNull(result); + Assert.Equal(CachingType.ReadWrite, result.Value); + } + + [Theory] + [InlineData(Microsoft.Azure.Batch.Common.CachingType.None, CachingType.None)] + [InlineData(Microsoft.Azure.Batch.Common.CachingType.ReadOnly, CachingType.ReadOnly)] + [InlineData(Microsoft.Azure.Batch.Common.CachingType.ReadWrite, CachingType.ReadWrite)] + public void ToMgmtCaching_AllValidValues_ReturnsCorrectMapping( + Microsoft.Azure.Batch.Common.CachingType input, + CachingType expected) + { + // Act + var result = Utils.Utils.toMgmtCaching(input); + + // Assert + Assert.NotNull(result); + Assert.Equal(expected, result.Value); + } + + [Fact] + public void ToMgmtCaching_NullValue_ReturnsNull() + { + // Arrange + Microsoft.Azure.Batch.Common.CachingType? nullCachingType = null; + + // Act + var result = Utils.Utils.toMgmtCaching(nullCachingType); + + // Assert + Assert.Null(result); + } + + [Fact] + public void ToMgmtCaching_DefaultValue_HandlesCorrectly() + { + // Arrange + var defaultValue = default(Microsoft.Azure.Batch.Common.CachingType); + + // Act + var result = Utils.Utils.toMgmtCaching(defaultValue); + + // Assert + Assert.NotNull(result); + // Default CachingType is typically None (0) + Assert.Equal(CachingType.None, result.Value); + } + + [Fact] + public void ToMgmtCaching_EnumValueConsistency_EnsuresCorrectEnumMapping() + { + // This test ensures that the mapping logic correctly handles all defined enum values + // and verifies that the conversion maintains the semantic meaning of each caching type + + // Arrange & Act & Assert + // None: No disk caching + var noneResult = Utils.Utils.toMgmtCaching(Microsoft.Azure.Batch.Common.CachingType.None); + Assert.NotNull(noneResult); + Assert.Equal(CachingType.None, noneResult.Value); + + // ReadOnly: Disk reads are cached, but writes are not + var readOnlyResult = Utils.Utils.toMgmtCaching(Microsoft.Azure.Batch.Common.CachingType.ReadOnly); + Assert.NotNull(readOnlyResult); + Assert.Equal(CachingType.ReadOnly, readOnlyResult.Value); + + // ReadWrite: Both disk reads and writes are cached + var readWriteResult = Utils.Utils.toMgmtCaching(Microsoft.Azure.Batch.Common.CachingType.ReadWrite); + Assert.NotNull(readWriteResult); + Assert.Equal(CachingType.ReadWrite, readWriteResult.Value); + } + + [Fact] + public void ToMgmtCaching_StaticMethod_DoesNotRequireInstance() + { + // This test verifies that the method is properly static and can be called without instantiation + + // Arrange + var psCachingType = Microsoft.Azure.Batch.Common.CachingType.ReadOnly; + + // Act - Call static method directly on class + var result = Utils.Utils.toMgmtCaching(psCachingType); + + // Assert + Assert.NotNull(result); + Assert.Equal(CachingType.ReadOnly, result.Value); + } + + [Fact] + public void ToMgmtCaching_PerformanceTest_ExecutesQuickly() + { + // This test ensures the enum conversion is efficient for all values + + // Arrange + var enumValues = new[] + { + Microsoft.Azure.Batch.Common.CachingType.None, + Microsoft.Azure.Batch.Common.CachingType.ReadOnly, + Microsoft.Azure.Batch.Common.CachingType.ReadWrite + }; + + // Act & Assert - Each conversion should complete without delay + foreach (var value in enumValues) + { + var result = Utils.Utils.toMgmtCaching(value); + Assert.NotNull(result); + Assert.True(Enum.IsDefined(typeof(CachingType), result.Value)); + } + } + + [Fact] + public void ToMgmtCaching_CastingBehavior_VerifyDirectCast() + { + // This test verifies that the conversion uses direct casting as implemented + + // Arrange + var psNone = Microsoft.Azure.Batch.Common.CachingType.None; + var psReadOnly = Microsoft.Azure.Batch.Common.CachingType.ReadOnly; + var psReadWrite = Microsoft.Azure.Batch.Common.CachingType.ReadWrite; + + // Act + var mgmtNone = Utils.Utils.toMgmtCaching(psNone); + var mgmtReadOnly = Utils.Utils.toMgmtCaching(psReadOnly); + var mgmtReadWrite = Utils.Utils.toMgmtCaching(psReadWrite); + + // Assert + Assert.NotNull(mgmtNone); + Assert.NotNull(mgmtReadOnly); + Assert.NotNull(mgmtReadWrite); + + // Verify that the underlying values match (direct cast behavior) + Assert.Equal((int)psNone, (int)mgmtNone.Value); + Assert.Equal((int)psReadOnly, (int)mgmtReadOnly.Value); + Assert.Equal((int)psReadWrite, (int)mgmtReadWrite.Value); + } + + #endregion + + #region fromMgmtCaching Tests + + [Fact] + public void FromMgmtCaching_None_ReturnsNone() + { + // Arrange + var mgmtCachingType = CachingType.None; + + // Act + var result = Utils.Utils.fromMgmtCaching(mgmtCachingType); + + // Assert + Assert.NotNull(result); + Assert.Equal(Microsoft.Azure.Batch.Common.CachingType.None, result.Value); + } + + [Fact] + public void FromMgmtCaching_ReadOnly_ReturnsReadOnly() + { + // Arrange + var mgmtCachingType = CachingType.ReadOnly; + + // Act + var result = Utils.Utils.fromMgmtCaching(mgmtCachingType); + + // Assert + Assert.NotNull(result); + Assert.Equal(Microsoft.Azure.Batch.Common.CachingType.ReadOnly, result.Value); + } + + [Fact] + public void FromMgmtCaching_ReadWrite_ReturnsReadWrite() + { + // Arrange + var mgmtCachingType = CachingType.ReadWrite; + + // Act + var result = Utils.Utils.fromMgmtCaching(mgmtCachingType); + + // Assert + Assert.NotNull(result); + Assert.Equal(Microsoft.Azure.Batch.Common.CachingType.ReadWrite, result.Value); + } + + [Theory] + [InlineData(CachingType.None, Microsoft.Azure.Batch.Common.CachingType.None)] + [InlineData(CachingType.ReadOnly, Microsoft.Azure.Batch.Common.CachingType.ReadOnly)] + [InlineData(CachingType.ReadWrite, Microsoft.Azure.Batch.Common.CachingType.ReadWrite)] + public void FromMgmtCaching_AllValidValues_ReturnsCorrectMapping( + CachingType input, + Microsoft.Azure.Batch.Common.CachingType expected) + { + // Act + var result = Utils.Utils.fromMgmtCaching(input); + + // Assert + Assert.NotNull(result); + Assert.Equal(expected, result.Value); + } + + [Fact] + public void FromMgmtCaching_NullValue_ReturnsNull() + { + // Arrange + CachingType? nullCachingType = null; + + // Act + var result = Utils.Utils.fromMgmtCaching(nullCachingType); + + // Assert + Assert.Null(result); + } + + [Fact] + public void FromMgmtCaching_DefaultValue_HandlesCorrectly() + { + // Arrange + var defaultValue = default(CachingType); + + // Act + var result = Utils.Utils.fromMgmtCaching(defaultValue); + + // Assert + Assert.NotNull(result); + // Default CachingType is typically None (0) + Assert.Equal(Microsoft.Azure.Batch.Common.CachingType.None, result.Value); + } + + [Fact] + public void FromMgmtCaching_EnumValueConsistency_EnsuresCorrectEnumMapping() + { + // This test ensures that the mapping logic correctly handles all defined enum values + // and verifies that the conversion maintains the semantic meaning of each caching type + + // Arrange & Act & Assert + // None: No disk caching + var noneResult = Utils.Utils.fromMgmtCaching(CachingType.None); + Assert.NotNull(noneResult); + Assert.Equal(Microsoft.Azure.Batch.Common.CachingType.None, noneResult.Value); + + // ReadOnly: Disk reads are cached, but writes are not + var readOnlyResult = Utils.Utils.fromMgmtCaching(CachingType.ReadOnly); + Assert.NotNull(readOnlyResult); + Assert.Equal(Microsoft.Azure.Batch.Common.CachingType.ReadOnly, readOnlyResult.Value); + + // ReadWrite: Both disk reads and writes are cached + var readWriteResult = Utils.Utils.fromMgmtCaching(CachingType.ReadWrite); + Assert.NotNull(readWriteResult); + Assert.Equal(Microsoft.Azure.Batch.Common.CachingType.ReadWrite, readWriteResult.Value); + } + + [Fact] + public void FromMgmtCaching_StaticMethod_DoesNotRequireInstance() + { + // This test verifies that the method is properly static and can be called without instantiation + + // Arrange + var mgmtCachingType = CachingType.ReadWrite; + + // Act - Call static method directly on class + var result = Utils.Utils.fromMgmtCaching(mgmtCachingType); + + // Assert + Assert.NotNull(result); + Assert.Equal(Microsoft.Azure.Batch.Common.CachingType.ReadWrite, result.Value); + } + + [Fact] + public void FromMgmtCaching_PerformanceTest_ExecutesQuickly() + { + // This test ensures the enum conversion is efficient for all values + + // Arrange + var enumValues = new CachingType?[] + { + CachingType.None, + CachingType.ReadOnly, + CachingType.ReadWrite, + null + }; + + // Act & Assert - Each conversion should complete without delay + foreach (var value in enumValues) + { + var result = Utils.Utils.fromMgmtCaching(value); + if (value.HasValue) + { + Assert.NotNull(result); + Assert.True(Enum.IsDefined(typeof(Microsoft.Azure.Batch.Common.CachingType), result.Value)); + } + else + { + Assert.Null(result); + } + } + } + + [Fact] + public void FromMgmtCaching_AcceptsNullableType() + { + // This test verifies that the method accepts a nullable CachingType + + // Arrange + CachingType? nullableValue = CachingType.ReadOnly; + + // Act + var result = Utils.Utils.fromMgmtCaching(nullableValue); + + // Assert + Assert.NotNull(result); + Assert.Equal(Microsoft.Azure.Batch.Common.CachingType.ReadOnly, result.Value); + } + + [Fact] + public void FromMgmtCaching_CastingBehavior_VerifyDirectCast() + { + // This test verifies that the conversion uses direct casting as implemented + + // Arrange + var mgmtNone = CachingType.None; + var mgmtReadOnly = CachingType.ReadOnly; + var mgmtReadWrite = CachingType.ReadWrite; + + // Act + var psNone = Utils.Utils.fromMgmtCaching(mgmtNone); + var psReadOnly = Utils.Utils.fromMgmtCaching(mgmtReadOnly); + var psReadWrite = Utils.Utils.fromMgmtCaching(mgmtReadWrite); + + // Assert + Assert.NotNull(psNone); + Assert.NotNull(psReadOnly); + Assert.NotNull(psReadWrite); + + // Verify that the underlying values match (direct cast behavior) + Assert.Equal((int)mgmtNone, (int)psNone.Value); + Assert.Equal((int)mgmtReadOnly, (int)psReadOnly.Value); + Assert.Equal((int)mgmtReadWrite, (int)psReadWrite.Value); + } + + #endregion + + #region Round-trip Conversion Tests + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesNoneValue() + { + // Arrange + var originalPsCachingType = Microsoft.Azure.Batch.Common.CachingType.None; + + // Act + var mgmtCachingType = Utils.Utils.toMgmtCaching(originalPsCachingType); + var roundTripPsCachingType = Utils.Utils.fromMgmtCaching(mgmtCachingType); + + // Assert + Assert.NotNull(roundTripPsCachingType); + Assert.Equal(originalPsCachingType, roundTripPsCachingType.Value); + } + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesReadOnlyValue() + { + // Arrange + var originalPsCachingType = Microsoft.Azure.Batch.Common.CachingType.ReadOnly; + + // Act + var mgmtCachingType = Utils.Utils.toMgmtCaching(originalPsCachingType); + var roundTripPsCachingType = Utils.Utils.fromMgmtCaching(mgmtCachingType); + + // Assert + Assert.NotNull(roundTripPsCachingType); + Assert.Equal(originalPsCachingType, roundTripPsCachingType.Value); + } + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesReadWriteValue() + { + // Arrange + var originalPsCachingType = Microsoft.Azure.Batch.Common.CachingType.ReadWrite; + + // Act + var mgmtCachingType = Utils.Utils.toMgmtCaching(originalPsCachingType); + var roundTripPsCachingType = Utils.Utils.fromMgmtCaching(mgmtCachingType); + + // Assert + Assert.NotNull(roundTripPsCachingType); + Assert.Equal(originalPsCachingType, roundTripPsCachingType.Value); + } + + [Theory] + [InlineData(Microsoft.Azure.Batch.Common.CachingType.None)] + [InlineData(Microsoft.Azure.Batch.Common.CachingType.ReadOnly)] + [InlineData(Microsoft.Azure.Batch.Common.CachingType.ReadWrite)] + public void RoundTripConversion_AllValidValues_PreservesOriginalValue( + Microsoft.Azure.Batch.Common.CachingType originalCachingType) + { + // Act + var mgmtCachingType = Utils.Utils.toMgmtCaching(originalCachingType); + var roundTripCachingType = Utils.Utils.fromMgmtCaching(mgmtCachingType); + + // Assert + Assert.NotNull(roundTripCachingType); + Assert.Equal(originalCachingType, roundTripCachingType.Value); + } + + [Fact] + public void RoundTripConversion_FromMgmtAndToMgmt_PreservesValues() + { + // Arrange + var originalMgmtValues = new[] + { + CachingType.None, + CachingType.ReadOnly, + CachingType.ReadWrite + }; + + foreach (var originalValue in originalMgmtValues) + { + // Act + var psValue = Utils.Utils.fromMgmtCaching(originalValue); + var roundTripValue = Utils.Utils.toMgmtCaching(psValue); + + // Assert + Assert.NotNull(roundTripValue); + Assert.Equal(originalValue, roundTripValue.Value); + } + } + + [Fact] + public void RoundTripConversion_NullHandling_WorksCorrectly() + { + // This test verifies null handling in round-trip conversions + + // Arrange + Microsoft.Azure.Batch.Common.CachingType? nullPsValue = null; + CachingType? nullMgmtValue = null; + + // Act + var mgmtFromNullPs = Utils.Utils.toMgmtCaching(nullPsValue); + var psFromNullMgmt = Utils.Utils.fromMgmtCaching(nullMgmtValue); + + // Assert + Assert.Null(mgmtFromNullPs); + Assert.Null(psFromNullMgmt); + } + + #endregion + + #region Enum Value Verification Tests + + [Fact] + public void CachingType_VerifyEnumMemberCount_EnsuresAllValuesHandled() + { + // This test helps ensure that if new enum values are added, the conversion methods are updated + + // Arrange + var psCachingTypeValues = Enum.GetValues(typeof(Microsoft.Azure.Batch.Common.CachingType)); + var mgmtCachingTypeValues = Enum.GetValues(typeof(CachingType)); + + // Act & Assert + // Verify that both enums have the same number of values (assuming 1:1 mapping) + Assert.Equal(psCachingTypeValues.Length, mgmtCachingTypeValues.Length); + + // Verify that each PS enum value can be converted successfully + foreach (Microsoft.Azure.Batch.Common.CachingType psValue in psCachingTypeValues) + { + var result = Utils.Utils.toMgmtCaching(psValue); + Assert.NotNull(result); + Assert.True(Enum.IsDefined(typeof(CachingType), result.Value)); + } + + // Verify that each management enum value can be converted successfully + foreach (CachingType mgmtValue in mgmtCachingTypeValues) + { + var result = Utils.Utils.fromMgmtCaching(mgmtValue); + Assert.NotNull(result); + Assert.True(Enum.IsDefined(typeof(Microsoft.Azure.Batch.Common.CachingType), result.Value)); + } + } + + [Fact] + public void CachingType_BijectiveMapping_EnsuresUniqueConversion() + { + // This test verifies that the mapping is bijective (one-to-one) + + // Arrange + var psValues = new[] + { + Microsoft.Azure.Batch.Common.CachingType.None, + Microsoft.Azure.Batch.Common.CachingType.ReadOnly, + Microsoft.Azure.Batch.Common.CachingType.ReadWrite + }; + + var mgmtValues = new[] + { + CachingType.None, + CachingType.ReadOnly, + CachingType.ReadWrite + }; + + // Act - Convert PS to Management + var convertedMgmtValues = new CachingType?[psValues.Length]; + for (int i = 0; i < psValues.Length; i++) + { + convertedMgmtValues[i] = Utils.Utils.toMgmtCaching(psValues[i]); + } + + // Act - Convert Management to PS + var convertedPsValues = new Microsoft.Azure.Batch.Common.CachingType?[mgmtValues.Length]; + for (int i = 0; i < mgmtValues.Length; i++) + { + convertedPsValues[i] = Utils.Utils.fromMgmtCaching(mgmtValues[i]); + } + + // Assert - Each management enum value should be unique (no duplicates) + var distinctMgmtValues = convertedMgmtValues.Where(v => v.HasValue).Select(v => v.Value).Distinct().ToArray(); + Assert.Equal(convertedMgmtValues.Count(v => v.HasValue), distinctMgmtValues.Length); + + // Assert - Each PS enum value should be unique (no duplicates) + var distinctPsValues = convertedPsValues.Where(v => v.HasValue).Select(v => v.Value).Distinct().ToArray(); + Assert.Equal(convertedPsValues.Count(v => v.HasValue), distinctPsValues.Length); + } + + #endregion + + #region Integration Tests + + [Fact] + public void CachingTypeConversions_BothDirections_MaintainSemanticEquivalence() + { + // This test ensures that the semantic meaning is preserved across conversions + + // Test None semantics - No caching applied + var psNone = Microsoft.Azure.Batch.Common.CachingType.None; + var mgmtNone = Utils.Utils.toMgmtCaching(psNone); + var backToPs = Utils.Utils.fromMgmtCaching(mgmtNone); + + Assert.NotNull(mgmtNone); + Assert.Equal(CachingType.None, mgmtNone.Value); + Assert.NotNull(backToPs); + Assert.Equal(psNone, backToPs.Value); + + // Test ReadOnly semantics - Cache disk reads only + var psReadOnly = Microsoft.Azure.Batch.Common.CachingType.ReadOnly; + var mgmtReadOnly = Utils.Utils.toMgmtCaching(psReadOnly); + var backToPsReadOnly = Utils.Utils.fromMgmtCaching(mgmtReadOnly); + + Assert.NotNull(mgmtReadOnly); + Assert.Equal(CachingType.ReadOnly, mgmtReadOnly.Value); + Assert.NotNull(backToPsReadOnly); + Assert.Equal(psReadOnly, backToPsReadOnly.Value); + + // Test ReadWrite semantics - Cache both reads and writes + var psReadWrite = Microsoft.Azure.Batch.Common.CachingType.ReadWrite; + var mgmtReadWrite = Utils.Utils.toMgmtCaching(psReadWrite); + var backToPsReadWrite = Utils.Utils.fromMgmtCaching(mgmtReadWrite); + + Assert.NotNull(mgmtReadWrite); + Assert.Equal(CachingType.ReadWrite, mgmtReadWrite.Value); + Assert.NotNull(backToPsReadWrite); + Assert.Equal(psReadWrite, backToPsReadWrite.Value); + } + + [Fact] + public void CachingTypeConversions_NullabilityHandling_VerifyBehavior() + { + // This test verifies the nullable handling in these conversion methods + + // toMgmtCaching returns null for null input + Microsoft.Azure.Batch.Common.CachingType? nullInput = null; + var result = Utils.Utils.toMgmtCaching(nullInput); + Assert.Null(result); + + // fromMgmtCaching returns null for null input + CachingType? nullMgmtInput = null; + var mgmtResult = Utils.Utils.fromMgmtCaching(nullMgmtInput); + Assert.Null(mgmtResult); + + // Both methods handle nullable types correctly + CachingType? nullableReadWrite = CachingType.ReadWrite; + var nonNullResult = Utils.Utils.fromMgmtCaching(nullableReadWrite); + Assert.NotNull(nonNullResult); + Assert.Equal(Microsoft.Azure.Batch.Common.CachingType.ReadWrite, nonNullResult.Value); + } + + [Fact] + public void CachingTypeConversions_BatchDataDiskContext_VerifyCorrectUsage() + { + // This test validates the conversions work correctly in the context of Batch data disk configuration + // CachingType is used to specify disk caching behavior for data disks in Azure Batch + + // Arrange - Test with different caching scenarios + var diskCachingScenarios = new[] + { + // High-performance scenario with read-write caching + new { + CachingType = Microsoft.Azure.Batch.Common.CachingType.ReadWrite, + Description = "High-performance workload with read-write caching for optimal performance" + }, + // Read-heavy scenario with read-only caching + new { + CachingType = Microsoft.Azure.Batch.Common.CachingType.ReadOnly, + Description = "Read-heavy workload with read-only caching to optimize read operations" + }, + // Write-heavy scenario with no caching + new { + CachingType = Microsoft.Azure.Batch.Common.CachingType.None, + Description = "Write-heavy workload with no caching to ensure data consistency" + } + }; + + foreach (var scenario in diskCachingScenarios) + { + // Act + var mgmtCachingType = Utils.Utils.toMgmtCaching(scenario.CachingType); + + // Assert - Should convert correctly for Batch data disk configuration + Assert.NotNull(mgmtCachingType); + + var expectedMgmtType = scenario.CachingType == Microsoft.Azure.Batch.Common.CachingType.None + ? CachingType.None + : scenario.CachingType == Microsoft.Azure.Batch.Common.CachingType.ReadOnly + ? CachingType.ReadOnly + : CachingType.ReadWrite; + Assert.Equal(expectedMgmtType, mgmtCachingType.Value); + + // Verify round-trip conversion maintains disk caching semantics + var backToPs = Utils.Utils.fromMgmtCaching(mgmtCachingType); + Assert.NotNull(backToPs); + Assert.Equal(scenario.CachingType, backToPs.Value); + } + } + + [Fact] + public void CachingTypeConversions_DirectCastingBehavior_VerifyImplementation() + { + // This test verifies that the methods use direct casting as implemented + // This is important because it ensures the enum values have the same underlying representation + + // Test that conversion preserves underlying integer values + foreach (Microsoft.Azure.Batch.Common.CachingType psValue in Enum.GetValues(typeof(Microsoft.Azure.Batch.Common.CachingType))) + { + var mgmtResult = Utils.Utils.toMgmtCaching(psValue); + Assert.NotNull(mgmtResult); + Assert.Equal((int)psValue, (int)mgmtResult.Value); + } + + foreach (CachingType mgmtValue in Enum.GetValues(typeof(CachingType))) + { + var psResult = Utils.Utils.fromMgmtCaching(mgmtValue); + Assert.NotNull(psResult); + Assert.Equal((int)mgmtValue, (int)psResult.Value); + } + } + + [Fact] + public void CachingTypeConversions_DataDiskIntegration_VerifySemantics() + { + // This test validates the semantic usage in the context of Azure Batch data disk configuration + // CachingType determines how disk I/O operations are cached for performance optimization + + // None caching semantics - No caching for write-intensive workloads + var noneType = Microsoft.Azure.Batch.Common.CachingType.None; + var mgmtNoneType = Utils.Utils.toMgmtCaching(noneType); + + Assert.NotNull(mgmtNoneType); + Assert.Equal(CachingType.None, mgmtNoneType.Value); + // Use case: Database workloads where data consistency is critical + + // ReadOnly caching semantics - Cache reads for read-heavy workloads + var readOnlyType = Microsoft.Azure.Batch.Common.CachingType.ReadOnly; + var mgmtReadOnlyType = Utils.Utils.toMgmtCaching(readOnlyType); + + Assert.NotNull(mgmtReadOnlyType); + Assert.Equal(CachingType.ReadOnly, mgmtReadOnlyType.Value); + // Use case: Analytics workloads with frequent data reads + + // ReadWrite caching semantics - Cache both reads and writes for high performance + var readWriteType = Microsoft.Azure.Batch.Common.CachingType.ReadWrite; + var mgmtReadWriteType = Utils.Utils.toMgmtCaching(readWriteType); + + Assert.NotNull(mgmtReadWriteType); + Assert.Equal(CachingType.ReadWrite, mgmtReadWriteType.Value); + // Use case: General-purpose workloads requiring optimal I/O performance + + // Verify all round-trip correctly + var noneRoundTrip = Utils.Utils.fromMgmtCaching(mgmtNoneType); + var readOnlyRoundTrip = Utils.Utils.fromMgmtCaching(mgmtReadOnlyType); + var readWriteRoundTrip = Utils.Utils.fromMgmtCaching(mgmtReadWriteType); + + Assert.Equal(noneType, noneRoundTrip.Value); + Assert.Equal(readOnlyType, readOnlyRoundTrip.Value); + Assert.Equal(readWriteType, readWriteRoundTrip.Value); + } + + #endregion + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Test/Utils/UtilsDiskEncryptionTargetTests.cs b/src/Batch/Batch.Test/Utils/UtilsDiskEncryptionTargetTests.cs new file mode 100644 index 000000000000..bbc053f1ae81 --- /dev/null +++ b/src/Batch/Batch.Test/Utils/UtilsDiskEncryptionTargetTests.cs @@ -0,0 +1,627 @@ +// ----------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ----------------------------------------------------------------------------- + +using Microsoft.Azure.Commands.Batch.Utils; +using Microsoft.Azure.Management.Batch.Models; +using System; +using System.Linq; +using Xunit; + +namespace Microsoft.Azure.Commands.Batch.Test.ModelsConversions +{ + public class UtilsDiskEncryptionTargetTests + { + #region toMgmtDiskEncryptionTarget Tests + + [Fact] + public void ToMgmtDiskEncryptionTarget_OsDisk_ReturnsOsDisk() + { + // Arrange + var psDiskEncryptionTarget = Microsoft.Azure.Batch.Common.DiskEncryptionTarget.OsDisk; + + // Act + var result = Utils.Utils.toMgmtDiskEncryptionTarget(psDiskEncryptionTarget); + + // Assert + Assert.Equal(DiskEncryptionTarget.OsDisk, result); + } + + [Fact] + public void ToMgmtDiskEncryptionTarget_TemporaryDisk_ReturnsTemporaryDisk() + { + // Arrange + var psDiskEncryptionTarget = Microsoft.Azure.Batch.Common.DiskEncryptionTarget.TemporaryDisk; + + // Act + var result = Utils.Utils.toMgmtDiskEncryptionTarget(psDiskEncryptionTarget); + + // Assert + Assert.Equal(DiskEncryptionTarget.TemporaryDisk, result); + } + + [Theory] + [InlineData(Microsoft.Azure.Batch.Common.DiskEncryptionTarget.OsDisk, DiskEncryptionTarget.OsDisk)] + [InlineData(Microsoft.Azure.Batch.Common.DiskEncryptionTarget.TemporaryDisk, DiskEncryptionTarget.TemporaryDisk)] + public void ToMgmtDiskEncryptionTarget_AllValidValues_ReturnsCorrectMapping( + Microsoft.Azure.Batch.Common.DiskEncryptionTarget input, + DiskEncryptionTarget expected) + { + // Act + var result = Utils.Utils.toMgmtDiskEncryptionTarget(input); + + // Assert + Assert.Equal(expected, result); + } + + [Fact] + public void ToMgmtDiskEncryptionTarget_DefaultValue_HandlesCorrectly() + { + // Arrange + var defaultValue = default(Microsoft.Azure.Batch.Common.DiskEncryptionTarget); + + // Act + var result = Utils.Utils.toMgmtDiskEncryptionTarget(defaultValue); + + // Assert + // Default DiskEncryptionTarget is typically OsDisk (0) + Assert.Equal(DiskEncryptionTarget.OsDisk, result); + } + + [Fact] + public void ToMgmtDiskEncryptionTarget_EnumValueConsistency_EnsuresCorrectEnumMapping() + { + // This test ensures that the mapping logic correctly handles all defined enum values + // and verifies that the conversion maintains the semantic meaning of each disk encryption target + + // Arrange & Act & Assert + // OsDisk: Encrypt the OS disk + var osDiskResult = Utils.Utils.toMgmtDiskEncryptionTarget(Microsoft.Azure.Batch.Common.DiskEncryptionTarget.OsDisk); + Assert.Equal(DiskEncryptionTarget.OsDisk, osDiskResult); + + // TemporaryDisk: Encrypt the temporary disk + var temporaryDiskResult = Utils.Utils.toMgmtDiskEncryptionTarget(Microsoft.Azure.Batch.Common.DiskEncryptionTarget.TemporaryDisk); + Assert.Equal(DiskEncryptionTarget.TemporaryDisk, temporaryDiskResult); + } + + [Fact] + public void ToMgmtDiskEncryptionTarget_StaticMethod_DoesNotRequireInstance() + { + // This test verifies that the method is properly static and can be called without instantiation + + // Arrange + var psDiskEncryptionTarget = Microsoft.Azure.Batch.Common.DiskEncryptionTarget.TemporaryDisk; + + // Act - Call static method directly on class + var result = Utils.Utils.toMgmtDiskEncryptionTarget(psDiskEncryptionTarget); + + // Assert + Assert.Equal(DiskEncryptionTarget.TemporaryDisk, result); + } + + [Fact] + public void ToMgmtDiskEncryptionTarget_PerformanceTest_ExecutesQuickly() + { + // This test ensures the enum conversion is efficient for all values + + // Arrange + var enumValues = new[] + { + Microsoft.Azure.Batch.Common.DiskEncryptionTarget.OsDisk, + Microsoft.Azure.Batch.Common.DiskEncryptionTarget.TemporaryDisk + }; + + // Act & Assert - Each conversion should complete without delay + foreach (var value in enumValues) + { + var result = Utils.Utils.toMgmtDiskEncryptionTarget(value); + Assert.True(Enum.IsDefined(typeof(DiskEncryptionTarget), result)); + } + } + + [Fact] + public void ToMgmtDiskEncryptionTarget_ReturnsNonNullableType() + { + // This test verifies that the method returns a non-nullable DiskEncryptionTarget + + // Arrange + var psDiskEncryptionTarget = Microsoft.Azure.Batch.Common.DiskEncryptionTarget.OsDisk; + + // Act + var result = Utils.Utils.toMgmtDiskEncryptionTarget(psDiskEncryptionTarget); + + // Assert + Assert.IsType(result); + } + + [Fact] + public void ToMgmtDiskEncryptionTarget_CastingBehavior_VerifyDirectCast() + { + // This test verifies that the conversion uses direct casting as implemented + + // Arrange + var psOsDisk = Microsoft.Azure.Batch.Common.DiskEncryptionTarget.OsDisk; + var psTemporaryDisk = Microsoft.Azure.Batch.Common.DiskEncryptionTarget.TemporaryDisk; + + // Act + var mgmtOsDisk = Utils.Utils.toMgmtDiskEncryptionTarget(psOsDisk); + var mgmtTemporaryDisk = Utils.Utils.toMgmtDiskEncryptionTarget(psTemporaryDisk); + + // Assert + // Verify that the underlying values match (direct cast behavior) + Assert.Equal((int)psOsDisk, (int)mgmtOsDisk); + Assert.Equal((int)psTemporaryDisk, (int)mgmtTemporaryDisk); + } + + #endregion + + #region fromMgmtDiskEncryptionTarget Tests + + [Fact] + public void FromMgmtDiskEncryptionTarget_OsDisk_ReturnsOsDisk() + { + // Arrange + var mgmtDiskEncryptionTarget = DiskEncryptionTarget.OsDisk; + + // Act + var result = Utils.Utils.fromMgmtDiskEncryptionTarget(mgmtDiskEncryptionTarget); + + // Assert + Assert.Equal(Microsoft.Azure.Batch.Common.DiskEncryptionTarget.OsDisk, result); + } + + [Fact] + public void FromMgmtDiskEncryptionTarget_TemporaryDisk_ReturnsTemporaryDisk() + { + // Arrange + var mgmtDiskEncryptionTarget = DiskEncryptionTarget.TemporaryDisk; + + // Act + var result = Utils.Utils.fromMgmtDiskEncryptionTarget(mgmtDiskEncryptionTarget); + + // Assert + Assert.Equal(Microsoft.Azure.Batch.Common.DiskEncryptionTarget.TemporaryDisk, result); + } + + [Theory] + [InlineData(DiskEncryptionTarget.OsDisk, Microsoft.Azure.Batch.Common.DiskEncryptionTarget.OsDisk)] + [InlineData(DiskEncryptionTarget.TemporaryDisk, Microsoft.Azure.Batch.Common.DiskEncryptionTarget.TemporaryDisk)] + public void FromMgmtDiskEncryptionTarget_AllValidValues_ReturnsCorrectMapping( + DiskEncryptionTarget input, + Microsoft.Azure.Batch.Common.DiskEncryptionTarget expected) + { + // Act + var result = Utils.Utils.fromMgmtDiskEncryptionTarget(input); + + // Assert + Assert.Equal(expected, result); + } + + [Fact] + public void FromMgmtDiskEncryptionTarget_DefaultValue_HandlesCorrectly() + { + // Arrange + var defaultValue = default(DiskEncryptionTarget); + + // Act + var result = Utils.Utils.fromMgmtDiskEncryptionTarget(defaultValue); + + // Assert + // Default DiskEncryptionTarget is typically OsDisk (0) + Assert.Equal(Microsoft.Azure.Batch.Common.DiskEncryptionTarget.OsDisk, result); + } + + [Fact] + public void FromMgmtDiskEncryptionTarget_EnumValueConsistency_EnsuresCorrectEnumMapping() + { + // This test ensures that the mapping logic correctly handles all defined enum values + // and verifies that the conversion maintains the semantic meaning of each disk encryption target + + // Arrange & Act & Assert + // OsDisk: Encrypt the OS disk + var osDiskResult = Utils.Utils.fromMgmtDiskEncryptionTarget(DiskEncryptionTarget.OsDisk); + Assert.Equal(Microsoft.Azure.Batch.Common.DiskEncryptionTarget.OsDisk, osDiskResult); + + // TemporaryDisk: Encrypt the temporary disk + var temporaryDiskResult = Utils.Utils.fromMgmtDiskEncryptionTarget(DiskEncryptionTarget.TemporaryDisk); + Assert.Equal(Microsoft.Azure.Batch.Common.DiskEncryptionTarget.TemporaryDisk, temporaryDiskResult); + } + + [Fact] + public void FromMgmtDiskEncryptionTarget_StaticMethod_DoesNotRequireInstance() + { + // This test verifies that the method is properly static and can be called without instantiation + + // Arrange + var mgmtDiskEncryptionTarget = DiskEncryptionTarget.OsDisk; + + // Act - Call static method directly on class + var result = Utils.Utils.fromMgmtDiskEncryptionTarget(mgmtDiskEncryptionTarget); + + // Assert + Assert.Equal(Microsoft.Azure.Batch.Common.DiskEncryptionTarget.OsDisk, result); + } + + [Fact] + public void FromMgmtDiskEncryptionTarget_PerformanceTest_ExecutesQuickly() + { + // This test ensures the enum conversion is efficient for all values + + // Arrange + var enumValues = new[] + { + DiskEncryptionTarget.OsDisk, + DiskEncryptionTarget.TemporaryDisk + }; + + // Act & Assert - Each conversion should complete without delay + foreach (var value in enumValues) + { + var result = Utils.Utils.fromMgmtDiskEncryptionTarget(value); + Assert.True(Enum.IsDefined(typeof(Microsoft.Azure.Batch.Common.DiskEncryptionTarget), result)); + } + } + + [Fact] + public void FromMgmtDiskEncryptionTarget_ReturnsNonNullableType() + { + // This test verifies that the method returns a non-nullable DiskEncryptionTarget + + // Arrange + var mgmtDiskEncryptionTarget = DiskEncryptionTarget.TemporaryDisk; + + // Act + var result = Utils.Utils.fromMgmtDiskEncryptionTarget(mgmtDiskEncryptionTarget); + + // Assert + Assert.IsType(result); + } + + [Fact] + public void FromMgmtDiskEncryptionTarget_CastingBehavior_VerifyDirectCast() + { + // This test verifies that the conversion uses direct casting as implemented + + // Arrange + var mgmtOsDisk = DiskEncryptionTarget.OsDisk; + var mgmtTemporaryDisk = DiskEncryptionTarget.TemporaryDisk; + + // Act + var psOsDisk = Utils.Utils.fromMgmtDiskEncryptionTarget(mgmtOsDisk); + var psTemporaryDisk = Utils.Utils.fromMgmtDiskEncryptionTarget(mgmtTemporaryDisk); + + // Assert + // Verify that the underlying values match (direct cast behavior) + Assert.Equal((int)mgmtOsDisk, (int)psOsDisk); + Assert.Equal((int)mgmtTemporaryDisk, (int)psTemporaryDisk); + } + + #endregion + + #region Round-trip Conversion Tests + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesOsDiskValue() + { + // Arrange + var originalPsDiskEncryptionTarget = Microsoft.Azure.Batch.Common.DiskEncryptionTarget.OsDisk; + + // Act + var mgmtDiskEncryptionTarget = Utils.Utils.toMgmtDiskEncryptionTarget(originalPsDiskEncryptionTarget); + var roundTripPsDiskEncryptionTarget = Utils.Utils.fromMgmtDiskEncryptionTarget(mgmtDiskEncryptionTarget); + + // Assert + Assert.Equal(originalPsDiskEncryptionTarget, roundTripPsDiskEncryptionTarget); + } + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesTemporaryDiskValue() + { + // Arrange + var originalPsDiskEncryptionTarget = Microsoft.Azure.Batch.Common.DiskEncryptionTarget.TemporaryDisk; + + // Act + var mgmtDiskEncryptionTarget = Utils.Utils.toMgmtDiskEncryptionTarget(originalPsDiskEncryptionTarget); + var roundTripPsDiskEncryptionTarget = Utils.Utils.fromMgmtDiskEncryptionTarget(mgmtDiskEncryptionTarget); + + // Assert + Assert.Equal(originalPsDiskEncryptionTarget, roundTripPsDiskEncryptionTarget); + } + + [Theory] + [InlineData(Microsoft.Azure.Batch.Common.DiskEncryptionTarget.OsDisk)] + [InlineData(Microsoft.Azure.Batch.Common.DiskEncryptionTarget.TemporaryDisk)] + public void RoundTripConversion_AllValidValues_PreservesOriginalValue( + Microsoft.Azure.Batch.Common.DiskEncryptionTarget originalDiskEncryptionTarget) + { + // Act + var mgmtDiskEncryptionTarget = Utils.Utils.toMgmtDiskEncryptionTarget(originalDiskEncryptionTarget); + var roundTripDiskEncryptionTarget = Utils.Utils.fromMgmtDiskEncryptionTarget(mgmtDiskEncryptionTarget); + + // Assert + Assert.Equal(originalDiskEncryptionTarget, roundTripDiskEncryptionTarget); + } + + [Fact] + public void RoundTripConversion_FromMgmtAndToMgmt_PreservesValues() + { + // Arrange + var originalMgmtValues = new[] + { + DiskEncryptionTarget.OsDisk, + DiskEncryptionTarget.TemporaryDisk + }; + + foreach (var originalValue in originalMgmtValues) + { + // Act + var psValue = Utils.Utils.fromMgmtDiskEncryptionTarget(originalValue); + var roundTripValue = Utils.Utils.toMgmtDiskEncryptionTarget(psValue); + + // Assert + Assert.Equal(originalValue, roundTripValue); + } + } + + #endregion + + #region Enum Value Verification Tests + + [Fact] + public void DiskEncryptionTarget_VerifyEnumMemberCount_EnsuresAllValuesHandled() + { + // This test helps ensure that if new enum values are added, the conversion methods are updated + + // Arrange + var psDiskEncryptionTargetValues = Enum.GetValues(typeof(Microsoft.Azure.Batch.Common.DiskEncryptionTarget)); + var mgmtDiskEncryptionTargetValues = Enum.GetValues(typeof(DiskEncryptionTarget)); + + // Act & Assert + // Verify that both enums have the same number of values (assuming 1:1 mapping) + Assert.Equal(psDiskEncryptionTargetValues.Length, mgmtDiskEncryptionTargetValues.Length); + + // Verify that each PS enum value can be converted successfully + foreach (Microsoft.Azure.Batch.Common.DiskEncryptionTarget psValue in psDiskEncryptionTargetValues) + { + var result = Utils.Utils.toMgmtDiskEncryptionTarget(psValue); + Assert.True(Enum.IsDefined(typeof(DiskEncryptionTarget), result)); + } + + // Verify that each management enum value can be converted successfully + foreach (DiskEncryptionTarget mgmtValue in mgmtDiskEncryptionTargetValues) + { + var result = Utils.Utils.fromMgmtDiskEncryptionTarget(mgmtValue); + Assert.True(Enum.IsDefined(typeof(Microsoft.Azure.Batch.Common.DiskEncryptionTarget), result)); + } + } + + [Fact] + public void DiskEncryptionTarget_BijectiveMapping_EnsuresUniqueConversion() + { + // This test verifies that the mapping is bijective (one-to-one) + + // Arrange + var psValues = new[] + { + Microsoft.Azure.Batch.Common.DiskEncryptionTarget.OsDisk, + Microsoft.Azure.Batch.Common.DiskEncryptionTarget.TemporaryDisk + }; + + var mgmtValues = new[] + { + DiskEncryptionTarget.OsDisk, + DiskEncryptionTarget.TemporaryDisk + }; + + // Act - Convert PS to Management + var convertedMgmtValues = new DiskEncryptionTarget[psValues.Length]; + for (int i = 0; i < psValues.Length; i++) + { + convertedMgmtValues[i] = Utils.Utils.toMgmtDiskEncryptionTarget(psValues[i]); + } + + // Act - Convert Management to PS + var convertedPsValues = new Microsoft.Azure.Batch.Common.DiskEncryptionTarget[mgmtValues.Length]; + for (int i = 0; i < mgmtValues.Length; i++) + { + convertedPsValues[i] = Utils.Utils.fromMgmtDiskEncryptionTarget(mgmtValues[i]); + } + + // Assert - Each management enum value should be unique (no duplicates) + var distinctMgmtValues = convertedMgmtValues.Distinct().ToArray(); + Assert.Equal(convertedMgmtValues.Length, distinctMgmtValues.Length); + + // Assert - Each PS enum value should be unique (no duplicates) + var distinctPsValues = convertedPsValues.Distinct().ToArray(); + Assert.Equal(convertedPsValues.Length, distinctPsValues.Length); + } + + #endregion + + #region Integration Tests + + [Fact] + public void DiskEncryptionTargetConversions_BothDirections_MaintainSemanticEquivalence() + { + // This test ensures that the semantic meaning is preserved across conversions + + // Test OsDisk semantics - Encrypt the operating system disk + var psOsDisk = Microsoft.Azure.Batch.Common.DiskEncryptionTarget.OsDisk; + var mgmtOsDisk = Utils.Utils.toMgmtDiskEncryptionTarget(psOsDisk); + var backToPs = Utils.Utils.fromMgmtDiskEncryptionTarget(mgmtOsDisk); + + Assert.Equal(DiskEncryptionTarget.OsDisk, mgmtOsDisk); + Assert.Equal(psOsDisk, backToPs); + + // Test TemporaryDisk semantics - Encrypt the temporary disk + var psTemporaryDisk = Microsoft.Azure.Batch.Common.DiskEncryptionTarget.TemporaryDisk; + var mgmtTemporaryDisk = Utils.Utils.toMgmtDiskEncryptionTarget(psTemporaryDisk); + var backToPsTemporary = Utils.Utils.fromMgmtDiskEncryptionTarget(mgmtTemporaryDisk); + + Assert.Equal(DiskEncryptionTarget.TemporaryDisk, mgmtTemporaryDisk); + Assert.Equal(psTemporaryDisk, backToPsTemporary); + } + + [Fact] + public void DiskEncryptionTargetConversions_BatchDiskEncryptionContext_VerifyCorrectUsage() + { + // This test validates the conversions work correctly in the context of Batch disk encryption configuration + // DiskEncryptionTarget is used to specify which disks should be encrypted on Batch compute nodes + + // Arrange - Test with different disk encryption scenarios + var diskEncryptionScenarios = new[] + { + // OS disk encryption for secure boot and system files + new { + DiskEncryptionTarget = Microsoft.Azure.Batch.Common.DiskEncryptionTarget.OsDisk, + Description = "Encrypt OS disk for secure boot and system file protection" + }, + // Temporary disk encryption for application data and temp files + new { + DiskEncryptionTarget = Microsoft.Azure.Batch.Common.DiskEncryptionTarget.TemporaryDisk, + Description = "Encrypt temporary disk for application data and temp file protection" + } + }; + + foreach (var scenario in diskEncryptionScenarios) + { + // Act + var mgmtDiskEncryptionTarget = Utils.Utils.toMgmtDiskEncryptionTarget(scenario.DiskEncryptionTarget); + + // Assert - Should convert correctly for Batch disk encryption configuration + var expectedMgmtTarget = scenario.DiskEncryptionTarget == Microsoft.Azure.Batch.Common.DiskEncryptionTarget.OsDisk + ? DiskEncryptionTarget.OsDisk + : DiskEncryptionTarget.TemporaryDisk; + Assert.Equal(expectedMgmtTarget, mgmtDiskEncryptionTarget); + + // Verify round-trip conversion maintains disk encryption semantics + var backToPs = Utils.Utils.fromMgmtDiskEncryptionTarget(mgmtDiskEncryptionTarget); + Assert.Equal(scenario.DiskEncryptionTarget, backToPs); + } + } + + [Fact] + public void DiskEncryptionTargetConversions_DirectCastingBehavior_VerifyImplementation() + { + // This test verifies that the methods use direct casting as implemented + // This is important because it ensures the enum values have the same underlying representation + + // Test that conversion preserves underlying integer values + foreach (Microsoft.Azure.Batch.Common.DiskEncryptionTarget psValue in Enum.GetValues(typeof(Microsoft.Azure.Batch.Common.DiskEncryptionTarget))) + { + var mgmtResult = Utils.Utils.toMgmtDiskEncryptionTarget(psValue); + Assert.Equal((int)psValue, (int)mgmtResult); + } + + foreach (DiskEncryptionTarget mgmtValue in Enum.GetValues(typeof(DiskEncryptionTarget))) + { + var psResult = Utils.Utils.fromMgmtDiskEncryptionTarget(mgmtValue); + Assert.Equal((int)mgmtValue, (int)psResult); + } + } + + [Fact] + public void DiskEncryptionTargetConversions_DiskEncryptionIntegration_VerifySemantics() + { + // This test validates the semantic usage in the context of Azure Batch disk encryption configuration + // DiskEncryptionTarget determines which disks are encrypted at rest for security compliance + + // OsDisk encryption semantics - Protect system files and boot process + var osDiskTarget = Microsoft.Azure.Batch.Common.DiskEncryptionTarget.OsDisk; + var mgmtOsDiskTarget = Utils.Utils.toMgmtDiskEncryptionTarget(osDiskTarget); + + Assert.Equal(DiskEncryptionTarget.OsDisk, mgmtOsDiskTarget); + // Use case: Compliance requirements for encrypting system partitions + + // TemporaryDisk encryption semantics - Protect application data and temporary files + var temporaryDiskTarget = Microsoft.Azure.Batch.Common.DiskEncryptionTarget.TemporaryDisk; + var mgmtTemporaryDiskTarget = Utils.Utils.toMgmtDiskEncryptionTarget(temporaryDiskTarget); + + Assert.Equal(DiskEncryptionTarget.TemporaryDisk, mgmtTemporaryDiskTarget); + // Use case: Secure processing of sensitive data in temporary storage + + // Verify all round-trip correctly + var osDiskRoundTrip = Utils.Utils.fromMgmtDiskEncryptionTarget(mgmtOsDiskTarget); + var temporaryDiskRoundTrip = Utils.Utils.fromMgmtDiskEncryptionTarget(mgmtTemporaryDiskTarget); + + Assert.Equal(osDiskTarget, osDiskRoundTrip); + Assert.Equal(temporaryDiskTarget, temporaryDiskRoundTrip); + } + + [Fact] + public void DiskEncryptionTargetConversions_SecurityComplianceContext_VerifyCorrectUsage() + { + // This test validates the conversions work correctly in the context of security compliance + // DiskEncryptionTarget is essential for meeting data protection and compliance requirements + + // Arrange - Test with security compliance scenarios + var complianceScenarios = new[] + { + // FIPS compliance requiring OS disk encryption + new { + Target = Microsoft.Azure.Batch.Common.DiskEncryptionTarget.OsDisk, + ComplianceType = "FIPS 140-2", + Description = "OS disk encryption for FIPS compliance and secure boot protection" + }, + // PCI DSS compliance requiring temporary disk encryption + new { + Target = Microsoft.Azure.Batch.Common.DiskEncryptionTarget.TemporaryDisk, + ComplianceType = "PCI DSS", + Description = "Temporary disk encryption for payment processing compliance" + } + }; + + foreach (var scenario in complianceScenarios) + { + // Act + var mgmtTarget = Utils.Utils.toMgmtDiskEncryptionTarget(scenario.Target); + var roundTripTarget = Utils.Utils.fromMgmtDiskEncryptionTarget(mgmtTarget); + + // Assert - Compliance semantics should be preserved + Assert.Equal(scenario.Target, roundTripTarget); + + // Verify the conversion maintains the security context + var expectedMgmtValue = scenario.Target switch + { + Microsoft.Azure.Batch.Common.DiskEncryptionTarget.OsDisk => DiskEncryptionTarget.OsDisk, + Microsoft.Azure.Batch.Common.DiskEncryptionTarget.TemporaryDisk => DiskEncryptionTarget.TemporaryDisk, + _ => throw new ArgumentOutOfRangeException() + }; + + Assert.Equal(expectedMgmtValue, mgmtTarget); + } + } + + [Fact] + public void DiskEncryptionTargetConversions_NonNullableHandling_VerifyBehavior() + { + // This test verifies the non-nullable handling in these conversion methods + // Unlike other conversion methods, these work with non-nullable enums + + // Both methods handle non-nullable types correctly + var osDiskValue = Microsoft.Azure.Batch.Common.DiskEncryptionTarget.OsDisk; + var mgmtResult = Utils.Utils.toMgmtDiskEncryptionTarget(osDiskValue); + Assert.Equal(DiskEncryptionTarget.OsDisk, mgmtResult); + + var temporaryDiskValue = DiskEncryptionTarget.TemporaryDisk; + var psResult = Utils.Utils.fromMgmtDiskEncryptionTarget(temporaryDiskValue); + Assert.Equal(Microsoft.Azure.Batch.Common.DiskEncryptionTarget.TemporaryDisk, psResult); + + // Verify that the methods return non-nullable values + Assert.IsType(mgmtResult); + Assert.IsType(psResult); + } + + #endregion + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Test/Utils/UtilsStorageAccountTypeTests.cs b/src/Batch/Batch.Test/Utils/UtilsStorageAccountTypeTests.cs new file mode 100644 index 000000000000..b21efe4ef2f0 --- /dev/null +++ b/src/Batch/Batch.Test/Utils/UtilsStorageAccountTypeTests.cs @@ -0,0 +1,813 @@ +// ----------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ----------------------------------------------------------------------------- + +using Microsoft.Azure.Commands.Batch.Utils; +using Microsoft.Azure.Management.Batch.Models; +using System; +using System.Linq; +using Xunit; + +namespace Microsoft.Azure.Commands.Batch.Test.ModelsConversions +{ + public class UtilsStorageAccountTypeTests + { + #region toMgmtStorageAccountType Tests + + [Fact] + public void ToMgmtStorageAccountType_StandardLRS_ReturnsStandardLRS() + { + // Arrange + var psStorageAccountType = Microsoft.Azure.Batch.Common.StorageAccountType.StandardLrs; + + // Act + var result = Utils.Utils.toMgmtStorageAccountType(psStorageAccountType); + + // Assert + Assert.NotNull(result); + Assert.Equal(StorageAccountType.StandardLRS, result.Value); + } + + [Fact] + public void ToMgmtStorageAccountType_PremiumLRS_ReturnsPremiumLRS() + { + // Arrange + var psStorageAccountType = Microsoft.Azure.Batch.Common.StorageAccountType.PremiumLrs; + + // Act + var result = Utils.Utils.toMgmtStorageAccountType(psStorageAccountType); + + // Assert + Assert.NotNull(result); + Assert.Equal(StorageAccountType.PremiumLRS, result.Value); + } + + [Fact] + public void ToMgmtStorageAccountType_StandardSSDLRS_ReturnsStandardSSDLRS() + { + // Arrange + var psStorageAccountType = Microsoft.Azure.Batch.Common.StorageAccountType.StandardSSDLRS; + + // Act + var result = Utils.Utils.toMgmtStorageAccountType(psStorageAccountType); + + // Assert + Assert.NotNull(result); + Assert.Equal(StorageAccountType.StandardSSDLRS, result.Value); + } + + [Theory] + [InlineData(Microsoft.Azure.Batch.Common.StorageAccountType.StandardLrs, StorageAccountType.StandardLRS)] + [InlineData(Microsoft.Azure.Batch.Common.StorageAccountType.PremiumLrs, StorageAccountType.PremiumLRS)] + [InlineData(Microsoft.Azure.Batch.Common.StorageAccountType.StandardSSDLRS, StorageAccountType.StandardSSDLRS)] + public void ToMgmtStorageAccountType_AllValidValues_ReturnsCorrectMapping( + Microsoft.Azure.Batch.Common.StorageAccountType input, + StorageAccountType expected) + { + // Act + var result = Utils.Utils.toMgmtStorageAccountType(input); + + // Assert + Assert.NotNull(result); + Assert.Equal(expected, result.Value); + } + + [Fact] + public void ToMgmtStorageAccountType_NullValue_ReturnsNull() + { + // Arrange + Microsoft.Azure.Batch.Common.StorageAccountType? nullStorageAccountType = null; + + // Act + var result = Utils.Utils.toMgmtStorageAccountType(nullStorageAccountType); + + // Assert + Assert.Null(result); + } + + [Fact] + public void ToMgmtStorageAccountType_DefaultValue_HandlesCorrectly() + { + // Arrange + var defaultValue = default(Microsoft.Azure.Batch.Common.StorageAccountType); + + // Act + var result = Utils.Utils.toMgmtStorageAccountType(defaultValue); + + // Assert + Assert.NotNull(result); + // Default StorageAccountType is typically StandardLRS (0) + Assert.Equal(StorageAccountType.StandardLRS, result.Value); + } + + [Fact] + public void ToMgmtStorageAccountType_EnumValueConsistency_EnsuresCorrectEnumMapping() + { + // This test ensures that the mapping logic correctly handles all defined enum values + // and verifies that the conversion maintains the semantic meaning of each storage account type + + // Arrange & Act & Assert + // StandardLRS: Standard locally redundant storage + var standardLRSResult = Utils.Utils.toMgmtStorageAccountType(Microsoft.Azure.Batch.Common.StorageAccountType.StandardLrs); + Assert.NotNull(standardLRSResult); + Assert.Equal(StorageAccountType.StandardLRS, standardLRSResult.Value); + + // PremiumLRS: Premium locally redundant storage (SSD-based) + var premiumLRSResult = Utils.Utils.toMgmtStorageAccountType(Microsoft.Azure.Batch.Common.StorageAccountType.PremiumLrs); + Assert.NotNull(premiumLRSResult); + Assert.Equal(StorageAccountType.PremiumLRS, premiumLRSResult.Value); + + // StandardSSDLRS: Standard SSD locally redundant storage + var standardSSDLRSResult = Utils.Utils.toMgmtStorageAccountType(Microsoft.Azure.Batch.Common.StorageAccountType.StandardSSDLRS); + Assert.NotNull(standardSSDLRSResult); + Assert.Equal(StorageAccountType.StandardSSDLRS, standardSSDLRSResult.Value); + } + + [Fact] + public void ToMgmtStorageAccountType_StaticMethod_DoesNotRequireInstance() + { + // This test verifies that the method is properly static and can be called without instantiation + + // Arrange + var psStorageAccountType = Microsoft.Azure.Batch.Common.StorageAccountType.PremiumLrs; + + // Act - Call static method directly on class + var result = Utils.Utils.toMgmtStorageAccountType(psStorageAccountType); + + // Assert + Assert.NotNull(result); + Assert.Equal(StorageAccountType.PremiumLRS, result.Value); + } + + [Fact] + public void ToMgmtStorageAccountType_PerformanceTest_ExecutesQuickly() + { + // This test ensures the enum conversion is efficient for all values + + // Arrange + var enumValues = new[] + { + Microsoft.Azure.Batch.Common.StorageAccountType.StandardLrs, + Microsoft.Azure.Batch.Common.StorageAccountType.PremiumLrs, + Microsoft.Azure.Batch.Common.StorageAccountType.StandardSSDLRS + }; + + // Act & Assert - Each conversion should complete without delay + foreach (var value in enumValues) + { + var result = Utils.Utils.toMgmtStorageAccountType(value); + Assert.NotNull(result); + Assert.True(Enum.IsDefined(typeof(StorageAccountType), result.Value)); + } + } + + [Fact] + public void ToMgmtStorageAccountType_CastingBehavior_VerifyDirectCast() + { + // This test verifies that the conversion uses direct casting as implemented + + // Arrange + var psStandardLRS = Microsoft.Azure.Batch.Common.StorageAccountType.StandardLrs; + var psPremiumLRS = Microsoft.Azure.Batch.Common.StorageAccountType.PremiumLrs; + var psStandardSSDLRS = Microsoft.Azure.Batch.Common.StorageAccountType.StandardSSDLRS; + + // Act + var mgmtStandardLRS = Utils.Utils.toMgmtStorageAccountType(psStandardLRS); + var mgmtPremiumLRS = Utils.Utils.toMgmtStorageAccountType(psPremiumLRS); + var mgmtStandardSSDLRS = Utils.Utils.toMgmtStorageAccountType(psStandardSSDLRS); + + // Assert + Assert.NotNull(mgmtStandardLRS); + Assert.NotNull(mgmtPremiumLRS); + Assert.NotNull(mgmtStandardSSDLRS); + + // Verify that the underlying values match (direct cast behavior) + Assert.Equal((int)psStandardLRS, (int)mgmtStandardLRS.Value); + Assert.Equal((int)psPremiumLRS, (int)mgmtPremiumLRS.Value); + Assert.Equal((int)psStandardSSDLRS, (int)mgmtStandardSSDLRS.Value); + } + + #endregion + + #region fromMgmtStorageAccountType Tests + + [Fact] + public void FromMgmtStorageAccountType_StandardLRS_ReturnsStandardLRS() + { + // Arrange + var mgmtStorageAccountType = StorageAccountType.StandardLRS; + + // Act + var result = Utils.Utils.fromMgmtStorageAccountType(mgmtStorageAccountType); + + // Assert + Assert.NotNull(result); + Assert.Equal(Microsoft.Azure.Batch.Common.StorageAccountType.StandardLrs, result.Value); + } + + [Fact] + public void FromMgmtStorageAccountType_PremiumLRS_ReturnsPremiumLRS() + { + // Arrange + var mgmtStorageAccountType = StorageAccountType.PremiumLRS; + + // Act + var result = Utils.Utils.fromMgmtStorageAccountType(mgmtStorageAccountType); + + // Assert + Assert.NotNull(result); + Assert.Equal(Microsoft.Azure.Batch.Common.StorageAccountType.PremiumLrs, result.Value); + } + + [Fact] + public void FromMgmtStorageAccountType_StandardSSDLRS_ReturnsStandardSSDLRS() + { + // Arrange + var mgmtStorageAccountType = StorageAccountType.StandardSSDLRS; + + // Act + var result = Utils.Utils.fromMgmtStorageAccountType(mgmtStorageAccountType); + + // Assert + Assert.NotNull(result); + Assert.Equal(Microsoft.Azure.Batch.Common.StorageAccountType.StandardSSDLRS, result.Value); + } + + [Theory] + [InlineData(StorageAccountType.StandardLRS, Microsoft.Azure.Batch.Common.StorageAccountType.StandardLrs)] + [InlineData(StorageAccountType.PremiumLRS, Microsoft.Azure.Batch.Common.StorageAccountType.PremiumLrs)] + [InlineData(StorageAccountType.StandardSSDLRS, Microsoft.Azure.Batch.Common.StorageAccountType.StandardSSDLRS)] + public void FromMgmtStorageAccountType_AllValidValues_ReturnsCorrectMapping( + StorageAccountType input, + Microsoft.Azure.Batch.Common.StorageAccountType expected) + { + // Act + var result = Utils.Utils.fromMgmtStorageAccountType(input); + + // Assert + Assert.NotNull(result); + Assert.Equal(expected, result.Value); + } + + [Fact] + public void FromMgmtStorageAccountType_NullValue_ReturnsNull() + { + // Arrange + StorageAccountType? nullStorageAccountType = null; + + // Act + var result = Utils.Utils.fromMgmtStorageAccountType(nullStorageAccountType); + + // Assert + Assert.Null(result); + } + + [Fact] + public void FromMgmtStorageAccountType_DefaultValue_HandlesCorrectly() + { + // Arrange + var defaultValue = default(StorageAccountType); + + // Act + var result = Utils.Utils.fromMgmtStorageAccountType(defaultValue); + + // Assert + Assert.NotNull(result); + // Default StorageAccountType is typically StandardLRS (0) + Assert.Equal(Microsoft.Azure.Batch.Common.StorageAccountType.StandardLrs, result.Value); + } + + [Fact] + public void FromMgmtStorageAccountType_EnumValueConsistency_EnsuresCorrectEnumMapping() + { + // This test ensures that the mapping logic correctly handles all defined enum values + // and verifies that the conversion maintains the semantic meaning of each storage account type + + // Arrange & Act & Assert + // StandardLRS: Standard locally redundant storage + var standardLRSResult = Utils.Utils.fromMgmtStorageAccountType(StorageAccountType.StandardLRS); + Assert.NotNull(standardLRSResult); + Assert.Equal(Microsoft.Azure.Batch.Common.StorageAccountType.StandardLrs, standardLRSResult.Value); + + // PremiumLRS: Premium locally redundant storage (SSD-based) + var premiumLRSResult = Utils.Utils.fromMgmtStorageAccountType(StorageAccountType.PremiumLRS); + Assert.NotNull(premiumLRSResult); + Assert.Equal(Microsoft.Azure.Batch.Common.StorageAccountType.PremiumLrs, premiumLRSResult.Value); + + // StandardSSDLRS: Standard SSD locally redundant storage + var standardSSDLRSResult = Utils.Utils.fromMgmtStorageAccountType(StorageAccountType.StandardSSDLRS); + Assert.NotNull(standardSSDLRSResult); + Assert.Equal(Microsoft.Azure.Batch.Common.StorageAccountType.StandardSSDLRS, standardSSDLRSResult.Value); + } + + [Fact] + public void FromMgmtStorageAccountType_StaticMethod_DoesNotRequireInstance() + { + // This test verifies that the method is properly static and can be called without instantiation + + // Arrange + var mgmtStorageAccountType = StorageAccountType.StandardSSDLRS; + + // Act - Call static method directly on class + var result = Utils.Utils.fromMgmtStorageAccountType(mgmtStorageAccountType); + + // Assert + Assert.NotNull(result); + Assert.Equal(Microsoft.Azure.Batch.Common.StorageAccountType.StandardSSDLRS, result.Value); + } + + [Fact] + public void FromMgmtStorageAccountType_PerformanceTest_ExecutesQuickly() + { + // This test ensures the enum conversion is efficient for all values + + // Arrange + var enumValues = new StorageAccountType?[] + { + StorageAccountType.StandardLRS, + StorageAccountType.PremiumLRS, + StorageAccountType.StandardSSDLRS, + null + }; + + // Act & Assert - Each conversion should complete without delay + foreach (var value in enumValues) + { + var result = Utils.Utils.fromMgmtStorageAccountType(value); + if (value.HasValue) + { + Assert.NotNull(result); + Assert.True(Enum.IsDefined(typeof(Microsoft.Azure.Batch.Common.StorageAccountType), result.Value)); + } + else + { + Assert.Null(result); + } + } + } + + [Fact] + public void FromMgmtStorageAccountType_AcceptsNullableType() + { + // This test verifies that the method accepts a nullable StorageAccountType + + // Arrange + StorageAccountType? nullableValue = StorageAccountType.PremiumLRS; + + // Act + var result = Utils.Utils.fromMgmtStorageAccountType(nullableValue); + + // Assert + Assert.NotNull(result); + Assert.Equal(Microsoft.Azure.Batch.Common.StorageAccountType.PremiumLrs, result.Value); + } + + [Fact] + public void FromMgmtStorageAccountType_CastingBehavior_VerifyDirectCast() + { + // This test verifies that the conversion uses direct casting as implemented + + // Arrange + var mgmtStandardLRS = StorageAccountType.StandardLRS; + var mgmtPremiumLRS = StorageAccountType.PremiumLRS; + var mgmtStandardSSDLRS = StorageAccountType.StandardSSDLRS; + + // Act + var psStandardLRS = Utils.Utils.fromMgmtStorageAccountType(mgmtStandardLRS); + var psPremiumLRS = Utils.Utils.fromMgmtStorageAccountType(mgmtPremiumLRS); + var psStandardSSDLRS = Utils.Utils.fromMgmtStorageAccountType(mgmtStandardSSDLRS); + + // Assert + Assert.NotNull(psStandardLRS); + Assert.NotNull(psPremiumLRS); + Assert.NotNull(psStandardSSDLRS); + + // Verify that the underlying values match (direct cast behavior) + Assert.Equal((int)mgmtStandardLRS, (int)psStandardLRS.Value); + Assert.Equal((int)mgmtPremiumLRS, (int)psPremiumLRS.Value); + Assert.Equal((int)mgmtStandardSSDLRS, (int)psStandardSSDLRS.Value); + } + + #endregion + + #region Round-trip Conversion Tests + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesStandardLRSValue() + { + // Arrange + var originalPsStorageAccountType = Microsoft.Azure.Batch.Common.StorageAccountType.StandardLrs; + + // Act + var mgmtStorageAccountType = Utils.Utils.toMgmtStorageAccountType(originalPsStorageAccountType); + var roundTripPsStorageAccountType = Utils.Utils.fromMgmtStorageAccountType(mgmtStorageAccountType); + + // Assert + Assert.NotNull(roundTripPsStorageAccountType); + Assert.Equal(originalPsStorageAccountType, roundTripPsStorageAccountType.Value); + } + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesPremiumLRSValue() + { + // Arrange + var originalPsStorageAccountType = Microsoft.Azure.Batch.Common.StorageAccountType.PremiumLrs; + + // Act + var mgmtStorageAccountType = Utils.Utils.toMgmtStorageAccountType(originalPsStorageAccountType); + var roundTripPsStorageAccountType = Utils.Utils.fromMgmtStorageAccountType(mgmtStorageAccountType); + + // Assert + Assert.NotNull(roundTripPsStorageAccountType); + Assert.Equal(originalPsStorageAccountType, roundTripPsStorageAccountType.Value); + } + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesStandardSSDLRSValue() + { + // Arrange + var originalPsStorageAccountType = Microsoft.Azure.Batch.Common.StorageAccountType.StandardSSDLRS; + + // Act + var mgmtStorageAccountType = Utils.Utils.toMgmtStorageAccountType(originalPsStorageAccountType); + var roundTripPsStorageAccountType = Utils.Utils.fromMgmtStorageAccountType(mgmtStorageAccountType); + + // Assert + Assert.NotNull(roundTripPsStorageAccountType); + Assert.Equal(originalPsStorageAccountType, roundTripPsStorageAccountType.Value); + } + + [Theory] + [InlineData(Microsoft.Azure.Batch.Common.StorageAccountType.StandardLrs)] + [InlineData(Microsoft.Azure.Batch.Common.StorageAccountType.PremiumLrs)] + [InlineData(Microsoft.Azure.Batch.Common.StorageAccountType.StandardSSDLRS)] + public void RoundTripConversion_AllValidValues_PreservesOriginalValue( + Microsoft.Azure.Batch.Common.StorageAccountType originalStorageAccountType) + { + // Act + var mgmtStorageAccountType = Utils.Utils.toMgmtStorageAccountType(originalStorageAccountType); + var roundTripStorageAccountType = Utils.Utils.fromMgmtStorageAccountType(mgmtStorageAccountType); + + // Assert + Assert.NotNull(roundTripStorageAccountType); + Assert.Equal(originalStorageAccountType, roundTripStorageAccountType.Value); + } + + [Fact] + public void RoundTripConversion_FromMgmtAndToMgmt_PreservesValues() + { + // Arrange + var originalMgmtValues = new[] + { + StorageAccountType.StandardLRS, + StorageAccountType.PremiumLRS, + StorageAccountType.StandardSSDLRS + }; + + foreach (var originalValue in originalMgmtValues) + { + // Act + var psValue = Utils.Utils.fromMgmtStorageAccountType(originalValue); + var roundTripValue = Utils.Utils.toMgmtStorageAccountType(psValue); + + // Assert + Assert.NotNull(roundTripValue); + Assert.Equal(originalValue, roundTripValue.Value); + } + } + + [Fact] + public void RoundTripConversion_NullHandling_WorksCorrectly() + { + // This test verifies null handling in round-trip conversions + + // Arrange + Microsoft.Azure.Batch.Common.StorageAccountType? nullPsValue = null; + StorageAccountType? nullMgmtValue = null; + + // Act + var mgmtFromNullPs = Utils.Utils.toMgmtStorageAccountType(nullPsValue); + var psFromNullMgmt = Utils.Utils.fromMgmtStorageAccountType(nullMgmtValue); + + // Assert + Assert.Null(mgmtFromNullPs); + Assert.Null(psFromNullMgmt); + } + + #endregion + + #region Enum Value Verification Tests + + [Fact] + public void StorageAccountType_VerifyEnumMemberCount_EnsuresAllValuesHandled() + { + // This test helps ensure that if new enum values are added, the conversion methods are updated + + // Arrange + var psStorageAccountTypeValues = Enum.GetValues(typeof(Microsoft.Azure.Batch.Common.StorageAccountType)); + var mgmtStorageAccountTypeValues = Enum.GetValues(typeof(StorageAccountType)); + + // Act & Assert + // Verify that both enums have the same number of values (assuming 1:1 mapping) + Assert.Equal(psStorageAccountTypeValues.Length, mgmtStorageAccountTypeValues.Length); + + // Verify that each PS enum value can be converted successfully + foreach (Microsoft.Azure.Batch.Common.StorageAccountType psValue in psStorageAccountTypeValues) + { + var result = Utils.Utils.toMgmtStorageAccountType(psValue); + Assert.NotNull(result); + Assert.True(Enum.IsDefined(typeof(StorageAccountType), result.Value)); + } + + // Verify that each management enum value can be converted successfully + foreach (StorageAccountType mgmtValue in mgmtStorageAccountTypeValues) + { + var result = Utils.Utils.fromMgmtStorageAccountType(mgmtValue); + Assert.NotNull(result); + Assert.True(Enum.IsDefined(typeof(Microsoft.Azure.Batch.Common.StorageAccountType), result.Value)); + } + } + + [Fact] + public void StorageAccountType_BijectiveMapping_EnsuresUniqueConversion() + { + // This test verifies that the mapping is bijective (one-to-one) + + // Arrange + var psValues = new[] + { + Microsoft.Azure.Batch.Common.StorageAccountType.StandardLrs, + Microsoft.Azure.Batch.Common.StorageAccountType.PremiumLrs, + Microsoft.Azure.Batch.Common.StorageAccountType.StandardSSDLRS + }; + + var mgmtValues = new[] + { + StorageAccountType.StandardLRS, + StorageAccountType.PremiumLRS, + StorageAccountType.StandardSSDLRS + }; + + // Act - Convert PS to Management + var convertedMgmtValues = new StorageAccountType?[psValues.Length]; + for (int i = 0; i < psValues.Length; i++) + { + convertedMgmtValues[i] = Utils.Utils.toMgmtStorageAccountType(psValues[i]); + } + + // Act - Convert Management to PS + var convertedPsValues = new Microsoft.Azure.Batch.Common.StorageAccountType?[mgmtValues.Length]; + for (int i = 0; i < mgmtValues.Length; i++) + { + convertedPsValues[i] = Utils.Utils.fromMgmtStorageAccountType(mgmtValues[i]); + } + + // Assert - Each management enum value should be unique (no duplicates) + var distinctMgmtValues = convertedMgmtValues.Where(v => v.HasValue).Select(v => v.Value).Distinct().ToArray(); + Assert.Equal(convertedMgmtValues.Count(v => v.HasValue), distinctMgmtValues.Length); + + // Assert - Each PS enum value should be unique (no duplicates) + var distinctPsValues = convertedPsValues.Where(v => v.HasValue).Select(v => v.Value).Distinct().ToArray(); + Assert.Equal(convertedPsValues.Count(v => v.HasValue), distinctPsValues.Length); + } + + #endregion + + #region Integration Tests + + [Fact] + public void StorageAccountTypeConversions_BothDirections_MaintainSemanticEquivalence() + { + // This test ensures that the semantic meaning is preserved across conversions + + // Test StandardLRS semantics - Standard locally redundant storage (HDD-based, cost-optimized) + var psStandardLRS = Microsoft.Azure.Batch.Common.StorageAccountType.StandardLrs; + var mgmtStandardLRS = Utils.Utils.toMgmtStorageAccountType(psStandardLRS); + var backToPs = Utils.Utils.fromMgmtStorageAccountType(mgmtStandardLRS); + + Assert.NotNull(mgmtStandardLRS); + Assert.Equal(StorageAccountType.StandardLRS, mgmtStandardLRS.Value); + Assert.NotNull(backToPs); + Assert.Equal(psStandardLRS, backToPs.Value); + + // Test PremiumLRS semantics - Premium locally redundant storage (SSD-based, high performance) + var psPremiumLRS = Microsoft.Azure.Batch.Common.StorageAccountType.PremiumLrs; + var mgmtPremiumLRS = Utils.Utils.toMgmtStorageAccountType(psPremiumLRS); + var backToPsPremium = Utils.Utils.fromMgmtStorageAccountType(mgmtPremiumLRS); + + Assert.NotNull(mgmtPremiumLRS); + Assert.Equal(StorageAccountType.PremiumLRS, mgmtPremiumLRS.Value); + Assert.NotNull(backToPsPremium); + Assert.Equal(psPremiumLRS, backToPsPremium.Value); + + // Test StandardSSDLRS semantics - Standard SSD locally redundant storage (balanced performance/cost) + var psStandardSSDLRS = Microsoft.Azure.Batch.Common.StorageAccountType.StandardSSDLRS; + var mgmtStandardSSDLRS = Utils.Utils.toMgmtStorageAccountType(psStandardSSDLRS); + var backToPsStandardSSD = Utils.Utils.fromMgmtStorageAccountType(mgmtStandardSSDLRS); + + Assert.NotNull(mgmtStandardSSDLRS); + Assert.Equal(StorageAccountType.StandardSSDLRS, mgmtStandardSSDLRS.Value); + Assert.NotNull(backToPsStandardSSD); + Assert.Equal(psStandardSSDLRS, backToPsStandardSSD.Value); + } + + [Fact] + public void StorageAccountTypeConversions_NullabilityHandling_VerifyBehavior() + { + // This test verifies the nullable handling in these conversion methods + + // toMgmtStorageAccountType returns null for null input + Microsoft.Azure.Batch.Common.StorageAccountType? nullInput = null; + var result = Utils.Utils.toMgmtStorageAccountType(nullInput); + Assert.Null(result); + + // fromMgmtStorageAccountType returns null for null input + StorageAccountType? nullMgmtInput = null; + var mgmtResult = Utils.Utils.fromMgmtStorageAccountType(nullMgmtInput); + Assert.Null(mgmtResult); + + // Both methods handle nullable types correctly + StorageAccountType? nullableStandardSSD = StorageAccountType.StandardSSDLRS; + var nonNullResult = Utils.Utils.fromMgmtStorageAccountType(nullableStandardSSD); + Assert.NotNull(nonNullResult); + Assert.Equal(Microsoft.Azure.Batch.Common.StorageAccountType.StandardSSDLRS, nonNullResult.Value); + } + + [Fact] + public void StorageAccountTypeConversions_BatchDataDiskContext_VerifyCorrectUsage() + { + // This test validates the conversions work correctly in the context of Batch data disk configuration + // StorageAccountType is used to specify storage performance characteristics for data disks + + // Arrange - Test with different storage type scenarios + var diskStorageScenarios = new[] + { + // High-performance scenario with Premium SSD + new { + StorageAccountType = Microsoft.Azure.Batch.Common.StorageAccountType.PremiumLrs, + Description = "High-performance workload with Premium SSD for maximum IOPS and throughput" + }, + // Balanced scenario with Standard SSD + new { + StorageAccountType = Microsoft.Azure.Batch.Common.StorageAccountType.StandardSSDLRS, + Description = "Balanced workload with Standard SSD for good performance at lower cost" + }, + // Cost-optimized scenario with Standard HDD + new { + StorageAccountType = Microsoft.Azure.Batch.Common.StorageAccountType.StandardLrs, + Description = "Cost-optimized workload with Standard HDD for basic storage needs" + } + }; + + foreach (var scenario in diskStorageScenarios) + { + // Act + var mgmtStorageAccountType = Utils.Utils.toMgmtStorageAccountType(scenario.StorageAccountType); + + // Assert - Should convert correctly for Batch data disk configuration + Assert.NotNull(mgmtStorageAccountType); + + var expectedMgmtType = scenario.StorageAccountType == Microsoft.Azure.Batch.Common.StorageAccountType.StandardLrs + ? StorageAccountType.StandardLRS + : scenario.StorageAccountType == Microsoft.Azure.Batch.Common.StorageAccountType.PremiumLrs + ? StorageAccountType.PremiumLRS + : StorageAccountType.StandardSSDLRS; + Assert.Equal(expectedMgmtType, mgmtStorageAccountType.Value); + + // Verify round-trip conversion maintains storage type semantics + var backToPs = Utils.Utils.fromMgmtStorageAccountType(mgmtStorageAccountType); + Assert.NotNull(backToPs); + Assert.Equal(scenario.StorageAccountType, backToPs.Value); + } + } + + [Fact] + public void StorageAccountTypeConversions_DirectCastingBehavior_VerifyImplementation() + { + // This test verifies that the methods use direct casting as implemented + // This is important because it ensures the enum values have the same underlying representation + + // Test that conversion preserves underlying integer values + foreach (Microsoft.Azure.Batch.Common.StorageAccountType psValue in Enum.GetValues(typeof(Microsoft.Azure.Batch.Common.StorageAccountType))) + { + var mgmtResult = Utils.Utils.toMgmtStorageAccountType(psValue); + Assert.NotNull(mgmtResult); + Assert.Equal((int)psValue, (int)mgmtResult.Value); + } + + foreach (StorageAccountType mgmtValue in Enum.GetValues(typeof(StorageAccountType))) + { + var psResult = Utils.Utils.fromMgmtStorageAccountType(mgmtValue); + Assert.NotNull(psResult); + Assert.Equal((int)mgmtValue, (int)psResult.Value); + } + } + + [Fact] + public void StorageAccountTypeConversions_DataDiskIntegration_VerifySemantics() + { + // This test validates the semantic usage in the context of Azure Batch data disk configuration + // StorageAccountType determines storage performance characteristics and cost + + // StandardLRS semantics - Standard locally redundant storage (HDD-based) + var standardLRSType = Microsoft.Azure.Batch.Common.StorageAccountType.StandardLrs; + var mgmtStandardLRSType = Utils.Utils.toMgmtStorageAccountType(standardLRSType); + + Assert.NotNull(mgmtStandardLRSType); + Assert.Equal(StorageAccountType.StandardLRS, mgmtStandardLRSType.Value); + // Use case: Cost-optimized storage for large datasets with infrequent access + + // PremiumLRS semantics - Premium locally redundant storage (SSD-based) + var premiumLRSType = Microsoft.Azure.Batch.Common.StorageAccountType.PremiumLrs; + var mgmtPremiumLRSType = Utils.Utils.toMgmtStorageAccountType(premiumLRSType); + + Assert.NotNull(mgmtPremiumLRSType); + Assert.Equal(StorageAccountType.PremiumLRS, mgmtPremiumLRSType.Value); + // Use case: High-performance workloads requiring maximum IOPS and low latency + + // StandardSSDLRS semantics - Standard SSD locally redundant storage + var standardSSDLRSType = Microsoft.Azure.Batch.Common.StorageAccountType.StandardSSDLRS; + var mgmtStandardSSDLRSType = Utils.Utils.toMgmtStorageAccountType(standardSSDLRSType); + + Assert.NotNull(mgmtStandardSSDLRSType); + Assert.Equal(StorageAccountType.StandardSSDLRS, mgmtStandardSSDLRSType.Value); + // Use case: Balanced performance and cost for general-purpose workloads + + // Verify all round-trip correctly + var standardLRSRoundTrip = Utils.Utils.fromMgmtStorageAccountType(mgmtStandardLRSType); + var premiumLRSRoundTrip = Utils.Utils.fromMgmtStorageAccountType(mgmtPremiumLRSType); + var standardSSDLRSRoundTrip = Utils.Utils.fromMgmtStorageAccountType(mgmtStandardSSDLRSType); + + Assert.Equal(standardLRSType, standardLRSRoundTrip.Value); + Assert.Equal(premiumLRSType, premiumLRSRoundTrip.Value); + Assert.Equal(standardSSDLRSType, standardSSDLRSRoundTrip.Value); + } + + [Fact] + public void StorageAccountTypeConversions_PerformanceCharacteristics_VerifySemantics() + { + // This test validates that the storage account types maintain their performance characteristics + // through the conversion process + + var performanceProfiles = new[] + { + new { + Type = Microsoft.Azure.Batch.Common.StorageAccountType.StandardLrs, + Category = "HDD", + PerformanceProfile = "Cost-Optimized", + TypicalIOPS = "Up to 500 IOPS", + UseCases = new[] { "Backup", "Archive", "Large datasets with infrequent access" } + }, + new { + Type = Microsoft.Azure.Batch.Common.StorageAccountType.StandardSSDLRS, + Category = "SSD", + PerformanceProfile = "Balanced", + TypicalIOPS = "Up to 6,000 IOPS", + UseCases = new[] { "Web servers", "Development environments", "General-purpose workloads" } + }, + new { + Type = Microsoft.Azure.Batch.Common.StorageAccountType.PremiumLrs, + Category = "Premium SSD", + PerformanceProfile = "High-Performance", + TypicalIOPS = "Up to 20,000+ IOPS", + UseCases = new[] { "Production databases", "High-performance computing", "Low-latency applications" } + } + }; + + foreach (var profile in performanceProfiles) + { + // Act - Convert to management type and back + var mgmtType = Utils.Utils.toMgmtStorageAccountType(profile.Type); + var roundTripType = Utils.Utils.fromMgmtStorageAccountType(mgmtType); + + // Assert - Performance characteristics should be preserved + Assert.NotNull(mgmtType); + Assert.NotNull(roundTripType); + Assert.Equal(profile.Type, roundTripType.Value); + + // Verify the conversion maintains the semantic meaning + var expectedMgmtValue = profile.Type switch + { + Microsoft.Azure.Batch.Common.StorageAccountType.StandardLrs => StorageAccountType.StandardLRS, + Microsoft.Azure.Batch.Common.StorageAccountType.PremiumLrs => StorageAccountType.PremiumLRS, + Microsoft.Azure.Batch.Common.StorageAccountType.StandardSSDLRS => StorageAccountType.StandardSSDLRS, + _ => throw new ArgumentOutOfRangeException() + }; + + Assert.Equal(expectedMgmtValue, mgmtType.Value); + } + } + + #endregion + } +} \ No newline at end of file diff --git a/src/Batch/Batch/Models/BatchClient.Pools.cs b/src/Batch/Batch/Models/BatchClient.Pools.cs index c20cce08148b..8567674d448a 100644 --- a/src/Batch/Batch/Models/BatchClient.Pools.cs +++ b/src/Batch/Batch/Models/BatchClient.Pools.cs @@ -166,6 +166,11 @@ public void CreatePool(NewPoolParameters parameters) { Utils.Utils.VirtualMachineConfigurationSyncCollections(parameters.VirtualMachineConfiguration); pool.VirtualMachineConfiguration = parameters.VirtualMachineConfiguration.omObject; + + mgmtPool.DeploymentConfiguration = new DeploymentConfiguration + { + VirtualMachineConfiguration = parameters.VirtualMachineConfiguration.toMgmtVirtualMachineConfiguration() + }; } if (parameters.NetworkConfiguration != null) diff --git a/src/Batch/Batch/Models/PSContainerConfiguration.cs b/src/Batch/Batch/Models/PSContainerConfiguration.cs new file mode 100644 index 000000000000..0a23b1768e99 --- /dev/null +++ b/src/Batch/Batch/Models/PSContainerConfiguration.cs @@ -0,0 +1,54 @@ +// ----------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ----------------------------------------------------------------------------- + +using System; +using System.Collections.Generic; +using System.Text; +using System.Xml; +using Microsoft.Azure.Management.Batch; +using Microsoft.Azure.Management.Batch.Models; +using Microsoft.Azure.Commands.Batch.Utils; +using System.Linq; + +namespace Microsoft.Azure.Commands.Batch.Models +{ + public partial class PSContainerConfiguration + { + internal ContainerConfiguration toMgmtContainerConfiguration() + { + return new ContainerConfiguration(this.Type, this.ContainerImageNames, + this.ContainerRegistries?.ToList().ConvertAll(cr => cr.toMgmtContainerRegistry())); + } + + internal PSContainerConfiguration fromMgmtContainerConfiguration(ContainerConfiguration containerConfiguration) + { + if (containerConfiguration == null) + { + return null; + } + PSContainerConfiguration pSContainerConfiguration = new PSContainerConfiguration(); + pSContainerConfiguration.Type = containerConfiguration.Type; + pSContainerConfiguration.ContainerImageNames = containerConfiguration.ContainerImageNames; + if (containerConfiguration.ContainerRegistries != null) + { + pSContainerConfiguration.ContainerRegistries = new List(); + foreach (ContainerRegistry cr in containerConfiguration.ContainerRegistries) + { + pSContainerConfiguration.ContainerRegistries.Add(PSContainerRegistry.fromMgmtContainerRegistry(cr)); + } + } + return pSContainerConfiguration; + } + } +} diff --git a/src/Batch/Batch/Models/PSDataDisk.cs b/src/Batch/Batch/Models/PSDataDisk.cs new file mode 100644 index 000000000000..7987e1a79d2e --- /dev/null +++ b/src/Batch/Batch/Models/PSDataDisk.cs @@ -0,0 +1,51 @@ +// ----------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ----------------------------------------------------------------------------- + +using System; +using System.Collections.Generic; +using System.Text; +using System.Xml; +using Microsoft.Azure.Management.Batch; +using Microsoft.Azure.Management.Batch.Models; +using Microsoft.Azure.Commands.Batch.Utils; + +namespace Microsoft.Azure.Commands.Batch.Models +{ + public partial class PSDataDisk + { + internal DataDisk toMgmtDataDisk() => new DataDisk + { + + Caching = Utils.Utils.toMgmtCaching(this.Caching), + DiskSizeGb = this.DiskSizeGB, + Lun = this.Lun, + StorageAccountType = Utils.Utils.toMgmtStorageAccountType(this.StorageAccountType) + }; + + internal static PSDataDisk fromMgmtDataDisk(DataDisk disk) + { + if (disk == null) + { + return null; + } + + return new PSDataDisk( + lun: disk.Lun, + storageAccountType: Utils.Utils.fromMgmtStorageAccountType(disk.StorageAccountType), + caching: Utils.Utils.fromMgmtCaching(disk.Caching), + diskSizeGB: disk.DiskSizeGb + ); + } + } +} diff --git a/src/Batch/Batch/Models/PSDiskEncryptionConfiguration.cs b/src/Batch/Batch/Models/PSDiskEncryptionConfiguration.cs new file mode 100644 index 000000000000..f62cd7e9c45f --- /dev/null +++ b/src/Batch/Batch/Models/PSDiskEncryptionConfiguration.cs @@ -0,0 +1,46 @@ +// ----------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ----------------------------------------------------------------------------- + +using System; +using System.Collections.Generic; +using System.Text; +using System.Xml; +using Microsoft.Azure.Management.Batch; +using Microsoft.Azure.Management.Batch.Models; +using Microsoft.Azure.Commands.Batch.Utils; +using System.Linq; + +namespace Microsoft.Azure.Commands.Batch.Models +{ + public partial class PSDiskEncryptionConfiguration + { + internal DiskEncryptionConfiguration toMgmtDiskEncryptionConfiguration() + { + DiskEncryptionConfiguration mgmtDiskEncryptionConfiguration = new DiskEncryptionConfiguration(); + mgmtDiskEncryptionConfiguration.Targets = this.Targets?.ToList().ConvertAll(md => Utils.Utils.toMgmtDiskEncryptionTarget(md)); + return mgmtDiskEncryptionConfiguration; + } + + internal static PSDiskEncryptionConfiguration fromMgmtDiskEncryptionConfiguration(DiskEncryptionConfiguration mgmtDiskEncryptionConfiguration) + { + if (mgmtDiskEncryptionConfiguration == null) + { + return null; + } + PSDiskEncryptionConfiguration psDiskEncryptionConfiguration = new PSDiskEncryptionConfiguration( + mgmtDiskEncryptionConfiguration.Targets?.ToList().ConvertAll(md => Utils.Utils.fromMgmtDiskEncryptionTarget(md))); + return psDiskEncryptionConfiguration; + } + } +} diff --git a/src/Batch/Batch/Models/PSImageReference.cs b/src/Batch/Batch/Models/PSImageReference.cs index e36a8106fa53..71131a7f3fb9 100644 --- a/src/Batch/Batch/Models/PSImageReference.cs +++ b/src/Batch/Batch/Models/PSImageReference.cs @@ -1,4 +1,7 @@ -namespace Microsoft.Azure.Commands.Batch.Models +using Microsoft.Azure.Management.Batch.Models; +using System; + +namespace Microsoft.Azure.Commands.Batch.Models { public partial class PSImageReference { @@ -13,5 +16,37 @@ public override string ToString() return VirtualMachineImageId; } } + + internal ImageReference toMgmtImageReference() + { + return new ImageReference + { + Publisher = this.Publisher, + Offer = this.Offer, + Sku = this.Sku, + Version = this.Version, + Id = this.VirtualMachineImageId, + CommunityGalleryImageId = this.CommunityGalleryImageId, + SharedGalleryImageId = this.SharedGalleryImageId + }; + } + + internal static PSImageReference fromMgmtImageReference(ImageReference imageReference) + { + if (imageReference == null) + { + return null; + } + return new PSImageReference + { + Publisher = imageReference.Publisher, + Offer = imageReference.Offer, + Sku = imageReference.Sku, + Version = imageReference.Version, + VirtualMachineImageId = imageReference.Id, + CommunityGalleryImageId = imageReference.CommunityGalleryImageId, + SharedGalleryImageId = imageReference.SharedGalleryImageId + }; + } } } diff --git a/src/Batch/Batch/Models/PSVirtualMachineConfiguration.cs b/src/Batch/Batch/Models/PSVirtualMachineConfiguration.cs index 3fa827856d6f..bda9ff21e267 100644 --- a/src/Batch/Batch/Models/PSVirtualMachineConfiguration.cs +++ b/src/Batch/Batch/Models/PSVirtualMachineConfiguration.cs @@ -18,10 +18,29 @@ using Microsoft.Azure.Management.Batch; using Microsoft.Azure.Management.Batch.Models; using Microsoft.Azure.Commands.Batch.Utils; +using System.Linq; namespace Microsoft.Azure.Commands.Batch.Models { public partial class PSVirtualMachineConfiguration { + internal VirtualMachineConfiguration toMgmtVirtualMachineConfiguration() + { + return new VirtualMachineConfiguration + { + ImageReference = this.ImageReference?.toMgmtImageReference(), + NodeAgentSkuId = this.NodeAgentSkuId, + WindowsConfiguration = this.WindowsConfiguration?.toMgmtWindowsConfiguration(), + DataDisks = this.DataDisks?.Select(dd => dd?.toMgmtDataDisk()).ToList(), + LicenseType = this.LicenseType, + ContainerConfiguration = this.ContainerConfiguration?.toMgmtContainerConfiguration(), + DiskEncryptionConfiguration = this.DiskEncryptionConfiguration?.toMgmtDiskEncryptionConfiguration(), + //NodePlacementConfiguration = this.NodePlacementConfiguration?.toMgmtNodePlacementConfiguration(), + //Extensions = this.Extensions?.Select(ext => ext?.toMgmtVMExtension()).ToList(), + //OSDisk = this.OSDisk?.toMgmtOSDisk(), + //SecurityProfile = this.SecurityProfile?.toMgmtSecurityProfile(), + //ServiceArtifactReference = this.ServiceArtifactReference?.toMgmtServiceArtifactReference() + }; + } } } diff --git a/src/Batch/Batch/Models/PSWindowsConfiguration.cs b/src/Batch/Batch/Models/PSWindowsConfiguration.cs new file mode 100644 index 000000000000..75282be0baad --- /dev/null +++ b/src/Batch/Batch/Models/PSWindowsConfiguration.cs @@ -0,0 +1,43 @@ +// ----------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ----------------------------------------------------------------------------- + +using System; +using System.Collections.Generic; +using System.Text; +using Microsoft.Azure.Management.Batch; +using Microsoft.Azure.Management.Batch.Models; +using Microsoft.Azure.Commands.Batch.Utils; + +namespace Microsoft.Azure.Commands.Batch.Models +{ + public partial class PSWindowsConfiguration + { + internal WindowsConfiguration toMgmtWindowsConfiguration() + { + return new WindowsConfiguration + { + EnableAutomaticUpdates = this.EnableAutomaticUpdates + }; + } + + internal static PSWindowsConfiguration fromMgmtWindowsConfiguration(WindowsConfiguration windowsConfiguration) + { + if (windowsConfiguration == null) + { + return null; + } + return new PSWindowsConfiguration(windowsConfiguration.EnableAutomaticUpdates); + } + } +} diff --git a/src/Batch/Batch/Utils/Utils.cs b/src/Batch/Batch/Utils/Utils.cs index ad4186a765e0..9acc9ce74b8b 100644 --- a/src/Batch/Batch/Utils/Utils.cs +++ b/src/Batch/Batch/Utils/Utils.cs @@ -668,5 +668,51 @@ internal static Azure.Batch.Common.AutoUserScope fromMgmtAutoUserScope(AutoUserS { return (Azure.Batch.Common.AutoUserScope)scope.Value; } + + internal static CachingType? toMgmtCaching(Azure.Batch.Common.CachingType? caching) + { + if (!caching.HasValue) + { + return null; + } + return (CachingType)caching.Value; + } + + internal static Azure.Batch.Common.CachingType? fromMgmtCaching(CachingType? caching) + { + if (!caching.HasValue) + { + return null; + } + return (Azure.Batch.Common.CachingType)caching.Value; + } + + internal static StorageAccountType? toMgmtStorageAccountType(Azure.Batch.Common.StorageAccountType? storageAccountType) + { + if (!storageAccountType.HasValue) + { + return null; + } + return (StorageAccountType)storageAccountType.Value; + } + + internal static Azure.Batch.Common.StorageAccountType? fromMgmtStorageAccountType(StorageAccountType? storageAccountType) + { + if (!storageAccountType.HasValue) + { + return null; + } + return (Azure.Batch.Common.StorageAccountType)storageAccountType.Value; + } + + internal static DiskEncryptionTarget toMgmtDiskEncryptionTarget(Azure.Batch.Common.DiskEncryptionTarget md) + { + return (DiskEncryptionTarget)md; + } + + internal static Azure.Batch.Common.DiskEncryptionTarget fromMgmtDiskEncryptionTarget(DiskEncryptionTarget md) + { + return (Azure.Batch.Common.DiskEncryptionTarget)md; + } } } \ No newline at end of file From 678cc783dc57545d64a7c87e6163e764913688ea Mon Sep 17 00:00:00 2001 From: "REDMOND\\wiboris" Date: Wed, 15 Oct 2025 13:43:53 -0700 Subject: [PATCH 13/13] model conversion --- ...PSAzureBlobFileSystemConfigurationTests.cs | 457 ++++++ .../PSAzureFileShareConfigurationTests.cs | 1013 +++++++++++++ .../Models/PSCifsMountConfigurationTests.cs | 978 +++++++++++++ .../Models/PSContainerConfigurationTests.cs | 51 +- .../Models/PSDiffDiskSettingsTests.cs | 600 ++++++++ .../Models/PSInboundNatPoolTests.cs | 949 +++++++++++++ .../Models/PSLinuxUserConfigurationTests.cs | 827 +++++++++++ .../Batch.Test/Models/PSManagedDiskTests.cs | 973 +++++++++++++ .../Models/PSMountConfigurationTests.cs | 683 +++++++++ .../Models/PSNetworkConfigurationTests.cs | 944 +++++++++++++ .../Models/PSNetworkSecurityGroupRuleTests.cs | 775 ++++++++++ .../Models/PSNfsMountConfigurationTests.cs | 831 +++++++++++ .../PSNodePlacementConfigurationTests.cs | 636 +++++++++ src/Batch/Batch.Test/Models/PSOSDiskTests.cs | 833 +++++++++++ .../PSPublicIPAddressConfigurationTests.cs | 976 +++++++++++++ .../Models/PSSecurityProfileTests.cs | 1247 +++++++++++++++++ .../Models/PSServiceArtifactReferenceTests.cs | 788 +++++++++++ .../Batch.Test/Models/PSUefiSettingsTests.cs | 1029 ++++++++++++++ .../Batch.Test/Models/PSUserAccountTests.cs | 1129 +++++++++++++++ .../Models/PSVMDiskSecurityProfileTests.cs | 757 ++++++++++ .../Batch.Test/Models/PSVMExtensionTests.cs | 839 +++++++++++ .../PSVirtualMachineConfigurationTests.cs | 626 +++++++++ .../Models/PSWindowsUserConfigurationTests.cs | 786 +++++++++++ .../TestPoolCRUD.json | 486 +++++-- .../Utils/UtilsAllocationStateTests.cs | 415 ++++++ .../UtilsCapitalizedElevationLevelTests.cs | 781 +++++++++++ .../Utils/UtilsDiffDiskPlacementTests.cs | 459 ++++++ .../UtilsDynamicVNetAssignmentScopeTests.cs | 704 ++++++++++ .../UtilsIPAddressProvisioningTypeTests.cs | 700 +++++++++ .../UtilsInboundEndpointProtocolTests.cs | 645 +++++++++ .../Batch.Test/Utils/UtilsLoginModeTests.cs | 801 +++++++++++ ...tilsNetworkSecurityGroupRuleAccessTests.cs | 643 +++++++++ .../UtilsNodePlacementPolicyTypeTests.cs | 484 +++++++ .../Utils/UtilsSecurityTypesTests.cs | 746 ++++++++++ .../UtilsToMgmtStorageAccountTypeTests.cs | 877 ++++++++++++ .../PSAzureBlobFileSystemConfiguration.cs | 5 +- src/Batch/Batch/Models/BatchClient.Pools.cs | 37 +- .../PSAzureBlobFileSystemConfiguration.cs | 78 ++ .../Models/PSAzureFileShareConfiguration.cs | 53 + .../Batch/Models/PSCifsMountConfiguration.cs | 56 + .../Batch/Models/PSContainerConfiguration.cs | 2 +- src/Batch/Batch/Models/PSDiffDiskSettings.cs | 47 + src/Batch/Batch/Models/PSInboundNatPool.cs | 57 + .../Batch/Models/PSLinuxUserConfiguration.cs | 49 + src/Batch/Batch/Models/PSManagedDisk.cs | 41 + .../Batch/Models/PSMountConfiguration.cs | 64 + .../Batch/Models/PSNetworkConfiguration.cs | 56 + .../Models/PSNetworkSecurityGroupRule.cs | 52 + .../Batch/Models/PSNfsMountConfiguration.cs | 49 + .../Models/PSNodePlacementConfiguration.cs | 41 + src/Batch/Batch/Models/PSOSDisk.cs | 57 + .../Models/PSPoolEndpointConfiguration.cs | 47 + .../Models/PSPublicIPAddressConfiguration.cs | 50 + src/Batch/Batch/Models/PSSecurityProfile.cs | 51 + .../Models/PSServiceArtifactReference.cs | 40 + src/Batch/Batch/Models/PSUefiSettings.cs | 51 + src/Batch/Batch/Models/PSUserAccount.cs | 53 + .../Batch/Models/PSVMDiskSecurityProfile.cs | 47 + src/Batch/Batch/Models/PSVMExtension.cs | 58 + .../Models/PSVirtualMachineConfiguration.cs | 34 +- .../Models/PSWindowsUserConfiguration.cs | 47 + src/Batch/Batch/Utils/Utils.cs | 131 ++ 62 files changed, 27681 insertions(+), 140 deletions(-) create mode 100644 src/Batch/Batch.Test/Models/PSAzureBlobFileSystemConfigurationTests.cs create mode 100644 src/Batch/Batch.Test/Models/PSAzureFileShareConfigurationTests.cs create mode 100644 src/Batch/Batch.Test/Models/PSCifsMountConfigurationTests.cs create mode 100644 src/Batch/Batch.Test/Models/PSDiffDiskSettingsTests.cs create mode 100644 src/Batch/Batch.Test/Models/PSInboundNatPoolTests.cs create mode 100644 src/Batch/Batch.Test/Models/PSLinuxUserConfigurationTests.cs create mode 100644 src/Batch/Batch.Test/Models/PSManagedDiskTests.cs create mode 100644 src/Batch/Batch.Test/Models/PSMountConfigurationTests.cs create mode 100644 src/Batch/Batch.Test/Models/PSNetworkConfigurationTests.cs create mode 100644 src/Batch/Batch.Test/Models/PSNetworkSecurityGroupRuleTests.cs create mode 100644 src/Batch/Batch.Test/Models/PSNfsMountConfigurationTests.cs create mode 100644 src/Batch/Batch.Test/Models/PSNodePlacementConfigurationTests.cs create mode 100644 src/Batch/Batch.Test/Models/PSOSDiskTests.cs create mode 100644 src/Batch/Batch.Test/Models/PSPublicIPAddressConfigurationTests.cs create mode 100644 src/Batch/Batch.Test/Models/PSSecurityProfileTests.cs create mode 100644 src/Batch/Batch.Test/Models/PSServiceArtifactReferenceTests.cs create mode 100644 src/Batch/Batch.Test/Models/PSUefiSettingsTests.cs create mode 100644 src/Batch/Batch.Test/Models/PSUserAccountTests.cs create mode 100644 src/Batch/Batch.Test/Models/PSVMDiskSecurityProfileTests.cs create mode 100644 src/Batch/Batch.Test/Models/PSVMExtensionTests.cs create mode 100644 src/Batch/Batch.Test/Models/PSVirtualMachineConfigurationTests.cs create mode 100644 src/Batch/Batch.Test/Models/PSWindowsUserConfigurationTests.cs create mode 100644 src/Batch/Batch.Test/Utils/UtilsAllocationStateTests.cs create mode 100644 src/Batch/Batch.Test/Utils/UtilsCapitalizedElevationLevelTests.cs create mode 100644 src/Batch/Batch.Test/Utils/UtilsDiffDiskPlacementTests.cs create mode 100644 src/Batch/Batch.Test/Utils/UtilsDynamicVNetAssignmentScopeTests.cs create mode 100644 src/Batch/Batch.Test/Utils/UtilsIPAddressProvisioningTypeTests.cs create mode 100644 src/Batch/Batch.Test/Utils/UtilsInboundEndpointProtocolTests.cs create mode 100644 src/Batch/Batch.Test/Utils/UtilsLoginModeTests.cs create mode 100644 src/Batch/Batch.Test/Utils/UtilsNetworkSecurityGroupRuleAccessTests.cs create mode 100644 src/Batch/Batch.Test/Utils/UtilsNodePlacementPolicyTypeTests.cs create mode 100644 src/Batch/Batch.Test/Utils/UtilsSecurityTypesTests.cs create mode 100644 src/Batch/Batch.Test/Utils/UtilsToMgmtStorageAccountTypeTests.cs create mode 100644 src/Batch/Batch/Models/PSAzureBlobFileSystemConfiguration.cs create mode 100644 src/Batch/Batch/Models/PSAzureFileShareConfiguration.cs create mode 100644 src/Batch/Batch/Models/PSCifsMountConfiguration.cs create mode 100644 src/Batch/Batch/Models/PSDiffDiskSettings.cs create mode 100644 src/Batch/Batch/Models/PSInboundNatPool.cs create mode 100644 src/Batch/Batch/Models/PSLinuxUserConfiguration.cs create mode 100644 src/Batch/Batch/Models/PSManagedDisk.cs create mode 100644 src/Batch/Batch/Models/PSMountConfiguration.cs create mode 100644 src/Batch/Batch/Models/PSNetworkConfiguration.cs create mode 100644 src/Batch/Batch/Models/PSNetworkSecurityGroupRule.cs create mode 100644 src/Batch/Batch/Models/PSNfsMountConfiguration.cs create mode 100644 src/Batch/Batch/Models/PSNodePlacementConfiguration.cs create mode 100644 src/Batch/Batch/Models/PSOSDisk.cs create mode 100644 src/Batch/Batch/Models/PSPoolEndpointConfiguration.cs create mode 100644 src/Batch/Batch/Models/PSPublicIPAddressConfiguration.cs create mode 100644 src/Batch/Batch/Models/PSSecurityProfile.cs create mode 100644 src/Batch/Batch/Models/PSServiceArtifactReference.cs create mode 100644 src/Batch/Batch/Models/PSUefiSettings.cs create mode 100644 src/Batch/Batch/Models/PSUserAccount.cs create mode 100644 src/Batch/Batch/Models/PSVMDiskSecurityProfile.cs create mode 100644 src/Batch/Batch/Models/PSVMExtension.cs create mode 100644 src/Batch/Batch/Models/PSWindowsUserConfiguration.cs diff --git a/src/Batch/Batch.Test/Models/PSAzureBlobFileSystemConfigurationTests.cs b/src/Batch/Batch.Test/Models/PSAzureBlobFileSystemConfigurationTests.cs new file mode 100644 index 000000000000..decf8c384d0c --- /dev/null +++ b/src/Batch/Batch.Test/Models/PSAzureBlobFileSystemConfigurationTests.cs @@ -0,0 +1,457 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using Microsoft.Azure.Commands.Batch.Models; +using Microsoft.Azure.Management.Batch.Models; +using Microsoft.WindowsAzure.Commands.ScenarioTest; +using Xunit; + +namespace Microsoft.Azure.Commands.Batch.Test.ModelsConversions +{ + public class PSAzureBlobFileSystemConfigurationTests + { + #region toMgmtAzureBlobFileSystemConfiguration Tests + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void ToMgmtAzureBlobFileSystemConfiguration_WithIdentityReference_ConvertsCorrectly() + { + // Arrange + var identityResourceId = "/subscriptions/test-sub/resourceGroups/test-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/test-identity"; + var psIdentityRef = new PSComputeNodeIdentityReference { ResourceId = identityResourceId }; + var psConfig = new PSAzureBlobFileSystemConfiguration( + accountName: "teststorageaccount", + containerName: "testcontainer", + relativeMountPath: "data", + identityReference: psIdentityRef, + blobfuseOptions: "-o allow_other"); + + // Act + var mgmtConfig = psConfig.toMgmtAzureBlobFileSystemConfiguration(); + + // Assert + Assert.NotNull(mgmtConfig); + Assert.Equal("teststorageaccount", mgmtConfig.AccountName); + Assert.Equal("testcontainer", mgmtConfig.ContainerName); + Assert.Equal("data", mgmtConfig.RelativeMountPath); + Assert.Equal("-o allow_other", mgmtConfig.BlobfuseOptions); + Assert.NotNull(mgmtConfig.IdentityReference); + Assert.Equal(identityResourceId, mgmtConfig.IdentityReference.ResourceId); + Assert.Null(mgmtConfig.AccountKey); + Assert.Null(mgmtConfig.SasKey); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void ToMgmtAzureBlobFileSystemConfiguration_WithSasKey_ConvertsCorrectly() + { + // Arrange + var sasKey = "?sv=2021-08-06&ss=b&srt=sco&sp=rwdlacupx&se=2023-12-31T23:59:59Z&st=2023-01-01T00:00:00Z&spr=https&sig=testSasKey"; + var azureKey = Microsoft.Azure.Batch.AzureStorageAuthenticationKey.FromSasKey(sasKey); + var psConfig = new PSAzureBlobFileSystemConfiguration( + accountName: "teststorageaccount", + containerName: "testcontainer", + relativeMountPath: "data", + key: azureKey, + blobfuseOptions: null); + + // Act + var mgmtConfig = psConfig.toMgmtAzureBlobFileSystemConfiguration(); + + // Assert + Assert.NotNull(mgmtConfig); + Assert.Equal("teststorageaccount", mgmtConfig.AccountName); + Assert.Equal("testcontainer", mgmtConfig.ContainerName); + Assert.Equal("data", mgmtConfig.RelativeMountPath); + Assert.Null(mgmtConfig.BlobfuseOptions); + Assert.Equal(sasKey, mgmtConfig.SasKey); + Assert.Null(mgmtConfig.AccountKey); + Assert.Null(mgmtConfig.IdentityReference); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void ToMgmtAzureBlobFileSystemConfiguration_WithAccountKey_ConvertsCorrectly() + { + // Arrange + var accountKey = "dGVzdGFjY291bnRrZXk="; // base64 encoded test account key + var azureKey = Microsoft.Azure.Batch.AzureStorageAuthenticationKey.FromSasKey(accountKey); + var psConfig = new PSAzureBlobFileSystemConfiguration( + accountName: "teststorageaccount", + containerName: "testcontainer", + relativeMountPath: "data", + key: azureKey); + + // Act + var mgmtConfig = psConfig.toMgmtAzureBlobFileSystemConfiguration(); + + // Assert + Assert.NotNull(mgmtConfig); + Assert.Equal("teststorageaccount", mgmtConfig.AccountName); + Assert.Equal("testcontainer", mgmtConfig.ContainerName); + Assert.Equal("data", mgmtConfig.RelativeMountPath); + Assert.Equal(accountKey, mgmtConfig.SasKey); + Assert.Null(mgmtConfig.AccountKey); + Assert.Null(mgmtConfig.IdentityReference); + } + + #endregion + + #region fromMgmtAzureBlobFileSystemConfiguration Tests + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void FromMgmtAzureBlobFileSystemConfiguration_WithNull_ReturnsNull() + { + // Act + var result = PSAzureBlobFileSystemConfiguration.fromMgmtAzureBlobFileSystemConfiguration(null); + + // Assert + Assert.Null(result); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void FromMgmtAzureBlobFileSystemConfiguration_WithIdentityReference_ConvertsCorrectly() + { + // Arrange + var identityResourceId = "/subscriptions/test-sub/resourceGroups/test-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/test-identity"; + var mgmtIdentityRef = new ComputeNodeIdentityReference(identityResourceId); + var mgmtConfig = new AzureBlobFileSystemConfiguration( + accountName: "teststorageaccount", + containerName: "testcontainer", + relativeMountPath: "data", + blobfuseOptions: "-o allow_other", + identityReference: mgmtIdentityRef); + + // Act + var psConfig = PSAzureBlobFileSystemConfiguration.fromMgmtAzureBlobFileSystemConfiguration(mgmtConfig); + + // Assert + Assert.NotNull(psConfig); + Assert.Equal("teststorageaccount", psConfig.AccountName); + Assert.Equal("testcontainer", psConfig.ContainerName); + Assert.Equal("data", psConfig.RelativeMountPath); + Assert.Equal("-o allow_other", psConfig.BlobfuseOptions); + Assert.NotNull(psConfig.IdentityReference); + Assert.Equal(identityResourceId, psConfig.IdentityReference.ResourceId); + Assert.Null(psConfig.AccountKey); + Assert.Null(psConfig.SasKey); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void FromMgmtAzureBlobFileSystemConfiguration_WithSasKey_ConvertsCorrectly() + { + // Arrange + var sasKey = "?sv=2021-08-06&ss=b&srt=sco&sp=rwdlacupx&se=2023-12-31T23:59:59Z&st=2023-01-01T00:00:00Z&spr=https&sig=testSasKey"; + var mgmtConfig = new AzureBlobFileSystemConfiguration( + accountName: "teststorageaccount", + containerName: "testcontainer", + relativeMountPath: "data", + sasKey: sasKey, + blobfuseOptions: "-o allow_other"); + + // Act + var psConfig = PSAzureBlobFileSystemConfiguration.fromMgmtAzureBlobFileSystemConfiguration(mgmtConfig); + + // Assert + Assert.NotNull(psConfig); + Assert.Equal("teststorageaccount", psConfig.AccountName); + Assert.Equal("testcontainer", psConfig.ContainerName); + Assert.Equal("data", psConfig.RelativeMountPath); + Assert.Equal("-o allow_other", psConfig.BlobfuseOptions); + Assert.Equal(sasKey, psConfig.SasKey); + Assert.Null(psConfig.AccountKey); + Assert.Null(psConfig.IdentityReference); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void FromMgmtAzureBlobFileSystemConfiguration_WithNullIdentityReference_ReturnsNull() + { + var accountKey = "dGVzdGFjY291bnRrZXk="; // base64 encoded test account key + + // Arrange + var mgmtConfig = new AzureBlobFileSystemConfiguration( + accountName: "teststorageaccount", + containerName: "testcontainer", + relativeMountPath: "data", + accountKey: accountKey, + blobfuseOptions: "-o allow_other"); + + // Act + var psConfig = PSAzureBlobFileSystemConfiguration.fromMgmtAzureBlobFileSystemConfiguration(mgmtConfig); + + // Assert + Assert.NotNull(psConfig); + Assert.Equal("teststorageaccount", psConfig.AccountName); + Assert.Equal("testcontainer", psConfig.ContainerName); + Assert.Equal("data", psConfig.RelativeMountPath); + Assert.Equal("-o allow_other", psConfig.BlobfuseOptions); + Assert.Equal(accountKey, psConfig.AccountKey); + Assert.Null(psConfig.SasKey); + Assert.Null(psConfig.IdentityReference); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void FromMgmtAzureBlobFileSystemConfiguration_WithNullAuthenticationMethods_ReturnsNull () + { + // Arrange + var mgmtConfig = new AzureBlobFileSystemConfiguration( + accountName: "teststorageaccount", + containerName: "testcontainer", + relativeMountPath: "data", + sasKey: null); + + // Act + var psConfig = PSAzureBlobFileSystemConfiguration.fromMgmtAzureBlobFileSystemConfiguration(mgmtConfig); + + // Assert - Current implementation returns null when SasKey is null and no IdentityReference + Assert.Null(psConfig); + } + + #endregion + + #region Round-trip Conversion Tests + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void RoundTripConversion_WithIdentityReference_PreservesValues() + { + // Arrange + var identityResourceId = "/subscriptions/test-sub/resourceGroups/test-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/test-identity"; + var psIdentityRef = new PSComputeNodeIdentityReference { ResourceId = identityResourceId }; + var originalPsConfig = new PSAzureBlobFileSystemConfiguration( + accountName: "teststorageaccount", + containerName: "testcontainer", + relativeMountPath: "data", + identityReference: psIdentityRef, + blobfuseOptions: "-o allow_other"); + + // Act + var mgmtConfig = originalPsConfig.toMgmtAzureBlobFileSystemConfiguration(); + var roundTripPsConfig = PSAzureBlobFileSystemConfiguration.fromMgmtAzureBlobFileSystemConfiguration(mgmtConfig); + + // Assert + Assert.NotNull(roundTripPsConfig); + Assert.Equal(originalPsConfig.AccountName, roundTripPsConfig.AccountName); + Assert.Equal(originalPsConfig.ContainerName, roundTripPsConfig.ContainerName); + Assert.Equal(originalPsConfig.RelativeMountPath, roundTripPsConfig.RelativeMountPath); + Assert.Equal(originalPsConfig.BlobfuseOptions, roundTripPsConfig.BlobfuseOptions); + Assert.NotNull(roundTripPsConfig.IdentityReference); + Assert.Equal(identityResourceId, roundTripPsConfig.IdentityReference.ResourceId); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void RoundTripConversion_WithSasKey_PreservesValues() + { + // Arrange + var sasKey = "?sv=2021-08-06&ss=b&srt=sco&sp=rwdlacupx&se=2023-12-31T23:59:59Z&st=2023-01-01T00:00:00Z&spr=https&sig=testSasKey"; + var azureKey = Microsoft.Azure.Batch.AzureStorageAuthenticationKey.FromSasKey(sasKey); + var originalPsConfig = new PSAzureBlobFileSystemConfiguration( + accountName: "teststorageaccount", + containerName: "testcontainer", + relativeMountPath: "data", + key: azureKey, + blobfuseOptions: "-o allow_other"); + + // Act + var mgmtConfig = originalPsConfig.toMgmtAzureBlobFileSystemConfiguration(); + var roundTripPsConfig = PSAzureBlobFileSystemConfiguration.fromMgmtAzureBlobFileSystemConfiguration(mgmtConfig); + + // Assert + Assert.NotNull(roundTripPsConfig); + Assert.Equal(originalPsConfig.AccountName, roundTripPsConfig.AccountName); + Assert.Equal(originalPsConfig.ContainerName, roundTripPsConfig.ContainerName); + Assert.Equal(originalPsConfig.RelativeMountPath, roundTripPsConfig.RelativeMountPath); + Assert.Equal(originalPsConfig.BlobfuseOptions, roundTripPsConfig.BlobfuseOptions); + Assert.Equal(sasKey, roundTripPsConfig.SasKey); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void RoundTripConversion_FromMgmtWithIdentityReference_PreservesValues() + { + // Arrange + var identityResourceId = "/subscriptions/test-sub/resourceGroups/test-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/test-identity"; + var mgmtIdentityRef = new ComputeNodeIdentityReference(identityResourceId); + var originalMgmtConfig = new AzureBlobFileSystemConfiguration( + accountName: "teststorageaccount", + containerName: "testcontainer", + relativeMountPath: "data", + blobfuseOptions: "-o allow_other", + identityReference: mgmtIdentityRef); + + // Act + var psConfig = PSAzureBlobFileSystemConfiguration.fromMgmtAzureBlobFileSystemConfiguration(originalMgmtConfig); + var roundTripMgmtConfig = psConfig.toMgmtAzureBlobFileSystemConfiguration(); + + // Assert + Assert.NotNull(roundTripMgmtConfig); + Assert.Equal(originalMgmtConfig.AccountName, roundTripMgmtConfig.AccountName); + Assert.Equal(originalMgmtConfig.ContainerName, roundTripMgmtConfig.ContainerName); + Assert.Equal(originalMgmtConfig.RelativeMountPath, roundTripMgmtConfig.RelativeMountPath); + Assert.Equal(originalMgmtConfig.BlobfuseOptions, roundTripMgmtConfig.BlobfuseOptions); + Assert.NotNull(roundTripMgmtConfig.IdentityReference); + Assert.Equal(identityResourceId, roundTripMgmtConfig.IdentityReference.ResourceId); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void RoundTripConversion_FromMgmtWithSasKey_PreservesValues() + { + // Arrange + var sasKey = "?sv=2021-08-06&ss=b&srt=sco&sp=rwdlacupx&se=2023-12-31T23:59:59Z&st=2023-01-01T00:00:00Z&spr=https&sig=testSasKey"; + var originalMgmtConfig = new AzureBlobFileSystemConfiguration( + accountName: "teststorageaccount", + containerName: "testcontainer", + relativeMountPath: "data", + sasKey: sasKey, + blobfuseOptions: "-o allow_other"); + + // Act + var psConfig = PSAzureBlobFileSystemConfiguration.fromMgmtAzureBlobFileSystemConfiguration(originalMgmtConfig); + var roundTripMgmtConfig = psConfig.toMgmtAzureBlobFileSystemConfiguration(); + + // Assert + Assert.NotNull(roundTripMgmtConfig); + Assert.Equal(originalMgmtConfig.AccountName, roundTripMgmtConfig.AccountName); + Assert.Equal(originalMgmtConfig.ContainerName, roundTripMgmtConfig.ContainerName); + Assert.Equal(originalMgmtConfig.RelativeMountPath, roundTripMgmtConfig.RelativeMountPath); + Assert.Equal(originalMgmtConfig.BlobfuseOptions, roundTripMgmtConfig.BlobfuseOptions); + Assert.Equal(sasKey, roundTripMgmtConfig.SasKey); + } + + #endregion + + #region Integration Tests + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void AzureBlobFileSystemConfigurationConversions_BothDirections_MaintainSemanticEquivalence() + { + // This test ensures that the semantic meaning is preserved across conversions for Azure Batch blob file system mounting + + // Test Identity-based authentication scenario - Managed Identity for secure access + var identityResourceId = "/subscriptions/test-sub/resourceGroups/test-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/batch-identity"; + var psIdentityRef = new PSComputeNodeIdentityReference { ResourceId = identityResourceId }; + var psConfig = new PSAzureBlobFileSystemConfiguration( + accountName: "batchstorage", + containerName: "datasets", + relativeMountPath: "input-data", + identityReference: psIdentityRef, + blobfuseOptions: "-o allow_other"); + + var mgmtConfig = psConfig.toMgmtAzureBlobFileSystemConfiguration(); + var backToPs = PSAzureBlobFileSystemConfiguration.fromMgmtAzureBlobFileSystemConfiguration(mgmtConfig); + + Assert.NotNull(mgmtConfig); + Assert.Equal("batchstorage", mgmtConfig.AccountName); + Assert.Equal("datasets", mgmtConfig.ContainerName); + Assert.Equal("input-data", mgmtConfig.RelativeMountPath); + Assert.Equal(identityResourceId, mgmtConfig.IdentityReference.ResourceId); + + Assert.NotNull(backToPs); + Assert.Equal("batchstorage", backToPs.AccountName); + Assert.Equal("datasets", backToPs.ContainerName); + Assert.Equal("input-data", backToPs.RelativeMountPath); + Assert.Equal(identityResourceId, backToPs.IdentityReference.ResourceId); + + // Test SAS token authentication scenario - Time-limited access + var sasToken = "?sv=2021-08-06&ss=b&srt=sco&sp=r&se=2023-12-31T23:59:59Z&st=2023-01-01T00:00:00Z&spr=https&sig=batchSasToken"; + var azureSasKey = Microsoft.Azure.Batch.AzureStorageAuthenticationKey.FromSasKey(sasToken); + var psSasConfig = new PSAzureBlobFileSystemConfiguration( + accountName: "batchstorage", + containerName: "outputs", + relativeMountPath: "results", + key: azureSasKey); + + var mgmtSasConfig = psSasConfig.toMgmtAzureBlobFileSystemConfiguration(); + var backToSasPs = PSAzureBlobFileSystemConfiguration.fromMgmtAzureBlobFileSystemConfiguration(mgmtSasConfig); + + Assert.NotNull(mgmtSasConfig); + Assert.Equal(sasToken, mgmtSasConfig.SasKey); + Assert.Equal("outputs", mgmtSasConfig.ContainerName); + + Assert.NotNull(backToSasPs); + Assert.Equal(sasToken, backToSasPs.SasKey); + Assert.Equal("outputs", backToSasPs.ContainerName); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void AzureBlobFileSystemConfigurationConversions_NullHandling_WorksCorrectly() + { + // Test null handling in conversions + + // Act + var resultFromNull = PSAzureBlobFileSystemConfiguration.fromMgmtAzureBlobFileSystemConfiguration(null); + + // Assert + Assert.Null(resultFromNull); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void AzureBlobFileSystemConfigurationConversions_BatchPoolContext_VerifyCorrectUsage() + { + // This test validates the conversions work correctly in the context of Azure Batch pool mount configuration + // AzureBlobFileSystemConfiguration is used to mount Azure Blob Storage containers as file systems on Batch compute nodes + + // Arrange - Test data science workload scenario with input datasets + var dataScenario = new + { + AccountName = "mlstorage", + ContainerName = "training-data", + RelativeMountPath = "datasets", + BlobfuseOptions = "-o allow_other --cache-size-mb=1000", + IdentityResourceId = "/subscriptions/ml-sub/resourceGroups/ml-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ml-identity", + Description = "Data science training dataset mount for ML workloads" + }; + + var psIdentity = new PSComputeNodeIdentityReference { ResourceId = dataScenario.IdentityResourceId }; + var psDataConfig = new PSAzureBlobFileSystemConfiguration( + accountName: dataScenario.AccountName, + containerName: dataScenario.ContainerName, + relativeMountPath: dataScenario.RelativeMountPath, + identityReference: psIdentity, + blobfuseOptions: dataScenario.BlobfuseOptions); + + // Act + var mgmtDataConfig = psDataConfig.toMgmtAzureBlobFileSystemConfiguration(); + + // Assert - Should convert correctly for Batch pool mount configuration + Assert.NotNull(mgmtDataConfig); + Assert.Equal(dataScenario.AccountName, mgmtDataConfig.AccountName); + Assert.Equal(dataScenario.ContainerName, mgmtDataConfig.ContainerName); + Assert.Equal(dataScenario.RelativeMountPath, mgmtDataConfig.RelativeMountPath); + Assert.Equal(dataScenario.BlobfuseOptions, mgmtDataConfig.BlobfuseOptions); + Assert.Equal(dataScenario.IdentityResourceId, mgmtDataConfig.IdentityReference.ResourceId); + + // Verify round-trip conversion maintains Batch pool semantics + var backToPs = PSAzureBlobFileSystemConfiguration.fromMgmtAzureBlobFileSystemConfiguration(mgmtDataConfig); + Assert.NotNull(backToPs); + Assert.Equal(dataScenario.AccountName, backToPs.AccountName); + Assert.Equal(dataScenario.ContainerName, backToPs.ContainerName); + Assert.Equal(dataScenario.RelativeMountPath, backToPs.RelativeMountPath); + Assert.Equal(dataScenario.BlobfuseOptions, backToPs.BlobfuseOptions); + Assert.Equal(dataScenario.IdentityResourceId, backToPs.IdentityReference.ResourceId); + } + + #endregion + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Test/Models/PSAzureFileShareConfigurationTests.cs b/src/Batch/Batch.Test/Models/PSAzureFileShareConfigurationTests.cs new file mode 100644 index 000000000000..bf8ff20f1655 --- /dev/null +++ b/src/Batch/Batch.Test/Models/PSAzureFileShareConfigurationTests.cs @@ -0,0 +1,1013 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using Microsoft.Azure.Commands.Batch.Models; +using Microsoft.Azure.Management.Batch.Models; +using Microsoft.WindowsAzure.Commands.ScenarioTest; +using System.Collections.Generic; +using Xunit; + +namespace Microsoft.Azure.Commands.Batch.Test.ModelsConversions +{ + public class PSAzureFileShareConfigurationTests + { + #region toMgmtAzureFileShareConfiguration Tests + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void ToMgmtAzureFileShareConfiguration_WithAllProperties_ConvertsCorrectly() + { + // Arrange + var psConfig = new PSAzureFileShareConfiguration( + accountName: "teststorageaccount", + azureFileUrl: "https://teststorageaccount.file.core.windows.net/", + accountKey: "dGVzdGFjY291bnRrZXk=", + relativeMountPath: "azure-files", + mountOptions: "vers=3.0,dir_mode=0777,file_mode=0777,uid=1000,gid=1000"); + + // Act + var mgmtConfig = psConfig.toMgmtAzureFileShareConfiguration(); + + // Assert + Assert.NotNull(mgmtConfig); + Assert.Equal("teststorageaccount", mgmtConfig.AccountName); + Assert.Equal("https://teststorageaccount.file.core.windows.net/", mgmtConfig.AzureFileUrl); + Assert.Equal("dGVzdGFjY291bnRrZXk=", mgmtConfig.AccountKey); + Assert.Equal("azure-files", mgmtConfig.RelativeMountPath); + Assert.Equal("vers=3.0,dir_mode=0777,file_mode=0777,uid=1000,gid=1000", mgmtConfig.MountOptions); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void ToMgmtAzureFileShareConfiguration_WithoutMountOptions_ConvertsCorrectly() + { + // Arrange + var psConfig = new PSAzureFileShareConfiguration( + accountName: "mystorageaccount", + azureFileUrl: "https://mystorageaccount.file.core.windows.net/", + accountKey: "bXlzdG9yYWdlYWNjb3VudGtleQ==", + relativeMountPath: "shared-data", + mountOptions: null); + + // Act + var mgmtConfig = psConfig.toMgmtAzureFileShareConfiguration(); + + // Assert + Assert.NotNull(mgmtConfig); + Assert.Equal("mystorageaccount", mgmtConfig.AccountName); + Assert.Equal("https://mystorageaccount.file.core.windows.net/", mgmtConfig.AzureFileUrl); + Assert.Equal("bXlzdG9yYWdlYWNjb3VudGtleQ==", mgmtConfig.AccountKey); + Assert.Equal("shared-data", mgmtConfig.RelativeMountPath); + Assert.Null(mgmtConfig.MountOptions); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void ToMgmtAzureFileShareConfiguration_WithEmptyMountOptions_ConvertsCorrectly() + { + // Arrange + var psConfig = new PSAzureFileShareConfiguration( + accountName: "emptymountstorageaccount", + azureFileUrl: "https://emptymountstorageaccount.file.core.windows.net/", + accountKey: "ZW1wdHltb3VudHN0b3JhZ2VhY2NvdW50a2V5", + relativeMountPath: "empty-mount-data", + mountOptions: ""); + + // Act + var mgmtConfig = psConfig.toMgmtAzureFileShareConfiguration(); + + // Assert + Assert.NotNull(mgmtConfig); + Assert.Equal("emptymountstorageaccount", mgmtConfig.AccountName); + Assert.Equal("https://emptymountstorageaccount.file.core.windows.net/", mgmtConfig.AzureFileUrl); + Assert.Equal("ZW1wdHltb3VudHN0b3JhZ2VhY2NvdW50a2V5", mgmtConfig.AccountKey); + Assert.Equal("empty-mount-data", mgmtConfig.RelativeMountPath); + Assert.Equal("", mgmtConfig.MountOptions); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void ToMgmtAzureFileShareConfiguration_WithMinimalConfiguration_ConvertsCorrectly() + { + // Arrange - Using constructor without mount options parameter + var psConfig = new PSAzureFileShareConfiguration( + accountName: "basicstorageaccount", + azureFileUrl: "https://basicstorageaccount.file.core.windows.net/", + accountKey: "YmFzaWNzdG9yYWdlYWNjb3VudGtleQ==", + relativeMountPath: "basic-files"); + + // Act + var mgmtConfig = psConfig.toMgmtAzureFileShareConfiguration(); + + // Assert + Assert.NotNull(mgmtConfig); + Assert.Equal("basicstorageaccount", mgmtConfig.AccountName); + Assert.Equal("https://basicstorageaccount.file.core.windows.net/", mgmtConfig.AzureFileUrl); + Assert.Equal("YmFzaWNzdG9yYWdlYWNjb3VudGtleQ==", mgmtConfig.AccountKey); + Assert.Equal("basic-files", mgmtConfig.RelativeMountPath); + Assert.Null(mgmtConfig.MountOptions); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void ToMgmtAzureFileShareConfiguration_AlwaysCreatesNewInstance() + { + // Arrange + var psConfig = new PSAzureFileShareConfiguration( + accountName: "instanceteststorage", + azureFileUrl: "https://instanceteststorage.file.core.windows.net/", + accountKey: "aW5zdGFuY2V0ZXN0c3RvcmFnZWtleQ==", + relativeMountPath: "instance-test"); + + // Act + var mgmtConfig1 = psConfig.toMgmtAzureFileShareConfiguration(); + var mgmtConfig2 = psConfig.toMgmtAzureFileShareConfiguration(); + + // Assert + Assert.NotNull(mgmtConfig1); + Assert.NotNull(mgmtConfig2); + Assert.NotSame(mgmtConfig1, mgmtConfig2); + Assert.Equal(mgmtConfig1.AccountName, mgmtConfig2.AccountName); + Assert.Equal(mgmtConfig1.AzureFileUrl, mgmtConfig2.AzureFileUrl); + Assert.Equal(mgmtConfig1.AccountKey, mgmtConfig2.AccountKey); + Assert.Equal(mgmtConfig1.RelativeMountPath, mgmtConfig2.RelativeMountPath); + Assert.Equal(mgmtConfig1.MountOptions, mgmtConfig2.MountOptions); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void ToMgmtAzureFileShareConfiguration_VerifyReturnType() + { + // Arrange + var psConfig = new PSAzureFileShareConfiguration( + accountName: "typeteststorage", + azureFileUrl: "https://typeteststorage.file.core.windows.net/", + accountKey: "dHlwZXRlc3RzdG9yYWdla2V5", + relativeMountPath: "type-test"); + + // Act + var mgmtConfig = psConfig.toMgmtAzureFileShareConfiguration(); + + // Assert + Assert.NotNull(mgmtConfig); + Assert.IsType(mgmtConfig); + Assert.IsAssignableFrom(mgmtConfig); + } + + #endregion + + #region fromMgmtAzureFileShareConfiguration Tests + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void FromMgmtAzureFileShareConfiguration_WithNull_ReturnsNull() + { + // Act + var result = PSAzureFileShareConfiguration.fromMgmtAzureFileShareConfiguration(null); + + // Assert + Assert.Null(result); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void FromMgmtAzureFileShareConfiguration_WithAllProperties_ConvertsCorrectly() + { + // Arrange + var mgmtConfig = new AzureFileShareConfiguration( + accountName: "teststorageaccount", + azureFileUrl: "https://teststorageaccount.file.core.windows.net/", + accountKey: "dGVzdGFjY291bnRrZXk=", + relativeMountPath: "azure-files", + mountOptions: "vers=3.0,dir_mode=0777,file_mode=0777,uid=1000,gid=1000"); + + // Act + var psConfig = PSAzureFileShareConfiguration.fromMgmtAzureFileShareConfiguration(mgmtConfig); + + // Assert + Assert.NotNull(psConfig); + Assert.Equal("teststorageaccount", psConfig.AccountName); + Assert.Equal("https://teststorageaccount.file.core.windows.net/", psConfig.AzureFileUrl); + Assert.Equal("dGVzdGFjY291bnRrZXk=", psConfig.AccountKey); + Assert.Equal("azure-files", psConfig.RelativeMountPath); + Assert.Equal("vers=3.0,dir_mode=0777,file_mode=0777,uid=1000,gid=1000", psConfig.MountOptions); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void FromMgmtAzureFileShareConfiguration_WithoutMountOptions_ConvertsCorrectly() + { + // Arrange + var mgmtConfig = new AzureFileShareConfiguration( + accountName: "mystorageaccount", + azureFileUrl: "https://mystorageaccount.file.core.windows.net/", + accountKey: "bXlzdG9yYWdlYWNjb3VudGtleQ==", + relativeMountPath: "shared-data", + mountOptions: null); + + // Act + var psConfig = PSAzureFileShareConfiguration.fromMgmtAzureFileShareConfiguration(mgmtConfig); + + // Assert + Assert.NotNull(psConfig); + Assert.Equal("mystorageaccount", psConfig.AccountName); + Assert.Equal("https://mystorageaccount.file.core.windows.net/", psConfig.AzureFileUrl); + Assert.Equal("bXlzdG9yYWdlYWNjb3VudGtleQ==", psConfig.AccountKey); + Assert.Equal("shared-data", psConfig.RelativeMountPath); + Assert.Null(psConfig.MountOptions); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void FromMgmtAzureFileShareConfiguration_WithEmptyMountOptions_ConvertsCorrectly() + { + // Arrange + var mgmtConfig = new AzureFileShareConfiguration( + accountName: "emptymountstorageaccount", + azureFileUrl: "https://emptymountstorageaccount.file.core.windows.net/", + accountKey: "ZW1wdHltb3VudHN0b3JhZ2VhY2NvdW50a2V5", + relativeMountPath: "empty-mount-data", + mountOptions: ""); + + // Act + var psConfig = PSAzureFileShareConfiguration.fromMgmtAzureFileShareConfiguration(mgmtConfig); + + // Assert + Assert.NotNull(psConfig); + Assert.Equal("emptymountstorageaccount", psConfig.AccountName); + Assert.Equal("https://emptymountstorageaccount.file.core.windows.net/", psConfig.AzureFileUrl); + Assert.Equal("ZW1wdHltb3VudHN0b3JhZ2VhY2NvdW50a2V5", psConfig.AccountKey); + Assert.Equal("empty-mount-data", psConfig.RelativeMountPath); + Assert.Equal("", psConfig.MountOptions); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void FromMgmtAzureFileShareConfiguration_WithMinimalConfiguration_ConvertsCorrectly() + { + // Arrange + var mgmtConfig = new AzureFileShareConfiguration( + accountName: "basicstorageaccount", + azureFileUrl: "https://basicstorageaccount.file.core.windows.net/", + accountKey: "YmFzaWNzdG9yYWdlYWNjb3VudGtleQ==", + relativeMountPath: "basic-files"); + + // Act + var psConfig = PSAzureFileShareConfiguration.fromMgmtAzureFileShareConfiguration(mgmtConfig); + + // Assert + Assert.NotNull(psConfig); + Assert.Equal("basicstorageaccount", psConfig.AccountName); + Assert.Equal("https://basicstorageaccount.file.core.windows.net/", psConfig.AzureFileUrl); + Assert.Equal("YmFzaWNzdG9yYWdlYWNjb3VudGtleQ==", psConfig.AccountKey); + Assert.Equal("basic-files", psConfig.RelativeMountPath); + Assert.Null(psConfig.MountOptions); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void FromMgmtAzureFileShareConfiguration_StaticMethod_DoesNotRequireInstance() + { + // Arrange + var mgmtConfig = new AzureFileShareConfiguration( + accountName: "staticteststorage", + azureFileUrl: "https://staticteststorage.file.core.windows.net/", + accountKey: "c3RhdGljdGVzdHN0b3JhZ2VrZXk=", + relativeMountPath: "static-test", + mountOptions: "vers=2.1"); + + // Act - Call static method directly on class + var psConfig = PSAzureFileShareConfiguration.fromMgmtAzureFileShareConfiguration(mgmtConfig); + + // Assert + Assert.NotNull(psConfig); + Assert.Equal("staticteststorage", psConfig.AccountName); + Assert.Equal("https://staticteststorage.file.core.windows.net/", psConfig.AzureFileUrl); + Assert.Equal("c3RhdGljdGVzdHN0b3JhZ2VrZXk=", psConfig.AccountKey); + Assert.Equal("static-test", psConfig.RelativeMountPath); + Assert.Equal("vers=2.1", psConfig.MountOptions); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void FromMgmtAzureFileShareConfiguration_AlwaysCreatesNewInstance() + { + // Arrange + var mgmtConfig = new AzureFileShareConfiguration( + accountName: "instanceteststorage", + azureFileUrl: "https://instanceteststorage.file.core.windows.net/", + accountKey: "aW5zdGFuY2V0ZXN0c3RvcmFnZWtleQ==", + relativeMountPath: "instance-test", + mountOptions: "vers=3.0"); + + // Act + var psConfig1 = PSAzureFileShareConfiguration.fromMgmtAzureFileShareConfiguration(mgmtConfig); + var psConfig2 = PSAzureFileShareConfiguration.fromMgmtAzureFileShareConfiguration(mgmtConfig); + + // Assert + Assert.NotNull(psConfig1); + Assert.NotNull(psConfig2); + Assert.NotSame(psConfig1, psConfig2); + Assert.Equal(psConfig1.AccountName, psConfig2.AccountName); + Assert.Equal(psConfig1.AzureFileUrl, psConfig2.AzureFileUrl); + Assert.Equal(psConfig1.AccountKey, psConfig2.AccountKey); + Assert.Equal(psConfig1.RelativeMountPath, psConfig2.RelativeMountPath); + Assert.Equal(psConfig1.MountOptions, psConfig2.MountOptions); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void FromMgmtAzureFileShareConfiguration_VerifyReturnType() + { + // Arrange + var mgmtConfig = new AzureFileShareConfiguration( + accountName: "typeteststorage", + azureFileUrl: "https://typeteststorage.file.core.windows.net/", + accountKey: "dHlwZXRlc3RzdG9yYWdla2V5", + relativeMountPath: "type-test"); + + // Act + var psConfig = PSAzureFileShareConfiguration.fromMgmtAzureFileShareConfiguration(mgmtConfig); + + // Assert + Assert.NotNull(psConfig); + Assert.IsType(psConfig); + Assert.IsAssignableFrom(psConfig); + } + + #endregion + + #region Round-trip Conversion Tests + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesAllProperties() + { + // Arrange + var originalPsConfig = new PSAzureFileShareConfiguration( + accountName: "roundtripteststorage", + azureFileUrl: "https://roundtripteststorage.file.core.windows.net/", + accountKey: "cm91bmR0cmlwdGVzdHN0b3JhZ2VrZXk=", + relativeMountPath: "roundtrip-test", + mountOptions: "vers=3.0,dir_mode=0755,file_mode=0644,uid=1001,gid=1001"); + + // Act + var mgmtConfig = originalPsConfig.toMgmtAzureFileShareConfiguration(); + var roundTripPsConfig = PSAzureFileShareConfiguration.fromMgmtAzureFileShareConfiguration(mgmtConfig); + + // Assert + Assert.NotNull(roundTripPsConfig); + Assert.Equal(originalPsConfig.AccountName, roundTripPsConfig.AccountName); + Assert.Equal(originalPsConfig.AzureFileUrl, roundTripPsConfig.AzureFileUrl); + Assert.Equal(originalPsConfig.AccountKey, roundTripPsConfig.AccountKey); + Assert.Equal(originalPsConfig.RelativeMountPath, roundTripPsConfig.RelativeMountPath); + Assert.Equal(originalPsConfig.MountOptions, roundTripPsConfig.MountOptions); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesNullMountOptions() + { + // Arrange + var originalPsConfig = new PSAzureFileShareConfiguration( + accountName: "nullmountteststorage", + azureFileUrl: "https://nullmountteststorage.file.core.windows.net/", + accountKey: "bnVsbG1vdW50dGVzdHN0b3JhZ2VrZXk=", + relativeMountPath: "null-mount-test", + mountOptions: null); + + // Act + var mgmtConfig = originalPsConfig.toMgmtAzureFileShareConfiguration(); + var roundTripPsConfig = PSAzureFileShareConfiguration.fromMgmtAzureFileShareConfiguration(mgmtConfig); + + // Assert + Assert.NotNull(roundTripPsConfig); + Assert.Equal(originalPsConfig.AccountName, roundTripPsConfig.AccountName); + Assert.Equal(originalPsConfig.AzureFileUrl, roundTripPsConfig.AzureFileUrl); + Assert.Equal(originalPsConfig.AccountKey, roundTripPsConfig.AccountKey); + Assert.Equal(originalPsConfig.RelativeMountPath, roundTripPsConfig.RelativeMountPath); + Assert.Null(roundTripPsConfig.MountOptions); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesEmptyMountOptions() + { + // Arrange + var originalPsConfig = new PSAzureFileShareConfiguration( + accountName: "emptymountteststorage", + azureFileUrl: "https://emptymountteststorage.file.core.windows.net/", + accountKey: "ZW1wdHltb3VudHRlc3RzdG9yYWdla2V5", + relativeMountPath: "empty-mount-test", + mountOptions: ""); + + // Act + var mgmtConfig = originalPsConfig.toMgmtAzureFileShareConfiguration(); + var roundTripPsConfig = PSAzureFileShareConfiguration.fromMgmtAzureFileShareConfiguration(mgmtConfig); + + // Assert + Assert.NotNull(roundTripPsConfig); + Assert.Equal(originalPsConfig.AccountName, roundTripPsConfig.AccountName); + Assert.Equal(originalPsConfig.AzureFileUrl, roundTripPsConfig.AzureFileUrl); + Assert.Equal(originalPsConfig.AccountKey, roundTripPsConfig.AccountKey); + Assert.Equal(originalPsConfig.RelativeMountPath, roundTripPsConfig.RelativeMountPath); + Assert.Equal("", roundTripPsConfig.MountOptions); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void RoundTripConversion_FromMgmtAndToMgmt_PreservesAllProperties() + { + // Arrange + var originalMgmtConfig = new AzureFileShareConfiguration( + accountName: "reverseteststorage", + azureFileUrl: "https://reverseteststorage.file.core.windows.net/", + accountKey: "cmV2ZXJzZXRlc3RzdG9yYWdla2V5", + relativeMountPath: "reverse-test", + mountOptions: "vers=3.0,dir_mode=0755,file_mode=0644,uid=1001,gid=1001"); + + // Act + var psConfig = PSAzureFileShareConfiguration.fromMgmtAzureFileShareConfiguration(originalMgmtConfig); + var roundTripMgmtConfig = psConfig.toMgmtAzureFileShareConfiguration(); + + // Assert + Assert.NotNull(roundTripMgmtConfig); + Assert.Equal(originalMgmtConfig.AccountName, roundTripMgmtConfig.AccountName); + Assert.Equal(originalMgmtConfig.AzureFileUrl, roundTripMgmtConfig.AzureFileUrl); + Assert.Equal(originalMgmtConfig.AccountKey, roundTripMgmtConfig.AccountKey); + Assert.Equal(originalMgmtConfig.RelativeMountPath, roundTripMgmtConfig.RelativeMountPath); + Assert.Equal(originalMgmtConfig.MountOptions, roundTripMgmtConfig.MountOptions); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void RoundTripConversion_FromMgmtAndToMgmt_PreservesNullMountOptions() + { + // Arrange + var originalMgmtConfig = new AzureFileShareConfiguration( + accountName: "nullreversetest", + azureFileUrl: "https://nullreversetest.file.core.windows.net/", + accountKey: "bnVsbHJldmVyc2V0ZXN0a2V5", + relativeMountPath: "null-reverse-test", + mountOptions: null); + + // Act + var psConfig = PSAzureFileShareConfiguration.fromMgmtAzureFileShareConfiguration(originalMgmtConfig); + var roundTripMgmtConfig = psConfig.toMgmtAzureFileShareConfiguration(); + + // Assert + Assert.NotNull(roundTripMgmtConfig); + Assert.Equal(originalMgmtConfig.AccountName, roundTripMgmtConfig.AccountName); + Assert.Equal(originalMgmtConfig.AzureFileUrl, roundTripMgmtConfig.AzureFileUrl); + Assert.Equal(originalMgmtConfig.AccountKey, roundTripMgmtConfig.AccountKey); + Assert.Equal(originalMgmtConfig.RelativeMountPath, roundTripMgmtConfig.RelativeMountPath); + Assert.Null(roundTripMgmtConfig.MountOptions); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void RoundTripConversion_FromMgmtAndToMgmt_PreservesEmptyMountOptions() + { + // Arrange + var originalMgmtConfig = new AzureFileShareConfiguration( + accountName: "emptyreversetest", + azureFileUrl: "https://emptyreversetest.file.core.windows.net/", + accountKey: "ZW1wdHlyZXZlcnNldGVzdGtleQ==", + relativeMountPath: "empty-reverse-test", + mountOptions: ""); + + // Act + var psConfig = PSAzureFileShareConfiguration.fromMgmtAzureFileShareConfiguration(originalMgmtConfig); + var roundTripMgmtConfig = psConfig.toMgmtAzureFileShareConfiguration(); + + // Assert + Assert.NotNull(roundTripMgmtConfig); + Assert.Equal(originalMgmtConfig.AccountName, roundTripMgmtConfig.AccountName); + Assert.Equal(originalMgmtConfig.AzureFileUrl, roundTripMgmtConfig.AzureFileUrl); + Assert.Equal(originalMgmtConfig.AccountKey, roundTripMgmtConfig.AccountKey); + Assert.Equal(originalMgmtConfig.RelativeMountPath, roundTripMgmtConfig.RelativeMountPath); + Assert.Equal("", roundTripMgmtConfig.MountOptions); + } + + #endregion + + #region Integration Tests + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void AzureFileShareConfigurationConversions_BothDirections_MaintainSemanticEquivalence() + { + // This test ensures that the semantic meaning is preserved across conversions for Azure Batch Azure Files mounting + + // Test various Azure Files mount scenarios + var azureFilesScenarios = new[] + { + new { + AccountName = "prodstorageaccount", + AzureFileUrl = "https://prodstorageaccount.file.core.windows.net/", + AccountKey = "cHJvZHN0b3JhZ2VhY2NvdW50a2V5", + RelativeMountPath = "production-data", + MountOptions = "vers=3.0,dir_mode=0755,file_mode=0644,uid=1000,gid=1000,serverino", + Description = "Production Azure Files mount with SMB 3.0 and specific permissions" + }, + new { + AccountName = "mlstorageaccount", + AzureFileUrl = "https://mlstorageaccount.file.core.windows.net/", + AccountKey = "bWxzdG9yYWdlYWNjb3VudGtleQ==", + RelativeMountPath = "ml-datasets", + MountOptions = "vers=3.0,cache=strict,actimeo=30,rsize=1048576,wsize=1048576", + Description = "Machine learning datasets mount with high performance settings" + }, + new { + AccountName = "devstorageaccount", + AzureFileUrl = "https://devstorageaccount.file.core.windows.net/", + AccountKey = "ZGV2c3RvcmFnZWFjY291bnRrZXk=", + RelativeMountPath = "dev-shared", + MountOptions = (string)null, + Description = "Development shared storage without specific options" + }, + new { + AccountName = "backupstorageaccount", + AzureFileUrl = "https://backupstorageaccount.file.core.windows.net/", + AccountKey = "YmFja3Vwc3RvcmFnZWFjY291bnRrZXk=", + RelativeMountPath = "backup-results", + MountOptions = "vers=2.1,dir_mode=0700,file_mode=0600,uid=0,gid=0", + Description = "Backup storage with restricted permissions for archival" + } + }; + + foreach (var scenario in azureFilesScenarios) + { + // Act - PS to Management conversion + var psConfig = new PSAzureFileShareConfiguration( + accountName: scenario.AccountName, + azureFileUrl: scenario.AzureFileUrl, + accountKey: scenario.AccountKey, + relativeMountPath: scenario.RelativeMountPath, + mountOptions: scenario.MountOptions); + + var mgmtConfig = psConfig.toMgmtAzureFileShareConfiguration(); + var backToPs = PSAzureFileShareConfiguration.fromMgmtAzureFileShareConfiguration(mgmtConfig); + + // Assert - Verify semantic equivalence + Assert.NotNull(mgmtConfig); + Assert.Equal(scenario.AccountName, mgmtConfig.AccountName); + Assert.Equal(scenario.AzureFileUrl, mgmtConfig.AzureFileUrl); + Assert.Equal(scenario.AccountKey, mgmtConfig.AccountKey); + Assert.Equal(scenario.RelativeMountPath, mgmtConfig.RelativeMountPath); + Assert.Equal(scenario.MountOptions, mgmtConfig.MountOptions); + + Assert.NotNull(backToPs); + Assert.Equal(scenario.AccountName, backToPs.AccountName); + Assert.Equal(scenario.AzureFileUrl, backToPs.AzureFileUrl); + Assert.Equal(scenario.AccountKey, backToPs.AccountKey); + Assert.Equal(scenario.RelativeMountPath, backToPs.RelativeMountPath); + Assert.Equal(scenario.MountOptions, backToPs.MountOptions); + + // Act - Management to PS conversion + var originalMgmtConfig = new AzureFileShareConfiguration( + accountName: scenario.AccountName, + azureFileUrl: scenario.AzureFileUrl, + accountKey: scenario.AccountKey, + relativeMountPath: scenario.RelativeMountPath, + mountOptions: scenario.MountOptions); + + var mgmtToPs = PSAzureFileShareConfiguration.fromMgmtAzureFileShareConfiguration(originalMgmtConfig); + var backToMgmt = mgmtToPs.toMgmtAzureFileShareConfiguration(); + + // Assert - Verify semantic equivalence in reverse direction + Assert.NotNull(mgmtToPs); + Assert.Equal(scenario.AccountName, mgmtToPs.AccountName); + Assert.Equal(scenario.AzureFileUrl, mgmtToPs.AzureFileUrl); + Assert.Equal(scenario.AccountKey, mgmtToPs.AccountKey); + Assert.Equal(scenario.RelativeMountPath, mgmtToPs.RelativeMountPath); + Assert.Equal(scenario.MountOptions, mgmtToPs.MountOptions); + + Assert.NotNull(backToMgmt); + Assert.Equal(scenario.AccountName, backToMgmt.AccountName); + Assert.Equal(scenario.AzureFileUrl, backToMgmt.AzureFileUrl); + Assert.Equal(scenario.AccountKey, backToMgmt.AccountKey); + Assert.Equal(scenario.RelativeMountPath, backToMgmt.RelativeMountPath); + Assert.Equal(scenario.MountOptions, backToMgmt.MountOptions); + } + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void AzureFileShareConfigurationConversions_NullHandling_WorksCorrectly() + { + // Test null handling in conversions + + // Act + var resultFromNull = PSAzureFileShareConfiguration.fromMgmtAzureFileShareConfiguration(null); + + // Assert + Assert.Null(resultFromNull); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void AzureFileShareConfigurationConversions_BatchPoolContext_VerifyCorrectUsage() + { + // This test validates the conversions work correctly in the context of Azure Batch pool mount configuration + // AzureFileShareConfiguration is used to mount Azure Files on Batch compute nodes for cloud-native file sharing + + // Arrange - Test Azure Files scenarios for different workloads + var azureFilesScenarios = new PSAzureFileShareConfiguration[] + { + new PSAzureFileShareConfiguration( + accountName: "hpcstorageaccount", + azureFileUrl: "https://hpcstorageaccount.file.core.windows.net/", + accountKey: "aHBjc3RvcmFnZWFjY291bnRrZXk=", + relativeMountPath: "hpc-scratch", + mountOptions: "vers=3.0,dir_mode=0777,file_mode=0777,uid=1000,gid=1000,cache=loose" + //Description = "HPC scratch space with relaxed caching for high throughput" + ), + new PSAzureFileShareConfiguration( + accountName: "biostorageaccount", + azureFileUrl: "https://biostorageaccount.file.core.windows.net/", + accountKey: "Ymlvc3RvcmFnZWFjY291bnRrZXk=", + relativeMountPath: "genomics-data", + mountOptions: "vers=3.0,dir_mode=0755,file_mode=0644,uid=1001,gid=1001,rsize=1048576,wsize=1048576" + //Description = "Genomics data storage with optimized read/write buffer sizes" + ), + new PSAzureFileShareConfiguration( + accountName: "sharedstorageaccount", + azureFileUrl: "https://sharedstorageaccount.file.core.windows.net/", + accountKey: "c2hhcmVkc3RvcmFnZWFjY291bnRrZXk=", + relativeMountPath: "shared-workspace", + mountOptions: null + //Description = "Simple shared workspace without specific mount options" + ), + new PSAzureFileShareConfiguration( + accountName: "securestorageaccount", + azureFileUrl: "https://securestorageaccount.file.core.windows.net/", + accountKey: "c2VjdXJlc3RvcmFnZWFjY291bnRrZXk=", + relativeMountPath: "secure-data", + mountOptions: "vers=3.0,dir_mode=0700,file_mode=0600,uid=0,gid=0,nobrl" + //Description = "Secure data storage with restricted permissions and no byte-range locking" + ) + }; + + foreach (var scenario in azureFilesScenarios) + { + // Arrange + var psAzureFilesConfig = new PSAzureFileShareConfiguration( + accountName: scenario.AccountName, + azureFileUrl: scenario.AzureFileUrl, + accountKey: scenario.AccountKey, + relativeMountPath: scenario.RelativeMountPath, + mountOptions: scenario.MountOptions); + + // Act + var mgmtAzureFilesConfig = psAzureFilesConfig.toMgmtAzureFileShareConfiguration(); + + // Assert - Should convert correctly for Batch pool mount configuration + Assert.NotNull(mgmtAzureFilesConfig); + Assert.Equal(scenario.AccountName, mgmtAzureFilesConfig.AccountName); + Assert.Equal(scenario.AzureFileUrl, mgmtAzureFilesConfig.AzureFileUrl); + Assert.Equal(scenario.AccountKey, mgmtAzureFilesConfig.AccountKey); + Assert.Equal(scenario.RelativeMountPath, mgmtAzureFilesConfig.RelativeMountPath); + Assert.Equal(scenario.MountOptions, mgmtAzureFilesConfig.MountOptions); + + // Verify round-trip conversion maintains Batch pool semantics + var backToPs = PSAzureFileShareConfiguration.fromMgmtAzureFileShareConfiguration(mgmtAzureFilesConfig); + Assert.NotNull(backToPs); + Assert.Equal(scenario.AccountName, backToPs.AccountName); + Assert.Equal(scenario.AzureFileUrl, backToPs.AzureFileUrl); + Assert.Equal(scenario.AccountKey, backToPs.AccountKey); + Assert.Equal(scenario.RelativeMountPath, backToPs.RelativeMountPath); + Assert.Equal(scenario.MountOptions, backToPs.MountOptions); + } + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void AzureFileShareConfigurationConversions_InstanceCreation_VerifyBehavior() + { + // This test verifies that the conversion methods create appropriate instances + + // Arrange + var psConfig = new PSAzureFileShareConfiguration( + accountName: "instancetest", + azureFileUrl: "https://instancetest.file.core.windows.net/", + accountKey: "aW5zdGFuY2V0ZXN0a2V5", + relativeMountPath: "instance-data", + mountOptions: "vers=3.0"); + + var mgmtConfig = new AzureFileShareConfiguration( + accountName: "mgmtinstancetest", + azureFileUrl: "https://mgmtinstancetest.file.core.windows.net/", + accountKey: "bWdtaW5zdGFuY2V0ZXN0a2V5", + relativeMountPath: "mgmt-instance-data", + mountOptions: "vers=2.1"); + + // Act + var mgmtResult = psConfig.toMgmtAzureFileShareConfiguration(); + var psResult = PSAzureFileShareConfiguration.fromMgmtAzureFileShareConfiguration(mgmtConfig); + + // Assert - Verify proper instance creation + Assert.NotNull(mgmtResult); + Assert.NotNull(psResult); + Assert.IsType(mgmtResult); + Assert.IsType(psResult); + + // Verify new instances are created + Assert.NotSame(mgmtConfig, mgmtResult); + Assert.NotSame(psConfig, psResult); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void AzureFileShareConfigurationConversions_EdgeCaseValues_HandleCorrectly() + { + // Test conversion with various edge case values + + var testConfigurations = new[] + { + // Standard configurations + new { + AccountName = "standardaccount", + AzureFileUrl = "https://standardaccount.file.core.windows.net/", + AccountKey = "c3RhbmRhcmRhY2NvdW50a2V5", + RelativeMountPath = "standard", + MountOptions = "vers=3.0" + }, + new { + AccountName = "premiumaccount", + AzureFileUrl = "https://premiumaccount.file.core.windows.net/", + AccountKey = "cHJlbWl1bWFjY291bnRrZXk=", + RelativeMountPath = "premium-data", + MountOptions = "vers=2.1" + }, + // Edge cases + new { + AccountName = "", + AzureFileUrl = "", + AccountKey = "", + RelativeMountPath = "", + MountOptions = "" + }, + new { + AccountName = "account-with-special-chars", + AzureFileUrl = "https://account-with-special-chars.file.core.windows.net/", + AccountKey = "YWNjb3VudC13aXRoLXNwZWNpYWwtY2hhcnMta2V5", + RelativeMountPath = "path with spaces", + MountOptions = (string)null + }, + new { + AccountName = " ", + AzureFileUrl = " ", + AccountKey = " ", + RelativeMountPath = " ", + MountOptions = " " + }, // Whitespace + new { + AccountName = "verylongaccountnamefortestingpurposesthatexceedsnormallimits", + AzureFileUrl = "https://verylongaccountnamefortestingpurposesthatexceedsnormallimits.file.core.windows.net/", + AccountKey = "dmVyeWxvbmdhY2NvdW50bmFtZWZvcnRlc3RpbmdwdXJwb3Nlc3RoYXRleGNlZWRzbm9ybWFsbGltaXRzLWtleQ==", + RelativeMountPath = "very-long-relative-mount-path-for-testing-purposes-that-exceeds-normal-limits", + MountOptions = "vers=3.0,dir_mode=0755,file_mode=0644,uid=1000,gid=1000,cache=strict,actimeo=30,rsize=1048576,wsize=1048576,serverino" + } + }; + + foreach (var testConfig in testConfigurations) + { + // Arrange + var psConfig = new PSAzureFileShareConfiguration( + accountName: testConfig.AccountName, + azureFileUrl: testConfig.AzureFileUrl, + accountKey: testConfig.AccountKey, + relativeMountPath: testConfig.RelativeMountPath, + mountOptions: testConfig.MountOptions); + + var mgmtConfig = new AzureFileShareConfiguration( + accountName: testConfig.AccountName, + azureFileUrl: testConfig.AzureFileUrl, + accountKey: testConfig.AccountKey, + relativeMountPath: testConfig.RelativeMountPath, + mountOptions: testConfig.MountOptions); + + // Act + var mgmtResult = psConfig.toMgmtAzureFileShareConfiguration(); + var psFromMgmtResult = PSAzureFileShareConfiguration.fromMgmtAzureFileShareConfiguration(mgmtConfig); + var roundTripResult = PSAzureFileShareConfiguration.fromMgmtAzureFileShareConfiguration(mgmtResult); + + // Assert + Assert.NotNull(mgmtResult); + Assert.NotNull(psFromMgmtResult); + Assert.NotNull(roundTripResult); + + Assert.Equal(testConfig.AccountName, mgmtResult.AccountName); + Assert.Equal(testConfig.AzureFileUrl, mgmtResult.AzureFileUrl); + Assert.Equal(testConfig.AccountKey, mgmtResult.AccountKey); + Assert.Equal(testConfig.RelativeMountPath, mgmtResult.RelativeMountPath); + Assert.Equal(testConfig.MountOptions, mgmtResult.MountOptions); + + Assert.Equal(testConfig.AccountName, psFromMgmtResult.AccountName); + Assert.Equal(testConfig.AzureFileUrl, psFromMgmtResult.AzureFileUrl); + Assert.Equal(testConfig.AccountKey, psFromMgmtResult.AccountKey); + Assert.Equal(testConfig.RelativeMountPath, psFromMgmtResult.RelativeMountPath); + Assert.Equal(testConfig.MountOptions, psFromMgmtResult.MountOptions); + + Assert.Equal(testConfig.AccountName, roundTripResult.AccountName); + Assert.Equal(testConfig.AzureFileUrl, roundTripResult.AzureFileUrl); + Assert.Equal(testConfig.AccountKey, roundTripResult.AccountKey); + Assert.Equal(testConfig.RelativeMountPath, roundTripResult.RelativeMountPath); + Assert.Equal(testConfig.MountOptions, roundTripResult.MountOptions); + } + } + + #endregion + + #region Performance and Azure Integration Tests + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void AzureFileShareConfigurationConversions_PerformanceTest_ExecutesQuickly() + { + // This test ensures the conversions are efficient with multiple operations + + // Arrange + var psConfigs = new List(); + var mgmtConfigs = new List(); + + for (int i = 0; i < 100; i++) + { + psConfigs.Add(new PSAzureFileShareConfiguration( + accountName: $"teststorage{i}", + azureFileUrl: $"https://teststorage{i}.file.core.windows.net/", + accountKey: $"dGVzdHN0b3JhZ2V7aX1rZXk=", // base64 encoded test key + relativeMountPath: $"test-data-{i}", + mountOptions: $"vers=3.{i % 2},uid={1000 + i},gid={1000 + i}")); + + mgmtConfigs.Add(new AzureFileShareConfiguration( + accountName: $"mgmtteststorage{i}", + azureFileUrl: $"https://mgmtteststorage{i}.file.core.windows.net/", + accountKey: $"bWdtdGVzdHN0b3JhZ2V7aX1rZXk=", // base64 encoded test key + relativeMountPath: $"mgmt-test-data-{i}", + mountOptions: $"vers=2.{i % 2 + 1},rsize={1024 * (i + 1)},wsize={1024 * (i + 1)}")); + } + + // Act & Assert - Multiple conversions should complete without delay + for (int i = 0; i < 10; i++) + { + foreach (var psConfig in psConfigs) + { + var mgmtResult = psConfig.toMgmtAzureFileShareConfiguration(); + Assert.NotNull(mgmtResult); + } + + foreach (var mgmtConfig in mgmtConfigs) + { + var psResult = PSAzureFileShareConfiguration.fromMgmtAzureFileShareConfiguration(mgmtConfig); + Assert.NotNull(psResult); + } + } + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void AzureFileShareConfigurationConversions_RealWorldAzureFilesOptions_HandleCorrectly() + { + // Test with realistic Azure Files mount options that would be used in production + + var realWorldConfigurations = new PSAzureFileShareConfiguration[] + { + new PSAzureFileShareConfiguration( + accountName: "prodmlstorageaccount", + azureFileUrl: "https://prodmlstorageaccount.file.core.windows.net/", + accountKey: "cHJvZG1sc3RvcmFnZWFjY291bnRrZXk=", + relativeMountPath: "ml-production-data", + mountOptions: "vers=3.0,dir_mode=0755,file_mode=0644,uid=1000,gid=1000,cache=strict,actimeo=30,rsize=1048576,wsize=1048576" + //Description = "Production ML workload with high performance and strict caching" + ), + new PSAzureFileShareConfiguration( + accountName: "bioinfostorageaccount", + azureFileUrl: "https://bioinfostorageaccount.file.core.windows.net/", + accountKey: "YmlvaW5mb3N0b3JhZ2VhY2NvdW50a2V5", + relativeMountPath: "bioinformatics-datasets", + mountOptions: "vers=3.0,dir_mode=0755,file_mode=0644,uid=1001,gid=1001,cache=loose,actimeo=1" + //Description = "Bioinformatics datasets with relaxed caching for large file access patterns" + ), + new PSAzureFileShareConfiguration( + accountName: "hpcsharedstorageaccount", + azureFileUrl: "https://hpcsharedstorageaccount.file.core.windows.net/", + accountKey: "aHBjc2hhcmVkc3RvcmFnZWFjY291bnRrZXk=", + relativeMountPath: "hpc-shared-workspace", + mountOptions: "vers=3.0,dir_mode=0777,file_mode=0666,uid=1000,gid=1000,mfsymlinks" + //Description = "HPC shared workspace with symbolic link support for collaborative computing" + ), + new PSAzureFileShareConfiguration( + accountName: "securearchiveaccount", + azureFileUrl: "https://securearchiveaccount.file.core.windows.net/", + accountKey: "c2VjdXJlYXJjaGl2ZWFjY291bnRrZXk=", + relativeMountPath: "secure-archive", + mountOptions: "vers=2.1,dir_mode=0700,file_mode=0600,uid=0,gid=0,nobrl" + //Description = "Secure archive storage with restricted permissions and no byte-range locking" + ), + new PSAzureFileShareConfiguration( + accountName: "basicsharedaccount", + azureFileUrl: "https://basicsharedaccount.file.core.windows.net/", + accountKey: "YmFzaWNzaGFyZWRhY2NvdW50a2V5", + relativeMountPath: "basic-shared", + mountOptions: null + //Description = "Basic shared storage without specific mount options" + ) + }; + + foreach (var config in realWorldConfigurations) + { + // Arrange + var psConfig = new PSAzureFileShareConfiguration( + accountName: config.AccountName, + azureFileUrl: config.AzureFileUrl, + accountKey: config.AccountKey, + relativeMountPath: config.RelativeMountPath, + mountOptions: config.MountOptions); + + // Act + var mgmtConfig = psConfig.toMgmtAzureFileShareConfiguration(); + var roundTripPs = PSAzureFileShareConfiguration.fromMgmtAzureFileShareConfiguration(mgmtConfig); + + // Assert + Assert.NotNull(mgmtConfig); + Assert.NotNull(roundTripPs); + + Assert.Equal(config.AccountName, mgmtConfig.AccountName); + Assert.Equal(config.AzureFileUrl, mgmtConfig.AzureFileUrl); + Assert.Equal(config.AccountKey, mgmtConfig.AccountKey); + Assert.Equal(config.RelativeMountPath, mgmtConfig.RelativeMountPath); + Assert.Equal(config.MountOptions, mgmtConfig.MountOptions); + + Assert.Equal(config.AccountName, roundTripPs.AccountName); + Assert.Equal(config.AzureFileUrl, roundTripPs.AzureFileUrl); + Assert.Equal(config.AccountKey, roundTripPs.AccountKey); + Assert.Equal(config.RelativeMountPath, roundTripPs.RelativeMountPath); + Assert.Equal(config.MountOptions, roundTripPs.MountOptions); + } + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void AzureFileShareConfigurationConversions_AzureUrlFormats_VerifyBehavior() + { + // Test with various Azure Files URL formats to ensure they're preserved correctly + + var urlFormatScenarios = new[] + { + // Standard Azure Files URLs + new { AccountName = "standardaccount", AzureFileUrl = "https://standardaccount.file.core.windows.net/", Description = "Standard Azure Files URL" }, + new { AccountName = "customdomain", AzureFileUrl = "https://customdomain.file.core.windows.net/", Description = "Custom domain URL" }, + // URLs with different Azure environments + new { AccountName = "govaccount", AzureFileUrl = "https://govaccount.file.core.usgovcloudapi.net/", Description = "Azure Government cloud URL" }, + new { AccountName = "chinaaccount", AzureFileUrl = "https://chinaaccount.file.core.chinacloudapi.cn/", Description = "Azure China cloud URL" }, + new { AccountName = "germanyaccount", AzureFileUrl = "https://germanyaccount.file.core.cloudapi.de/", Description = "Azure Germany cloud URL" }, + // Edge case URLs + new { AccountName = "edgecase", AzureFileUrl = "", Description = "Empty URL" }, + new { AccountName = "testaccount", AzureFileUrl = "https://testaccount.file.core.windows.net/myfileshare", Description = "URL with specific file share path" }, + new { AccountName = "portaccount", AzureFileUrl = "https://portaccount.file.core.windows.net:443/", Description = "URL with explicit port" }, + // Unicode and special character URLs + new { AccountName = "unicodetest", AzureFileUrl = "https://unicodetest.file.core.windows.net/caf", Description = "URL with Unicode characters" }, + new { AccountName = "spacestest", AzureFileUrl = "https://spacestest.file.core.windows.net/path with spaces", Description = "URL with spaces" } + }; + + foreach (var scenario in urlFormatScenarios) + { + // Arrange + var psConfig = new PSAzureFileShareConfiguration( + accountName: scenario.AccountName, + azureFileUrl: scenario.AzureFileUrl, + accountKey: "dGVzdGFjY291bnRrZXk=", + relativeMountPath: "test-mount", + mountOptions: "vers=3.0"); + + // Act + var mgmtConfig = psConfig.toMgmtAzureFileShareConfiguration(); + var roundTripPs = PSAzureFileShareConfiguration.fromMgmtAzureFileShareConfiguration(mgmtConfig); + + // Assert - All URL formats should be preserved exactly as provided + Assert.NotNull(mgmtConfig); + Assert.NotNull(roundTripPs); + + Assert.Equal(scenario.AzureFileUrl, mgmtConfig.AzureFileUrl); + Assert.Equal(scenario.AzureFileUrl, roundTripPs.AzureFileUrl); + Assert.Equal(scenario.AccountName, mgmtConfig.AccountName); + Assert.Equal(scenario.AccountName, roundTripPs.AccountName); + } + } + + #endregion + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Test/Models/PSCifsMountConfigurationTests.cs b/src/Batch/Batch.Test/Models/PSCifsMountConfigurationTests.cs new file mode 100644 index 000000000000..46a41a537893 --- /dev/null +++ b/src/Batch/Batch.Test/Models/PSCifsMountConfigurationTests.cs @@ -0,0 +1,978 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using Microsoft.Azure.Commands.Batch.Models; +using Microsoft.Azure.Management.Batch.Models; +using Microsoft.WindowsAzure.Commands.ScenarioTest; +using System.Collections.Generic; +using Xunit; + +namespace Microsoft.Azure.Commands.Batch.Test.ModelsConversions +{ + public class PSCifsMountConfigurationTests + { + #region toMgmtCifsMountConfiguration Tests + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void ToMgmtCifsMountConfiguration_WithAllProperties_ConvertsCorrectly() + { + // Arrange + var psConfig = new PSCifsMountConfiguration( + username: "domain\\testuser", + password: "testpassword123", + source: "//file-server.example.com/shared", + relativeMountPath: "shared-files", + mountOptions: "vers=3.0,uid=1000,gid=1000,iocharset=utf8"); + + // Act + var mgmtConfig = psConfig.toMgmtCifsMountConfiguration(); + + // Assert + Assert.NotNull(mgmtConfig); + Assert.Equal("domain\\testuser", mgmtConfig.UserName); + Assert.Equal("testpassword123", mgmtConfig.Password); + Assert.Equal("//file-server.example.com/shared", mgmtConfig.Source); + Assert.Equal("shared-files", mgmtConfig.RelativeMountPath); + Assert.Equal("vers=3.0,uid=1000,gid=1000,iocharset=utf8", mgmtConfig.MountOptions); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void ToMgmtCifsMountConfiguration_WithoutMountOptions_ConvertsCorrectly() + { + // Arrange + var psConfig = new PSCifsMountConfiguration( + username: "testuser", + password: "password", + source: "//192.168.1.100/data", + relativeMountPath: "network-data", + mountOptions: null); + + // Act + var mgmtConfig = psConfig.toMgmtCifsMountConfiguration(); + + // Assert + Assert.NotNull(mgmtConfig); + Assert.Equal("testuser", mgmtConfig.UserName); + Assert.Equal("password", mgmtConfig.Password); + Assert.Equal("//192.168.1.100/data", mgmtConfig.Source); + Assert.Equal("network-data", mgmtConfig.RelativeMountPath); + Assert.Null(mgmtConfig.MountOptions); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void ToMgmtCifsMountConfiguration_WithEmptyMountOptions_ConvertsCorrectly() + { + // Arrange + var psConfig = new PSCifsMountConfiguration( + username: "user@domain.com", + password: "securepassword", + source: "//azure-files.file.core.windows.net/fileshare", + relativeMountPath: "azure-files", + mountOptions: ""); + + // Act + var mgmtConfig = psConfig.toMgmtCifsMountConfiguration(); + + // Assert + Assert.NotNull(mgmtConfig); + Assert.Equal("user@domain.com", mgmtConfig.UserName); + Assert.Equal("securepassword", mgmtConfig.Password); + Assert.Equal("//azure-files.file.core.windows.net/fileshare", mgmtConfig.Source); + Assert.Equal("azure-files", mgmtConfig.RelativeMountPath); + Assert.Equal("", mgmtConfig.MountOptions); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void ToMgmtCifsMountConfiguration_WithMinimalConfiguration_ConvertsCorrectly() + { + // Arrange - Using constructor without mount options parameter + var psConfig = new PSCifsMountConfiguration( + username: "basicuser", + password: "basicpass", + source: "//server/share", + relativeMountPath: "share"); + + // Act + var mgmtConfig = psConfig.toMgmtCifsMountConfiguration(); + + // Assert + Assert.NotNull(mgmtConfig); + Assert.Equal("basicuser", mgmtConfig.UserName); + Assert.Equal("basicpass", mgmtConfig.Password); + Assert.Equal("//server/share", mgmtConfig.Source); + Assert.Equal("share", mgmtConfig.RelativeMountPath); + Assert.Null(mgmtConfig.MountOptions); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void ToMgmtCifsMountConfiguration_AlwaysCreatesNewInstance() + { + // Arrange + var psConfig = new PSCifsMountConfiguration( + username: "testuser", + password: "testpass", + source: "//server/data", + relativeMountPath: "data"); + + // Act + var mgmtConfig1 = psConfig.toMgmtCifsMountConfiguration(); + var mgmtConfig2 = psConfig.toMgmtCifsMountConfiguration(); + + // Assert + Assert.NotNull(mgmtConfig1); + Assert.NotNull(mgmtConfig2); + Assert.NotSame(mgmtConfig1, mgmtConfig2); + Assert.Equal(mgmtConfig1.UserName, mgmtConfig2.UserName); + Assert.Equal(mgmtConfig1.Password, mgmtConfig2.Password); + Assert.Equal(mgmtConfig1.Source, mgmtConfig2.Source); + Assert.Equal(mgmtConfig1.RelativeMountPath, mgmtConfig2.RelativeMountPath); + Assert.Equal(mgmtConfig1.MountOptions, mgmtConfig2.MountOptions); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void ToMgmtCifsMountConfiguration_VerifyReturnType() + { + // Arrange + var psConfig = new PSCifsMountConfiguration( + username: "testuser", + password: "testpass", + source: "//server/test", + relativeMountPath: "test"); + + // Act + var mgmtConfig = psConfig.toMgmtCifsMountConfiguration(); + + // Assert + Assert.NotNull(mgmtConfig); + Assert.IsType(mgmtConfig); + Assert.IsAssignableFrom(mgmtConfig); + } + + #endregion + + #region fromMgmtCifsMountConfiguration Tests + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void FromMgmtCifsMountConfiguration_WithNull_ReturnsNull() + { + // Act + var result = PSCifsMountConfiguration.fromMgmtCifsMountConfiguration(null); + + // Assert + Assert.Null(result); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void FromMgmtCifsMountConfiguration_WithAllProperties_ConvertsCorrectly() + { + // Arrange + var mgmtConfig = new CifsMountConfiguration( + userName: "domain\\testuser", + source: "//file-server.example.com/shared", + relativeMountPath: "shared-files", + password: "testpassword123", + mountOptions: "vers=3.0,uid=1000,gid=1000,iocharset=utf8"); + + // Act + var psConfig = PSCifsMountConfiguration.fromMgmtCifsMountConfiguration(mgmtConfig); + + // Assert + Assert.NotNull(psConfig); + Assert.Equal("domain\\testuser", psConfig.Username); + Assert.Equal("testpassword123", psConfig.Password); + Assert.Equal("//file-server.example.com/shared", psConfig.Source); + Assert.Equal("shared-files", psConfig.RelativeMountPath); + Assert.Equal("vers=3.0,uid=1000,gid=1000,iocharset=utf8", psConfig.MountOptions); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void FromMgmtCifsMountConfiguration_WithoutMountOptions_ConvertsCorrectly() + { + // Arrange + var mgmtConfig = new CifsMountConfiguration( + userName: "testuser", + source: "//192.168.1.100/data", + relativeMountPath: "network-data", + password: "password", + mountOptions: null); + + // Act + var psConfig = PSCifsMountConfiguration.fromMgmtCifsMountConfiguration(mgmtConfig); + + // Assert + Assert.NotNull(psConfig); + Assert.Equal("testuser", psConfig.Username); + Assert.Equal("password", psConfig.Password); + Assert.Equal("//192.168.1.100/data", psConfig.Source); + Assert.Equal("network-data", psConfig.RelativeMountPath); + Assert.Null(psConfig.MountOptions); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void FromMgmtCifsMountConfiguration_WithEmptyMountOptions_ConvertsCorrectly() + { + // Arrange + var mgmtConfig = new CifsMountConfiguration( + userName: "user@domain.com", + source: "//azure-files.file.core.windows.net/fileshare", + relativeMountPath: "azure-files", + password: "securepassword", + mountOptions: ""); + + // Act + var psConfig = PSCifsMountConfiguration.fromMgmtCifsMountConfiguration(mgmtConfig); + + // Assert + Assert.NotNull(psConfig); + Assert.Equal("user@domain.com", psConfig.Username); + Assert.Equal("securepassword", psConfig.Password); + Assert.Equal("//azure-files.file.core.windows.net/fileshare", psConfig.Source); + Assert.Equal("azure-files", psConfig.RelativeMountPath); + Assert.Equal("", psConfig.MountOptions); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void FromMgmtCifsMountConfiguration_WithMinimalConfiguration_ConvertsCorrectly() + { + // Arrange + var mgmtConfig = new CifsMountConfiguration( + userName: "basicuser", + source: "//server/share", + relativeMountPath: "share", + password: "basicpass"); + + // Act + var psConfig = PSCifsMountConfiguration.fromMgmtCifsMountConfiguration(mgmtConfig); + + // Assert + Assert.NotNull(psConfig); + Assert.Equal("basicuser", psConfig.Username); + Assert.Equal("basicpass", psConfig.Password); + Assert.Equal("//server/share", psConfig.Source); + Assert.Equal("share", psConfig.RelativeMountPath); + Assert.Null(psConfig.MountOptions); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void FromMgmtCifsMountConfiguration_StaticMethod_DoesNotRequireInstance() + { + // Arrange + var mgmtConfig = new CifsMountConfiguration( + userName: "staticuser", + source: "//test.com/data", + relativeMountPath: "test-data", + password: "staticpass", + mountOptions: "vers=2.1"); + + // Act - Call static method directly on class + var psConfig = PSCifsMountConfiguration.fromMgmtCifsMountConfiguration(mgmtConfig); + + // Assert + Assert.NotNull(psConfig); + Assert.Equal("staticuser", psConfig.Username); + Assert.Equal("staticpass", psConfig.Password); + Assert.Equal("//test.com/data", psConfig.Source); + Assert.Equal("test-data", psConfig.RelativeMountPath); + Assert.Equal("vers=2.1", psConfig.MountOptions); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void FromMgmtCifsMountConfiguration_AlwaysCreatesNewInstance() + { + // Arrange + var mgmtConfig = new CifsMountConfiguration( + userName: "testuser", + source: "//server/data", + relativeMountPath: "data", + password: "testpass", + mountOptions: "vers=3"); + + // Act + var psConfig1 = PSCifsMountConfiguration.fromMgmtCifsMountConfiguration(mgmtConfig); + var psConfig2 = PSCifsMountConfiguration.fromMgmtCifsMountConfiguration(mgmtConfig); + + // Assert + Assert.NotNull(psConfig1); + Assert.NotNull(psConfig2); + Assert.NotSame(psConfig1, psConfig2); + Assert.Equal(psConfig1.Username, psConfig2.Username); + Assert.Equal(psConfig1.Password, psConfig2.Password); + Assert.Equal(psConfig1.Source, psConfig2.Source); + Assert.Equal(psConfig1.RelativeMountPath, psConfig2.RelativeMountPath); + Assert.Equal(psConfig1.MountOptions, psConfig2.MountOptions); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void FromMgmtCifsMountConfiguration_VerifyReturnType() + { + // Arrange + var mgmtConfig = new CifsMountConfiguration( + userName: "testuser", + source: "//server/test", + relativeMountPath: "test", + password: "testpass"); + + // Act + var psConfig = PSCifsMountConfiguration.fromMgmtCifsMountConfiguration(mgmtConfig); + + // Assert + Assert.NotNull(psConfig); + Assert.IsType(psConfig); + Assert.IsAssignableFrom(psConfig); + } + + #endregion + + #region Round-trip Conversion Tests + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesAllProperties() + { + // Arrange + var originalPsConfig = new PSCifsMountConfiguration( + username: "domain\\testuser", + password: "testpassword123", + source: "//file-server.example.com/shared", + relativeMountPath: "shared-files", + mountOptions: "vers=3.0,uid=1000,gid=1000,iocharset=utf8"); + + // Act + var mgmtConfig = originalPsConfig.toMgmtCifsMountConfiguration(); + var roundTripPsConfig = PSCifsMountConfiguration.fromMgmtCifsMountConfiguration(mgmtConfig); + + // Assert + Assert.NotNull(roundTripPsConfig); + Assert.Equal(originalPsConfig.Username, roundTripPsConfig.Username); + Assert.Equal(originalPsConfig.Password, roundTripPsConfig.Password); + Assert.Equal(originalPsConfig.Source, roundTripPsConfig.Source); + Assert.Equal(originalPsConfig.RelativeMountPath, roundTripPsConfig.RelativeMountPath); + Assert.Equal(originalPsConfig.MountOptions, roundTripPsConfig.MountOptions); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesNullMountOptions() + { + // Arrange + var originalPsConfig = new PSCifsMountConfiguration( + username: "testuser", + password: "password", + source: "//server/shared", + relativeMountPath: "shared", + mountOptions: null); + + // Act + var mgmtConfig = originalPsConfig.toMgmtCifsMountConfiguration(); + var roundTripPsConfig = PSCifsMountConfiguration.fromMgmtCifsMountConfiguration(mgmtConfig); + + // Assert + Assert.NotNull(roundTripPsConfig); + Assert.Equal(originalPsConfig.Username, roundTripPsConfig.Username); + Assert.Equal(originalPsConfig.Password, roundTripPsConfig.Password); + Assert.Equal(originalPsConfig.Source, roundTripPsConfig.Source); + Assert.Equal(originalPsConfig.RelativeMountPath, roundTripPsConfig.RelativeMountPath); + Assert.Null(roundTripPsConfig.MountOptions); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesEmptyMountOptions() + { + // Arrange + var originalPsConfig = new PSCifsMountConfiguration( + username: "user@domain.com", + password: "securepassword", + source: "//azure-files.file.core.windows.net/fileshare", + relativeMountPath: "azure-files", + mountOptions: ""); + + // Act + var mgmtConfig = originalPsConfig.toMgmtCifsMountConfiguration(); + var roundTripPsConfig = PSCifsMountConfiguration.fromMgmtCifsMountConfiguration(mgmtConfig); + + // Assert + Assert.NotNull(roundTripPsConfig); + Assert.Equal(originalPsConfig.Username, roundTripPsConfig.Username); + Assert.Equal(originalPsConfig.Password, roundTripPsConfig.Password); + Assert.Equal(originalPsConfig.Source, roundTripPsConfig.Source); + Assert.Equal(originalPsConfig.RelativeMountPath, roundTripPsConfig.RelativeMountPath); + Assert.Equal("", roundTripPsConfig.MountOptions); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void RoundTripConversion_FromMgmtAndToMgmt_PreservesAllProperties() + { + // Arrange + var originalMgmtConfig = new CifsMountConfiguration( + userName: "domain\\testuser", + source: "//file-server.example.com/shared", + relativeMountPath: "shared-files", + password: "testpassword123", + mountOptions: "vers=3.0,uid=1000,gid=1000,iocharset=utf8"); + + // Act + var psConfig = PSCifsMountConfiguration.fromMgmtCifsMountConfiguration(originalMgmtConfig); + var roundTripMgmtConfig = psConfig.toMgmtCifsMountConfiguration(); + + // Assert + Assert.NotNull(roundTripMgmtConfig); + Assert.Equal(originalMgmtConfig.UserName, roundTripMgmtConfig.UserName); + Assert.Equal(originalMgmtConfig.Password, roundTripMgmtConfig.Password); + Assert.Equal(originalMgmtConfig.Source, roundTripMgmtConfig.Source); + Assert.Equal(originalMgmtConfig.RelativeMountPath, roundTripMgmtConfig.RelativeMountPath); + Assert.Equal(originalMgmtConfig.MountOptions, roundTripMgmtConfig.MountOptions); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void RoundTripConversion_FromMgmtAndToMgmt_PreservesNullMountOptions() + { + // Arrange + var originalMgmtConfig = new CifsMountConfiguration( + userName: "testuser", + source: "//server/shared", + relativeMountPath: "shared", + password: "password", + mountOptions: null); + + // Act + var psConfig = PSCifsMountConfiguration.fromMgmtCifsMountConfiguration(originalMgmtConfig); + var roundTripMgmtConfig = psConfig.toMgmtCifsMountConfiguration(); + + // Assert + Assert.NotNull(roundTripMgmtConfig); + Assert.Equal(originalMgmtConfig.UserName, roundTripMgmtConfig.UserName); + Assert.Equal(originalMgmtConfig.Password, roundTripMgmtConfig.Password); + Assert.Equal(originalMgmtConfig.Source, roundTripMgmtConfig.Source); + Assert.Equal(originalMgmtConfig.RelativeMountPath, roundTripMgmtConfig.RelativeMountPath); + Assert.Null(roundTripMgmtConfig.MountOptions); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void RoundTripConversion_FromMgmtAndToMgmt_PreservesEmptyMountOptions() + { + // Arrange + var originalMgmtConfig = new CifsMountConfiguration( + userName: "user@domain.com", + source: "//azure-files.file.core.windows.net/fileshare", + relativeMountPath: "azure-files", + password: "securepassword", + mountOptions: ""); + + // Act + var psConfig = PSCifsMountConfiguration.fromMgmtCifsMountConfiguration(originalMgmtConfig); + var roundTripMgmtConfig = psConfig.toMgmtCifsMountConfiguration(); + + // Assert + Assert.NotNull(roundTripMgmtConfig); + Assert.Equal(originalMgmtConfig.UserName, roundTripMgmtConfig.UserName); + Assert.Equal(originalMgmtConfig.Password, roundTripMgmtConfig.Password); + Assert.Equal(originalMgmtConfig.Source, roundTripMgmtConfig.Source); + Assert.Equal(originalMgmtConfig.RelativeMountPath, roundTripMgmtConfig.RelativeMountPath); + Assert.Equal("", roundTripMgmtConfig.MountOptions); + } + + #endregion + + #region Integration Tests + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void CifsMountConfigurationConversions_BothDirections_MaintainSemanticEquivalence() + { + // This test ensures that the semantic meaning is preserved across conversions for Azure Batch CIFS file system mounting + + // Test various CIFS mount scenarios + var cifsScenarios = new[] + { + new { + Username = "domain\\enterprise-user", + Password = "ComplexPassword123!", + Source = "//enterprise-nas.corp.com/shared-data", + RelativeMountPath = "enterprise-data", + MountOptions = "vers=3.0,uid=1000,gid=1000,iocharset=utf8,file_mode=0644,dir_mode=0755", + Description = "Enterprise CIFS mount with SMB 3.0 and specific permissions" + }, + new { + Username = "azureuser@company.onmicrosoft.com", + Password = "AzureFileShareKey", + Source = "//mystorageaccount.file.core.windows.net/myfileshare", + RelativeMountPath = "azure-files", + MountOptions = "vers=3.0,cache=strict,actimeo=30", + Description = "Azure Files mount with strict caching and attribute timeout" + }, + new { + Username = "batchuser", + Password = "SimplePassword", + Source = "//192.168.100.50/batch-shared", + RelativeMountPath = "batch-data", + MountOptions = (string)null, + Description = "Basic CIFS mount without specific options" + }, + new { + Username = "admin", + Password = "AdminPass", + Source = "//windows-server/d$/projects", + RelativeMountPath = "projects", + MountOptions = "vers=2.1,sec=ntlmssp,rsize=65536,wsize=65536", + Description = "Windows server mount with NTLM authentication and optimized I/O" + } + }; + + foreach (var scenario in cifsScenarios) + { + // Act - PS to Management conversion + var psConfig = new PSCifsMountConfiguration( + username: scenario.Username, + password: scenario.Password, + source: scenario.Source, + relativeMountPath: scenario.RelativeMountPath, + mountOptions: scenario.MountOptions); + + var mgmtConfig = psConfig.toMgmtCifsMountConfiguration(); + var backToPs = PSCifsMountConfiguration.fromMgmtCifsMountConfiguration(mgmtConfig); + + // Assert - Verify semantic equivalence + Assert.NotNull(mgmtConfig); + Assert.Equal(scenario.Username, mgmtConfig.UserName); + Assert.Equal(scenario.Password, mgmtConfig.Password); + Assert.Equal(scenario.Source, mgmtConfig.Source); + Assert.Equal(scenario.RelativeMountPath, mgmtConfig.RelativeMountPath); + Assert.Equal(scenario.MountOptions, mgmtConfig.MountOptions); + + Assert.NotNull(backToPs); + Assert.Equal(scenario.Username, backToPs.Username); + Assert.Equal(scenario.Password, backToPs.Password); + Assert.Equal(scenario.Source, backToPs.Source); + Assert.Equal(scenario.RelativeMountPath, backToPs.RelativeMountPath); + Assert.Equal(scenario.MountOptions, backToPs.MountOptions); + + // Act - Management to PS conversion + var originalMgmtConfig = new CifsMountConfiguration( + userName: scenario.Username, + source: scenario.Source, + relativeMountPath: scenario.RelativeMountPath, + password: scenario.Password, + mountOptions: scenario.MountOptions); + + var mgmtToPs = PSCifsMountConfiguration.fromMgmtCifsMountConfiguration(originalMgmtConfig); + var backToMgmt = mgmtToPs.toMgmtCifsMountConfiguration(); + + // Assert - Verify semantic equivalence in reverse direction + Assert.NotNull(mgmtToPs); + Assert.Equal(scenario.Username, mgmtToPs.Username); + Assert.Equal(scenario.Password, mgmtToPs.Password); + Assert.Equal(scenario.Source, mgmtToPs.Source); + Assert.Equal(scenario.RelativeMountPath, mgmtToPs.RelativeMountPath); + Assert.Equal(scenario.MountOptions, mgmtToPs.MountOptions); + + Assert.NotNull(backToMgmt); + Assert.Equal(scenario.Username, backToMgmt.UserName); + Assert.Equal(scenario.Password, backToMgmt.Password); + Assert.Equal(scenario.Source, backToMgmt.Source); + Assert.Equal(scenario.RelativeMountPath, backToMgmt.RelativeMountPath); + Assert.Equal(scenario.MountOptions, backToMgmt.MountOptions); + } + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void CifsMountConfigurationConversions_NullHandling_WorksCorrectly() + { + // Test null handling in conversions + + // Act + var resultFromNull = PSCifsMountConfiguration.fromMgmtCifsMountConfiguration(null); + + // Assert + Assert.Null(resultFromNull); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void CifsMountConfigurationConversions_BatchPoolContext_VerifyCorrectUsage() + { + // This test validates the conversions work correctly in the context of Azure Batch pool mount configuration + // CifsMountConfiguration is used to mount CIFS/SMB file systems on Batch compute nodes for enterprise file sharing + + // Arrange - Test enterprise and cloud storage scenarios + var enterpriseScenarios = new PSCifsMountConfiguration[] + { + new PSCifsMountConfiguration( + username: "CORP\\batch-service", + password: "ServiceAccountPassword", + source: "//corp-fileserver.enterprise.com/batch-input", + relativeMountPath: "input-data", + mountOptions: "vers=3.0,domain=CORP,sec=krb5,cache=strict" + //Description = "Enterprise Active Directory CIFS mount with Kerberos authentication" + ), + new PSCifsMountConfiguration( + username: "azurebatch@company.com", + password: "AzureStorageAccountKey", + source: "//batchstorage.file.core.windows.net/datasets", + relativeMountPath: "ml-datasets", + mountOptions: "vers=3.0,serverino,mapposix,rsize=1048576,wsize=1048576" + //Description = "Azure Files mount for machine learning datasets with high throughput" + ), + new PSCifsMountConfiguration( + username: "localuser", + password: "LocalPassword", + source: "//10.0.0.100/shared", + relativeMountPath: "shared", + mountOptions: null + //Description = "Simple local network share without specific options" + ), + new PSCifsMountConfiguration( + username: "backup-user", + password: "BackupPassword123", + source: "//backup-nas.company.local/batch-results", + relativeMountPath: "results-backup", + mountOptions: "vers=2.1,uid=0,gid=0,file_mode=0600,dir_mode=0700" + //Description = "Backup storage with restricted permissions for result archival" + ) + }; + + foreach (var scenario in enterpriseScenarios) + { + // Arrange + var psCifsConfig = new PSCifsMountConfiguration( + username: scenario.Username, + password: scenario.Password, + source: scenario.Source, + relativeMountPath: scenario.RelativeMountPath, + mountOptions: scenario.MountOptions); + + // Act + var mgmtCifsConfig = psCifsConfig.toMgmtCifsMountConfiguration(); + + // Assert - Should convert correctly for Batch pool mount configuration + Assert.NotNull(mgmtCifsConfig); + Assert.Equal(scenario.Username, mgmtCifsConfig.UserName); + Assert.Equal(scenario.Password, mgmtCifsConfig.Password); + Assert.Equal(scenario.Source, mgmtCifsConfig.Source); + Assert.Equal(scenario.RelativeMountPath, mgmtCifsConfig.RelativeMountPath); + Assert.Equal(scenario.MountOptions, mgmtCifsConfig.MountOptions); + + // Verify round-trip conversion maintains Batch pool semantics + var backToPs = PSCifsMountConfiguration.fromMgmtCifsMountConfiguration(mgmtCifsConfig); + Assert.NotNull(backToPs); + Assert.Equal(scenario.Username, backToPs.Username); + Assert.Equal(scenario.Password, backToPs.Password); + Assert.Equal(scenario.Source, backToPs.Source); + Assert.Equal(scenario.RelativeMountPath, backToPs.RelativeMountPath); + Assert.Equal(scenario.MountOptions, backToPs.MountOptions); + } + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void CifsMountConfigurationConversions_InstanceCreation_VerifyBehavior() + { + // This test verifies that the conversion methods create appropriate instances + + // Arrange + var psConfig = new PSCifsMountConfiguration( + username: "testuser", + password: "testpass", + source: "//server/data", + relativeMountPath: "data", + mountOptions: "vers=3"); + + var mgmtConfig = new CifsMountConfiguration( + userName: "mgmtuser", + source: "//server/volume", + relativeMountPath: "volume", + password: "mgmtpass", + mountOptions: "vers=2"); + + // Act + var mgmtResult = psConfig.toMgmtCifsMountConfiguration(); + var psResult = PSCifsMountConfiguration.fromMgmtCifsMountConfiguration(mgmtConfig); + + // Assert - Verify proper instance creation + Assert.NotNull(mgmtResult); + Assert.NotNull(psResult); + Assert.IsType(mgmtResult); + Assert.IsType(psResult); + + // Verify new instances are created + Assert.NotSame(mgmtConfig, mgmtResult); + Assert.NotSame(psConfig, psResult); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void CifsMountConfigurationConversions_EdgeCaseValues_HandleCorrectly() + { + // Test conversion with various edge case values + + var testConfigurations = new[] + { + // Standard configurations + new { Username = "user", Password = "pass", Source = "//server/share", RelativeMountPath = "share", MountOptions = "vers=3.0" }, + new { Username = "domain\\user", Password = "password", Source = "//192.168.1.100/data", RelativeMountPath = "data", MountOptions = "vers=2.1" }, + // Edge cases + new { Username = "", Password = "", Source = "", RelativeMountPath = "", MountOptions = "" }, + new { Username = "user@domain.com", Password = "complex!@#$%", Source = "//server/path with spaces", RelativeMountPath = "path", MountOptions = (string)null }, + new { Username = " ", Password = " ", Source = " ", RelativeMountPath = " ", MountOptions = " " }, // Whitespace + new { Username = "very-long-username-for-testing-purposes@very-long-domain-name.company.enterprise.com", Password = "VeryLongPasswordForTestingPurposes123!@#$%^&*()", Source = "//very-long-server-name.very-long-domain.company.enterprise.com/very-long-share-name-for-testing", RelativeMountPath = "very-long-relative-mount-path-for-testing-purposes", MountOptions = "vers=3.0,uid=1000,gid=1000,iocharset=utf8,file_mode=0644,dir_mode=0755,cache=strict,actimeo=30,rsize=1048576,wsize=1048576" } + }; + + foreach (var testConfig in testConfigurations) + { + // Arrange + var psConfig = new PSCifsMountConfiguration( + username: testConfig.Username, + password: testConfig.Password, + source: testConfig.Source, + relativeMountPath: testConfig.RelativeMountPath, + mountOptions: testConfig.MountOptions); + + var mgmtConfig = new CifsMountConfiguration( + userName: testConfig.Username, + source: testConfig.Source, + relativeMountPath: testConfig.RelativeMountPath, + password: testConfig.Password, + mountOptions: testConfig.MountOptions); + + // Act + var mgmtResult = psConfig.toMgmtCifsMountConfiguration(); + var psFromMgmtResult = PSCifsMountConfiguration.fromMgmtCifsMountConfiguration(mgmtConfig); + var roundTripResult = PSCifsMountConfiguration.fromMgmtCifsMountConfiguration(mgmtResult); + + // Assert + Assert.NotNull(mgmtResult); + Assert.NotNull(psFromMgmtResult); + Assert.NotNull(roundTripResult); + + Assert.Equal(testConfig.Username, mgmtResult.UserName); + Assert.Equal(testConfig.Password, mgmtResult.Password); + Assert.Equal(testConfig.Source, mgmtResult.Source); + Assert.Equal(testConfig.RelativeMountPath, mgmtResult.RelativeMountPath); + Assert.Equal(testConfig.MountOptions, mgmtResult.MountOptions); + + Assert.Equal(testConfig.Username, psFromMgmtResult.Username); + Assert.Equal(testConfig.Password, psFromMgmtResult.Password); + Assert.Equal(testConfig.Source, psFromMgmtResult.Source); + Assert.Equal(testConfig.RelativeMountPath, psFromMgmtResult.RelativeMountPath); + Assert.Equal(testConfig.MountOptions, psFromMgmtResult.MountOptions); + + Assert.Equal(testConfig.Username, roundTripResult.Username); + Assert.Equal(testConfig.Password, roundTripResult.Password); + Assert.Equal(testConfig.Source, roundTripResult.Source); + Assert.Equal(testConfig.RelativeMountPath, roundTripResult.RelativeMountPath); + Assert.Equal(testConfig.MountOptions, roundTripResult.MountOptions); + } + } + + #endregion + + #region Performance and Security Tests + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void CifsMountConfigurationConversions_PerformanceTest_ExecutesQuickly() + { + // This test ensures the conversions are efficient with multiple operations + + // Arrange + var psConfigs = new List(); + var mgmtConfigs = new List(); + + for (int i = 0; i < 100; i++) + { + psConfigs.Add(new PSCifsMountConfiguration( + username: $"user{i}", + password: $"password{i}", + source: $"//server{i}.example.com/share{i}", + relativeMountPath: $"share{i}", + mountOptions: $"vers=3.{i % 2},uid={1000 + i},gid={1000 + i}")); + + mgmtConfigs.Add(new CifsMountConfiguration( + userName: $"mgmtuser{i}", + source: $"//mgmt-server{i}.example.com/volume{i}", + relativeMountPath: $"volume{i}", + password: $"mgmtpassword{i}", + mountOptions: $"vers=2.{i % 2 + 1},rsize={1024 * (i + 1)},wsize={1024 * (i + 1)}")); + } + + // Act & Assert - Multiple conversions should complete without delay + for (int i = 0; i < 10; i++) + { + foreach (var psConfig in psConfigs) + { + var mgmtResult = psConfig.toMgmtCifsMountConfiguration(); + Assert.NotNull(mgmtResult); + } + + foreach (var mgmtConfig in mgmtConfigs) + { + var psResult = PSCifsMountConfiguration.fromMgmtCifsMountConfiguration(mgmtConfig); + Assert.NotNull(psResult); + } + } + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void CifsMountConfigurationConversions_RealWorldCifsOptions_HandleCorrectly() + { + // Test with realistic CIFS mount options that would be used in production + + var realWorldConfigurations = new PSCifsMountConfiguration[] + { + new PSCifsMountConfiguration ( + username: "ENTERPRISE\\batch-svc", + password: "EnterpriseBatchPassword123!", + source: "//enterprise-fileserver.corp.com/batch-data", + relativeMountPath: "enterprise-data", + mountOptions: "vers=3.0,domain=ENTERPRISE,sec=krb5,cache=strict,actimeo=30,rsize=1048576,wsize=1048576" + //Description = "Enterprise Active Directory mount with Kerberos and high performance" + ), + new PSCifsMountConfiguration ( + username: "azurebatch@company.onmicrosoft.com", + password: "AzureFilesStorageKey123", + source: "//batchstorageaccount.file.core.windows.net/datafiles", + relativeMountPath: "azure-data", + mountOptions: "vers=3.0,serverino,mapposix,cache=loose,actimeo=1" + //Description = "Azure Files mount with POSIX mapping and relaxed caching" + ), + new PSCifsMountConfiguration ( + username: "hpc-user", + password: "HPCPassword", + source: "//hpc-nas.research.edu/scratch", + relativeMountPath: "scratch-space", + mountOptions: "vers=3.0,hard,intr,rsize=65536,wsize=65536,timeo=14,retrans=3" + //Description = "HPC scratch storage with hard mount and retry parameters" + ), + new PSCifsMountConfiguration ( + username: "backup", + password: "BackupServicePassword", + source: "//backup-server.company.local/batch-results", + relativeMountPath: "backup", + mountOptions: "vers=2.1,uid=0,gid=0,file_mode=0600,dir_mode=0700,nobrl" + //Description = "Backup mount with restricted permissions and no byte-range locking" + ), + new PSCifsMountConfiguration ( + username: "guest", + password: "GuestPassword", + source: "//public-share.local/public", + relativeMountPath: "public", + mountOptions: null + //Description = "Simple public share without specific options" + ) + }; + + foreach (var config in realWorldConfigurations) + { + // Arrange + var psConfig = new PSCifsMountConfiguration( + username: config.Username, + password: config.Password, + source: config.Source, + relativeMountPath: config.RelativeMountPath, + mountOptions: config.MountOptions); + + // Act + var mgmtConfig = psConfig.toMgmtCifsMountConfiguration(); + var roundTripPs = PSCifsMountConfiguration.fromMgmtCifsMountConfiguration(mgmtConfig); + + // Assert + Assert.NotNull(mgmtConfig); + Assert.NotNull(roundTripPs); + + Assert.Equal(config.Username, mgmtConfig.UserName); + Assert.Equal(config.Password, mgmtConfig.Password); + Assert.Equal(config.Source, mgmtConfig.Source); + Assert.Equal(config.RelativeMountPath, mgmtConfig.RelativeMountPath); + Assert.Equal(config.MountOptions, mgmtConfig.MountOptions); + + Assert.Equal(config.Username, roundTripPs.Username); + Assert.Equal(config.Password, roundTripPs.Password); + Assert.Equal(config.Source, roundTripPs.Source); + Assert.Equal(config.RelativeMountPath, roundTripPs.RelativeMountPath); + Assert.Equal(config.MountOptions, roundTripPs.MountOptions); + } + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void CifsMountConfigurationConversions_AuthenticationFormats_VerifyBehavior() + { + // Test with various authentication formats commonly used with CIFS + + var authenticationScenarios = new[] + { + // Domain formats + new { Username = "DOMAIN\\username", Password = "DomainPassword", Description = "Windows domain format" }, + new { Username = "username@domain.com", Password = "UPNPassword", Description = "User Principal Name format" }, + new { Username = "domain/username", Password = "UnixDomainPassword", Description = "Unix-style domain format" }, + // Azure AD formats + new { Username = "user@tenant.onmicrosoft.com", Password = "AzureADPassword", Description = "Azure AD UPN format" }, + new { Username = "storageaccount", Password = "StorageAccountKey", Description = "Azure Storage account format" }, + // Simple formats + new { Username = "localuser", Password = "LocalPassword", Description = "Local user account" }, + new { Username = "serviceaccount", Password = "ServicePassword123!", Description = "Service account with complex password" }, + // Edge cases + new { Username = "", Password = "", Description = "Empty credentials" }, + new { Username = "user with spaces", Password = "password with spaces", Description = "Credentials with spaces" }, + new { Username = "user@sub.domain.company.com", Password = "Password!@#$%^&*()", Description = "Complex UPN with special characters" } + }; + + foreach (var scenario in authenticationScenarios) + { + // Arrange + var psConfig = new PSCifsMountConfiguration( + username: scenario.Username, + password: scenario.Password, + source: "//server/share", + relativeMountPath: "share", + mountOptions: "vers=3.0"); + + // Act + var mgmtConfig = psConfig.toMgmtCifsMountConfiguration(); + var roundTripPs = PSCifsMountConfiguration.fromMgmtCifsMountConfiguration(mgmtConfig); + + // Assert - All authentication formats should be preserved exactly as provided + Assert.NotNull(mgmtConfig); + Assert.NotNull(roundTripPs); + + Assert.Equal(scenario.Username, mgmtConfig.UserName); + Assert.Equal(scenario.Password, mgmtConfig.Password); + + Assert.Equal(scenario.Username, roundTripPs.Username); + Assert.Equal(scenario.Password, roundTripPs.Password); + } + } + + #endregion + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Test/Models/PSContainerConfigurationTests.cs b/src/Batch/Batch.Test/Models/PSContainerConfigurationTests.cs index 7f311a729af3..6a78f1f8b177 100644 --- a/src/Batch/Batch.Test/Models/PSContainerConfigurationTests.cs +++ b/src/Batch/Batch.Test/Models/PSContainerConfigurationTests.cs @@ -275,7 +275,7 @@ public void FromMgmtContainerConfiguration_WithAllProperties_ReturnsCorrectMappi // Act var psContainerConfig = new PSContainerConfiguration(); - var result = psContainerConfig.fromMgmtContainerConfiguration(mgmtContainerConfig); + var result = PSContainerConfiguration.fromMgmtContainerConfiguration(mgmtContainerConfig); // Assert Assert.NotNull(result); @@ -301,7 +301,7 @@ public void FromMgmtContainerConfiguration_WithDockerCompatible_ReturnsCorrectMa // Act var psContainerConfig = new PSContainerConfiguration(); - var result = psContainerConfig.fromMgmtContainerConfiguration(mgmtContainerConfig); + var result = PSContainerConfiguration.fromMgmtContainerConfiguration(mgmtContainerConfig); // Assert Assert.NotNull(result); @@ -324,7 +324,7 @@ public void FromMgmtContainerConfiguration_WithCriCompatible_ReturnsCorrectMappi // Act var psContainerConfig = new PSContainerConfiguration(); - var result = psContainerConfig.fromMgmtContainerConfiguration(mgmtContainerConfig); + var result = PSContainerConfiguration.fromMgmtContainerConfiguration(mgmtContainerConfig); // Assert Assert.NotNull(result); @@ -341,7 +341,7 @@ public void FromMgmtContainerConfiguration_WithNullMgmtConfiguration_ReturnsNull { // Act var psContainerConfig = new PSContainerConfiguration(); - var result = psContainerConfig.fromMgmtContainerConfiguration(null); + var result = PSContainerConfiguration.fromMgmtContainerConfiguration(null); // Assert Assert.Null(result); @@ -368,7 +368,7 @@ public void FromMgmtContainerConfiguration_WithMultipleRegistries_ReturnsCorrect // Act var psContainerConfig = new PSContainerConfiguration(); - var result = psContainerConfig.fromMgmtContainerConfiguration(mgmtContainerConfig); + var result = PSContainerConfiguration.fromMgmtContainerConfiguration(mgmtContainerConfig); // Assert Assert.NotNull(result); @@ -394,7 +394,7 @@ public void FromMgmtContainerConfiguration_WithNullContainerImageNames_ReturnsNu // Act var psContainerConfig = new PSContainerConfiguration(); - var result = psContainerConfig.fromMgmtContainerConfiguration(mgmtContainerConfig); + var result = PSContainerConfiguration.fromMgmtContainerConfiguration(mgmtContainerConfig); // Assert Assert.NotNull(result); @@ -415,7 +415,7 @@ public void FromMgmtContainerConfiguration_WithNullContainerRegistries_ReturnsNu // Act var psContainerConfig = new PSContainerConfiguration(); - var result = psContainerConfig.fromMgmtContainerConfiguration(mgmtContainerConfig); + var result = PSContainerConfiguration.fromMgmtContainerConfiguration(mgmtContainerConfig); // Assert Assert.NotNull(result); @@ -438,7 +438,7 @@ public void FromMgmtContainerConfiguration_VariousContainerTypes_ReturnsCorrectM // Act var psContainerConfig = new PSContainerConfiguration(); - var result = psContainerConfig.fromMgmtContainerConfiguration(mgmtContainerConfig); + var result = PSContainerConfiguration.fromMgmtContainerConfiguration(mgmtContainerConfig); // Assert Assert.NotNull(result); @@ -459,8 +459,8 @@ public void FromMgmtContainerConfiguration_AlwaysCreatesNewInstance() // Act var psContainerConfig = new PSContainerConfiguration(); - var result1 = psContainerConfig.fromMgmtContainerConfiguration(mgmtContainerConfig); - var result2 = psContainerConfig.fromMgmtContainerConfiguration(mgmtContainerConfig); + var result1 = PSContainerConfiguration.fromMgmtContainerConfiguration(mgmtContainerConfig); + var result2 = PSContainerConfiguration.fromMgmtContainerConfiguration(mgmtContainerConfig); // Assert Assert.NotNull(result1); @@ -479,7 +479,7 @@ public void FromMgmtContainerConfiguration_VerifyPSContainerConfigurationType() // Act var psContainerConfig = new PSContainerConfiguration(); - var result = psContainerConfig.fromMgmtContainerConfiguration(mgmtContainerConfig); + var result = PSContainerConfiguration.fromMgmtContainerConfiguration(mgmtContainerConfig); // Assert Assert.NotNull(result); @@ -496,7 +496,7 @@ public void FromMgmtContainerConfiguration_WithDefaultConstructor_HandlesCorrect // Act var psContainerConfig = new PSContainerConfiguration(); - var result = psContainerConfig.fromMgmtContainerConfiguration(mgmtContainerConfig); + var result = PSContainerConfiguration.fromMgmtContainerConfiguration(mgmtContainerConfig); // Assert Assert.NotNull(result); @@ -532,7 +532,7 @@ public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesAllProperties() // Act var mgmtContainerConfig = originalPsContainerConfig.toMgmtContainerConfiguration(); var psContainerConfig = new PSContainerConfiguration(); - var roundTripPsContainerConfig = psContainerConfig.fromMgmtContainerConfiguration(mgmtContainerConfig); + var roundTripPsContainerConfig = PSContainerConfiguration.fromMgmtContainerConfiguration(mgmtContainerConfig); // Assert Assert.NotNull(roundTripPsContainerConfig); @@ -565,7 +565,7 @@ public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesMinimalProperties() // Act var mgmtContainerConfig = originalPsContainerConfig.toMgmtContainerConfiguration(); var psContainerConfig = new PSContainerConfiguration(); - var roundTripPsContainerConfig = psContainerConfig.fromMgmtContainerConfiguration(mgmtContainerConfig); + var roundTripPsContainerConfig = PSContainerConfiguration.fromMgmtContainerConfiguration(mgmtContainerConfig); // Assert Assert.NotNull(roundTripPsContainerConfig); @@ -589,7 +589,7 @@ public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesNullValues() // Act var mgmtContainerConfig = originalPsContainerConfig.toMgmtContainerConfiguration(); var psContainerConfig = new PSContainerConfiguration(); - var roundTripPsContainerConfig = psContainerConfig.fromMgmtContainerConfiguration(mgmtContainerConfig); + var roundTripPsContainerConfig = PSContainerConfiguration.fromMgmtContainerConfiguration(mgmtContainerConfig); // Assert Assert.NotNull(roundTripPsContainerConfig); @@ -614,7 +614,7 @@ public void RoundTripConversion_AllValidTypes_PreservesOriginalValue(string cont // Act var mgmtContainerConfig = originalPsContainerConfig.toMgmtContainerConfiguration(); var psContainerConfig = new PSContainerConfiguration(); - var roundTripPsContainerConfig = psContainerConfig.fromMgmtContainerConfiguration(mgmtContainerConfig); + var roundTripPsContainerConfig = PSContainerConfiguration.fromMgmtContainerConfiguration(mgmtContainerConfig); // Assert Assert.NotNull(roundTripPsContainerConfig); @@ -641,7 +641,7 @@ public void RoundTripConversion_FromMgmtAndToMgmt_PreservesValues() // Act var psContainerConfig = new PSContainerConfiguration(); - var convertedPsContainerConfig = psContainerConfig.fromMgmtContainerConfiguration(originalMgmtContainerConfig); + var convertedPsContainerConfig = PSContainerConfiguration.fromMgmtContainerConfiguration(originalMgmtContainerConfig); var roundTripMgmtContainerConfig = convertedPsContainerConfig.toMgmtContainerConfiguration(); // Assert @@ -694,7 +694,7 @@ public void ContainerConfigurationConversions_BothDirections_MaintainSemanticEqu // Act var mgmtContainerConfig = psContainerConfig.toMgmtContainerConfiguration(); var psContainerConfigInstance = new PSContainerConfiguration(); - var backToPs = psContainerConfigInstance.fromMgmtContainerConfiguration(mgmtContainerConfig); + var backToPs = PSContainerConfiguration.fromMgmtContainerConfiguration(mgmtContainerConfig); // Assert Assert.NotNull(mgmtContainerConfig); @@ -717,7 +717,7 @@ public void ContainerConfigurationConversions_NullHandling_WorksCorrectly() // Act var psContainerConfig = new PSContainerConfiguration(); - var resultFromNull = psContainerConfig.fromMgmtContainerConfiguration(null); + var resultFromNull = PSContainerConfiguration.fromMgmtContainerConfiguration(null); // Assert Assert.Null(resultFromNull); @@ -799,7 +799,7 @@ public void ContainerConfigurationConversions_BatchPoolContext_VerifyCorrectUsag // Verify round-trip conversion maintains container configuration semantics var psContainerConfigInstance = new PSContainerConfiguration(); - var backToPs = psContainerConfigInstance.fromMgmtContainerConfiguration(mgmtContainerConfig); + var backToPs = PSContainerConfiguration.fromMgmtContainerConfiguration(mgmtContainerConfig); Assert.NotNull(backToPs); Assert.Equal(scenario.Type, backToPs.Type); Assert.Equal(scenario.ImageNames.Count, backToPs.ContainerImageNames.Count); @@ -849,7 +849,7 @@ public void ContainerConfigurationConversions_InstanceCreation_VerifyBehavior() // Act var mgmtResult = psContainerConfig.toMgmtContainerConfiguration(); var psContainerConfigInstance = new PSContainerConfiguration(); - var psResult = psContainerConfigInstance.fromMgmtContainerConfiguration(mgmtContainerConfig); + var psResult = PSContainerConfiguration.fromMgmtContainerConfiguration(mgmtContainerConfig); // Assert - Verify proper instance creation Assert.NotNull(mgmtResult); @@ -904,7 +904,7 @@ public void ContainerConfigurationConversions_PerformanceTest_ExecutesQuickly() { var mgmtResult = psContainerConfig.toMgmtContainerConfiguration(); var psContainerConfigInstance = new PSContainerConfiguration(); - var psResult = psContainerConfigInstance.fromMgmtContainerConfiguration(mgmtContainerConfig); + var psResult = PSContainerConfiguration.fromMgmtContainerConfiguration(mgmtContainerConfig); Assert.NotNull(mgmtResult); Assert.NotNull(psResult); @@ -936,7 +936,7 @@ public void ContainerConfigurationConversions_DefaultAndNullValues_HandleCorrect defaultMgmtContainerConfig.Type = "CriCompatible"; var psContainerConfigInstance = new PSContainerConfiguration(); - var psFromDefault = psContainerConfigInstance.fromMgmtContainerConfiguration(defaultMgmtContainerConfig); + var psFromDefault = PSContainerConfiguration.fromMgmtContainerConfiguration(defaultMgmtContainerConfig); Assert.NotNull(psFromDefault); Assert.Equal("CriCompatible", psFromDefault.Type); Assert.Null(psFromDefault.ContainerImageNames); @@ -956,8 +956,7 @@ public void ContainerConfigurationConversions_DefaultAndNullValues_HandleCorrect Assert.Null(mgmtNullValuesResult.ContainerImageNames); Assert.Null(mgmtNullValuesResult.ContainerRegistries); - var psContainerConfigInstance2 = new PSContainerConfiguration(); - var roundTripNullValues = psContainerConfigInstance2.fromMgmtContainerConfiguration(mgmtNullValuesResult); + var roundTripNullValues = PSContainerConfiguration.fromMgmtContainerConfiguration(mgmtNullValuesResult); Assert.NotNull(roundTripNullValues); Assert.Equal("DockerCompatible", roundTripNullValues.Type); Assert.Null(roundTripNullValues.ContainerImageNames); @@ -997,7 +996,7 @@ public void ContainerConfigurationConversions_ContainerTypeSemantics_VerifyCorre var mgmtContainerConfig = psContainerConfig.toMgmtContainerConfiguration(); var psContainerConfigInstance = new PSContainerConfiguration(); - var roundTripContainerConfig = psContainerConfigInstance.fromMgmtContainerConfiguration(mgmtContainerConfig); + var roundTripContainerConfig = PSContainerConfiguration.fromMgmtContainerConfiguration(mgmtContainerConfig); // Assert - Container type semantics should be preserved Assert.NotNull(mgmtContainerConfig); diff --git a/src/Batch/Batch.Test/Models/PSDiffDiskSettingsTests.cs b/src/Batch/Batch.Test/Models/PSDiffDiskSettingsTests.cs new file mode 100644 index 000000000000..ab799e0a35ca --- /dev/null +++ b/src/Batch/Batch.Test/Models/PSDiffDiskSettingsTests.cs @@ -0,0 +1,600 @@ +// ----------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ----------------------------------------------------------------------------- + +using Microsoft.Azure.Commands.Batch.Models; +using Microsoft.Azure.Management.Batch.Models; +using System; +using Xunit; + +namespace Microsoft.Azure.Commands.Batch.Test.ModelsConversions +{ + public class PSDiffDiskSettingsTests + { + #region FromMgmtDiffDiskSettings Tests + + [Fact] + public void FromMgmtDiffDiskSettings_WithCacheDiskPlacement_ReturnsCorrectMapping() + { + // Arrange + var mgmtSettings = new DiffDiskSettings(DiffDiskPlacement.CacheDisk); + + // Act + var result = PSDiffDiskSettings.FromMgmtDiffDiskSettings(mgmtSettings); + + // Assert + Assert.NotNull(result); + Assert.Equal(Azure.Batch.Common.DiffDiskPlacement.CacheDisk, result.Placement); + } + + [Fact] + public void FromMgmtDiffDiskSettings_WithNullPlacement_ReturnsCorrectMapping() + { + // Arrange + var mgmtSettings = new DiffDiskSettings(null); + + // Act + var result = PSDiffDiskSettings.FromMgmtDiffDiskSettings(mgmtSettings); + + // Assert + Assert.NotNull(result); + Assert.Null(result.Placement); + } + + [Fact] + public void FromMgmtDiffDiskSettings_WithNullSettings_ReturnsNull() + { + // Act + var result = PSDiffDiskSettings.FromMgmtDiffDiskSettings(null); + + // Assert + Assert.Null(result); + } + + [Fact] + public void FromMgmtDiffDiskSettings_VerifyCorrectType_ReturnsPSDiffDiskSettings() + { + // Arrange + var mgmtSettings = new DiffDiskSettings(DiffDiskPlacement.CacheDisk); + + // Act + var result = PSDiffDiskSettings.FromMgmtDiffDiskSettings(mgmtSettings); + + // Assert + Assert.NotNull(result); + Assert.IsType(result); + } + + [Fact] + public void FromMgmtDiffDiskSettings_CacheDiskSemantics_PreservesEphemeralOSDiskStrategy() + { + // Arrange - CacheDisk placement for ephemeral OS disk configuration + var mgmtSettings = new DiffDiskSettings(DiffDiskPlacement.CacheDisk); + + // Act + var result = PSDiffDiskSettings.FromMgmtDiffDiskSettings(mgmtSettings); + + // Assert + Assert.NotNull(result); + Assert.Equal(Azure.Batch.Common.DiffDiskPlacement.CacheDisk, result.Placement); + // CacheDisk semantics preserved: Ephemeral OS disk placed on cache disk for performance + } + + [Theory] + [InlineData(DiffDiskPlacement.CacheDisk, Azure.Batch.Common.DiffDiskPlacement.CacheDisk)] + public void FromMgmtDiffDiskSettings_AllValidPlacementTypes_ReturnsCorrectMapping( + DiffDiskPlacement mgmtPlacement, + Azure.Batch.Common.DiffDiskPlacement expectedPsPlacement) + { + // Arrange + var mgmtSettings = new DiffDiskSettings(mgmtPlacement); + + // Act + var result = PSDiffDiskSettings.FromMgmtDiffDiskSettings(mgmtSettings); + + // Assert + Assert.NotNull(result); + Assert.Equal(expectedPsPlacement, result.Placement); + } + + #endregion + + #region ToMgmtEphemeralOSDiskSettings Tests + + [Fact] + public void ToMgmtEphemeralOSDiskSettings_WithCacheDiskPlacement_ReturnsCorrectMapping() + { + // Arrange + var psSettings = new PSDiffDiskSettings + { + Placement = Azure.Batch.Common.DiffDiskPlacement.CacheDisk + }; + + // Act + var result = psSettings.ToMgmtEphemeralOSDiskSettings(); + + // Assert + Assert.NotNull(result); + Assert.Equal(DiffDiskPlacement.CacheDisk, result.Placement); + } + + [Fact] + public void ToMgmtEphemeralOSDiskSettings_WithNullPlacement_ReturnsCorrectMapping() + { + // Arrange + var psSettings = new PSDiffDiskSettings + { + Placement = null + }; + + // Act + var result = psSettings.ToMgmtEphemeralOSDiskSettings(); + + // Assert + Assert.NotNull(result); + Assert.Null(result.Placement); + } + + [Fact] + public void ToMgmtEphemeralOSDiskSettings_VerifyCorrectType_ReturnsDiffDiskSettings() + { + // Arrange + var psSettings = new PSDiffDiskSettings + { + Placement = Azure.Batch.Common.DiffDiskPlacement.CacheDisk + }; + + // Act + var result = psSettings.ToMgmtEphemeralOSDiskSettings(); + + // Assert + Assert.NotNull(result); + Assert.IsType(result); + } + + [Fact] + public void ToMgmtEphemeralOSDiskSettings_CacheDiskSemantics_PreservesEphemeralOSDiskStrategy() + { + // Arrange - CacheDisk placement for ephemeral OS disk configuration + var psSettings = new PSDiffDiskSettings + { + Placement = Azure.Batch.Common.DiffDiskPlacement.CacheDisk + }; + + // Act + var result = psSettings.ToMgmtEphemeralOSDiskSettings(); + + // Assert + Assert.NotNull(result); + Assert.Equal(DiffDiskPlacement.CacheDisk, result.Placement); + // CacheDisk semantics preserved: Ephemeral OS disk placed on cache disk for performance + } + + [Theory] + [InlineData(Azure.Batch.Common.DiffDiskPlacement.CacheDisk, DiffDiskPlacement.CacheDisk)] + public void ToMgmtEphemeralOSDiskSettings_AllValidPlacementTypes_ReturnsCorrectMapping( + Azure.Batch.Common.DiffDiskPlacement psPlacement, + DiffDiskPlacement expectedMgmtPlacement) + { + // Arrange + var psSettings = new PSDiffDiskSettings + { + Placement = psPlacement + }; + + // Act + var result = psSettings.ToMgmtEphemeralOSDiskSettings(); + + // Assert + Assert.NotNull(result); + Assert.Equal(expectedMgmtPlacement, result.Placement); + } + + [Fact] + public void ToMgmtEphemeralOSDiskSettings_AlwaysCreatesNewInstance() + { + // Arrange + var psSettings = new PSDiffDiskSettings + { + Placement = Azure.Batch.Common.DiffDiskPlacement.CacheDisk + }; + + // Act + var result1 = psSettings.ToMgmtEphemeralOSDiskSettings(); + var result2 = psSettings.ToMgmtEphemeralOSDiskSettings(); + + // Assert + Assert.NotNull(result1); + Assert.NotNull(result2); + Assert.NotSame(result1, result2); + } + + #endregion + + #region Round-trip Conversion Tests + + [Fact] + public void RoundTripConversion_FromMgmtAndToMgmt_PreservesCacheDiskValue() + { + // Arrange + var originalMgmtSettings = new DiffDiskSettings(DiffDiskPlacement.CacheDisk); + + // Act - Convert Management -> PS -> Management + var psSettings = PSDiffDiskSettings.FromMgmtDiffDiskSettings(originalMgmtSettings); + var roundTripMgmtSettings = psSettings.ToMgmtEphemeralOSDiskSettings(); + + // Assert - Should get back the original value + Assert.NotNull(roundTripMgmtSettings); + Assert.Equal(originalMgmtSettings.Placement, roundTripMgmtSettings.Placement); + Assert.Equal(DiffDiskPlacement.CacheDisk, roundTripMgmtSettings.Placement); + } + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesCacheDiskValue() + { + // Arrange + var originalPsSettings = new PSDiffDiskSettings + { + Placement = Azure.Batch.Common.DiffDiskPlacement.CacheDisk + }; + + // Act - Convert PS -> Management -> PS + var mgmtSettings = originalPsSettings.ToMgmtEphemeralOSDiskSettings(); + var roundTripPsSettings = PSDiffDiskSettings.FromMgmtDiffDiskSettings(mgmtSettings); + + // Assert - Should get back the original value + Assert.NotNull(roundTripPsSettings); + Assert.Equal(originalPsSettings.Placement, roundTripPsSettings.Placement); + Assert.Equal(Azure.Batch.Common.DiffDiskPlacement.CacheDisk, roundTripPsSettings.Placement); + } + + [Theory] + [InlineData(Azure.Batch.Common.DiffDiskPlacement.CacheDisk)] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesAllValidValues( + Azure.Batch.Common.DiffDiskPlacement originalPlacement) + { + // Arrange + var originalPsSettings = new PSDiffDiskSettings + { + Placement = originalPlacement + }; + + // Act - Convert PS -> Management -> PS + var mgmtSettings = originalPsSettings.ToMgmtEphemeralOSDiskSettings(); + var roundTripPsSettings = PSDiffDiskSettings.FromMgmtDiffDiskSettings(mgmtSettings); + + // Assert - Should get back the original value + Assert.NotNull(roundTripPsSettings); + Assert.Equal(originalPlacement, roundTripPsSettings.Placement); + } + + [Fact] + public void RoundTripConversion_WithNullPlacement_PreservesNullValue() + { + // Arrange + var originalPsSettings = new PSDiffDiskSettings + { + Placement = null + }; + + // Act - Convert PS -> Management -> PS + var mgmtSettings = originalPsSettings.ToMgmtEphemeralOSDiskSettings(); + var roundTripPsSettings = PSDiffDiskSettings.FromMgmtDiffDiskSettings(mgmtSettings); + + // Assert - Should preserve null value + Assert.NotNull(roundTripPsSettings); + Assert.Null(roundTripPsSettings.Placement); + } + + [Fact] + public void RoundTripConversion_WithNullSettings_HandlesCorrectly() + { + // Arrange + DiffDiskSettings nullMgmtSettings = null; + + // Act + var psSettings = PSDiffDiskSettings.FromMgmtDiffDiskSettings(nullMgmtSettings); + + // Assert + Assert.Null(psSettings); + } + + #endregion + + #region Integration Tests + + [Fact] + public void DiffDiskSettingsConversions_BothDirections_MaintainSemanticEquivalence() + { + // This test ensures that the semantic meaning is preserved across conversions + + // Test CacheDisk semantics - Ephemeral OS disk placed on cache disk for performance + var mgmtCacheDisk = new DiffDiskSettings(DiffDiskPlacement.CacheDisk); + var psCacheDisk = PSDiffDiskSettings.FromMgmtDiffDiskSettings(mgmtCacheDisk); + var backToMgmt = psCacheDisk.ToMgmtEphemeralOSDiskSettings(); + + Assert.Equal(Azure.Batch.Common.DiffDiskPlacement.CacheDisk, psCacheDisk.Placement); + Assert.Equal(DiffDiskPlacement.CacheDisk, backToMgmt.Placement); + } + + [Fact] + public void DiffDiskSettingsConversions_NullHandling_WorksCorrectly() + { + // Test null handling in conversions + + // Act + var resultFromNull = PSDiffDiskSettings.FromMgmtDiffDiskSettings(null); + + // Assert + Assert.Null(resultFromNull); + } + + [Fact] + public void DiffDiskSettingsConversions_EphemeralOSDiskContext_VerifyCorrectUsage() + { + // This test validates the conversions work correctly in the context of ephemeral OS disk configuration + // DiffDiskSettings is used to configure ephemeral OS disk placement for Azure VMs + + // Arrange - Test CacheDisk strategy for ephemeral OS disk + var mgmtSettings = new DiffDiskSettings(DiffDiskPlacement.CacheDisk); + var psSettings = PSDiffDiskSettings.FromMgmtDiffDiskSettings(mgmtSettings); + + // Act & Assert - CacheDisk should convert correctly for ephemeral OS disk performance + Assert.Equal(Azure.Batch.Common.DiffDiskPlacement.CacheDisk, psSettings.Placement); + + // Verify round-trip conversion maintains ephemeral OS disk semantics + var backToMgmt = psSettings.ToMgmtEphemeralOSDiskSettings(); + + Assert.Equal(DiffDiskPlacement.CacheDisk, backToMgmt.Placement); + } + + [Fact] + public void DiffDiskSettingsConversions_DefaultValues_HandleCorrectly() + { + // Test conversion with default placement values + + // Arrange + var defaultMgmtSettings = new DiffDiskSettings(); + var defaultPsSettings = new PSDiffDiskSettings(); + + // Act + var psFromDefault = PSDiffDiskSettings.FromMgmtDiffDiskSettings(defaultMgmtSettings); + var mgmtFromDefault = defaultPsSettings.ToMgmtEphemeralOSDiskSettings(); + + // Assert + Assert.NotNull(psFromDefault); + Assert.NotNull(mgmtFromDefault); + // Default values should be preserved + Assert.Equal(defaultMgmtSettings.Placement, mgmtFromDefault.Placement); + } + + #endregion + + #region Performance and Edge Case Tests + + [Fact] + public void DiffDiskSettingsConversions_PerformanceTest_ExecutesQuickly() + { + // This test ensures the conversions are efficient + + // Arrange + var mgmtSettings = new DiffDiskSettings(DiffDiskPlacement.CacheDisk); + var psSettings = new PSDiffDiskSettings + { + Placement = Azure.Batch.Common.DiffDiskPlacement.CacheDisk + }; + + // Act & Assert - Multiple conversions should complete without delay + for (int i = 0; i < 100; i++) + { + var psResult = PSDiffDiskSettings.FromMgmtDiffDiskSettings(mgmtSettings); + var mgmtResult = psSettings.ToMgmtEphemeralOSDiskSettings(); + + Assert.NotNull(psResult); + Assert.NotNull(mgmtResult); + Assert.Equal(Azure.Batch.Common.DiffDiskPlacement.CacheDisk, psResult.Placement); + Assert.Equal(DiffDiskPlacement.CacheDisk, mgmtResult.Placement); + } + } + + #endregion + + #region Ephemeral OS Disk Strategy Tests + + [Fact] + public void DiffDiskSettingsConversions_CacheDiskStrategy_EphemeralOSPerformanceOptimization() + { + // This test validates that CacheDisk placement semantics are preserved for ephemeral OS disk performance + + // Arrange - CacheDisk placement for high-performance ephemeral OS disk workloads + var mgmtSettings = new DiffDiskSettings(DiffDiskPlacement.CacheDisk); + + // Act + var psSettings = PSDiffDiskSettings.FromMgmtDiffDiskSettings(mgmtSettings); + var backToMgmt = psSettings.ToMgmtEphemeralOSDiskSettings(); + + // Assert - CacheDisk placement semantics preserved for ephemeral OS disk + Assert.Equal(Azure.Batch.Common.DiffDiskPlacement.CacheDisk, psSettings.Placement); + Assert.Equal(DiffDiskPlacement.CacheDisk, backToMgmt.Placement); + // CacheDisk placement ensures ephemeral OS disk is placed on cache disk for maximum performance + } + + #endregion + + #region Type Safety and Instance Creation Tests + + [Fact] + public void DiffDiskSettingsConversions_TypeSafety_VerifyCorrectTypes() + { + // Test that conversions return the correct types + + // Arrange + var mgmtSettings = new DiffDiskSettings(DiffDiskPlacement.CacheDisk); + var psSettings = new PSDiffDiskSettings + { + Placement = Azure.Batch.Common.DiffDiskPlacement.CacheDisk + }; + + // Act + var psResult = PSDiffDiskSettings.FromMgmtDiffDiskSettings(mgmtSettings); + var mgmtResult = psSettings.ToMgmtEphemeralOSDiskSettings(); + + // Assert - Verify correct types are returned + Assert.IsType(psResult); + Assert.IsType(mgmtResult); + } + + [Fact] + public void DiffDiskSettingsConversions_InstanceCreation_VerifyBehavior() + { + // This test verifies that the conversion methods create appropriate instances + + // Arrange + var mgmtSettings = new DiffDiskSettings(DiffDiskPlacement.CacheDisk); + var psSettings = new PSDiffDiskSettings + { + Placement = Azure.Batch.Common.DiffDiskPlacement.CacheDisk + }; + + // Act + var psResult = PSDiffDiskSettings.FromMgmtDiffDiskSettings(mgmtSettings); + var mgmtResult = psSettings.ToMgmtEphemeralOSDiskSettings(); + + // Assert - Verify proper instance creation + Assert.NotNull(psResult); + Assert.NotNull(mgmtResult); + Assert.IsType(psResult); + Assert.IsType(mgmtResult); + + // Verify new instances are created + Assert.NotSame(mgmtSettings, mgmtResult); + Assert.NotSame(psSettings, psResult); + } + + [Fact] + public void DiffDiskSettingsConversions_PlacementProperty_AccessibleAfterConversion() + { + // Test that the Placement property is accessible and correct after conversion + + // Arrange + var originalPlacement = Azure.Batch.Common.DiffDiskPlacement.CacheDisk; + var psSettings = new PSDiffDiskSettings + { + Placement = originalPlacement + }; + + // Act + var mgmtSettings = psSettings.ToMgmtEphemeralOSDiskSettings(); + var convertedPsSettings = PSDiffDiskSettings.FromMgmtDiffDiskSettings(mgmtSettings); + + // Assert + Assert.Equal(originalPlacement, psSettings.Placement); + Assert.Equal(DiffDiskPlacement.CacheDisk, mgmtSettings.Placement); + Assert.Equal(originalPlacement, convertedPsSettings.Placement); + } + + #endregion + + #region Virtual Machine Configuration Context Tests + + [Fact] + public void DiffDiskSettingsConversions_VMConfiguration_VerifyEphemeralOSDiskStrategy() + { + // This test validates the conversions work correctly in VM configuration scenarios + // DiffDiskSettings determines ephemeral OS disk placement for Azure Batch VMs + + // Arrange - Test CacheDisk placement strategy in VM context + var scenario = new + { + MgmtSettings = new DiffDiskSettings(DiffDiskPlacement.CacheDisk), + PSPlacement = Azure.Batch.Common.DiffDiskPlacement.CacheDisk, + Description = "Cache disk placement for ephemeral OS disk performance optimization" + }; + + // Act + var psResult = PSDiffDiskSettings.FromMgmtDiffDiskSettings(scenario.MgmtSettings); + var mgmtResult = new PSDiffDiskSettings { Placement = scenario.PSPlacement }.ToMgmtEphemeralOSDiskSettings(); + + // Assert + Assert.Equal(scenario.PSPlacement, psResult.Placement); + Assert.Equal(DiffDiskPlacement.CacheDisk, mgmtResult.Placement); + + // Verify round-trip maintains VM ephemeral OS disk strategy + var roundTripMgmt = psResult.ToMgmtEphemeralOSDiskSettings(); + var roundTripPs = PSDiffDiskSettings.FromMgmtDiffDiskSettings(mgmtResult); + + Assert.Equal(DiffDiskPlacement.CacheDisk, roundTripMgmt.Placement); + Assert.Equal(scenario.PSPlacement, roundTripPs.Placement); + } + + [Fact] + public void DiffDiskSettingsConversions_BatchPoolContext_PreservesEphemeralOSDiskSemantics() + { + // This test ensures that ephemeral OS disk placement semantics are correctly preserved in Batch pool context + + // Arrange - CacheDisk placement optimizes for high IOPS ephemeral OS disk workloads + var mgmtCacheDiskSettings = new DiffDiskSettings(DiffDiskPlacement.CacheDisk); + + // Act + var psCacheDiskSettings = PSDiffDiskSettings.FromMgmtDiffDiskSettings(mgmtCacheDiskSettings); + var backToMgmtCacheDisk = psCacheDiskSettings.ToMgmtEphemeralOSDiskSettings(); + + // Assert - CacheDisk placement semantics preserved for ephemeral OS disk scenarios + Assert.Equal(Azure.Batch.Common.DiffDiskPlacement.CacheDisk, psCacheDiskSettings.Placement); + Assert.Equal(DiffDiskPlacement.CacheDisk, backToMgmtCacheDisk.Placement); + // Ephemeral OS disk placement ensures optimal performance for Batch pool nodes + } + + #endregion + + #region Constructor and Internal Object Tests + + [Fact] + public void PSDiffDiskSettings_Constructor_InitializesCorrectly() + { + // Test that the PS constructor properly initializes + + // Arrange & Act + var cacheSettings = new PSDiffDiskSettings + { + Placement = Azure.Batch.Common.DiffDiskPlacement.CacheDisk + }; + var nullSettings = new PSDiffDiskSettings + { + Placement = null + }; + + // Assert + Assert.Equal(Azure.Batch.Common.DiffDiskPlacement.CacheDisk, cacheSettings.Placement); + Assert.Null(nullSettings.Placement); + } + + [Fact] + public void DiffDiskSettings_Constructor_WorksWithParameters() + { + // Test that the Management constructor works with placement parameter + + // Arrange & Act + var cacheSettings = new DiffDiskSettings(DiffDiskPlacement.CacheDisk); + var nullSettings = new DiffDiskSettings(null); + var defaultSettings = new DiffDiskSettings(); + + // Assert + Assert.Equal(DiffDiskPlacement.CacheDisk, cacheSettings.Placement); + Assert.Null(nullSettings.Placement); + Assert.Null(defaultSettings.Placement); + } + + #endregion + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Test/Models/PSInboundNatPoolTests.cs b/src/Batch/Batch.Test/Models/PSInboundNatPoolTests.cs new file mode 100644 index 000000000000..e170745a0a20 --- /dev/null +++ b/src/Batch/Batch.Test/Models/PSInboundNatPoolTests.cs @@ -0,0 +1,949 @@ +// ----------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ----------------------------------------------------------------------------- + +using Microsoft.Azure.Commands.Batch.Models; +using Microsoft.Azure.Management.Batch.Models; +using System; +using System.Collections.Generic; +using System.Linq; +using Xunit; + +namespace Microsoft.Azure.Commands.Batch.Test.ModelsConversions +{ + public class PSInboundNatPoolTests + { + #region FromMgmtInboundNatPool Tests + + [Fact] + public void FromMgmtInboundNatPool_WithAllProperties_ReturnsCorrectMapping() + { + // Arrange + var networkSecurityGroupRules = new List + { + new NetworkSecurityGroupRule( + priority: 100, + access: NetworkSecurityGroupRuleAccess.Allow, + sourceAddressPrefix: "10.0.0.0/24", + sourcePortRanges: new List { "80", "443" }), + new NetworkSecurityGroupRule( + priority: 200, + access: NetworkSecurityGroupRuleAccess.Deny, + sourceAddressPrefix: "*", + sourcePortRanges: new List { "*" }) + }; + + var mgmtInboundNatPool = new InboundNatPool( + name: "test-nat-pool", + protocol: InboundEndpointProtocol.TCP, + backendPort: 22, + frontendPortRangeStart: 50000, + frontendPortRangeEnd: 50100, + networkSecurityGroupRules: networkSecurityGroupRules); + + // Act + var result = PSInboundNatPool.FromMgmtInboundNatPool(mgmtInboundNatPool); + + // Assert + Assert.NotNull(result); + Assert.Equal("test-nat-pool", result.Name); + Assert.Equal(Microsoft.Azure.Batch.Common.InboundEndpointProtocol.Tcp, result.Protocol); + Assert.Equal(22, result.BackendPort); + Assert.Equal(50000, result.FrontendPortRangeStart); + Assert.Equal(50100, result.FrontendPortRangeEnd); + Assert.NotNull(result.NetworkSecurityGroupRules); + Assert.Equal(2, result.NetworkSecurityGroupRules.Count); + + var rule1 = result.NetworkSecurityGroupRules.First(); + Assert.Equal(100, rule1.Priority); + Assert.Equal(Microsoft.Azure.Batch.Common.NetworkSecurityGroupRuleAccess.Allow, rule1.Access); + Assert.Equal("10.0.0.0/24", rule1.SourceAddressPrefix); + } + + [Fact] + public void FromMgmtInboundNatPool_WithUDPProtocol_ReturnsCorrectMapping() + { + // Arrange + var mgmtInboundNatPool = new InboundNatPool( + name: "udp-nat-pool", + protocol: InboundEndpointProtocol.UDP, + backendPort: 53, + frontendPortRangeStart: 60000, + frontendPortRangeEnd: 60100); + + // Act + var result = PSInboundNatPool.FromMgmtInboundNatPool(mgmtInboundNatPool); + + // Assert + Assert.NotNull(result); + Assert.Equal("udp-nat-pool", result.Name); + Assert.Equal(Microsoft.Azure.Batch.Common.InboundEndpointProtocol.Udp, result.Protocol); + Assert.Equal(53, result.BackendPort); + Assert.Equal(60000, result.FrontendPortRangeStart); + Assert.Equal(60100, result.FrontendPortRangeEnd); + Assert.True(result.NetworkSecurityGroupRules == null || result.NetworkSecurityGroupRules.Count == 0); + } + + [Fact] + public void FromMgmtInboundNatPool_WithMinimalProperties_ReturnsCorrectMapping() + { + // Arrange + var mgmtInboundNatPool = new InboundNatPool( + name: "minimal-nat-pool", + protocol: InboundEndpointProtocol.TCP, + backendPort: 3389, + frontendPortRangeStart: 55000, + frontendPortRangeEnd: 55999); + + // Act + var result = PSInboundNatPool.FromMgmtInboundNatPool(mgmtInboundNatPool); + + // Assert + Assert.NotNull(result); + Assert.Equal("minimal-nat-pool", result.Name); + Assert.Equal(Microsoft.Azure.Batch.Common.InboundEndpointProtocol.Tcp, result.Protocol); + Assert.Equal(3389, result.BackendPort); + Assert.Equal(55000, result.FrontendPortRangeStart); + Assert.Equal(55999, result.FrontendPortRangeEnd); + Assert.True(result.NetworkSecurityGroupRules == null || result.NetworkSecurityGroupRules.Count == 0); + } + + [Fact] + public void FromMgmtInboundNatPool_WithNullInput_ReturnsNull() + { + // Act + var result = PSInboundNatPool.FromMgmtInboundNatPool(null); + + // Assert + Assert.Null(result); + } + + [Fact] + public void FromMgmtInboundNatPool_WithEmptyNetworkSecurityGroupRules_HandlesCorrectly() + { + // Arrange + var mgmtInboundNatPool = new InboundNatPool( + name: "empty-rules-pool", + protocol: InboundEndpointProtocol.TCP, + backendPort: 80, + frontendPortRangeStart: 45000, + frontendPortRangeEnd: 45100, + networkSecurityGroupRules: new List()); + + // Act + var result = PSInboundNatPool.FromMgmtInboundNatPool(mgmtInboundNatPool); + + // Assert + Assert.NotNull(result); + Assert.Equal("empty-rules-pool", result.Name); + Assert.NotNull(result.NetworkSecurityGroupRules); + Assert.Empty(result.NetworkSecurityGroupRules); + } + + [Fact] + public void FromMgmtInboundNatPool_VerifyPSInboundNatPoolType() + { + // Arrange + var mgmtInboundNatPool = new InboundNatPool( + name: "type-test-pool", + protocol: InboundEndpointProtocol.TCP, + backendPort: 443, + frontendPortRangeStart: 40000, + frontendPortRangeEnd: 40100); + + // Act + var result = PSInboundNatPool.FromMgmtInboundNatPool(mgmtInboundNatPool); + + // Assert + Assert.NotNull(result); + Assert.IsType(result); + } + + [Theory] + [InlineData(InboundEndpointProtocol.TCP, Microsoft.Azure.Batch.Common.InboundEndpointProtocol.Tcp)] + [InlineData(InboundEndpointProtocol.UDP, Microsoft.Azure.Batch.Common.InboundEndpointProtocol.Udp)] + public void FromMgmtInboundNatPool_AllProtocolTypes_ReturnsCorrectMapping( + InboundEndpointProtocol mgmtProtocol, + Microsoft.Azure.Batch.Common.InboundEndpointProtocol expectedPsProtocol) + { + // Arrange + var mgmtInboundNatPool = new InboundNatPool( + name: "protocol-test-pool", + protocol: mgmtProtocol, + backendPort: 8080, + frontendPortRangeStart: 35000, + frontendPortRangeEnd: 35100); + + // Act + var result = PSInboundNatPool.FromMgmtInboundNatPool(mgmtInboundNatPool); + + // Assert + Assert.NotNull(result); + Assert.Equal(expectedPsProtocol, result.Protocol); + } + + [Fact] + public void FromMgmtInboundNatPool_WithComplexNetworkSecurityGroupRules_HandlesCorrectly() + { + // Arrange + var complexNetworkRules = new List + { + new NetworkSecurityGroupRule( + priority: 150, + access: NetworkSecurityGroupRuleAccess.Allow, + sourceAddressPrefix: "192.168.1.0/24", + sourcePortRanges: new List { "22", "80", "443" }), + new NetworkSecurityGroupRule( + priority: 250, + access: NetworkSecurityGroupRuleAccess.Allow, + sourceAddressPrefix: "10.0.0.0/8", + sourcePortRanges: new List { "8080-8090" }), + new NetworkSecurityGroupRule( + priority: 4000, + access: NetworkSecurityGroupRuleAccess.Deny, + sourceAddressPrefix: "*", + sourcePortRanges: new List { "*" }) + }; + + var mgmtInboundNatPool = new InboundNatPool( + name: "complex-rules-pool", + protocol: InboundEndpointProtocol.TCP, + backendPort: 22, + frontendPortRangeStart: 30000, + frontendPortRangeEnd: 30100, + networkSecurityGroupRules: complexNetworkRules); + + // Act + var result = PSInboundNatPool.FromMgmtInboundNatPool(mgmtInboundNatPool); + + // Assert + Assert.NotNull(result); + Assert.NotNull(result.NetworkSecurityGroupRules); + Assert.Equal(3, result.NetworkSecurityGroupRules.Count); + + var allowRule = result.NetworkSecurityGroupRules.First(r => r.Priority == 150); + Assert.Equal(Microsoft.Azure.Batch.Common.NetworkSecurityGroupRuleAccess.Allow, allowRule.Access); + Assert.Equal("192.168.1.0/24", allowRule.SourceAddressPrefix); + Assert.Equal(3, allowRule.SourcePortRanges.Count); + + var denyRule = result.NetworkSecurityGroupRules.First(r => r.Priority == 4000); + Assert.Equal(Microsoft.Azure.Batch.Common.NetworkSecurityGroupRuleAccess.Deny, denyRule.Access); + Assert.Equal("*", denyRule.SourceAddressPrefix); + } + + #endregion + + #region toMgmtInboundNatPool Tests + + [Fact] + public void ToMgmtInboundNatPool_WithAllProperties_ReturnsCorrectMapping() + { + // Arrange + var networkSecurityGroupRules = new List + { + new Microsoft.Azure.Batch.NetworkSecurityGroupRule( + priority: 100, + access: Microsoft.Azure.Batch.Common.NetworkSecurityGroupRuleAccess.Allow, + sourceAddressPrefix: "10.0.0.0/24", + sourcePortRanges: new List { "80", "443" }), + new Microsoft.Azure.Batch.NetworkSecurityGroupRule( + priority: 200, + access: Microsoft.Azure.Batch.Common.NetworkSecurityGroupRuleAccess.Deny, + sourceAddressPrefix: "*", + sourcePortRanges: new List { "*" }) + }; + + var psInboundNatPool = new PSInboundNatPool( + name: "test-nat-pool", + protocol: Microsoft.Azure.Batch.Common.InboundEndpointProtocol.Tcp, + backendPort: 22, + frontendPortRangeStart: 50000, + frontendPortRangeEnd: 50100, + networkSecurityGroupRules: networkSecurityGroupRules); + + // Act + var result = psInboundNatPool.toMgmtInboundNatPool(); + + // Assert + Assert.NotNull(result); + Assert.Equal("test-nat-pool", result.Name); + Assert.Equal(InboundEndpointProtocol.TCP, result.Protocol); + Assert.Equal(22, result.BackendPort); + Assert.Equal(50000, result.FrontendPortRangeStart); + Assert.Equal(50100, result.FrontendPortRangeEnd); + Assert.NotNull(result.NetworkSecurityGroupRules); + Assert.Equal(2, result.NetworkSecurityGroupRules.Count); + + var rule1 = result.NetworkSecurityGroupRules.First(); + Assert.Equal(100, rule1.Priority); + Assert.Equal(NetworkSecurityGroupRuleAccess.Allow, rule1.Access); + Assert.Equal("10.0.0.0/24", rule1.SourceAddressPrefix); + } + + [Fact] + public void ToMgmtInboundNatPool_WithUDPProtocol_ReturnsCorrectMapping() + { + // Arrange + var psInboundNatPool = new PSInboundNatPool( + name: "udp-nat-pool", + protocol: Microsoft.Azure.Batch.Common.InboundEndpointProtocol.Udp, + backendPort: 53, + frontendPortRangeStart: 60000, + frontendPortRangeEnd: 60100); + + // Act + var result = psInboundNatPool.toMgmtInboundNatPool(); + + // Assert + Assert.NotNull(result); + Assert.Equal("udp-nat-pool", result.Name); + Assert.Equal(InboundEndpointProtocol.UDP, result.Protocol); + Assert.Equal(53, result.BackendPort); + Assert.Equal(60000, result.FrontendPortRangeStart); + Assert.Equal(60100, result.FrontendPortRangeEnd); + Assert.True(result.NetworkSecurityGroupRules == null || result.NetworkSecurityGroupRules.Count == 0); + } + + [Fact] + public void ToMgmtInboundNatPool_WithMinimalProperties_ReturnsCorrectMapping() + { + // Arrange + var psInboundNatPool = new PSInboundNatPool( + name: "minimal-nat-pool", + protocol: Microsoft.Azure.Batch.Common.InboundEndpointProtocol.Tcp, + backendPort: 3389, + frontendPortRangeStart: 55000, + frontendPortRangeEnd: 55999); + + // Act + var result = psInboundNatPool.toMgmtInboundNatPool(); + + // Assert + Assert.NotNull(result); + Assert.Equal("minimal-nat-pool", result.Name); + Assert.Equal(InboundEndpointProtocol.TCP, result.Protocol); + Assert.Equal(3389, result.BackendPort); + Assert.Equal(55000, result.FrontendPortRangeStart); + Assert.Equal(55999, result.FrontendPortRangeEnd); + Assert.True(result.NetworkSecurityGroupRules == null || result.NetworkSecurityGroupRules.Count == 0); + } + + [Fact] + public void ToMgmtInboundNatPool_VerifyInboundNatPoolType() + { + // Arrange + var psInboundNatPool = new PSInboundNatPool( + name: "type-test-pool", + protocol: Microsoft.Azure.Batch.Common.InboundEndpointProtocol.Tcp, + backendPort: 443, + frontendPortRangeStart: 40000, + frontendPortRangeEnd: 40100); + + // Act + var result = psInboundNatPool.toMgmtInboundNatPool(); + + // Assert + Assert.NotNull(result); + Assert.IsType(result); + } + + [Theory] + [InlineData(Microsoft.Azure.Batch.Common.InboundEndpointProtocol.Tcp, InboundEndpointProtocol.TCP)] + [InlineData(Microsoft.Azure.Batch.Common.InboundEndpointProtocol.Udp, InboundEndpointProtocol.UDP)] + public void ToMgmtInboundNatPool_AllProtocolTypes_ReturnsCorrectMapping( + Microsoft.Azure.Batch.Common.InboundEndpointProtocol psProtocol, + InboundEndpointProtocol expectedMgmtProtocol) + { + // Arrange + var psInboundNatPool = new PSInboundNatPool( + name: "protocol-test-pool", + protocol: psProtocol, + backendPort: 8080, + frontendPortRangeStart: 35000, + frontendPortRangeEnd: 35100); + + // Act + var result = psInboundNatPool.toMgmtInboundNatPool(); + + // Assert + Assert.NotNull(result); + Assert.Equal(expectedMgmtProtocol, result.Protocol); + } + + [Fact] + public void ToMgmtInboundNatPool_WithComplexNetworkSecurityGroupRules_HandlesCorrectly() + { + // Arrange + var complexNetworkRules = new List + { + new Microsoft.Azure.Batch.NetworkSecurityGroupRule( + priority: 150, + access: Microsoft.Azure.Batch.Common.NetworkSecurityGroupRuleAccess.Allow, + sourceAddressPrefix: "192.168.1.0/24", + sourcePortRanges: new List { "22", "80", "443" }), + new Microsoft.Azure.Batch.NetworkSecurityGroupRule( + priority: 250, + access: Microsoft.Azure.Batch.Common.NetworkSecurityGroupRuleAccess.Allow, + sourceAddressPrefix: "10.0.0.0/8", + sourcePortRanges: new List { "8080-8090" }), + new Microsoft.Azure.Batch.NetworkSecurityGroupRule( + priority: 4000, + access: Microsoft.Azure.Batch.Common.NetworkSecurityGroupRuleAccess.Deny, + sourceAddressPrefix: "*", + sourcePortRanges: new List { "*" }) + }; + + var psInboundNatPool = new PSInboundNatPool( + name: "complex-rules-pool", + protocol: Microsoft.Azure.Batch.Common.InboundEndpointProtocol.Tcp, + backendPort: 22, + frontendPortRangeStart: 30000, + frontendPortRangeEnd: 30100, + networkSecurityGroupRules: complexNetworkRules); + + // Act + var result = psInboundNatPool.toMgmtInboundNatPool(); + + // Assert + Assert.NotNull(result); + Assert.NotNull(result.NetworkSecurityGroupRules); + Assert.Equal(3, result.NetworkSecurityGroupRules.Count); + + var allowRule = result.NetworkSecurityGroupRules.First(r => r.Priority == 150); + Assert.Equal(NetworkSecurityGroupRuleAccess.Allow, allowRule.Access); + Assert.Equal("192.168.1.0/24", allowRule.SourceAddressPrefix); + Assert.Equal(3, allowRule.SourcePortRanges.Count); + + var denyRule = result.NetworkSecurityGroupRules.First(r => r.Priority == 4000); + Assert.Equal(NetworkSecurityGroupRuleAccess.Deny, denyRule.Access); + Assert.Equal("*", denyRule.SourceAddressPrefix); + } + + [Fact] + public void ToMgmtInboundNatPool_AlwaysCreatesNewInstance() + { + // Arrange + var psInboundNatPool = new PSInboundNatPool( + name: "instance-test-pool", + protocol: Microsoft.Azure.Batch.Common.InboundEndpointProtocol.Tcp, + backendPort: 9000, + frontendPortRangeStart: 25000, + frontendPortRangeEnd: 25100); + + // Act + var result1 = psInboundNatPool.toMgmtInboundNatPool(); + var result2 = psInboundNatPool.toMgmtInboundNatPool(); + + // Assert + Assert.NotNull(result1); + Assert.NotNull(result2); + Assert.NotSame(result1, result2); + } + + #endregion + + #region Round-trip Conversion Tests + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesAllProperties() + { + // Arrange + var originalNetworkRules = new List + { + new Microsoft.Azure.Batch.NetworkSecurityGroupRule( + priority: 100, + access: Microsoft.Azure.Batch.Common.NetworkSecurityGroupRuleAccess.Allow, + sourceAddressPrefix: "10.0.0.0/24", + sourcePortRanges: new List { "80", "443" }), + new Microsoft.Azure.Batch.NetworkSecurityGroupRule( + priority: 200, + access: Microsoft.Azure.Batch.Common.NetworkSecurityGroupRuleAccess.Deny, + sourceAddressPrefix: "*", + sourcePortRanges: new List { "*" }) + }; + + var originalPsInboundNatPool = new PSInboundNatPool( + name: "round-trip-pool", + protocol: Microsoft.Azure.Batch.Common.InboundEndpointProtocol.Tcp, + backendPort: 22, + frontendPortRangeStart: 50000, + frontendPortRangeEnd: 50100, + networkSecurityGroupRules: originalNetworkRules); + + // Act + var mgmtInboundNatPool = originalPsInboundNatPool.toMgmtInboundNatPool(); + var roundTripPsInboundNatPool = PSInboundNatPool.FromMgmtInboundNatPool(mgmtInboundNatPool); + + // Assert + Assert.NotNull(roundTripPsInboundNatPool); + Assert.Equal(originalPsInboundNatPool.Name, roundTripPsInboundNatPool.Name); + Assert.Equal(originalPsInboundNatPool.Protocol, roundTripPsInboundNatPool.Protocol); + Assert.Equal(originalPsInboundNatPool.BackendPort, roundTripPsInboundNatPool.BackendPort); + Assert.Equal(originalPsInboundNatPool.FrontendPortRangeStart, roundTripPsInboundNatPool.FrontendPortRangeStart); + Assert.Equal(originalPsInboundNatPool.FrontendPortRangeEnd, roundTripPsInboundNatPool.FrontendPortRangeEnd); + Assert.Equal(originalPsInboundNatPool.NetworkSecurityGroupRules?.Count, roundTripPsInboundNatPool.NetworkSecurityGroupRules?.Count); + } + + [Fact] + public void RoundTripConversion_FromMgmtAndToMgmt_PreservesAllProperties() + { + // Arrange + var originalNetworkRules = new List + { + new NetworkSecurityGroupRule( + priority: 150, + access: NetworkSecurityGroupRuleAccess.Allow, + sourceAddressPrefix: "192.168.1.0/24", + sourcePortRanges: new List { "22", "3389" }), + new NetworkSecurityGroupRule( + priority: 300, + access: NetworkSecurityGroupRuleAccess.Deny, + sourceAddressPrefix: "0.0.0.0/0", + sourcePortRanges: new List { "23", "135" }) + }; + + var originalMgmtInboundNatPool = new InboundNatPool( + name: "mgmt-round-trip-pool", + protocol: InboundEndpointProtocol.UDP, + backendPort: 53, + frontendPortRangeStart: 60000, + frontendPortRangeEnd: 60100, + networkSecurityGroupRules: originalNetworkRules); + + // Act + var psInboundNatPool = new PSInboundNatPool(PSInboundNatPool.FromMgmtInboundNatPool(originalMgmtInboundNatPool)); + var roundTripMgmtInboundNatPool = psInboundNatPool.toMgmtInboundNatPool(); + + // Assert + Assert.NotNull(roundTripMgmtInboundNatPool); + Assert.Equal(originalMgmtInboundNatPool.Name, roundTripMgmtInboundNatPool.Name); + Assert.Equal(originalMgmtInboundNatPool.Protocol, roundTripMgmtInboundNatPool.Protocol); + Assert.Equal(originalMgmtInboundNatPool.BackendPort, roundTripMgmtInboundNatPool.BackendPort); + Assert.Equal(originalMgmtInboundNatPool.FrontendPortRangeStart, roundTripMgmtInboundNatPool.FrontendPortRangeStart); + Assert.Equal(originalMgmtInboundNatPool.FrontendPortRangeEnd, roundTripMgmtInboundNatPool.FrontendPortRangeEnd); + Assert.Equal(originalMgmtInboundNatPool.NetworkSecurityGroupRules?.Count, roundTripMgmtInboundNatPool.NetworkSecurityGroupRules?.Count); + } + + [Theory] + [InlineData(Microsoft.Azure.Batch.Common.InboundEndpointProtocol.Tcp)] + [InlineData(Microsoft.Azure.Batch.Common.InboundEndpointProtocol.Udp)] + public void RoundTripConversion_AllProtocolTypes_PreservesOriginalValues( + Microsoft.Azure.Batch.Common.InboundEndpointProtocol originalProtocol) + { + // Arrange + var originalPsInboundNatPool = new PSInboundNatPool( + name: "protocol-round-trip-pool", + protocol: originalProtocol, + backendPort: 8080, + frontendPortRangeStart: 45000, + frontendPortRangeEnd: 45100); + + // Act + var mgmtInboundNatPool = originalPsInboundNatPool.toMgmtInboundNatPool(); + var roundTripPsInboundNatPool = PSInboundNatPool.FromMgmtInboundNatPool(mgmtInboundNatPool); + + // Assert + Assert.NotNull(roundTripPsInboundNatPool); + Assert.Equal(originalProtocol, roundTripPsInboundNatPool.Protocol); + } + + [Fact] + public void RoundTripConversion_WithNullNetworkSecurityGroupRules_PreservesNullValue() + { + // Arrange + var originalPsInboundNatPool = new PSInboundNatPool( + name: "null-rules-pool", + protocol: Microsoft.Azure.Batch.Common.InboundEndpointProtocol.Tcp, + backendPort: 80, + frontendPortRangeStart: 40000, + frontendPortRangeEnd: 40100); + + // Act + var mgmtInboundNatPool = originalPsInboundNatPool.toMgmtInboundNatPool(); + var roundTripPsInboundNatPool = PSInboundNatPool.FromMgmtInboundNatPool(mgmtInboundNatPool); + + // Assert + Assert.NotNull(roundTripPsInboundNatPool); + Assert.True(roundTripPsInboundNatPool.NetworkSecurityGroupRules == null || + roundTripPsInboundNatPool.NetworkSecurityGroupRules.Count == 0); + } + + #endregion + + #region Integration Tests + + [Fact] + public void InboundNatPoolConversions_BothDirections_MaintainSemanticEquivalence() + { + // This test ensures that the semantic meaning is preserved across conversions + + // Test SSH NAT pool with security rules + var sshNetworkRules = new List + { + new Microsoft.Azure.Batch.NetworkSecurityGroupRule( + priority: 100, + access: Microsoft.Azure.Batch.Common.NetworkSecurityGroupRuleAccess.Allow, + sourceAddressPrefix: "203.0.113.0/24", + sourcePortRanges: new List { "22" }) + }; + + var sshPsPool = new PSInboundNatPool( + name: "ssh-nat-pool", + protocol: Microsoft.Azure.Batch.Common.InboundEndpointProtocol.Tcp, + backendPort: 22, + frontendPortRangeStart: 50000, + frontendPortRangeEnd: 50100, + networkSecurityGroupRules: sshNetworkRules); + + var sshMgmtPool = sshPsPool.toMgmtInboundNatPool(); + var backToPs = PSInboundNatPool.FromMgmtInboundNatPool(sshMgmtPool); + + Assert.Equal(InboundEndpointProtocol.TCP, sshMgmtPool.Protocol); + Assert.Equal(Microsoft.Azure.Batch.Common.InboundEndpointProtocol.Tcp, backToPs.Protocol); + Assert.Equal(22, sshMgmtPool.BackendPort); + Assert.Equal(22, backToPs.BackendPort); + Assert.Equal(sshPsPool.Name, backToPs.Name); + + // Test UDP NAT pool without security rules + var udpPsPool = new PSInboundNatPool( + name: "udp-nat-pool", + protocol: Microsoft.Azure.Batch.Common.InboundEndpointProtocol.Udp, + backendPort: 53, + frontendPortRangeStart: 60000, + frontendPortRangeEnd: 60100); + + var udpMgmtPool = udpPsPool.toMgmtInboundNatPool(); + var backToPsUdp = PSInboundNatPool.FromMgmtInboundNatPool(udpMgmtPool); + + Assert.Equal(InboundEndpointProtocol.UDP, udpMgmtPool.Protocol); + Assert.Equal(Microsoft.Azure.Batch.Common.InboundEndpointProtocol.Udp, backToPsUdp.Protocol); + Assert.Equal(53, udpMgmtPool.BackendPort); + Assert.Equal(53, backToPsUdp.BackendPort); + } + + [Fact] + public void InboundNatPoolConversions_NullHandling_WorksCorrectly() + { + // Test null handling in conversions + + // Act + var resultFromNull = PSInboundNatPool.FromMgmtInboundNatPool(null); + + // Assert + Assert.Null(resultFromNull); + } + + [Fact] + public void InboundNatPoolConversions_BatchPoolEndpointContext_VerifyCorrectUsage() + { + // This test validates the conversions work correctly in the context of Batch pool endpoint configuration + // InboundNatPool is used to configure network endpoints for Azure Batch pool compute nodes + + // Arrange - Test with realistic Batch pool endpoint scenarios + var poolEndpointScenarios = new[] + { + // SSH access for Linux compute nodes + new { + Name = "ssh-access", + Protocol = Microsoft.Azure.Batch.Common.InboundEndpointProtocol.Tcp, + BackendPort = 22, + FrontendPortRangeStart = 50000, + FrontendPortRangeEnd = 50100, + Description = "SSH access to Linux compute nodes" + }, + // RDP access for Windows compute nodes + new { + Name = "rdp-access", + Protocol = Microsoft.Azure.Batch.Common.InboundEndpointProtocol.Tcp, + BackendPort = 3389, + FrontendPortRangeStart = 51000, + FrontendPortRangeEnd = 51100, + Description = "RDP access to Windows compute nodes" + }, + // Custom application port + new { + Name = "custom-app", + Protocol = Microsoft.Azure.Batch.Common.InboundEndpointProtocol.Tcp, + BackendPort = 8080, + FrontendPortRangeStart = 52000, + FrontendPortRangeEnd = 52100, + Description = "Custom application endpoint" + }, + // UDP service endpoint + new { + Name = "udp-service", + Protocol = Microsoft.Azure.Batch.Common.InboundEndpointProtocol.Udp, + BackendPort = 53, + FrontendPortRangeStart = 53000, + FrontendPortRangeEnd = 53100, + Description = "UDP service endpoint" + } + }; + + foreach (var scenario in poolEndpointScenarios) + { + // Act + var psInboundNatPool = new PSInboundNatPool( + name: scenario.Name, + protocol: scenario.Protocol, + backendPort: scenario.BackendPort, + frontendPortRangeStart: scenario.FrontendPortRangeStart, + frontendPortRangeEnd: scenario.FrontendPortRangeEnd); + + var mgmtInboundNatPool = psInboundNatPool.toMgmtInboundNatPool(); + + // Assert - Should convert correctly for Batch pool endpoint configuration + Assert.NotNull(mgmtInboundNatPool); + Assert.Equal(scenario.Name, mgmtInboundNatPool.Name); + Assert.Equal(scenario.BackendPort, mgmtInboundNatPool.BackendPort); + Assert.Equal(scenario.FrontendPortRangeStart, mgmtInboundNatPool.FrontendPortRangeStart); + Assert.Equal(scenario.FrontendPortRangeEnd, mgmtInboundNatPool.FrontendPortRangeEnd); + + var expectedMgmtProtocol = scenario.Protocol == Microsoft.Azure.Batch.Common.InboundEndpointProtocol.Tcp + ? InboundEndpointProtocol.TCP + : InboundEndpointProtocol.UDP; + Assert.Equal(expectedMgmtProtocol, mgmtInboundNatPool.Protocol); + + // Verify round-trip conversion maintains pool endpoint semantics + var backToPs = PSInboundNatPool.FromMgmtInboundNatPool(mgmtInboundNatPool); + Assert.NotNull(backToPs); + Assert.Equal(scenario.Name, backToPs.Name); + Assert.Equal(scenario.Protocol, backToPs.Protocol); + Assert.Equal(scenario.BackendPort, backToPs.BackendPort); + Assert.Equal(scenario.FrontendPortRangeStart, backToPs.FrontendPortRangeStart); + Assert.Equal(scenario.FrontendPortRangeEnd, backToPs.FrontendPortRangeEnd); + } + } + + [Fact] + public void InboundNatPoolConversions_InstanceCreation_VerifyBehavior() + { + // This test verifies that the conversion methods create appropriate instances + + // Arrange + var psNetworkRules = new List + { + new Microsoft.Azure.Batch.NetworkSecurityGroupRule( + priority: 100, + access: Microsoft.Azure.Batch.Common.NetworkSecurityGroupRuleAccess.Allow, + sourceAddressPrefix: "10.0.0.0/8", + sourcePortRanges: new List { "80", "443" }) + }; + + var psInboundNatPool = new PSInboundNatPool( + name: "instance-test-pool", + protocol: Microsoft.Azure.Batch.Common.InboundEndpointProtocol.Tcp, + backendPort: 80, + frontendPortRangeStart: 45000, + frontendPortRangeEnd: 45100, + networkSecurityGroupRules: psNetworkRules); + + var mgmtNetworkRules = new List + { + new NetworkSecurityGroupRule( + priority: 200, + access: NetworkSecurityGroupRuleAccess.Deny, + sourceAddressPrefix: "0.0.0.0/0", + sourcePortRanges: new List { "*" }) + }; + + var mgmtInboundNatPool = new InboundNatPool( + name: "mgmt-instance-test-pool", + protocol: InboundEndpointProtocol.UDP, + backendPort: 53, + frontendPortRangeStart: 46000, + frontendPortRangeEnd: 46100, + networkSecurityGroupRules: mgmtNetworkRules); + + // Act + var mgmtResult = psInboundNatPool.toMgmtInboundNatPool(); + var psResult = PSInboundNatPool.FromMgmtInboundNatPool(mgmtInboundNatPool); + + // Assert - Verify proper instance creation + Assert.NotNull(mgmtResult); + Assert.NotNull(psResult); + Assert.IsType(mgmtResult); + Assert.IsType(psResult); + + // Verify new instances are created + Assert.NotSame(mgmtInboundNatPool, mgmtResult); + Assert.NotSame(psInboundNatPool, psResult); + } + + #endregion + + #region Edge Case Tests + + [Fact] + public void InboundNatPoolConversions_TypeSafety_VerifyCorrectTypes() + { + // Test that conversions return the correct types + + // Arrange + var psInboundNatPool = new PSInboundNatPool( + name: "type-safety-pool", + protocol: Microsoft.Azure.Batch.Common.InboundEndpointProtocol.Tcp, + backendPort: 443, + frontendPortRangeStart: 48000, + frontendPortRangeEnd: 48100); + + var mgmtInboundNatPool = new InboundNatPool( + name: "mgmt-type-safety-pool", + protocol: InboundEndpointProtocol.UDP, + backendPort: 123, + frontendPortRangeStart: 49000, + frontendPortRangeEnd: 49100); + + // Act + var mgmtResult = psInboundNatPool.toMgmtInboundNatPool(); + var psResult = PSInboundNatPool.FromMgmtInboundNatPool(mgmtInboundNatPool); + + // Assert - Verify correct types are returned + Assert.IsType(mgmtResult); + Assert.IsType(psResult); + } + + [Fact] + public void InboundNatPoolConversions_PortRangeValues_HandleValidRange() + { + // Test that port range values within valid range are handled correctly + + var validPortRanges = new[] + { + new { Backend = 22, FrontendStart = 50000, FrontendEnd = 50100 }, + new { Backend = 80, FrontendStart = 51000, FrontendEnd = 51200 }, + new { Backend = 443, FrontendStart = 52000, FrontendEnd = 52500 }, + new { Backend = 3389, FrontendStart = 53000, FrontendEnd = 53100 }, + new { Backend = 8080, FrontendStart = 54000, FrontendEnd = 54999 } + }; + + foreach (var portRange in validPortRanges) + { + // Arrange + var psInboundNatPool = new PSInboundNatPool( + name: $"port-test-{portRange.Backend}", + protocol: Microsoft.Azure.Batch.Common.InboundEndpointProtocol.Tcp, + backendPort: portRange.Backend, + frontendPortRangeStart: portRange.FrontendStart, + frontendPortRangeEnd: portRange.FrontendEnd); + + // Act + var mgmtInboundNatPool = psInboundNatPool.toMgmtInboundNatPool(); + var roundTripPsInboundNatPool = PSInboundNatPool.FromMgmtInboundNatPool(mgmtInboundNatPool); + + // Assert + Assert.Equal(portRange.Backend, mgmtInboundNatPool.BackendPort); + Assert.Equal(portRange.FrontendStart, mgmtInboundNatPool.FrontendPortRangeStart); + Assert.Equal(portRange.FrontendEnd, mgmtInboundNatPool.FrontendPortRangeEnd); + Assert.Equal(portRange.Backend, roundTripPsInboundNatPool.BackendPort); + Assert.Equal(portRange.FrontendStart, roundTripPsInboundNatPool.FrontendPortRangeStart); + Assert.Equal(portRange.FrontendEnd, roundTripPsInboundNatPool.FrontendPortRangeEnd); + } + } + + [Fact] + public void InboundNatPoolConversions_NameValues_HandleVariousFormats() + { + // Test that various name formats are handled correctly + + var nameFormats = new[] + { + "simple-name", + "Name_With_Underscores", + "Name.With.Periods", + "NameWithNumbers123", + "123StartingWithNumber", + "a", // Single character + "VeryLongNameThatIsStillValidAccordingToTheSpecification" + }; + + foreach (var name in nameFormats) + { + // Arrange + var psInboundNatPool = new PSInboundNatPool( + name: name, + protocol: Microsoft.Azure.Batch.Common.InboundEndpointProtocol.Tcp, + backendPort: 80, + frontendPortRangeStart: 50000, + frontendPortRangeEnd: 50100); + + // Act + var mgmtInboundNatPool = psInboundNatPool.toMgmtInboundNatPool(); + var roundTripPsInboundNatPool = PSInboundNatPool.FromMgmtInboundNatPool(mgmtInboundNatPool); + + // Assert + Assert.Equal(name, mgmtInboundNatPool.Name); + Assert.Equal(name, roundTripPsInboundNatPool.Name); + } + } + + #endregion + + #region Performance Tests + + [Fact] + public void InboundNatPoolConversions_PerformanceTest_ExecutesQuickly() + { + // This test ensures the conversions are efficient + + // Arrange + var networkRules = new List + { + new Microsoft.Azure.Batch.NetworkSecurityGroupRule( + priority: 100, + access: Microsoft.Azure.Batch.Common.NetworkSecurityGroupRuleAccess.Allow, + sourceAddressPrefix: "10.0.0.0/8", + sourcePortRanges: new List { "80", "443" }) + }; + + var psInboundNatPool = new PSInboundNatPool( + name: "performance-test-pool", + protocol: Microsoft.Azure.Batch.Common.InboundEndpointProtocol.Tcp, + backendPort: 22, + frontendPortRangeStart: 50000, + frontendPortRangeEnd: 50100, + networkSecurityGroupRules: networkRules); + + var mgmtNetworkRules = new List + { + new NetworkSecurityGroupRule( + priority: 200, + access: NetworkSecurityGroupRuleAccess.Deny, + sourceAddressPrefix: "*", + sourcePortRanges: new List { "*" }) + }; + + var mgmtInboundNatPool = new InboundNatPool( + name: "mgmt-performance-test-pool", + protocol: InboundEndpointProtocol.UDP, + backendPort: 53, + frontendPortRangeStart: 60000, + frontendPortRangeEnd: 60100, + networkSecurityGroupRules: mgmtNetworkRules); + + // Act & Assert - Multiple conversions should complete without delay + for (int i = 0; i < 100; i++) + { + var mgmtResult = psInboundNatPool.toMgmtInboundNatPool(); + var psResult = PSInboundNatPool.FromMgmtInboundNatPool(mgmtInboundNatPool); + + Assert.NotNull(mgmtResult); + Assert.NotNull(psResult); + Assert.Equal("performance-test-pool", mgmtResult.Name); + Assert.Equal("mgmt-performance-test-pool", psResult.Name); + } + } + + #endregion + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Test/Models/PSLinuxUserConfigurationTests.cs b/src/Batch/Batch.Test/Models/PSLinuxUserConfigurationTests.cs new file mode 100644 index 000000000000..9443a9fdbce1 --- /dev/null +++ b/src/Batch/Batch.Test/Models/PSLinuxUserConfigurationTests.cs @@ -0,0 +1,827 @@ +// ----------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ----------------------------------------------------------------------------- + +using Microsoft.Azure.Commands.Batch.Models; +using Microsoft.Azure.Management.Batch.Models; +using Microsoft.WindowsAzure.Commands.ScenarioTest; +using Xunit; + +namespace Microsoft.Azure.Commands.Batch.Test.ModelsConversions +{ + public class PSLinuxUserConfigurationTests + { + #region ToLinuxUserConfiguration Tests + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void ToLinuxUserConfiguration_WithAllProperties_ConvertsCorrectly() + { + // Arrange + var psConfig = new PSLinuxUserConfiguration( + uid: 1000, + gid: 1000, + sshPrivateKey: "-----BEGIN RSA PRIVATE KEY-----\nMIIEpAIBAAKCAQEA7yn3bRHQ...\n-----END RSA PRIVATE KEY-----"); + + // Act + var mgmtConfig = psConfig.ToLinuxUserConfiguration(); + + // Assert + Assert.NotNull(mgmtConfig); + Assert.Equal(1000, mgmtConfig.Uid); + Assert.Equal(1000, mgmtConfig.Gid); + Assert.Equal("-----BEGIN RSA PRIVATE KEY-----\nMIIEpAIBAAKCAQEA7yn3bRHQ...\n-----END RSA PRIVATE KEY-----", mgmtConfig.SshPrivateKey); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void ToLinuxUserConfiguration_WithOnlyUidAndGid_ConvertsCorrectly() + { + // Arrange + var psConfig = new PSLinuxUserConfiguration( + uid: 500, + gid: 500, + sshPrivateKey: null); + + // Act + var mgmtConfig = psConfig.ToLinuxUserConfiguration(); + + // Assert + Assert.NotNull(mgmtConfig); + Assert.Equal(500, mgmtConfig.Uid); + Assert.Equal(500, mgmtConfig.Gid); + Assert.Null(mgmtConfig.SshPrivateKey); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void ToLinuxUserConfiguration_WithOnlySshPrivateKey_ConvertsCorrectly() + { + // Arrange + var sshKey = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC7yn3bRHQ... user@example.com"; + var psConfig = new PSLinuxUserConfiguration( + uid: null, + gid: null, + sshPrivateKey: sshKey); + + // Act + var mgmtConfig = psConfig.ToLinuxUserConfiguration(); + + // Assert + Assert.NotNull(mgmtConfig); + Assert.Null(mgmtConfig.Uid); + Assert.Null(mgmtConfig.Gid); + Assert.Equal(sshKey, mgmtConfig.SshPrivateKey); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void ToLinuxUserConfiguration_WithNullProperties_ConvertsCorrectly() + { + // Arrange + var psConfig = new PSLinuxUserConfiguration( + uid: null, + gid: null, + sshPrivateKey: null); + + // Act + var mgmtConfig = psConfig.ToLinuxUserConfiguration(); + + // Assert + Assert.NotNull(mgmtConfig); + Assert.Null(mgmtConfig.Uid); + Assert.Null(mgmtConfig.Gid); + Assert.Null(mgmtConfig.SshPrivateKey); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void ToLinuxUserConfiguration_WithEmptyStringSshKey_ConvertsCorrectly() + { + // Arrange + var psConfig = new PSLinuxUserConfiguration( + uid: 1001, + gid: 1001, + sshPrivateKey: ""); + + // Act + var mgmtConfig = psConfig.ToLinuxUserConfiguration(); + + // Assert + Assert.NotNull(mgmtConfig); + Assert.Equal(1001, mgmtConfig.Uid); + Assert.Equal(1001, mgmtConfig.Gid); + Assert.Equal("", mgmtConfig.SshPrivateKey); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void ToLinuxUserConfiguration_AlwaysCreatesNewInstance() + { + // Arrange + var psConfig = new PSLinuxUserConfiguration( + uid: 1000, + gid: 1000, + sshPrivateKey: "test-key"); + + // Act + var mgmtConfig1 = psConfig.ToLinuxUserConfiguration(); + var mgmtConfig2 = psConfig.ToLinuxUserConfiguration(); + + // Assert + Assert.NotNull(mgmtConfig1); + Assert.NotNull(mgmtConfig2); + Assert.NotSame(mgmtConfig1, mgmtConfig2); + Assert.Equal(mgmtConfig1.Uid, mgmtConfig2.Uid); + Assert.Equal(mgmtConfig1.Gid, mgmtConfig2.Gid); + Assert.Equal(mgmtConfig1.SshPrivateKey, mgmtConfig2.SshPrivateKey); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void ToLinuxUserConfiguration_VerifyReturnType() + { + // Arrange + var psConfig = new PSLinuxUserConfiguration(uid: 1000, gid: 1000); + + // Act + var mgmtConfig = psConfig.ToLinuxUserConfiguration(); + + // Assert + Assert.NotNull(mgmtConfig); + Assert.IsType(mgmtConfig); + Assert.IsAssignableFrom(mgmtConfig); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void ToLinuxUserConfiguration_WithEdgeCaseValues_HandlesCorrectly() + { + // Arrange - Test with edge case UID/GID values + var testConfigurations = new[] + { + new { Uid = (int?)0, Gid = (int?)0, Description = "Root user (0:0)" }, + new { Uid = (int?)65534, Gid = (int?)65534, Description = "Nobody user (65534:65534)" }, + new { Uid = (int?)1, Gid = (int?)1, Description = "Daemon user (1:1)" }, + new { Uid = (int?)999, Gid = (int?)999, Description = "System user (999:999)" }, + new { Uid = (int?)2147483647, Gid = (int?)2147483647, Description = "Maximum int value" } + }; + + foreach (var testConfig in testConfigurations) + { + // Arrange + var psConfig = new PSLinuxUserConfiguration( + uid: testConfig.Uid, + gid: testConfig.Gid, + sshPrivateKey: $"test-key-for-{testConfig.Uid}"); + + // Act + var mgmtConfig = psConfig.ToLinuxUserConfiguration(); + + // Assert + Assert.NotNull(mgmtConfig); + Assert.Equal(testConfig.Uid, mgmtConfig.Uid); + Assert.Equal(testConfig.Gid, mgmtConfig.Gid); + Assert.Equal($"test-key-for-{testConfig.Uid}", mgmtConfig.SshPrivateKey); + } + } + + #endregion + + #region FromLinuxUserConfiguration Tests + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void FromLinuxUserConfiguration_WithNull_ReturnsNull() + { + // Act + var result = PSLinuxUserConfiguration.FromLinuxUserConfiguration(null); + + // Assert + Assert.Null(result); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void FromLinuxUserConfiguration_WithAllProperties_ConvertsCorrectly() + { + // Arrange + var sshKey = "-----BEGIN OPENSSH PRIVATE KEY-----\nb3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQ...\n-----END OPENSSH PRIVATE KEY-----"; + var mgmtConfig = new LinuxUserConfiguration( + uid: 1000, + gid: 1000, + sshPrivateKey: sshKey); + + // Act + var psConfig = PSLinuxUserConfiguration.FromLinuxUserConfiguration(mgmtConfig); + + // Assert + Assert.NotNull(psConfig); + Assert.Equal(1000, psConfig.Uid); + Assert.Equal(1000, psConfig.Gid); + Assert.Equal(sshKey, psConfig.SshPrivateKey); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void FromLinuxUserConfiguration_WithOnlyUidAndGid_ConvertsCorrectly() + { + // Arrange + var mgmtConfig = new LinuxUserConfiguration( + uid: 2000, + gid: 2000, + sshPrivateKey: null); + + // Act + var psConfig = PSLinuxUserConfiguration.FromLinuxUserConfiguration(mgmtConfig); + + // Assert + Assert.NotNull(psConfig); + Assert.Equal(2000, psConfig.Uid); + Assert.Equal(2000, psConfig.Gid); + Assert.Null(psConfig.SshPrivateKey); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void FromLinuxUserConfiguration_WithOnlySshPrivateKey_ConvertsCorrectly() + { + // Arrange + var sshKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIF... user@hostname"; + var mgmtConfig = new LinuxUserConfiguration( + uid: null, + gid: null, + sshPrivateKey: sshKey); + + // Act + var psConfig = PSLinuxUserConfiguration.FromLinuxUserConfiguration(mgmtConfig); + + // Assert + Assert.NotNull(psConfig); + Assert.Null(psConfig.Uid); + Assert.Null(psConfig.Gid); + Assert.Equal(sshKey, psConfig.SshPrivateKey); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void FromLinuxUserConfiguration_WithNullProperties_ConvertsCorrectly() + { + // Arrange + var mgmtConfig = new LinuxUserConfiguration( + uid: null, + gid: null, + sshPrivateKey: null); + + // Act + var psConfig = PSLinuxUserConfiguration.FromLinuxUserConfiguration(mgmtConfig); + + // Assert + Assert.NotNull(psConfig); + Assert.Null(psConfig.Uid); + Assert.Null(psConfig.Gid); + Assert.Null(psConfig.SshPrivateKey); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void FromLinuxUserConfiguration_WithEmptyStringSshKey_ConvertsCorrectly() + { + // Arrange + var mgmtConfig = new LinuxUserConfiguration( + uid: 3000, + gid: 3000, + sshPrivateKey: ""); + + // Act + var psConfig = PSLinuxUserConfiguration.FromLinuxUserConfiguration(mgmtConfig); + + // Assert + Assert.NotNull(psConfig); + Assert.Equal(3000, psConfig.Uid); + Assert.Equal(3000, psConfig.Gid); + Assert.Equal("", psConfig.SshPrivateKey); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void FromLinuxUserConfiguration_StaticMethod_DoesNotRequireInstance() + { + // Arrange + var mgmtConfig = new LinuxUserConfiguration( + uid: 1500, + gid: 1500, + sshPrivateKey: "test-key"); + + // Act - Call static method directly on class + var psConfig = PSLinuxUserConfiguration.FromLinuxUserConfiguration(mgmtConfig); + + // Assert + Assert.NotNull(psConfig); + Assert.Equal(1500, psConfig.Uid); + Assert.Equal(1500, psConfig.Gid); + Assert.Equal("test-key", psConfig.SshPrivateKey); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void FromLinuxUserConfiguration_AlwaysCreatesNewInstance() + { + // Arrange + var mgmtConfig = new LinuxUserConfiguration( + uid: 1000, + gid: 1000, + sshPrivateKey: "test-key"); + + // Act + var psConfig1 = PSLinuxUserConfiguration.FromLinuxUserConfiguration(mgmtConfig); + var psConfig2 = PSLinuxUserConfiguration.FromLinuxUserConfiguration(mgmtConfig); + + // Assert + Assert.NotNull(psConfig1); + Assert.NotNull(psConfig2); + Assert.NotSame(psConfig1, psConfig2); + Assert.Equal(psConfig1.Uid, psConfig2.Uid); + Assert.Equal(psConfig1.Gid, psConfig2.Gid); + Assert.Equal(psConfig1.SshPrivateKey, psConfig2.SshPrivateKey); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void FromLinuxUserConfiguration_VerifyReturnType() + { + // Arrange + var mgmtConfig = new LinuxUserConfiguration(uid: 1000, gid: 1000); + + // Act + var psConfig = PSLinuxUserConfiguration.FromLinuxUserConfiguration(mgmtConfig); + + // Assert + Assert.NotNull(psConfig); + Assert.IsType(psConfig); + Assert.IsAssignableFrom(psConfig); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void FromLinuxUserConfiguration_WithEdgeCaseValues_HandlesCorrectly() + { + // Arrange - Test with edge case UID/GID values + var testConfigurations = new[] + { + new { Uid = (int?)0, Gid = (int?)0, Description = "Root user (0:0)" }, + new { Uid = (int?)65534, Gid = (int?)65534, Description = "Nobody user (65534:65534)" }, + new { Uid = (int?)1, Gid = (int?)1, Description = "Daemon user (1:1)" }, + new { Uid = (int?)999, Gid = (int?)999, Description = "System user (999:999)" }, + new { Uid = (int?)2147483647, Gid = (int?)2147483647, Description = "Maximum int value" } + }; + + foreach (var testConfig in testConfigurations) + { + // Arrange + var mgmtConfig = new LinuxUserConfiguration( + uid: testConfig.Uid, + gid: testConfig.Gid, + sshPrivateKey: $"test-key-for-{testConfig.Uid}"); + + // Act + var psConfig = PSLinuxUserConfiguration.FromLinuxUserConfiguration(mgmtConfig); + + // Assert + Assert.NotNull(psConfig); + Assert.Equal(testConfig.Uid, psConfig.Uid); + Assert.Equal(testConfig.Gid, psConfig.Gid); + Assert.Equal($"test-key-for-{testConfig.Uid}", psConfig.SshPrivateKey); + } + } + + #endregion + + #region Round-trip Conversion Tests + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesAllProperties() + { + // Arrange + var originalPsConfig = new PSLinuxUserConfiguration( + uid: 1000, + gid: 1000, + sshPrivateKey: "-----BEGIN RSA PRIVATE KEY-----\nMIIEpAIBAAKCAQEA7yn3bRHQ...\n-----END RSA PRIVATE KEY-----"); + + // Act + var mgmtConfig = originalPsConfig.ToLinuxUserConfiguration(); + var roundTripPsConfig = PSLinuxUserConfiguration.FromLinuxUserConfiguration(mgmtConfig); + + // Assert + Assert.NotNull(roundTripPsConfig); + Assert.Equal(originalPsConfig.Uid, roundTripPsConfig.Uid); + Assert.Equal(originalPsConfig.Gid, roundTripPsConfig.Gid); + Assert.Equal(originalPsConfig.SshPrivateKey, roundTripPsConfig.SshPrivateKey); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesNullProperties() + { + // Arrange + var originalPsConfig = new PSLinuxUserConfiguration( + uid: null, + gid: null, + sshPrivateKey: null); + + // Act + var mgmtConfig = originalPsConfig.ToLinuxUserConfiguration(); + var roundTripPsConfig = PSLinuxUserConfiguration.FromLinuxUserConfiguration(mgmtConfig); + + // Assert + Assert.NotNull(roundTripPsConfig); + Assert.Null(roundTripPsConfig.Uid); + Assert.Null(roundTripPsConfig.Gid); + Assert.Null(roundTripPsConfig.SshPrivateKey); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void RoundTripConversion_FromMgmtAndToMgmt_PreservesAllProperties() + { + // Arrange + var originalMgmtConfig = new LinuxUserConfiguration( + uid: 2000, + gid: 2000, + sshPrivateKey: "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC7yn3bRHQ... user@example.com"); + + // Act + var psConfig = PSLinuxUserConfiguration.FromLinuxUserConfiguration(originalMgmtConfig); + var roundTripMgmtConfig = psConfig.ToLinuxUserConfiguration(); + + // Assert + Assert.NotNull(roundTripMgmtConfig); + Assert.Equal(originalMgmtConfig.Uid, roundTripMgmtConfig.Uid); + Assert.Equal(originalMgmtConfig.Gid, roundTripMgmtConfig.Gid); + Assert.Equal(originalMgmtConfig.SshPrivateKey, roundTripMgmtConfig.SshPrivateKey); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void RoundTripConversion_FromMgmtAndToMgmt_PreservesNullProperties() + { + // Arrange + var originalMgmtConfig = new LinuxUserConfiguration( + uid: null, + gid: null, + sshPrivateKey: null); + + // Act + var psConfig = PSLinuxUserConfiguration.FromLinuxUserConfiguration(originalMgmtConfig); + var roundTripMgmtConfig = psConfig.ToLinuxUserConfiguration(); + + // Assert + Assert.NotNull(roundTripMgmtConfig); + Assert.Null(roundTripMgmtConfig.Uid); + Assert.Null(roundTripMgmtConfig.Gid); + Assert.Null(roundTripMgmtConfig.SshPrivateKey); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void RoundTripConversion_MultipleScenarios_PreservesSemantics() + { + // Arrange - Test various realistic Linux user configurations + var testScenarios = new[] + { + new { + Uid = (int?)1000, + Gid = (int?)1000, + SshKey = "-----BEGIN OPENSSH PRIVATE KEY-----\nb3BlbnNzaC1rZXktdjEAAAAA...\n-----END OPENSSH PRIVATE KEY-----", + Description = "Standard user with SSH key" + }, + new { + Uid = (int?)0, + Gid = (int?)0, + SshKey = (string)null, + Description = "Root user without SSH key" + }, + new { + Uid = (int?)null, + Gid = (int?)null, + SshKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIF... user@hostname", + Description = "OS-assigned UID/GID with SSH key" + }, + new { + Uid = (int?)65534, + Gid = (int?)65534, + SshKey = "", + Description = "Nobody user with empty SSH key" + } + }; + + foreach (var scenario in testScenarios) + { + // Act - Round trip conversion starting from PS + var psConfig = new PSLinuxUserConfiguration(scenario.Uid, scenario.Gid, scenario.SshKey); + var mgmtFromPs = psConfig.ToLinuxUserConfiguration(); + var backToPs = PSLinuxUserConfiguration.FromLinuxUserConfiguration(mgmtFromPs); + + // Assert PS -> Mgmt -> PS + Assert.Equal(scenario.Uid, backToPs.Uid); + Assert.Equal(scenario.Gid, backToPs.Gid); + Assert.Equal(scenario.SshKey, backToPs.SshPrivateKey); + + // Act - Round trip conversion starting from Mgmt + var mgmtConfig = new LinuxUserConfiguration(scenario.Uid, scenario.Gid, scenario.SshKey); + var psFromMgmt = PSLinuxUserConfiguration.FromLinuxUserConfiguration(mgmtConfig); + var backToMgmt = psFromMgmt.ToLinuxUserConfiguration(); + + // Assert Mgmt -> PS -> Mgmt + Assert.Equal(scenario.Uid, backToMgmt.Uid); + Assert.Equal(scenario.Gid, backToMgmt.Gid); + Assert.Equal(scenario.SshKey, backToMgmt.SshPrivateKey); + } + } + + #endregion + + #region Integration Tests + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void LinuxUserConfigurationConversions_BothDirections_MaintainSemanticEquivalence() + { + // This test ensures that the semantic meaning is preserved across conversions for Azure Batch Linux user configuration + + // Test standard user configuration - Typical non-root user with SSH access + var psStandardUser = new PSLinuxUserConfiguration( + uid: 1000, + gid: 1000, + sshPrivateKey: "-----BEGIN RSA PRIVATE KEY-----\nMIIEpAIBAAKCAQEA7yn3bRHQ...\n-----END RSA PRIVATE KEY-----"); + var mgmtStandardUser = psStandardUser.ToLinuxUserConfiguration(); + var backToPs = PSLinuxUserConfiguration.FromLinuxUserConfiguration(mgmtStandardUser); + + Assert.NotNull(mgmtStandardUser); + Assert.Equal(1000, mgmtStandardUser.Uid); + Assert.Equal(1000, mgmtStandardUser.Gid); + Assert.NotNull(mgmtStandardUser.SshPrivateKey); + Assert.NotNull(backToPs); + Assert.Equal(1000, backToPs.Uid); + Assert.Equal(1000, backToPs.Gid); + Assert.Equal(psStandardUser.SshPrivateKey, backToPs.SshPrivateKey); + + // Test OS-assigned user configuration - Let OS pick UID/GID + var psOsAssigned = new PSLinuxUserConfiguration( + uid: null, + gid: null, + sshPrivateKey: "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC7yn3bRHQ... user@example.com"); + var mgmtOsAssigned = psOsAssigned.ToLinuxUserConfiguration(); + var backToPsOsAssigned = PSLinuxUserConfiguration.FromLinuxUserConfiguration(mgmtOsAssigned); + + Assert.NotNull(mgmtOsAssigned); + Assert.Null(mgmtOsAssigned.Uid); + Assert.Null(mgmtOsAssigned.Gid); + Assert.NotNull(mgmtOsAssigned.SshPrivateKey); + Assert.NotNull(backToPsOsAssigned); + Assert.Null(backToPsOsAssigned.Uid); + Assert.Null(backToPsOsAssigned.Gid); + Assert.Equal(psOsAssigned.SshPrivateKey, backToPsOsAssigned.SshPrivateKey); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void LinuxUserConfigurationConversions_NullHandling_WorksCorrectly() + { + // Test null handling in conversions + + // Act + var resultFromNull = PSLinuxUserConfiguration.FromLinuxUserConfiguration(null); + + // Assert + Assert.Null(resultFromNull); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void LinuxUserConfigurationConversions_BatchUserAccountContext_VerifyCorrectUsage() + { + // This test validates the conversions work correctly in the context of Batch user account configuration + // LinuxUserConfiguration is used to configure Linux-specific user account properties in Azure Batch + + // Arrange - Test with realistic Batch Linux user scenarios + var linuxUserScenarios = new[] + { + // Standard developer user with SSH access for debugging + new { + Uid = (int?)1000, + Gid = (int?)1000, + SshKey = "-----BEGIN OPENSSH PRIVATE KEY-----\nb3BlbnNzaC1rZXktdjEAAAAA...\n-----END OPENSSH PRIVATE KEY-----", + Description = "Developer user with SSH access for remote debugging" + }, + // Service account user without SSH for production workloads + new { + Uid = (int?)999, + Gid = (int?)999, + SshKey = (string)null, + Description = "Service account for production batch jobs without SSH access" + }, + // OS-managed user for simple scenarios + new { + Uid = (int?)null, + Gid = (int?)null, + SshKey = (string)null, + Description = "OS-managed user account for simple batch processing" + }, + // Root user for privileged operations + new { + Uid = (int?)0, + Gid = (int?)0, + SshKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIF... admin@hostname", + Description = "Root user for privileged system operations" + } + }; + + foreach (var scenario in linuxUserScenarios) + { + // Act + var psLinuxUserConfig = new PSLinuxUserConfiguration(scenario.Uid, scenario.Gid, scenario.SshKey); + var mgmtLinuxUserConfig = psLinuxUserConfig.ToLinuxUserConfiguration(); + + // Assert - Should convert correctly for Batch user account configuration + Assert.NotNull(mgmtLinuxUserConfig); + Assert.Equal(scenario.Uid, mgmtLinuxUserConfig.Uid); + Assert.Equal(scenario.Gid, mgmtLinuxUserConfig.Gid); + Assert.Equal(scenario.SshKey, mgmtLinuxUserConfig.SshPrivateKey); + + // Verify round-trip conversion maintains Batch user semantics + var backToPs = PSLinuxUserConfiguration.FromLinuxUserConfiguration(mgmtLinuxUserConfig); + Assert.NotNull(backToPs); + Assert.Equal(scenario.Uid, backToPs.Uid); + Assert.Equal(scenario.Gid, backToPs.Gid); + Assert.Equal(scenario.SshKey, backToPs.SshPrivateKey); + } + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void LinuxUserConfigurationConversions_SshKeyFormats_HandleCorrectly() + { + // Test with various SSH key formats that are commonly used + + var sshKeyFormats = new[] + { + // RSA private key in OpenSSH format + "-----BEGIN OPENSSH PRIVATE KEY-----\nb3BlbnNzaC1rZXktdjEAAAAA...\n-----END OPENSSH PRIVATE KEY-----", + // RSA private key in traditional format + "-----BEGIN RSA PRIVATE KEY-----\nMIIEpAIBAAKCAQEA7yn3bRHQ...\n-----END RSA PRIVATE KEY-----", + // Ed25519 private key + "-----BEGIN OPENSSH PRIVATE KEY-----\nb3BlbnNzaC1rZXktdjEAAAAGYWVzMjU2Y3Ry...\n-----END OPENSSH PRIVATE KEY-----", + // Public key (should be handled even though it's technically private key field) + "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC7yn3bRHQ... user@example.com", + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIF... user@hostname", + // Edge cases + "", + " ", // Single space + "\n", // Single newline + "invalid-key-format" + }; + + foreach (var sshKey in sshKeyFormats) + { + // Arrange + var psConfig = new PSLinuxUserConfiguration( + uid: 1000, + gid: 1000, + sshPrivateKey: sshKey); + + // Act + var mgmtConfig = psConfig.ToLinuxUserConfiguration(); + var roundTripPs = PSLinuxUserConfiguration.FromLinuxUserConfiguration(mgmtConfig); + + // Assert - All key formats should be preserved exactly + Assert.NotNull(mgmtConfig); + Assert.NotNull(roundTripPs); + Assert.Equal(sshKey, mgmtConfig.SshPrivateKey); + Assert.Equal(sshKey, roundTripPs.SshPrivateKey); + } + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void LinuxUserConfigurationConversions_UidGidConstraints_VerifySemantics() + { + // Test UID/GID constraint semantics - both should be specified together or not at all + + var uidGidScenarios = new[] + { + // Both specified - valid scenario + new { Uid = (int?)1000, Gid = (int?)1000, IsValid = true, Description = "Both UID and GID specified" }, + // Both null - valid scenario (OS picks) + new { Uid = (int?)null, Gid = (int?)null, IsValid = true, Description = "Both UID and GID null (OS-assigned)" }, + // Only UID specified - typically invalid but should still convert + new { Uid = (int?)1000, Gid = (int?)null, IsValid = false, Description = "Only UID specified" }, + // Only GID specified - typically invalid but should still convert + new { Uid = (int?)null, Gid = (int?)1000, IsValid = false, Description = "Only GID specified" } + }; + + foreach (var scenario in uidGidScenarios) + { + // Arrange + var psConfig = new PSLinuxUserConfiguration( + uid: scenario.Uid, + gid: scenario.Gid, + sshPrivateKey: "test-key"); + + // Act - Should convert regardless of validity + var mgmtConfig = psConfig.ToLinuxUserConfiguration(); + var roundTripPs = PSLinuxUserConfiguration.FromLinuxUserConfiguration(mgmtConfig); + + // Assert - Conversion should preserve values exactly + Assert.NotNull(mgmtConfig); + Assert.NotNull(roundTripPs); + Assert.Equal(scenario.Uid, mgmtConfig.Uid); + Assert.Equal(scenario.Gid, mgmtConfig.Gid); + Assert.Equal(scenario.Uid, roundTripPs.Uid); + Assert.Equal(scenario.Gid, roundTripPs.Gid); + } + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void LinuxUserConfigurationConversions_InstanceCreation_VerifyBehavior() + { + // This test verifies that the conversion methods create appropriate instances + + // Arrange + var psConfig = new PSLinuxUserConfiguration(uid: 1000, gid: 1000, sshPrivateKey: "test-key"); + var mgmtConfig = new LinuxUserConfiguration(uid: 2000, gid: 2000, sshPrivateKey: "mgmt-key"); + + // Act + var mgmtResult = psConfig.ToLinuxUserConfiguration(); + var psResult = PSLinuxUserConfiguration.FromLinuxUserConfiguration(mgmtConfig); + + // Assert - Verify proper instance creation + Assert.NotNull(mgmtResult); + Assert.NotNull(psResult); + Assert.IsType(mgmtResult); + Assert.IsType(psResult); + + // Verify new instances are created + Assert.NotSame(mgmtConfig, mgmtResult); + Assert.NotSame(psConfig, psResult); + } + + #endregion + + #region Performance Tests + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void LinuxUserConfigurationConversions_PerformanceTest_ExecutesQuickly() + { + // This test ensures the conversions are efficient with multiple operations + + // Arrange + var psConfigs = new PSLinuxUserConfiguration[100]; + var mgmtConfigs = new LinuxUserConfiguration[100]; + + for (int i = 0; i < 100; i++) + { + psConfigs[i] = new PSLinuxUserConfiguration( + uid: 1000 + i, + gid: 1000 + i, + sshPrivateKey: $"test-key-{i}"); + + mgmtConfigs[i] = new LinuxUserConfiguration( + uid: 2000 + i, + gid: 2000 + i, + sshPrivateKey: $"mgmt-key-{i}"); + } + + // Act & Assert - Multiple conversions should complete without delay + for (int i = 0; i < 10; i++) + { + foreach (var psConfig in psConfigs) + { + var mgmtResult = psConfig.ToLinuxUserConfiguration(); + Assert.NotNull(mgmtResult); + } + + foreach (var mgmtConfig in mgmtConfigs) + { + var psResult = PSLinuxUserConfiguration.FromLinuxUserConfiguration(mgmtConfig); + Assert.NotNull(psResult); + } + } + } + + #endregion + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Test/Models/PSManagedDiskTests.cs b/src/Batch/Batch.Test/Models/PSManagedDiskTests.cs new file mode 100644 index 000000000000..186e6e3c6d82 --- /dev/null +++ b/src/Batch/Batch.Test/Models/PSManagedDiskTests.cs @@ -0,0 +1,973 @@ +// ----------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ----------------------------------------------------------------------------- + +using Microsoft.Azure.Commands.Batch.Models; +using Microsoft.Azure.Management.Batch.Models; +using System; +using Xunit; + +namespace Microsoft.Azure.Commands.Batch.Test.ModelsConversions +{ + public class PSManagedDiskTests + { + #region ToMgmtManagedDisk Tests + + [Fact] + public void ToMgmtManagedDisk_WithStandardLRS_ReturnsCorrectMapping() + { + // Arrange + var psManagedDisk = new PSManagedDisk( + storageAccountType: Microsoft.Azure.Batch.Common.StorageAccountType.StandardLrs); + + // Act + var result = psManagedDisk.ToMgmtManagedDisk(); + + // Assert + Assert.NotNull(result); + Assert.Equal(StorageAccountType.StandardLRS, result.StorageAccountType); + Assert.Null(result.SecurityProfile); + } + + [Fact] + public void ToMgmtManagedDisk_WithPremiumLRS_ReturnsCorrectMapping() + { + // Arrange + var psManagedDisk = new PSManagedDisk( + storageAccountType: Microsoft.Azure.Batch.Common.StorageAccountType.PremiumLrs); + + // Act + var result = psManagedDisk.ToMgmtManagedDisk(); + + // Assert + Assert.NotNull(result); + Assert.Equal(StorageAccountType.PremiumLRS, result.StorageAccountType); + Assert.Null(result.SecurityProfile); + } + + [Fact] + public void ToMgmtManagedDisk_WithStandardSSDLRS_ReturnsCorrectMapping() + { + // Arrange + var psManagedDisk = new PSManagedDisk( + storageAccountType: Microsoft.Azure.Batch.Common.StorageAccountType.StandardSSDLRS); + + // Act + var result = psManagedDisk.ToMgmtManagedDisk(); + + // Assert + Assert.NotNull(result); + Assert.Equal(StorageAccountType.StandardSSDLRS, result.StorageAccountType); + Assert.Null(result.SecurityProfile); + } + + [Fact] + public void ToMgmtManagedDisk_WithSecurityProfile_ReturnsCorrectMapping() + { + // Arrange + var securityProfile = new PSVMDiskSecurityProfile() + { + SecurityEncryptionType = "NonPersistedTPM" + }; + var psManagedDisk = new PSManagedDisk( + storageAccountType: Microsoft.Azure.Batch.Common.StorageAccountType.PremiumLrs, + securityProfile: securityProfile); + + // Act + var result = psManagedDisk.ToMgmtManagedDisk(); + + // Assert + Assert.NotNull(result); + Assert.Equal(StorageAccountType.PremiumLRS, result.StorageAccountType); + Assert.NotNull(result.SecurityProfile); + Assert.Equal("NonPersistedTPM", result.SecurityProfile.SecurityEncryptionType); + } + + [Theory] + [InlineData(Microsoft.Azure.Batch.Common.StorageAccountType.StandardLrs, StorageAccountType.StandardLRS)] + [InlineData(Microsoft.Azure.Batch.Common.StorageAccountType.PremiumLrs, StorageAccountType.PremiumLRS)] + [InlineData(Microsoft.Azure.Batch.Common.StorageAccountType.StandardSSDLRS, StorageAccountType.StandardSSDLRS)] + public void ToMgmtManagedDisk_AllValidStorageAccountTypes_ReturnsCorrectMapping( + Microsoft.Azure.Batch.Common.StorageAccountType psStorageType, + StorageAccountType expectedMgmtStorageType) + { + // Arrange + var psManagedDisk = new PSManagedDisk(storageAccountType: psStorageType); + + // Act + var result = psManagedDisk.ToMgmtManagedDisk(); + + // Assert + Assert.NotNull(result); + Assert.Equal(expectedMgmtStorageType, result.StorageAccountType); + } + + [Fact] + public void ToMgmtManagedDisk_WithNullStorageAccountType_ReturnsCorrectMapping() + { + // Arrange + var psManagedDisk = new PSManagedDisk(storageAccountType: null); + + // Act + var result = psManagedDisk.ToMgmtManagedDisk(); + + // Assert + Assert.NotNull(result); + Assert.Null(result.StorageAccountType); + Assert.Null(result.SecurityProfile); + } + + [Fact] + public void ToMgmtManagedDisk_WithNullSecurityProfile_ReturnsCorrectMapping() + { + // Arrange + var psManagedDisk = new PSManagedDisk( + storageAccountType: Microsoft.Azure.Batch.Common.StorageAccountType.PremiumLrs, + securityProfile: null); + + // Act + var result = psManagedDisk.ToMgmtManagedDisk(); + + // Assert + Assert.NotNull(result); + Assert.Equal(StorageAccountType.PremiumLRS, result.StorageAccountType); + Assert.Null(result.SecurityProfile); + } + + [Fact] + public void ToMgmtManagedDisk_AlwaysCreatesNewInstance() + { + // Arrange + var psManagedDisk = new PSManagedDisk( + storageAccountType: Microsoft.Azure.Batch.Common.StorageAccountType.StandardLrs); + + // Act + var result1 = psManagedDisk.ToMgmtManagedDisk(); + var result2 = psManagedDisk.ToMgmtManagedDisk(); + + // Assert + Assert.NotNull(result1); + Assert.NotNull(result2); + Assert.NotSame(result1, result2); + } + + [Fact] + public void ToMgmtManagedDisk_VerifyManagedDiskType() + { + // Arrange + var psManagedDisk = new PSManagedDisk( + storageAccountType: Microsoft.Azure.Batch.Common.StorageAccountType.StandardLrs); + + // Act + var result = psManagedDisk.ToMgmtManagedDisk(); + + // Assert + Assert.NotNull(result); + Assert.IsType(result); + } + + [Fact] + public void ToMgmtManagedDisk_WithConfidentialVMSecurity_PreservesSecuritySettings() + { + // Arrange - Confidential VM with VM guest state encryption + var securityProfile = new PSVMDiskSecurityProfile() + { + SecurityEncryptionType = "VMGuestStateOnly" + }; + var psManagedDisk = new PSManagedDisk( + storageAccountType: Microsoft.Azure.Batch.Common.StorageAccountType.PremiumLrs, + securityProfile: securityProfile); + + // Act + var result = psManagedDisk.ToMgmtManagedDisk(); + + // Assert + Assert.NotNull(result); + Assert.Equal(StorageAccountType.PremiumLRS, result.StorageAccountType); + Assert.NotNull(result.SecurityProfile); + Assert.Equal("VMGuestStateOnly", result.SecurityProfile.SecurityEncryptionType); + // VMGuestStateOnly semantics: Only the VMGuestState blob is encrypted for confidentiality + } + + #endregion + + #region FromMgmtManagedDisk Tests + + [Fact] + public void FromMgmtManagedDisk_WithStandardLRS_ReturnsCorrectMapping() + { + // Arrange + var mgmtManagedDisk = new ManagedDisk(storageAccountType: StorageAccountType.StandardLRS); + + // Act + var result = PSManagedDisk.FromMgmtManagedDisk(mgmtManagedDisk); + + // Assert + Assert.NotNull(result); + Assert.Equal(Microsoft.Azure.Batch.Common.StorageAccountType.StandardLrs, result.StorageAccountType); + Assert.Null(result.SecurityProfile); + } + + [Fact] + public void FromMgmtManagedDisk_WithPremiumLRS_ReturnsCorrectMapping() + { + // Arrange + var mgmtManagedDisk = new ManagedDisk(storageAccountType: StorageAccountType.PremiumLRS); + + // Act + var result = PSManagedDisk.FromMgmtManagedDisk(mgmtManagedDisk); + + // Assert + Assert.NotNull(result); + Assert.Equal(Microsoft.Azure.Batch.Common.StorageAccountType.PremiumLrs, result.StorageAccountType); + Assert.Null(result.SecurityProfile); + } + + [Fact] + public void FromMgmtManagedDisk_WithStandardSSDLRS_ReturnsCorrectMapping() + { + // Arrange + var mgmtManagedDisk = new ManagedDisk(storageAccountType: StorageAccountType.StandardSSDLRS); + + // Act + var result = PSManagedDisk.FromMgmtManagedDisk(mgmtManagedDisk); + + // Assert + Assert.NotNull(result); + Assert.Equal(Microsoft.Azure.Batch.Common.StorageAccountType.StandardSSDLRS, result.StorageAccountType); + Assert.Null(result.SecurityProfile); + } + + [Fact] + public void FromMgmtManagedDisk_WithSecurityProfile_ReturnsCorrectMapping() + { + // Arrange + var securityProfile = new VMDiskSecurityProfile("NonPersistedTPM"); + var mgmtManagedDisk = new ManagedDisk( + storageAccountType: StorageAccountType.PremiumLRS, + securityProfile: securityProfile); + + // Act + var result = PSManagedDisk.FromMgmtManagedDisk(mgmtManagedDisk); + + // Assert + Assert.NotNull(result); + Assert.Equal(Microsoft.Azure.Batch.Common.StorageAccountType.PremiumLrs, result.StorageAccountType); + Assert.NotNull(result.SecurityProfile); + Assert.Equal("NonPersistedTPM", result.SecurityProfile.SecurityEncryptionType); + } + + [Theory] + [InlineData(StorageAccountType.StandardLRS, Microsoft.Azure.Batch.Common.StorageAccountType.StandardLrs)] + [InlineData(StorageAccountType.PremiumLRS, Microsoft.Azure.Batch.Common.StorageAccountType.PremiumLrs)] + [InlineData(StorageAccountType.StandardSSDLRS, Microsoft.Azure.Batch.Common.StorageAccountType.StandardSSDLRS)] + public void FromMgmtManagedDisk_AllValidStorageAccountTypes_ReturnsCorrectMapping( + StorageAccountType mgmtStorageType, + Microsoft.Azure.Batch.Common.StorageAccountType expectedPsStorageType) + { + // Arrange + var mgmtManagedDisk = new ManagedDisk(storageAccountType: mgmtStorageType); + + // Act + var result = PSManagedDisk.FromMgmtManagedDisk(mgmtManagedDisk); + + // Assert + Assert.NotNull(result); + Assert.Equal(expectedPsStorageType, result.StorageAccountType); + } + + [Fact] + public void FromMgmtManagedDisk_WithNullInput_ReturnsNull() + { + // Act + var result = PSManagedDisk.FromMgmtManagedDisk(null); + + // Assert + Assert.Null(result); + } + + [Fact] + public void FromMgmtManagedDisk_WithNullStorageAccountType_ReturnsCorrectMapping() + { + // Arrange + var mgmtManagedDisk = new ManagedDisk(storageAccountType: null); + + // Act + var result = PSManagedDisk.FromMgmtManagedDisk(mgmtManagedDisk); + + // Assert + Assert.NotNull(result); + Assert.Null(result.StorageAccountType); + Assert.Null(result.SecurityProfile); + } + + [Fact] + public void FromMgmtManagedDisk_WithNullSecurityProfile_ReturnsCorrectMapping() + { + // Arrange + var mgmtManagedDisk = new ManagedDisk( + storageAccountType: StorageAccountType.PremiumLRS, + securityProfile: null); + + // Act + var result = PSManagedDisk.FromMgmtManagedDisk(mgmtManagedDisk); + + // Assert + Assert.NotNull(result); + Assert.Equal(Microsoft.Azure.Batch.Common.StorageAccountType.PremiumLrs, result.StorageAccountType); + Assert.Null(result.SecurityProfile); + } + + [Fact] + public void FromMgmtManagedDisk_VerifyPSManagedDiskType() + { + // Arrange + var mgmtManagedDisk = new ManagedDisk(storageAccountType: StorageAccountType.StandardLRS); + + // Act + var result = PSManagedDisk.FromMgmtManagedDisk(mgmtManagedDisk); + + // Assert + Assert.NotNull(result); + Assert.IsType(result); + } + + [Fact] + public void FromMgmtManagedDisk_WithConfidentialVMSecurity_PreservesSecuritySettings() + { + // Arrange + var securityProfile = new VMDiskSecurityProfile("VMGuestStateOnly"); + var mgmtManagedDisk = new ManagedDisk( + storageAccountType: StorageAccountType.PremiumLRS, + securityProfile: securityProfile); + + // Act + var result = PSManagedDisk.FromMgmtManagedDisk(mgmtManagedDisk); + + // Assert + Assert.NotNull(result); + Assert.Equal(Microsoft.Azure.Batch.Common.StorageAccountType.PremiumLrs, result.StorageAccountType); + Assert.NotNull(result.SecurityProfile); + Assert.Equal("VMGuestStateOnly", result.SecurityProfile.SecurityEncryptionType); + // VMGuestStateOnly semantics preserved: VMGuestState blob encryption for confidentiality + } + + [Fact] + public void FromMgmtManagedDisk_WithDefaultManagedDisk_HandlesCorrectly() + { + // Arrange + var mgmtManagedDisk = new ManagedDisk(); // Uses default constructor + + // Act + var result = PSManagedDisk.FromMgmtManagedDisk(mgmtManagedDisk); + + // Assert + Assert.NotNull(result); + // The result should handle the default values from the management disk + Assert.True(result.StorageAccountType == null || + Enum.IsDefined(typeof(Microsoft.Azure.Batch.Common.StorageAccountType), result.StorageAccountType)); + Assert.Null(result.SecurityProfile); + } + + #endregion + + #region Round-trip Conversion Tests + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesStandardLRSValue() + { + // Arrange + var originalPsManagedDisk = new PSManagedDisk( + storageAccountType: Microsoft.Azure.Batch.Common.StorageAccountType.StandardLrs); + + // Act + var mgmtManagedDisk = originalPsManagedDisk.ToMgmtManagedDisk(); + var roundTripPsManagedDisk = PSManagedDisk.FromMgmtManagedDisk(mgmtManagedDisk); + + // Assert + Assert.NotNull(roundTripPsManagedDisk); + Assert.Equal(originalPsManagedDisk.StorageAccountType, roundTripPsManagedDisk.StorageAccountType); + Assert.Equal(Microsoft.Azure.Batch.Common.StorageAccountType.StandardLrs, roundTripPsManagedDisk.StorageAccountType); + } + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesPremiumLRSValue() + { + // Arrange + var originalPsManagedDisk = new PSManagedDisk( + storageAccountType: Microsoft.Azure.Batch.Common.StorageAccountType.PremiumLrs); + + // Act + var mgmtManagedDisk = originalPsManagedDisk.ToMgmtManagedDisk(); + var roundTripPsManagedDisk = PSManagedDisk.FromMgmtManagedDisk(mgmtManagedDisk); + + // Assert + Assert.NotNull(roundTripPsManagedDisk); + Assert.Equal(originalPsManagedDisk.StorageAccountType, roundTripPsManagedDisk.StorageAccountType); + Assert.Equal(Microsoft.Azure.Batch.Common.StorageAccountType.PremiumLrs, roundTripPsManagedDisk.StorageAccountType); + } + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesSecurityProfile() + { + // Arrange + var securityProfile = new PSVMDiskSecurityProfile() + { + SecurityEncryptionType = "NonPersistedTPM" + }; + var originalPsManagedDisk = new PSManagedDisk( + storageAccountType: Microsoft.Azure.Batch.Common.StorageAccountType.PremiumLrs, + securityProfile: securityProfile); + + // Act + var mgmtManagedDisk = originalPsManagedDisk.ToMgmtManagedDisk(); + var roundTripPsManagedDisk = PSManagedDisk.FromMgmtManagedDisk(mgmtManagedDisk); + + // Assert + Assert.NotNull(roundTripPsManagedDisk); + Assert.Equal(originalPsManagedDisk.StorageAccountType, roundTripPsManagedDisk.StorageAccountType); + Assert.NotNull(roundTripPsManagedDisk.SecurityProfile); + Assert.Equal("NonPersistedTPM", roundTripPsManagedDisk.SecurityProfile.SecurityEncryptionType); + } + + [Theory] + [InlineData(Microsoft.Azure.Batch.Common.StorageAccountType.StandardLrs)] + [InlineData(Microsoft.Azure.Batch.Common.StorageAccountType.PremiumLrs)] + [InlineData(Microsoft.Azure.Batch.Common.StorageAccountType.StandardSSDLRS)] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesAllValidStorageTypes( + Microsoft.Azure.Batch.Common.StorageAccountType originalStorageType) + { + // Arrange + var originalPsManagedDisk = new PSManagedDisk(storageAccountType: originalStorageType); + + // Act + var mgmtManagedDisk = originalPsManagedDisk.ToMgmtManagedDisk(); + var roundTripPsManagedDisk = PSManagedDisk.FromMgmtManagedDisk(mgmtManagedDisk); + + // Assert + Assert.NotNull(roundTripPsManagedDisk); + Assert.Equal(originalStorageType, roundTripPsManagedDisk.StorageAccountType); + } + + [Fact] + public void RoundTripConversion_FromMgmtAndToMgmt_PreservesValues() + { + // Arrange + var securityProfile = new VMDiskSecurityProfile("VMGuestStateOnly"); + var originalMgmtManagedDisk = new ManagedDisk( + storageAccountType: StorageAccountType.StandardSSDLRS, + securityProfile: securityProfile); + + // Act + var psManagedDisk = PSManagedDisk.FromMgmtManagedDisk(originalMgmtManagedDisk); + var roundTripMgmtManagedDisk = psManagedDisk.ToMgmtManagedDisk(); + + // Assert + Assert.NotNull(roundTripMgmtManagedDisk); + Assert.Equal(originalMgmtManagedDisk.StorageAccountType, roundTripMgmtManagedDisk.StorageAccountType); + Assert.NotNull(roundTripMgmtManagedDisk.SecurityProfile); + Assert.Equal("VMGuestStateOnly", roundTripMgmtManagedDisk.SecurityProfile.SecurityEncryptionType); + } + + [Fact] + public void RoundTripConversion_WithNullValues_PreservesNulls() + { + // Arrange + var originalPsManagedDisk = new PSManagedDisk( + storageAccountType: null, + securityProfile: null); + + // Act + var mgmtManagedDisk = originalPsManagedDisk.ToMgmtManagedDisk(); + var roundTripPsManagedDisk = PSManagedDisk.FromMgmtManagedDisk(mgmtManagedDisk); + + // Assert + Assert.NotNull(roundTripPsManagedDisk); + Assert.Null(roundTripPsManagedDisk.StorageAccountType); + Assert.Null(roundTripPsManagedDisk.SecurityProfile); + } + + #endregion + + #region Integration Tests + + [Fact] + public void ManagedDiskConversions_BothDirections_MaintainSemanticEquivalence() + { + // This test ensures that the semantic meaning is preserved across conversions + + // Test Standard LRS semantics - Cost-optimized storage + var psStandardLRS = new PSManagedDisk( + storageAccountType: Microsoft.Azure.Batch.Common.StorageAccountType.StandardLrs); + var mgmtStandardLRS = psStandardLRS.ToMgmtManagedDisk(); + var backToPs = PSManagedDisk.FromMgmtManagedDisk(mgmtStandardLRS); + + Assert.Equal(StorageAccountType.StandardLRS, mgmtStandardLRS.StorageAccountType); + Assert.Equal(Microsoft.Azure.Batch.Common.StorageAccountType.StandardLrs, backToPs.StorageAccountType); + + // Test Premium LRS semantics - High-performance storage + var psPremiumLRS = new PSManagedDisk( + storageAccountType: Microsoft.Azure.Batch.Common.StorageAccountType.PremiumLrs); + var mgmtPremiumLRS = psPremiumLRS.ToMgmtManagedDisk(); + var backToPsPremium = PSManagedDisk.FromMgmtManagedDisk(mgmtPremiumLRS); + + Assert.Equal(StorageAccountType.PremiumLRS, mgmtPremiumLRS.StorageAccountType); + Assert.Equal(Microsoft.Azure.Batch.Common.StorageAccountType.PremiumLrs, backToPsPremium.StorageAccountType); + + // Test Standard SSD LRS semantics - Balanced performance/cost + var psStandardSSD = new PSManagedDisk( + storageAccountType: Microsoft.Azure.Batch.Common.StorageAccountType.StandardSSDLRS); + var mgmtStandardSSD = psStandardSSD.ToMgmtManagedDisk(); + var backToPsStandardSSD = PSManagedDisk.FromMgmtManagedDisk(mgmtStandardSSD); + + Assert.Equal(StorageAccountType.StandardSSDLRS, mgmtStandardSSD.StorageAccountType); + Assert.Equal(Microsoft.Azure.Batch.Common.StorageAccountType.StandardSSDLRS, backToPsStandardSSD.StorageAccountType); + } + + [Fact] + public void ManagedDiskConversions_NullHandling_WorksCorrectly() + { + // Test null handling in conversions + + // Act + var resultFromNull = PSManagedDisk.FromMgmtManagedDisk(null); + + // Assert + Assert.Null(resultFromNull); + } + + [Fact] + public void ManagedDiskConversions_ConfidentialVMContext_VerifyCorrectUsage() + { + // This test validates the conversions work correctly in the context of Confidential VM configuration + // ManagedDisk is used to configure OS disk settings for Confidential VMs in Azure Batch + + // Arrange - Test Confidential VM managed disk scenarios + var confidentialVMScenarios = new[] + { + // High security Confidential VM with NonPersistedTPM + new { + StorageAccountType = Microsoft.Azure.Batch.Common.StorageAccountType.PremiumLrs, + SecurityEncryptionType = "NonPersistedTPM", + Description = "High security Confidential VM with Premium SSD and non-persisted TPM" + }, + // Standard Confidential VM with VMGuestStateOnly + new { + StorageAccountType = Microsoft.Azure.Batch.Common.StorageAccountType.StandardSSDLRS, + SecurityEncryptionType = "VMGuestStateOnly", + Description = "Standard Confidential VM with Standard SSD and VM guest state encryption" + } + }; + + foreach (var scenario in confidentialVMScenarios) + { + // Arrange + var securityProfile = new PSVMDiskSecurityProfile() + { + SecurityEncryptionType = scenario.SecurityEncryptionType + }; + var psManagedDisk = new PSManagedDisk( + storageAccountType: scenario.StorageAccountType, + securityProfile: securityProfile); + + // Act + var mgmtManagedDisk = psManagedDisk.ToMgmtManagedDisk(); + + // Assert - Should convert correctly for Confidential VM configuration + Assert.NotNull(mgmtManagedDisk); + Assert.NotNull(mgmtManagedDisk.SecurityProfile); + Assert.Equal(scenario.SecurityEncryptionType, mgmtManagedDisk.SecurityProfile.SecurityEncryptionType); + + var expectedStorageType = scenario.StorageAccountType switch + { + Microsoft.Azure.Batch.Common.StorageAccountType.PremiumLrs => StorageAccountType.PremiumLRS, + Microsoft.Azure.Batch.Common.StorageAccountType.StandardSSDLRS => StorageAccountType.StandardSSDLRS, + _ => StorageAccountType.StandardLRS + }; + Assert.Equal(expectedStorageType, mgmtManagedDisk.StorageAccountType); + + // Verify round-trip conversion maintains Confidential VM semantics + var backToPs = PSManagedDisk.FromMgmtManagedDisk(mgmtManagedDisk); + Assert.NotNull(backToPs); + Assert.NotNull(backToPs.SecurityProfile); + Assert.Equal(scenario.SecurityEncryptionType, backToPs.SecurityProfile.SecurityEncryptionType); + Assert.Equal(scenario.StorageAccountType, backToPs.StorageAccountType); + } + } + + [Fact] + public void ManagedDiskConversions_InstanceCreation_VerifyBehavior() + { + // This test verifies that the conversion methods create appropriate instances + + // Arrange + var securityProfile = new PSVMDiskSecurityProfile() + { + SecurityEncryptionType = "NonPersistedTPM" + }; + var psManagedDisk = new PSManagedDisk( + storageAccountType: Microsoft.Azure.Batch.Common.StorageAccountType.PremiumLrs, + securityProfile: securityProfile); + + var mgmtSecurityProfile = new VMDiskSecurityProfile("VMGuestStateOnly"); + var mgmtManagedDisk = new ManagedDisk( + storageAccountType: StorageAccountType.StandardSSDLRS, + securityProfile: mgmtSecurityProfile); + + // Act + var mgmtResult = psManagedDisk.ToMgmtManagedDisk(); + var psResult = PSManagedDisk.FromMgmtManagedDisk(mgmtManagedDisk); + + // Assert - Verify proper instance creation + Assert.NotNull(mgmtResult); + Assert.NotNull(psResult); + Assert.IsType(mgmtResult); + Assert.IsType(psResult); + + // Verify new instances are created + Assert.NotSame(mgmtManagedDisk, mgmtResult); + Assert.NotSame(psManagedDisk, psResult); + } + + [Fact] + public void ManagedDiskConversions_DefaultValues_HandleCorrectly() + { + // Test conversion with default/null values + + // Arrange + PSManagedDisk defaultPsManagedDisk = new PSManagedDisk(); // Uses default constructor + ManagedDisk defaultMgmtManagedDisk = new ManagedDisk(); // Uses default constructor + + // Act + ManagedDisk mgmtResult = defaultPsManagedDisk.ToMgmtManagedDisk(); + PSManagedDisk psResult = PSManagedDisk.FromMgmtManagedDisk(defaultMgmtManagedDisk); + + // Assert + Assert.NotNull(mgmtResult); + Assert.NotNull(psResult); + // Default values should be preserved + Assert.Null(mgmtResult.StorageAccountType); + Assert.Null(psResult.StorageAccountType); + Assert.Null(mgmtResult.SecurityProfile); + Assert.Null(psResult.SecurityProfile); + } + + #endregion + + #region Performance and Edge Case Tests + + [Fact] + public void ManagedDiskConversions_PerformanceTest_ExecutesQuickly() + { + // This test ensures the conversions are efficient + + // Arrange + var securityProfile = new PSVMDiskSecurityProfile() + { + SecurityEncryptionType = "NonPersistedTPM" + }; + var psManagedDisk = new PSManagedDisk( + storageAccountType: Microsoft.Azure.Batch.Common.StorageAccountType.PremiumLrs, + securityProfile: securityProfile); + + var mgmtSecurityProfile = new VMDiskSecurityProfile("VMGuestStateOnly"); + var mgmtManagedDisk = new ManagedDisk( + storageAccountType: StorageAccountType.StandardSSDLRS, + securityProfile: mgmtSecurityProfile); + + // Act & Assert - Multiple conversions should complete without delay + for (int i = 0; i < 100; i++) + { + var mgmtResult = psManagedDisk.ToMgmtManagedDisk(); + var psResult = PSManagedDisk.FromMgmtManagedDisk(mgmtManagedDisk); + + Assert.NotNull(mgmtResult); + Assert.NotNull(psResult); + } + } + + [Fact] + public void ManagedDiskConversions_TypeSafety_VerifyCorrectTypes() + { + // Test that conversions return the correct types + + // Arrange + var psManagedDisk = new PSManagedDisk( + storageAccountType: Microsoft.Azure.Batch.Common.StorageAccountType.StandardLrs); + var mgmtManagedDisk = new ManagedDisk(storageAccountType: StorageAccountType.PremiumLRS); + + // Act + var mgmtResult = psManagedDisk.ToMgmtManagedDisk(); + var psResult = PSManagedDisk.FromMgmtManagedDisk(mgmtManagedDisk); + + // Assert - Verify correct types are returned + Assert.IsType(mgmtResult); + Assert.IsType(psResult); + } + + [Fact] + public void ManagedDiskConversions_PropertyAccess_VerifyBehavior() + { + // Test that properties are accessible and correct after conversion + + // Arrange + var originalStorageType = Microsoft.Azure.Batch.Common.StorageAccountType.StandardSSDLRS; + var securityProfile = new PSVMDiskSecurityProfile() + { + SecurityEncryptionType = "NonPersistedTPM" + }; + var psManagedDisk = new PSManagedDisk( + storageAccountType: originalStorageType, + securityProfile: securityProfile); + + // Act + var mgmtManagedDisk = psManagedDisk.ToMgmtManagedDisk(); + var convertedPsManagedDisk = PSManagedDisk.FromMgmtManagedDisk(mgmtManagedDisk); + + // Assert + Assert.Equal(originalStorageType, psManagedDisk.StorageAccountType); + Assert.Equal(StorageAccountType.StandardSSDLRS, mgmtManagedDisk.StorageAccountType); + Assert.Equal(originalStorageType, convertedPsManagedDisk.StorageAccountType); + + Assert.Equal("NonPersistedTPM", psManagedDisk.SecurityProfile.SecurityEncryptionType); + Assert.Equal("NonPersistedTPM", mgmtManagedDisk.SecurityProfile.SecurityEncryptionType); + Assert.Equal("NonPersistedTPM", convertedPsManagedDisk.SecurityProfile.SecurityEncryptionType); + } + + #endregion + + #region Constructor and Internal Object Tests + + [Fact] + public void PSManagedDisk_Constructor_InitializesCorrectly() + { + // Test that the PS constructor properly initializes the internal object + + // Arrange & Act + var psManagedDisk1 = new PSManagedDisk(); + var psManagedDisk2 = new PSManagedDisk( + storageAccountType: Microsoft.Azure.Batch.Common.StorageAccountType.PremiumLrs); + var securityProfile = new PSVMDiskSecurityProfile() + { + SecurityEncryptionType = "VMGuestStateOnly" + }; + var psManagedDisk3 = new PSManagedDisk( + storageAccountType: Microsoft.Azure.Batch.Common.StorageAccountType.StandardSSDLRS, + securityProfile: securityProfile); + + // Assert + Assert.Null(psManagedDisk1.StorageAccountType); + Assert.Null(psManagedDisk1.SecurityProfile); + + Assert.Equal(Microsoft.Azure.Batch.Common.StorageAccountType.PremiumLrs, psManagedDisk2.StorageAccountType); + Assert.Null(psManagedDisk2.SecurityProfile); + + Assert.Equal(Microsoft.Azure.Batch.Common.StorageAccountType.StandardSSDLRS, psManagedDisk3.StorageAccountType); + Assert.NotNull(psManagedDisk3.SecurityProfile); + Assert.Equal("VMGuestStateOnly", psManagedDisk3.SecurityProfile.SecurityEncryptionType); + } + + [Fact] + public void PSManagedDisk_InternalConstructor_ThrowsOnNullOmObject() + { + // Test that the internal constructor validates the omObject parameter + + // Act & Assert + Assert.Throws(() => + new PSManagedDisk((Microsoft.Azure.Batch.ManagedDisk)null)); + } + + [Fact] + public void PSManagedDisk_InternalConstructor_WorksWithValidOmObject() + { + // Test that the internal constructor works with a valid omObject + + // Arrange + var omObject = new Microsoft.Azure.Batch.ManagedDisk( + storageAccountType: Microsoft.Azure.Batch.Common.StorageAccountType.PremiumLrs, + securityProfile: new Microsoft.Azure.Batch.VMDiskSecurityProfile() + { + SecurityEncryptionType = "NonPersistedTPM" + }); + + // Act + var psManagedDisk = new PSManagedDisk(omObject); + + // Assert + Assert.NotNull(psManagedDisk); + Assert.Equal(Microsoft.Azure.Batch.Common.StorageAccountType.PremiumLrs, psManagedDisk.StorageAccountType); + Assert.NotNull(psManagedDisk.SecurityProfile); + Assert.Equal("NonPersistedTPM", psManagedDisk.SecurityProfile.SecurityEncryptionType); + } + + [Fact] + public void PSManagedDisk_PropertySetters_WorkCorrectly() + { + // Test that property setters work correctly + + // Arrange + var psManagedDisk = new PSManagedDisk(); + var securityProfile = new PSVMDiskSecurityProfile() + { + SecurityEncryptionType = "VMGuestStateOnly" + }; + + // Act + psManagedDisk.StorageAccountType = Microsoft.Azure.Batch.Common.StorageAccountType.StandardSSDLRS; + psManagedDisk.SecurityProfile = securityProfile; + + // Assert + Assert.Equal(Microsoft.Azure.Batch.Common.StorageAccountType.StandardSSDLRS, psManagedDisk.StorageAccountType); + Assert.Same(securityProfile, psManagedDisk.SecurityProfile); + } + + #endregion + + #region OS Disk Configuration Tests + + [Fact] + public void ManagedDiskConversions_OSDiskConfiguration_VerifySemantics() + { + // This test validates that the managed disk configurations maintain their OS disk characteristics + // through the conversion process for different VM scenarios + + var osDiskProfiles = new[] + { + new { + Scenario = "High Performance VM", + StorageAccountType = Microsoft.Azure.Batch.Common.StorageAccountType.PremiumLrs, + SecurityEncryptionType = (string)null, + Description = "High-performance VM with Premium SSD OS disk", + UseCases = new[] { "Production workloads", "Database servers", "High-throughput applications" } + }, + new { + Scenario = "Confidential VM", + StorageAccountType = Microsoft.Azure.Batch.Common.StorageAccountType.PremiumLrs, + SecurityEncryptionType = "NonPersistedTPM", + Description = "Confidential VM with Premium SSD and maximum security", + UseCases = new[] { "Sensitive data processing", "Financial applications", "Government workloads" } + }, + new { + Scenario = "Standard Confidential VM", + StorageAccountType = Microsoft.Azure.Batch.Common.StorageAccountType.StandardSSDLRS, + SecurityEncryptionType = "VMGuestStateOnly", + Description = "Standard Confidential VM with balanced performance and security", + UseCases = new[] { "Development environments", "Testing workloads", "General confidential computing" } + }, + new { + Scenario = "Cost-Optimized VM", + StorageAccountType = Microsoft.Azure.Batch.Common.StorageAccountType.StandardLrs, + SecurityEncryptionType = (string)null, + Description = "Cost-optimized VM with Standard HDD OS disk", + UseCases = new[] { "Development machines", "Test environments", "Non-critical workloads" } + } + }; + + foreach (var profile in osDiskProfiles) + { + // Act - Convert to management type and back + var securityProfile = profile.SecurityEncryptionType != null + ? new PSVMDiskSecurityProfile() { SecurityEncryptionType = profile.SecurityEncryptionType } + : null; + + var psManagedDisk = new PSManagedDisk( + storageAccountType: profile.StorageAccountType, + securityProfile: securityProfile); + var mgmtType = psManagedDisk.ToMgmtManagedDisk(); + var roundTripType = PSManagedDisk.FromMgmtManagedDisk(mgmtType); + + // Assert - OS disk characteristics should be preserved + Assert.NotNull(mgmtType); + Assert.NotNull(roundTripType); + Assert.Equal(profile.StorageAccountType, roundTripType.StorageAccountType); + + if (profile.SecurityEncryptionType != null) + { + Assert.NotNull(roundTripType.SecurityProfile); + Assert.Equal(profile.SecurityEncryptionType, roundTripType.SecurityProfile.SecurityEncryptionType); + } + else + { + Assert.Null(roundTripType.SecurityProfile); + } + + // Verify the conversion maintains the semantic meaning + var expectedMgmtValue = profile.StorageAccountType switch + { + Microsoft.Azure.Batch.Common.StorageAccountType.StandardLrs => StorageAccountType.StandardLRS, + Microsoft.Azure.Batch.Common.StorageAccountType.PremiumLrs => StorageAccountType.PremiumLRS, + Microsoft.Azure.Batch.Common.StorageAccountType.StandardSSDLRS => StorageAccountType.StandardSSDLRS, + _ => throw new ArgumentOutOfRangeException() + }; + + Assert.Equal(expectedMgmtValue, mgmtType.StorageAccountType); + } + } + + [Fact] + public void ManagedDiskConversions_BatchPoolIntegration_VerifySemantics() + { + // This test validates the semantic usage in the context of Azure Batch pool OS disk configuration + // ManagedDisk is used for OS disk configuration in virtual machine configurations + + // Standard pool OS disk configuration + var standardPoolDisk = new PSManagedDisk( + storageAccountType: Microsoft.Azure.Batch.Common.StorageAccountType.StandardSSDLRS); + var mgmtStandardPoolDisk = standardPoolDisk.ToMgmtManagedDisk(); + + Assert.NotNull(mgmtStandardPoolDisk); + Assert.Equal(StorageAccountType.StandardSSDLRS, mgmtStandardPoolDisk.StorageAccountType); + Assert.Null(mgmtStandardPoolDisk.SecurityProfile); + // Use case: Balanced performance and cost for general-purpose batch workloads + + // High-performance pool OS disk configuration + var highPerfPoolDisk = new PSManagedDisk( + storageAccountType: Microsoft.Azure.Batch.Common.StorageAccountType.PremiumLrs); + var mgmtHighPerfPoolDisk = highPerfPoolDisk.ToMgmtManagedDisk(); + + Assert.NotNull(mgmtHighPerfPoolDisk); + Assert.Equal(StorageAccountType.PremiumLRS, mgmtHighPerfPoolDisk.StorageAccountType); + Assert.Null(mgmtHighPerfPoolDisk.SecurityProfile); + // Use case: High-performance batch workloads requiring fast OS disk access + + // Confidential computing pool OS disk configuration + var confidentialSecurityProfile = new PSVMDiskSecurityProfile() + { + SecurityEncryptionType = "NonPersistedTPM" + }; + var confidentialPoolDisk = new PSManagedDisk( + storageAccountType: Microsoft.Azure.Batch.Common.StorageAccountType.PremiumLrs, + securityProfile: confidentialSecurityProfile); + var mgmtConfidentialPoolDisk = confidentialPoolDisk.ToMgmtManagedDisk(); + + Assert.NotNull(mgmtConfidentialPoolDisk); + Assert.Equal(StorageAccountType.PremiumLRS, mgmtConfidentialPoolDisk.StorageAccountType); + Assert.NotNull(mgmtConfidentialPoolDisk.SecurityProfile); + Assert.Equal("NonPersistedTPM", mgmtConfidentialPoolDisk.SecurityProfile.SecurityEncryptionType); + // Use case: Confidential computing batch workloads with enhanced security requirements + + // Verify all round-trip correctly + var standardRoundTrip = PSManagedDisk.FromMgmtManagedDisk(mgmtStandardPoolDisk); + var highPerfRoundTrip = PSManagedDisk.FromMgmtManagedDisk(mgmtHighPerfPoolDisk); + var confidentialRoundTrip = PSManagedDisk.FromMgmtManagedDisk(mgmtConfidentialPoolDisk); + + Assert.Equal(Microsoft.Azure.Batch.Common.StorageAccountType.StandardSSDLRS, standardRoundTrip.StorageAccountType); + Assert.Equal(Microsoft.Azure.Batch.Common.StorageAccountType.PremiumLrs, highPerfRoundTrip.StorageAccountType); + Assert.Equal(Microsoft.Azure.Batch.Common.StorageAccountType.PremiumLrs, confidentialRoundTrip.StorageAccountType); + Assert.NotNull(confidentialRoundTrip.SecurityProfile); + Assert.Equal("NonPersistedTPM", confidentialRoundTrip.SecurityProfile.SecurityEncryptionType); + } + + #endregion + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Test/Models/PSMountConfigurationTests.cs b/src/Batch/Batch.Test/Models/PSMountConfigurationTests.cs new file mode 100644 index 000000000000..f225fc454a66 --- /dev/null +++ b/src/Batch/Batch.Test/Models/PSMountConfigurationTests.cs @@ -0,0 +1,683 @@ +// ----------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ----------------------------------------------------------------------------- + +using Microsoft.Azure.Commands.Batch.Models; +using Microsoft.Azure.Management.Batch.Models; +using Microsoft.WindowsAzure.Commands.ScenarioTest; +using Xunit; + +namespace Microsoft.Azure.Commands.Batch.Test.ModelsConversions +{ + public class PSMountConfigurationTests + { + #region toMgmtMountConfiguration Tests + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void ToMgmtMountConfiguration_WithNfsConfiguration_ConvertsCorrectly() + { + // Arrange + var psNfsConfig = new PSNfsMountConfiguration( + source: "nfs.example.com:/data", + relativeMountPath: "nfs-data", + mountOptions: "vers=4.1,rsize=1048576"); + var psMountConfig = new PSMountConfiguration(psNfsConfig); + + // Act + var mgmtMountConfig = psMountConfig.toMgmtMountConfiguration(); + + // Assert + Assert.NotNull(mgmtMountConfig); + Assert.NotNull(mgmtMountConfig.NfsMountConfiguration); + Assert.Null(mgmtMountConfig.CifsMountConfiguration); + Assert.Null(mgmtMountConfig.AzureBlobFileSystemConfiguration); + Assert.Null(mgmtMountConfig.AzureFileShareConfiguration); + + Assert.Equal("nfs.example.com:/data", mgmtMountConfig.NfsMountConfiguration.Source); + Assert.Equal("nfs-data", mgmtMountConfig.NfsMountConfiguration.RelativeMountPath); + Assert.Equal("vers=4.1,rsize=1048576", mgmtMountConfig.NfsMountConfiguration.MountOptions); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void ToMgmtMountConfiguration_WithCifsConfiguration_ConvertsCorrectly() + { + // Arrange + var psCifsConfig = new PSCifsMountConfiguration( + username: "testuser", + password: "testpass", + source: "//server.example.com/share", + relativeMountPath: "cifs-data", + mountOptions: "vers=3.0"); + var psMountConfig = new PSMountConfiguration(psCifsConfig); + + // Act + var mgmtMountConfig = psMountConfig.toMgmtMountConfiguration(); + + // Assert + Assert.NotNull(mgmtMountConfig); + Assert.NotNull(mgmtMountConfig.CifsMountConfiguration); + Assert.Null(mgmtMountConfig.NfsMountConfiguration); + Assert.Null(mgmtMountConfig.AzureBlobFileSystemConfiguration); + Assert.Null(mgmtMountConfig.AzureFileShareConfiguration); + + Assert.Equal("testuser", mgmtMountConfig.CifsMountConfiguration.UserName); + Assert.Equal("testpass", mgmtMountConfig.CifsMountConfiguration.Password); + Assert.Equal("//server.example.com/share", mgmtMountConfig.CifsMountConfiguration.Source); + Assert.Equal("cifs-data", mgmtMountConfig.CifsMountConfiguration.RelativeMountPath); + Assert.Equal("vers=3.0", mgmtMountConfig.CifsMountConfiguration.MountOptions); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void ToMgmtMountConfiguration_WithAzureBlobFileSystemConfiguration_ConvertsCorrectly() + { + // Arrange + var identityResourceId = "/subscriptions/test-sub/resourceGroups/test-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/test-identity"; + var psIdentityRef = new PSComputeNodeIdentityReference { ResourceId = identityResourceId }; + var psBlobConfig = new PSAzureBlobFileSystemConfiguration( + accountName: "teststorageaccount", + containerName: "testcontainer", + relativeMountPath: "blob-data", + identityReference: psIdentityRef, + blobfuseOptions: "-o allow_other"); + var psMountConfig = new PSMountConfiguration(psBlobConfig); + + // Act + var mgmtMountConfig = psMountConfig.toMgmtMountConfiguration(); + + // Assert + Assert.NotNull(mgmtMountConfig); + Assert.NotNull(mgmtMountConfig.AzureBlobFileSystemConfiguration); + Assert.Null(mgmtMountConfig.NfsMountConfiguration); + Assert.Null(mgmtMountConfig.CifsMountConfiguration); + Assert.Null(mgmtMountConfig.AzureFileShareConfiguration); + + Assert.Equal("teststorageaccount", mgmtMountConfig.AzureBlobFileSystemConfiguration.AccountName); + Assert.Equal("testcontainer", mgmtMountConfig.AzureBlobFileSystemConfiguration.ContainerName); + Assert.Equal("blob-data", mgmtMountConfig.AzureBlobFileSystemConfiguration.RelativeMountPath); + Assert.Equal("-o allow_other", mgmtMountConfig.AzureBlobFileSystemConfiguration.BlobfuseOptions); + Assert.NotNull(mgmtMountConfig.AzureBlobFileSystemConfiguration.IdentityReference); + Assert.Equal(identityResourceId, mgmtMountConfig.AzureBlobFileSystemConfiguration.IdentityReference.ResourceId); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void ToMgmtMountConfiguration_WithAzureFileShareConfiguration_ConvertsCorrectly() + { + // Arrange + var psFileShareConfig = new PSAzureFileShareConfiguration( + accountName: "teststorageaccount", + azureFileUrl: "https://teststorageaccount.file.core.windows.net/", + relativeMountPath: "file-share-data", + accountKey: "testaccountkey123==", + mountOptions: "-o uid=1000,gid=1000"); + var psMountConfig = new PSMountConfiguration(psFileShareConfig); + + // Act + var mgmtMountConfig = psMountConfig.toMgmtMountConfiguration(); + + // Assert + Assert.NotNull(mgmtMountConfig); + Assert.NotNull(mgmtMountConfig.AzureFileShareConfiguration); + Assert.Null(mgmtMountConfig.NfsMountConfiguration); + Assert.Null(mgmtMountConfig.CifsMountConfiguration); + Assert.Null(mgmtMountConfig.AzureBlobFileSystemConfiguration); + + Assert.Equal("teststorageaccount", mgmtMountConfig.AzureFileShareConfiguration.AccountName); + Assert.Equal("https://teststorageaccount.file.core.windows.net/", mgmtMountConfig.AzureFileShareConfiguration.AzureFileUrl); + Assert.Equal("file-share-data", mgmtMountConfig.AzureFileShareConfiguration.RelativeMountPath); + Assert.Equal("testaccountkey123==", mgmtMountConfig.AzureFileShareConfiguration.AccountKey); + Assert.Equal("-o uid=1000,gid=1000", mgmtMountConfig.AzureFileShareConfiguration.MountOptions); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void ToMgmtMountConfiguration_AlwaysCreatesNewInstance() + { + // Arrange + var psNfsConfig = new PSNfsMountConfiguration( + source: "nfs.example.com:/data", + relativeMountPath: "data"); + var psMountConfig = new PSMountConfiguration(psNfsConfig); + + // Act + var mgmtMountConfig1 = psMountConfig.toMgmtMountConfiguration(); + var mgmtMountConfig2 = psMountConfig.toMgmtMountConfiguration(); + + // Assert + Assert.NotNull(mgmtMountConfig1); + Assert.NotNull(mgmtMountConfig2); + Assert.NotSame(mgmtMountConfig1, mgmtMountConfig2); + Assert.Equal(mgmtMountConfig1.NfsMountConfiguration.Source, mgmtMountConfig2.NfsMountConfiguration.Source); + } + + #endregion + + #region fromMgmtMountConfiguration Tests + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void FromMgmtMountConfiguration_WithNull_ReturnsNull() + { + // Act + var result = PSMountConfiguration.fromMgmtMountConfiguration(null); + + // Assert + Assert.Null(result); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void FromMgmtMountConfiguration_WithNfsConfiguration_ConvertsCorrectly() + { + // Arrange + var mgmtNfsConfig = new NFSMountConfiguration( + source: "nfs.example.com:/data", + relativeMountPath: "nfs-data", + mountOptions: "vers=4.1,rsize=1048576"); + var mgmtMountConfig = new MountConfiguration(nfsMountConfiguration: mgmtNfsConfig); + + // Act + var psMountConfig = PSMountConfiguration.fromMgmtMountConfiguration(mgmtMountConfig); + + // Assert + Assert.NotNull(psMountConfig); + Assert.NotNull(psMountConfig.NfsMountConfiguration); + Assert.Null(psMountConfig.CifsMountConfiguration); + Assert.Null(psMountConfig.AzureBlobFileSystemConfiguration); + Assert.Null(psMountConfig.AzureFileShareConfiguration); + + Assert.Equal("nfs.example.com:/data", psMountConfig.NfsMountConfiguration.Source); + Assert.Equal("nfs-data", psMountConfig.NfsMountConfiguration.RelativeMountPath); + Assert.Equal("vers=4.1,rsize=1048576", psMountConfig.NfsMountConfiguration.MountOptions); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void FromMgmtMountConfiguration_WithCifsConfiguration_ConvertsCorrectly() + { + // Arrange + var mgmtCifsConfig = new CifsMountConfiguration( + userName: "testuser", + source: "//server.example.com/share", + relativeMountPath: "cifs-data", + password: "testpass", + mountOptions: "vers=3.0"); + var mgmtMountConfig = new MountConfiguration(cifsMountConfiguration: mgmtCifsConfig); + + // Act + var psMountConfig = PSMountConfiguration.fromMgmtMountConfiguration(mgmtMountConfig); + + // Assert + Assert.NotNull(psMountConfig); + Assert.NotNull(psMountConfig.CifsMountConfiguration); + Assert.Null(psMountConfig.NfsMountConfiguration); + Assert.Null(psMountConfig.AzureBlobFileSystemConfiguration); + Assert.Null(psMountConfig.AzureFileShareConfiguration); + + Assert.Equal("testuser", psMountConfig.CifsMountConfiguration.Username); + Assert.Equal("testpass", psMountConfig.CifsMountConfiguration.Password); + Assert.Equal("//server.example.com/share", psMountConfig.CifsMountConfiguration.Source); + Assert.Equal("cifs-data", psMountConfig.CifsMountConfiguration.RelativeMountPath); + Assert.Equal("vers=3.0", psMountConfig.CifsMountConfiguration.MountOptions); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void FromMgmtMountConfiguration_WithAzureBlobFileSystemConfiguration_ConvertsCorrectly() + { + // Arrange + var identityResourceId = "/subscriptions/test-sub/resourceGroups/test-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/test-identity"; + var mgmtIdentityRef = new ComputeNodeIdentityReference { ResourceId = identityResourceId }; + var mgmtBlobConfig = new AzureBlobFileSystemConfiguration( + accountName: "teststorageaccount", + containerName: "testcontainer", + relativeMountPath: "blob-data", + identityReference: mgmtIdentityRef, + blobfuseOptions: "-o allow_other"); + var mgmtMountConfig = new MountConfiguration(azureBlobFileSystemConfiguration: mgmtBlobConfig); + + // Act + var psMountConfig = PSMountConfiguration.fromMgmtMountConfiguration(mgmtMountConfig); + + // Assert + Assert.NotNull(psMountConfig); + Assert.NotNull(psMountConfig.AzureBlobFileSystemConfiguration); + Assert.Null(psMountConfig.NfsMountConfiguration); + Assert.Null(psMountConfig.CifsMountConfiguration); + Assert.Null(psMountConfig.AzureFileShareConfiguration); + + Assert.Equal("teststorageaccount", psMountConfig.AzureBlobFileSystemConfiguration.AccountName); + Assert.Equal("testcontainer", psMountConfig.AzureBlobFileSystemConfiguration.ContainerName); + Assert.Equal("blob-data", psMountConfig.AzureBlobFileSystemConfiguration.RelativeMountPath); + Assert.Equal("-o allow_other", psMountConfig.AzureBlobFileSystemConfiguration.BlobfuseOptions); + Assert.NotNull(psMountConfig.AzureBlobFileSystemConfiguration.IdentityReference); + Assert.Equal(identityResourceId, psMountConfig.AzureBlobFileSystemConfiguration.IdentityReference.ResourceId); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void FromMgmtMountConfiguration_WithAzureFileShareConfiguration_ConvertsCorrectly() + { + // Arrange + var mgmtFileShareConfig = new AzureFileShareConfiguration( + accountName: "teststorageaccount", + azureFileUrl: "https://teststorageaccount.file.core.windows.net/", + accountKey: "testaccountkey123==", + relativeMountPath: "file-share-data", + mountOptions: "-o uid=1000,gid=1000"); + var mgmtMountConfig = new MountConfiguration(azureFileShareConfiguration: mgmtFileShareConfig); + + // Act + var psMountConfig = PSMountConfiguration.fromMgmtMountConfiguration(mgmtMountConfig); + + // Assert + Assert.NotNull(psMountConfig); + Assert.NotNull(psMountConfig.AzureFileShareConfiguration); + Assert.Null(psMountConfig.NfsMountConfiguration); + Assert.Null(psMountConfig.CifsMountConfiguration); + Assert.Null(psMountConfig.AzureBlobFileSystemConfiguration); + + Assert.Equal("teststorageaccount", psMountConfig.AzureFileShareConfiguration.AccountName); + Assert.Equal("https://teststorageaccount.file.core.windows.net/", psMountConfig.AzureFileShareConfiguration.AzureFileUrl); + Assert.Equal("file-share-data", psMountConfig.AzureFileShareConfiguration.RelativeMountPath); + Assert.Equal("testaccountkey123==", psMountConfig.AzureFileShareConfiguration.AccountKey); + Assert.Equal("-o uid=1000,gid=1000", psMountConfig.AzureFileShareConfiguration.MountOptions); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void FromMgmtMountConfiguration_WithAllNullConfigurations_ReturnsNull() + { + // Arrange + var mgmtMountConfig = new MountConfiguration(); + + // Act + var psMountConfig = PSMountConfiguration.fromMgmtMountConfiguration(mgmtMountConfig); + + // Assert + Assert.Null(psMountConfig); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void FromMgmtMountConfiguration_WithMultipleConfigurations_ReturnsFirstNonNull() + { + // Arrange - Test priority: NFS > CIFS > AzureBlob > AzureFileShare + var mgmtNfsConfig = new NFSMountConfiguration( + source: "nfs.example.com:/data", + relativeMountPath: "nfs-data"); + var mgmtCifsConfig = new CifsMountConfiguration( + userName: "testuser", + source: "//server.example.com/share", + relativeMountPath: "cifs-data", + password: "testpass"); + var mgmtMountConfig = new MountConfiguration( + nfsMountConfiguration: mgmtNfsConfig, + cifsMountConfiguration: mgmtCifsConfig); + + // Act + var psMountConfig = PSMountConfiguration.fromMgmtMountConfiguration(mgmtMountConfig); + + // Assert - Should return NFS configuration (first priority) + Assert.NotNull(psMountConfig); + Assert.NotNull(psMountConfig.NfsMountConfiguration); + Assert.Null(psMountConfig.CifsMountConfiguration); + Assert.Equal("nfs.example.com:/data", psMountConfig.NfsMountConfiguration.Source); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void FromMgmtMountConfiguration_StaticMethod_DoesNotRequireInstance() + { + // Arrange + var mgmtNfsConfig = new NFSMountConfiguration( + source: "nfs.test.com:/data", + relativeMountPath: "test-data"); + var mgmtMountConfig = new MountConfiguration(nfsMountConfiguration: mgmtNfsConfig); + + // Act - Call static method directly on class + var psMountConfig = PSMountConfiguration.fromMgmtMountConfiguration(mgmtMountConfig); + + // Assert + Assert.NotNull(psMountConfig); + Assert.NotNull(psMountConfig.NfsMountConfiguration); + Assert.Equal("nfs.test.com:/data", psMountConfig.NfsMountConfiguration.Source); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void FromMgmtMountConfiguration_AlwaysCreatesNewInstance() + { + // Arrange + var mgmtNfsConfig = new NFSMountConfiguration( + source: "nfs.example.com:/data", + relativeMountPath: "data"); + var mgmtMountConfig = new MountConfiguration(nfsMountConfiguration: mgmtNfsConfig); + + // Act + var psMountConfig1 = PSMountConfiguration.fromMgmtMountConfiguration(mgmtMountConfig); + var psMountConfig2 = PSMountConfiguration.fromMgmtMountConfiguration(mgmtMountConfig); + + // Assert + Assert.NotNull(psMountConfig1); + Assert.NotNull(psMountConfig2); + Assert.NotSame(psMountConfig1, psMountConfig2); + Assert.Equal(psMountConfig1.NfsMountConfiguration.Source, psMountConfig2.NfsMountConfiguration.Source); + } + + #endregion + + #region Round-trip Conversion Tests + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesNfsConfiguration() + { + // Arrange + var originalPsNfsConfig = new PSNfsMountConfiguration( + source: "nfs.example.com:/data", + relativeMountPath: "nfs-data", + mountOptions: "vers=4.1,rsize=1048576"); + var originalPsMountConfig = new PSMountConfiguration(originalPsNfsConfig); + + // Act + var mgmtMountConfig = originalPsMountConfig.toMgmtMountConfiguration(); + var roundTripPsMountConfig = PSMountConfiguration.fromMgmtMountConfiguration(mgmtMountConfig); + + // Assert + Assert.NotNull(roundTripPsMountConfig); + Assert.NotNull(roundTripPsMountConfig.NfsMountConfiguration); + Assert.Equal(originalPsNfsConfig.Source, roundTripPsMountConfig.NfsMountConfiguration.Source); + Assert.Equal(originalPsNfsConfig.RelativeMountPath, roundTripPsMountConfig.NfsMountConfiguration.RelativeMountPath); + Assert.Equal(originalPsNfsConfig.MountOptions, roundTripPsMountConfig.NfsMountConfiguration.MountOptions); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesCifsConfiguration() + { + // Arrange + var originalPsCifsConfig = new PSCifsMountConfiguration( + username: "testuser", + password: "testpass", + source: "//server.example.com/share", + relativeMountPath: "cifs-data", + mountOptions: "vers=3.0"); + var originalPsMountConfig = new PSMountConfiguration(originalPsCifsConfig); + + // Act + var mgmtMountConfig = originalPsMountConfig.toMgmtMountConfiguration(); + var roundTripPsMountConfig = PSMountConfiguration.fromMgmtMountConfiguration(mgmtMountConfig); + + // Assert + Assert.NotNull(roundTripPsMountConfig); + Assert.NotNull(roundTripPsMountConfig.CifsMountConfiguration); + Assert.Equal(originalPsCifsConfig.Username, roundTripPsMountConfig.CifsMountConfiguration.Username); + Assert.Equal(originalPsCifsConfig.Password, roundTripPsMountConfig.CifsMountConfiguration.Password); + Assert.Equal(originalPsCifsConfig.Source, roundTripPsMountConfig.CifsMountConfiguration.Source); + Assert.Equal(originalPsCifsConfig.RelativeMountPath, roundTripPsMountConfig.CifsMountConfiguration.RelativeMountPath); + Assert.Equal(originalPsCifsConfig.MountOptions, roundTripPsMountConfig.CifsMountConfiguration.MountOptions); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void RoundTripConversion_FromMgmtAndToMgmt_PreservesAllProperties() + { + // Arrange + var originalMgmtNfsConfig = new NFSMountConfiguration( + source: "nfs.example.com:/data", + relativeMountPath: "nfs-data", + mountOptions: "vers=4.1"); + var originalMgmtMountConfig = new MountConfiguration(nfsMountConfiguration: originalMgmtNfsConfig); + + // Act + var psMountConfig = PSMountConfiguration.fromMgmtMountConfiguration(originalMgmtMountConfig); + var roundTripMgmtMountConfig = psMountConfig.toMgmtMountConfiguration(); + + // Assert + Assert.NotNull(roundTripMgmtMountConfig); + Assert.NotNull(roundTripMgmtMountConfig.NfsMountConfiguration); + Assert.Equal(originalMgmtNfsConfig.Source, roundTripMgmtMountConfig.NfsMountConfiguration.Source); + Assert.Equal(originalMgmtNfsConfig.RelativeMountPath, roundTripMgmtMountConfig.NfsMountConfiguration.RelativeMountPath); + Assert.Equal(originalMgmtNfsConfig.MountOptions, roundTripMgmtMountConfig.NfsMountConfiguration.MountOptions); + } + + #endregion + + #region Integration Tests + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void MountConfigurationConversions_BothDirections_MaintainSemanticEquivalence() + { + // This test ensures that the semantic meaning is preserved across conversions for Azure Batch mount configurations + + // Test various mount configuration scenarios + var mountScenarios = new[] + { + new { + Type = "NFS", + Source = "nfs.example.com:/shared/data", + RelativeMountPath = "shared-data", + Options = "vers=4.1,rsize=1048576,wsize=1048576,hard,intr", + Description = "High-performance NFS v4.1 mount for shared data access" + }, + new { + Type = "CIFS", + Source = "//fileserver.corp.com/department-data", + RelativeMountPath = "department-data", + Options = "vers=3.0,uid=1000,gid=1000", + Description = "Corporate CIFS share for department data" + } + }; + + foreach (var scenario in mountScenarios) + { + PSMountConfiguration psMountConfig = null; + MountConfiguration mgmtMountConfig = null; + + if (scenario.Type == "NFS") + { + var psNfsConfig = new PSNfsMountConfiguration( + source: scenario.Source, + relativeMountPath: scenario.RelativeMountPath, + mountOptions: scenario.Options); + psMountConfig = new PSMountConfiguration(psNfsConfig); + + var mgmtNfsConfig = new NFSMountConfiguration( + source: scenario.Source, + relativeMountPath: scenario.RelativeMountPath, + mountOptions: scenario.Options); + mgmtMountConfig = new MountConfiguration(nfsMountConfiguration: mgmtNfsConfig); + } + else if (scenario.Type == "CIFS") + { + var psCifsConfig = new PSCifsMountConfiguration( + username: "testuser", + password: "testpass", + source: scenario.Source, + relativeMountPath: scenario.RelativeMountPath, + mountOptions: scenario.Options); + psMountConfig = new PSMountConfiguration(psCifsConfig); + + var mgmtCifsConfig = new CifsMountConfiguration( + userName: "testuser", + source: scenario.Source, + relativeMountPath: scenario.RelativeMountPath, + password: "testpass", + mountOptions: scenario.Options); + mgmtMountConfig = new MountConfiguration(cifsMountConfiguration: mgmtCifsConfig); + } + + // Act - PS to Management conversion + var mgmtResult = psMountConfig.toMgmtMountConfiguration(); + var backToPs = PSMountConfiguration.fromMgmtMountConfiguration(mgmtResult); + + // Assert - Verify semantic equivalence + Assert.NotNull(mgmtResult); + Assert.NotNull(backToPs); + + // Act - Management to PS conversion + var psResult = PSMountConfiguration.fromMgmtMountConfiguration(mgmtMountConfig); + var backToMgmt = psResult.toMgmtMountConfiguration(); + + // Assert - Verify semantic equivalence in reverse direction + Assert.NotNull(psResult); + Assert.NotNull(backToMgmt); + + if (scenario.Type == "NFS") + { + Assert.NotNull(backToPs.NfsMountConfiguration); + Assert.Equal(scenario.Source, backToPs.NfsMountConfiguration.Source); + Assert.Equal(scenario.RelativeMountPath, backToPs.NfsMountConfiguration.RelativeMountPath); + Assert.Equal(scenario.Options, backToPs.NfsMountConfiguration.MountOptions); + + Assert.NotNull(psResult.NfsMountConfiguration); + Assert.Equal(scenario.Source, psResult.NfsMountConfiguration.Source); + Assert.Equal(scenario.RelativeMountPath, psResult.NfsMountConfiguration.RelativeMountPath); + Assert.Equal(scenario.Options, psResult.NfsMountConfiguration.MountOptions); + } + else if (scenario.Type == "CIFS") + { + Assert.NotNull(backToPs.CifsMountConfiguration); + Assert.Equal(scenario.Source, backToPs.CifsMountConfiguration.Source); + Assert.Equal(scenario.RelativeMountPath, backToPs.CifsMountConfiguration.RelativeMountPath); + Assert.Equal(scenario.Options, backToPs.CifsMountConfiguration.MountOptions); + + Assert.NotNull(psResult.CifsMountConfiguration); + Assert.Equal(scenario.Source, psResult.CifsMountConfiguration.Source); + Assert.Equal(scenario.RelativeMountPath, psResult.CifsMountConfiguration.RelativeMountPath); + Assert.Equal(scenario.Options, psResult.CifsMountConfiguration.MountOptions); + } + } + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void MountConfigurationConversions_BatchPoolContext_VerifyCorrectUsage() + { + // This test validates the conversions work correctly in the context of Azure Batch pool mount configuration + // MountConfiguration is used to mount file systems on Batch compute nodes for distributed storage access + + // Arrange - Test realistic Batch pool mount scenarios + var batchScenarios = new PSMountConfiguration[] + { + // High-performance computing shared storage + new PSMountConfiguration(new PSNfsMountConfiguration( + source: "hpc-nfs.example.com:/shared/datasets", + relativeMountPath: "datasets", + mountOptions: "vers=4.1,rsize=1048576,wsize=1048576,hard,intr,timeo=600")), + + // Corporate file share for data processing + new PSMountConfiguration(new PSCifsMountConfiguration( + username: "CORP\\batch-svc", + password: "BatchServicePassword123!", + source: "//corporate-storage.corp.com/batch-data", + relativeMountPath: "corporate-data", + mountOptions: "vers=3.0,uid=1000,gid=1000")), + + // Azure Blob storage for temporary scratch space + new PSMountConfiguration(new PSAzureBlobFileSystemConfiguration( + accountName: "batchstorage", + containerName: "scratch", + relativeMountPath: "scratch", + identityReference: new PSComputeNodeIdentityReference + { + ResourceId = "/subscriptions/test/resourceGroups/test/providers/Microsoft.ManagedIdentity/userAssignedIdentities/test" + }, + blobfuseOptions: "-o allow_other")), + + // Azure File Share for persistent storage + new PSMountConfiguration(new PSAzureFileShareConfiguration( + accountName: "batchfiles", + azureFileUrl: "https://batchfiles.file.core.windows.net/", + relativeMountPath: "persistent", + accountKey: "testkey123==", + mountOptions: "-o uid=1000,gid=1000")) + }; + + foreach (var scenario in batchScenarios) + { + // Act + var mgmtMountConfig = scenario.toMgmtMountConfiguration(); + + // Assert - Should convert correctly for Batch pool mount configuration + Assert.NotNull(mgmtMountConfig); + + // Verify round-trip conversion maintains Batch pool semantics + var backToPs = PSMountConfiguration.fromMgmtMountConfiguration(mgmtMountConfig); + Assert.NotNull(backToPs); + + // Verify that only one mount type is set (mutually exclusive) + var mountTypeCount = 0; + if (mgmtMountConfig.NfsMountConfiguration != null) mountTypeCount++; + if (mgmtMountConfig.CifsMountConfiguration != null) mountTypeCount++; + if (mgmtMountConfig.AzureBlobFileSystemConfiguration != null) mountTypeCount++; + if (mgmtMountConfig.AzureFileShareConfiguration != null) mountTypeCount++; + + Assert.Equal(1, mountTypeCount); // Exactly one mount type should be configured + } + } + + #endregion + + #region Performance Tests + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void MountConfigurationConversions_PerformanceTest_ExecutesQuickly() + { + // This test ensures the conversions are efficient with multiple operations + + // Arrange + var psMountConfigs = new PSMountConfiguration[50]; + var mgmtMountConfigs = new MountConfiguration[50]; + + for (int i = 0; i < 50; i++) + { + var psNfsConfig = new PSNfsMountConfiguration( + source: $"nfs{i}.example.com:/data{i}", + relativeMountPath: $"data{i}", + mountOptions: $"vers=4.{i % 2},rsize={1024 * (i + 1)}"); + psMountConfigs[i] = new PSMountConfiguration(psNfsConfig); + + var mgmtNfsConfig = new NFSMountConfiguration( + source: $"mgmt-nfs{i}.example.com:/volume{i}", + relativeMountPath: $"volume{i}", + mountOptions: $"vers=3,timeo={300 + i}"); + mgmtMountConfigs[i] = new MountConfiguration(nfsMountConfiguration: mgmtNfsConfig); + } + + // Act & Assert - Multiple conversions should complete without delay + for (int i = 0; i < 5; i++) + { + foreach (var psMountConfig in psMountConfigs) + { + var mgmtResult = psMountConfig.toMgmtMountConfiguration(); + Assert.NotNull(mgmtResult); + } + + foreach (var mgmtMountConfig in mgmtMountConfigs) + { + var psResult = PSMountConfiguration.fromMgmtMountConfiguration(mgmtMountConfig); + Assert.NotNull(psResult); + } + } + } + + #endregion + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Test/Models/PSNetworkConfigurationTests.cs b/src/Batch/Batch.Test/Models/PSNetworkConfigurationTests.cs new file mode 100644 index 000000000000..68996677ac48 --- /dev/null +++ b/src/Batch/Batch.Test/Models/PSNetworkConfigurationTests.cs @@ -0,0 +1,944 @@ +// ----------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ----------------------------------------------------------------------------- + +using Microsoft.Azure.Commands.Batch.Models; +using Microsoft.Azure.Management.Batch.Models; +using System; +using System.Collections.Generic; +using Xunit; + +namespace Microsoft.Azure.Commands.Batch.Test.ModelsConversions +{ + public class PSNetworkConfigurationTests + { + #region fromMgmtNetworkConfiguration Tests + + [Fact] + public void FromMgmtNetworkConfiguration_WithAllProperties_ReturnsCorrectMapping() + { + // Arrange + var inboundNatPools = new List + { + new InboundNatPool( + name: "ssh-nat-pool", + protocol: InboundEndpointProtocol.TCP, + backendPort: 22, + frontendPortRangeStart: 50000, + frontendPortRangeEnd: 50100) + }; + + var endpointConfiguration = new PoolEndpointConfiguration(inboundNatPools); + + var publicIPAddressConfiguration = new PublicIPAddressConfiguration( + provision: IPAddressProvisioningType.BatchManaged, + ipAddressIds: new List { "/subscriptions/sub1/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/ip1" }); + + var mgmtNetworkConfiguration = new NetworkConfiguration( + subnetId: "/subscriptions/sub1/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet1/subnets/subnet1", + dynamicVnetAssignmentScope: DynamicVNetAssignmentScope.Job, + endpointConfiguration: endpointConfiguration, + publicIPAddressConfiguration: publicIPAddressConfiguration, + enableAcceleratedNetworking: true); + + // Act + var result = PSNetworkConfiguration.fromMgmtNetworkConfiguration(mgmtNetworkConfiguration); + + // Assert + Assert.NotNull(result); + Assert.Equal("/subscriptions/sub1/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet1/subnets/subnet1", result.SubnetId); + Assert.Equal(Microsoft.Azure.Batch.Common.DynamicVNetAssignmentScope.Job, result.DynamicVNetAssignmentScope); + Assert.True(result.EnableAcceleratedNetworking); + Assert.NotNull(result.EndpointConfiguration); + Assert.NotNull(result.PublicIPAddressConfiguration); + Assert.Equal(Microsoft.Azure.Batch.Common.IPAddressProvisioningType.BatchManaged, result.PublicIPAddressConfiguration.Provision); + } + + [Fact] + public void FromMgmtNetworkConfiguration_WithMinimalProperties_ReturnsCorrectMapping() + { + // Arrange + var mgmtNetworkConfiguration = new NetworkConfiguration( + subnetId: "/subscriptions/sub1/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet1/subnets/subnet1"); + + // Act + var result = PSNetworkConfiguration.fromMgmtNetworkConfiguration(mgmtNetworkConfiguration); + + // Assert + Assert.NotNull(result); + Assert.Equal("/subscriptions/sub1/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet1/subnets/subnet1", result.SubnetId); + Assert.Null(result.DynamicVNetAssignmentScope); + Assert.Null(result.EnableAcceleratedNetworking); + Assert.Null(result.EndpointConfiguration); + Assert.Null(result.PublicIPAddressConfiguration); + } + + [Fact] + public void FromMgmtNetworkConfiguration_WithNullInput_ReturnsNull() + { + // Act + var result = PSNetworkConfiguration.fromMgmtNetworkConfiguration(null); + + // Assert + Assert.Null(result); + } + + [Fact] + public void FromMgmtNetworkConfiguration_WithDynamicVNetAssignmentScopeNone_ReturnsCorrectMapping() + { + // Arrange + var mgmtNetworkConfiguration = new NetworkConfiguration( + subnetId: "/subscriptions/sub1/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet1/subnets/subnet1", + dynamicVnetAssignmentScope: DynamicVNetAssignmentScope.None); + + // Act + var result = PSNetworkConfiguration.fromMgmtNetworkConfiguration(mgmtNetworkConfiguration); + + // Assert + Assert.NotNull(result); + Assert.Equal(Microsoft.Azure.Batch.Common.DynamicVNetAssignmentScope.None, result.DynamicVNetAssignmentScope); + } + + [Fact] + public void FromMgmtNetworkConfiguration_WithAcceleratedNetworkingFalse_ReturnsCorrectMapping() + { + // Arrange + var mgmtNetworkConfiguration = new NetworkConfiguration( + subnetId: "/subscriptions/sub1/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet1/subnets/subnet1", + enableAcceleratedNetworking: false); + + // Act + var result = PSNetworkConfiguration.fromMgmtNetworkConfiguration(mgmtNetworkConfiguration); + + // Assert + Assert.NotNull(result); + Assert.False(result.EnableAcceleratedNetworking); + } + + [Fact] + public void FromMgmtNetworkConfiguration_VerifyPSNetworkConfigurationType() + { + // Arrange + var mgmtNetworkConfiguration = new NetworkConfiguration( + subnetId: "/subscriptions/sub1/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet1/subnets/subnet1"); + + // Act + var result = PSNetworkConfiguration.fromMgmtNetworkConfiguration(mgmtNetworkConfiguration); + + // Assert + Assert.NotNull(result); + Assert.IsType(result); + } + + [Theory] + [InlineData(DynamicVNetAssignmentScope.None, Microsoft.Azure.Batch.Common.DynamicVNetAssignmentScope.None)] + [InlineData(DynamicVNetAssignmentScope.Job, Microsoft.Azure.Batch.Common.DynamicVNetAssignmentScope.Job)] + public void FromMgmtNetworkConfiguration_AllDynamicVNetAssignmentScopes_ReturnsCorrectMapping( + DynamicVNetAssignmentScope mgmtScope, + Microsoft.Azure.Batch.Common.DynamicVNetAssignmentScope expectedPsScope) + { + // Arrange + var mgmtNetworkConfiguration = new NetworkConfiguration( + subnetId: "/subscriptions/sub1/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet1/subnets/subnet1", + dynamicVnetAssignmentScope: mgmtScope); + + // Act + var result = PSNetworkConfiguration.fromMgmtNetworkConfiguration(mgmtNetworkConfiguration); + + // Assert + Assert.NotNull(result); + Assert.Equal(expectedPsScope, result.DynamicVNetAssignmentScope); + } + + [Fact] + public void FromMgmtNetworkConfiguration_WithComplexEndpointConfiguration_HandlesCorrectly() + { + // Arrange + var networkSecurityGroupRules = new List + { + new NetworkSecurityGroupRule( + priority: 100, + access: NetworkSecurityGroupRuleAccess.Allow, + sourceAddressPrefix: "10.0.0.0/24", + sourcePortRanges: new List { "22" }) + }; + + var inboundNatPools = new List + { + new InboundNatPool( + name: "ssh-nat-pool", + protocol: InboundEndpointProtocol.TCP, + backendPort: 22, + frontendPortRangeStart: 50000, + frontendPortRangeEnd: 50100, + networkSecurityGroupRules: networkSecurityGroupRules), + new InboundNatPool( + name: "rdp-nat-pool", + protocol: InboundEndpointProtocol.TCP, + backendPort: 3389, + frontendPortRangeStart: 51000, + frontendPortRangeEnd: 51100) + }; + + var endpointConfiguration = new PoolEndpointConfiguration(inboundNatPools); + + var mgmtNetworkConfiguration = new NetworkConfiguration( + subnetId: "/subscriptions/sub1/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet1/subnets/subnet1", + endpointConfiguration: endpointConfiguration); + + // Act + var result = PSNetworkConfiguration.fromMgmtNetworkConfiguration(mgmtNetworkConfiguration); + + // Assert + Assert.NotNull(result); + Assert.NotNull(result.EndpointConfiguration); + Assert.NotNull(result.EndpointConfiguration.InboundNatPools); + Assert.Equal(2, result.EndpointConfiguration.InboundNatPools.Count); + } + + [Fact] + public void FromMgmtNetworkConfiguration_WithComplexPublicIPAddressConfiguration_HandlesCorrectly() + { + // Arrange + var ipAddressIds = new List + { + "/subscriptions/sub1/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/ip1", + "/subscriptions/sub1/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/ip2" + }; + + var publicIPAddressConfiguration = new PublicIPAddressConfiguration( + provision: IPAddressProvisioningType.UserManaged, + ipAddressIds: ipAddressIds); + + var mgmtNetworkConfiguration = new NetworkConfiguration( + subnetId: "/subscriptions/sub1/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet1/subnets/subnet1", + publicIPAddressConfiguration: publicIPAddressConfiguration); + + // Act + var result = PSNetworkConfiguration.fromMgmtNetworkConfiguration(mgmtNetworkConfiguration); + + // Assert + Assert.NotNull(result); + Assert.NotNull(result.PublicIPAddressConfiguration); + Assert.Equal(Microsoft.Azure.Batch.Common.IPAddressProvisioningType.UserManaged, result.PublicIPAddressConfiguration.Provision); + Assert.NotNull(result.PublicIPAddressConfiguration.IpAddressIds); + Assert.Equal(2, result.PublicIPAddressConfiguration.IpAddressIds.Count); + } + + #endregion + + #region toMgmtNetworkConfiguration Tests + + [Fact] + public void ToMgmtNetworkConfiguration_WithAllProperties_ReturnsCorrectMapping() + { + // Arrange + var inboundNatPools = new List + { + new Microsoft.Azure.Batch.InboundNatPool( + name: "ssh-nat-pool", + protocol: Microsoft.Azure.Batch.Common.InboundEndpointProtocol.Tcp, + backendPort: 22, + frontendPortRangeStart: 50000, + frontendPortRangeEnd: 50100) + }; + + var endpointConfiguration = new PSPoolEndpointConfiguration(inboundNatPools); + + var publicIPAddressConfiguration = new PSPublicIPAddressConfiguration( + provision: Microsoft.Azure.Batch.Common.IPAddressProvisioningType.BatchManaged) + { + IpAddressIds = new List { "/subscriptions/sub1/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/ip1" } + }; + + var psNetworkConfiguration = new PSNetworkConfiguration() + { + SubnetId = "/subscriptions/sub1/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet1/subnets/subnet1", + DynamicVNetAssignmentScope = Microsoft.Azure.Batch.Common.DynamicVNetAssignmentScope.Job, + EndpointConfiguration = endpointConfiguration, + PublicIPAddressConfiguration = publicIPAddressConfiguration, + EnableAcceleratedNetworking = true + }; + + // Act + var result = psNetworkConfiguration.toMgmtNetworkConfiguration(); + + // Assert + Assert.NotNull(result); + Assert.Equal("/subscriptions/sub1/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet1/subnets/subnet1", result.SubnetId); + Assert.Equal(DynamicVNetAssignmentScope.Job, result.DynamicVnetAssignmentScope); + Assert.True(result.EnableAcceleratedNetworking); + Assert.NotNull(result.EndpointConfiguration); + Assert.NotNull(result.PublicIPAddressConfiguration); + Assert.Equal(IPAddressProvisioningType.BatchManaged, result.PublicIPAddressConfiguration.Provision); + } + + [Fact] + public void ToMgmtNetworkConfiguration_WithMinimalProperties_ReturnsCorrectMapping() + { + // Arrange + var psNetworkConfiguration = new PSNetworkConfiguration() + { + SubnetId = "/subscriptions/sub1/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet1/subnets/subnet1" + }; + + // Act + var result = psNetworkConfiguration.toMgmtNetworkConfiguration(); + + // Assert + Assert.NotNull(result); + Assert.Equal("/subscriptions/sub1/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet1/subnets/subnet1", result.SubnetId); + Assert.Null(result.DynamicVnetAssignmentScope); + Assert.Null(result.EnableAcceleratedNetworking); + Assert.Null(result.EndpointConfiguration); + Assert.Null(result.PublicIPAddressConfiguration); + } + + [Fact] + public void ToMgmtNetworkConfiguration_WithDynamicVNetAssignmentScopeNone_ReturnsCorrectMapping() + { + // Arrange + var psNetworkConfiguration = new PSNetworkConfiguration() + { + SubnetId = "/subscriptions/sub1/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet1/subnets/subnet1", + DynamicVNetAssignmentScope = Microsoft.Azure.Batch.Common.DynamicVNetAssignmentScope.None + }; + + // Act + var result = psNetworkConfiguration.toMgmtNetworkConfiguration(); + + // Assert + Assert.NotNull(result); + Assert.Equal(DynamicVNetAssignmentScope.None, result.DynamicVnetAssignmentScope); + } + + [Fact] + public void ToMgmtNetworkConfiguration_WithAcceleratedNetworkingFalse_ReturnsCorrectMapping() + { + // Arrange + var psNetworkConfiguration = new PSNetworkConfiguration() + { + SubnetId = "/subscriptions/sub1/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet1/subnets/subnet1", + EnableAcceleratedNetworking = false + }; + + // Act + var result = psNetworkConfiguration.toMgmtNetworkConfiguration(); + + // Assert + Assert.NotNull(result); + Assert.False(result.EnableAcceleratedNetworking); + } + + [Fact] + public void ToMgmtNetworkConfiguration_VerifyNetworkConfigurationType() + { + // Arrange + var psNetworkConfiguration = new PSNetworkConfiguration() + { + SubnetId = "/subscriptions/sub1/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet1/subnets/subnet1" + }; + + // Act + var result = psNetworkConfiguration.toMgmtNetworkConfiguration(); + + // Assert + Assert.NotNull(result); + Assert.IsType(result); + } + + [Theory] + [InlineData(Microsoft.Azure.Batch.Common.DynamicVNetAssignmentScope.None, DynamicVNetAssignmentScope.None)] + [InlineData(Microsoft.Azure.Batch.Common.DynamicVNetAssignmentScope.Job, DynamicVNetAssignmentScope.Job)] + public void ToMgmtNetworkConfiguration_AllDynamicVNetAssignmentScopes_ReturnsCorrectMapping( + Microsoft.Azure.Batch.Common.DynamicVNetAssignmentScope psScope, + DynamicVNetAssignmentScope expectedMgmtScope) + { + // Arrange + var psNetworkConfiguration = new PSNetworkConfiguration() + { + SubnetId = "/subscriptions/sub1/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet1/subnets/subnet1", + DynamicVNetAssignmentScope = psScope + }; + + // Act + var result = psNetworkConfiguration.toMgmtNetworkConfiguration(); + + // Assert + Assert.NotNull(result); + Assert.Equal(expectedMgmtScope, result.DynamicVnetAssignmentScope); + } + + [Fact] + public void ToMgmtNetworkConfiguration_WithComplexEndpointConfiguration_HandlesCorrectly() + { + // Arrange + var networkSecurityGroupRules = new List + { + new Microsoft.Azure.Batch.NetworkSecurityGroupRule( + priority: 100, + access: Microsoft.Azure.Batch.Common.NetworkSecurityGroupRuleAccess.Allow, + sourceAddressPrefix: "10.0.0.0/24", + sourcePortRanges: new List { "22" }) + }; + + var inboundNatPools = new List + { + new Microsoft.Azure.Batch.InboundNatPool( + name: "ssh-nat-pool", + protocol: Microsoft.Azure.Batch.Common.InboundEndpointProtocol.Tcp, + backendPort: 22, + frontendPortRangeStart: 50000, + frontendPortRangeEnd: 50100, + networkSecurityGroupRules: networkSecurityGroupRules), + new Microsoft.Azure.Batch.InboundNatPool( + name: "rdp-nat-pool", + protocol: Microsoft.Azure.Batch.Common.InboundEndpointProtocol.Tcp, + backendPort: 3389, + frontendPortRangeStart: 51000, + frontendPortRangeEnd: 51100) + }; + + var endpointConfiguration = new PSPoolEndpointConfiguration(inboundNatPools); + + var psNetworkConfiguration = new PSNetworkConfiguration() + { + SubnetId = "/subscriptions/sub1/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet1/subnets/subnet1", + EndpointConfiguration = endpointConfiguration + }; + + // Act + var result = psNetworkConfiguration.toMgmtNetworkConfiguration(); + + // Assert + Assert.NotNull(result); + Assert.NotNull(result.EndpointConfiguration); + Assert.NotNull(result.EndpointConfiguration.InboundNatPools); + Assert.Equal(2, result.EndpointConfiguration.InboundNatPools.Count); + } + + [Fact] + public void ToMgmtNetworkConfiguration_WithComplexPublicIPAddressConfiguration_HandlesCorrectly() + { + // Arrange + var ipAddressIds = new List + { + "/subscriptions/sub1/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/ip1", + "/subscriptions/sub1/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/ip2" + }; + + var publicIPAddressConfiguration = new PSPublicIPAddressConfiguration( + provision: Microsoft.Azure.Batch.Common.IPAddressProvisioningType.UserManaged) + { + IpAddressIds = ipAddressIds + }; + + var psNetworkConfiguration = new PSNetworkConfiguration() + { + SubnetId = "/subscriptions/sub1/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet1/subnets/subnet1", + PublicIPAddressConfiguration = publicIPAddressConfiguration + }; + + // Act + var result = psNetworkConfiguration.toMgmtNetworkConfiguration(); + + // Assert + Assert.NotNull(result); + Assert.NotNull(result.PublicIPAddressConfiguration); + Assert.Equal(IPAddressProvisioningType.UserManaged, result.PublicIPAddressConfiguration.Provision); + Assert.NotNull(result.PublicIPAddressConfiguration.IPAddressIds); + Assert.Equal(2, result.PublicIPAddressConfiguration.IPAddressIds.Count); + } + + [Fact] + public void ToMgmtNetworkConfiguration_AlwaysCreatesNewInstance() + { + // Arrange + var psNetworkConfiguration = new PSNetworkConfiguration() + { + SubnetId = "/subscriptions/sub1/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet1/subnets/subnet1", + EnableAcceleratedNetworking = true + }; + + // Act + var result1 = psNetworkConfiguration.toMgmtNetworkConfiguration(); + var result2 = psNetworkConfiguration.toMgmtNetworkConfiguration(); + + // Assert + Assert.NotNull(result1); + Assert.NotNull(result2); + Assert.NotSame(result1, result2); + } + + #endregion + + #region Round-trip Conversion Tests + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesAllProperties() + { + // Arrange + var originalInboundNatPools = new List + { + new Microsoft.Azure.Batch.InboundNatPool( + name: "ssh-nat-pool", + protocol: Microsoft.Azure.Batch.Common.InboundEndpointProtocol.Tcp, + backendPort: 22, + frontendPortRangeStart: 50000, + frontendPortRangeEnd: 50100) + }; + + var originalEndpointConfiguration = new PSPoolEndpointConfiguration(originalInboundNatPools); + + var originalPublicIPAddressConfiguration = new PSPublicIPAddressConfiguration( + provision: Microsoft.Azure.Batch.Common.IPAddressProvisioningType.BatchManaged) + { + IpAddressIds = new List { "/subscriptions/sub1/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/ip1" } + }; + + var originalPsNetworkConfiguration = new PSNetworkConfiguration() + { + SubnetId = "/subscriptions/sub1/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet1/subnets/subnet1", + DynamicVNetAssignmentScope = Microsoft.Azure.Batch.Common.DynamicVNetAssignmentScope.Job, + EndpointConfiguration = originalEndpointConfiguration, + PublicIPAddressConfiguration = originalPublicIPAddressConfiguration, + EnableAcceleratedNetworking = true + }; + + // Act + var mgmtNetworkConfiguration = originalPsNetworkConfiguration.toMgmtNetworkConfiguration(); + var roundTripPsNetworkConfiguration = PSNetworkConfiguration.fromMgmtNetworkConfiguration(mgmtNetworkConfiguration); + + // Assert + Assert.NotNull(roundTripPsNetworkConfiguration); + Assert.Equal(originalPsNetworkConfiguration.SubnetId, roundTripPsNetworkConfiguration.SubnetId); + Assert.Equal(originalPsNetworkConfiguration.DynamicVNetAssignmentScope, roundTripPsNetworkConfiguration.DynamicVNetAssignmentScope); + Assert.Equal(originalPsNetworkConfiguration.EnableAcceleratedNetworking, roundTripPsNetworkConfiguration.EnableAcceleratedNetworking); + Assert.NotNull(roundTripPsNetworkConfiguration.EndpointConfiguration); + Assert.NotNull(roundTripPsNetworkConfiguration.PublicIPAddressConfiguration); + Assert.Equal(originalPsNetworkConfiguration.PublicIPAddressConfiguration.Provision, roundTripPsNetworkConfiguration.PublicIPAddressConfiguration.Provision); + } + + [Fact] + public void RoundTripConversion_FromMgmtAndToMgmt_PreservesAllProperties() + { + // Arrange + var originalInboundNatPools = new List + { + new InboundNatPool( + name: "rdp-nat-pool", + protocol: InboundEndpointProtocol.TCP, + backendPort: 3389, + frontendPortRangeStart: 51000, + frontendPortRangeEnd: 51100) + }; + + var originalEndpointConfiguration = new PoolEndpointConfiguration(originalInboundNatPools); + + var originalPublicIPAddressConfiguration = new PublicIPAddressConfiguration( + provision: IPAddressProvisioningType.UserManaged, + ipAddressIds: new List { "/subscriptions/sub1/resourceGroups/rg1/providers/Microsoft.Network/publicIPAddresses/ip1" }); + + var originalMgmtNetworkConfiguration = new NetworkConfiguration( + subnetId: "/subscriptions/sub1/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet1/subnets/subnet1", + dynamicVnetAssignmentScope: DynamicVNetAssignmentScope.None, + endpointConfiguration: originalEndpointConfiguration, + publicIPAddressConfiguration: originalPublicIPAddressConfiguration, + enableAcceleratedNetworking: false); + + // Act + var psNetworkConfiguration = PSNetworkConfiguration.fromMgmtNetworkConfiguration(originalMgmtNetworkConfiguration); + var roundTripMgmtNetworkConfiguration = psNetworkConfiguration.toMgmtNetworkConfiguration(); + + // Assert + Assert.NotNull(roundTripMgmtNetworkConfiguration); + Assert.Equal(originalMgmtNetworkConfiguration.SubnetId, roundTripMgmtNetworkConfiguration.SubnetId); + Assert.Equal(originalMgmtNetworkConfiguration.DynamicVnetAssignmentScope, roundTripMgmtNetworkConfiguration.DynamicVnetAssignmentScope); + Assert.Equal(originalMgmtNetworkConfiguration.EnableAcceleratedNetworking, roundTripMgmtNetworkConfiguration.EnableAcceleratedNetworking); + Assert.NotNull(roundTripMgmtNetworkConfiguration.EndpointConfiguration); + Assert.NotNull(roundTripMgmtNetworkConfiguration.PublicIPAddressConfiguration); + Assert.Equal(originalMgmtNetworkConfiguration.PublicIPAddressConfiguration.Provision, roundTripMgmtNetworkConfiguration.PublicIPAddressConfiguration.Provision); + } + + [Theory] + [InlineData(Microsoft.Azure.Batch.Common.DynamicVNetAssignmentScope.None)] + [InlineData(Microsoft.Azure.Batch.Common.DynamicVNetAssignmentScope.Job)] + public void RoundTripConversion_AllDynamicVNetAssignmentScopes_PreservesOriginalValues( + Microsoft.Azure.Batch.Common.DynamicVNetAssignmentScope originalScope) + { + // Arrange + var originalPsNetworkConfiguration = new PSNetworkConfiguration() + { + SubnetId = "/subscriptions/sub1/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet1/subnets/subnet1", + DynamicVNetAssignmentScope = originalScope + }; + + // Act + var mgmtNetworkConfiguration = originalPsNetworkConfiguration.toMgmtNetworkConfiguration(); + var roundTripPsNetworkConfiguration = PSNetworkConfiguration.fromMgmtNetworkConfiguration(mgmtNetworkConfiguration); + + // Assert + Assert.NotNull(roundTripPsNetworkConfiguration); + Assert.Equal(originalScope, roundTripPsNetworkConfiguration.DynamicVNetAssignmentScope); + } + + [Fact] + public void RoundTripConversion_WithNullOptionalProperties_PreservesNullValues() + { + // Arrange + var originalPsNetworkConfiguration = new PSNetworkConfiguration() + { + SubnetId = "/subscriptions/sub1/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet1/subnets/subnet1" + }; + + // Act + var mgmtNetworkConfiguration = originalPsNetworkConfiguration.toMgmtNetworkConfiguration(); + var roundTripPsNetworkConfiguration = PSNetworkConfiguration.fromMgmtNetworkConfiguration(mgmtNetworkConfiguration); + + // Assert + Assert.NotNull(roundTripPsNetworkConfiguration); + Assert.Null(roundTripPsNetworkConfiguration.DynamicVNetAssignmentScope); + Assert.Null(roundTripPsNetworkConfiguration.EnableAcceleratedNetworking); + Assert.Null(roundTripPsNetworkConfiguration.EndpointConfiguration); + Assert.Null(roundTripPsNetworkConfiguration.PublicIPAddressConfiguration); + } + + #endregion + + #region Integration Tests + + [Fact] + public void NetworkConfigurationConversions_BothDirections_MaintainSemanticEquivalence() + { + // This test ensures that the semantic meaning is preserved across conversions + + // Test full network configuration with endpoint and public IP configurations + var inboundNatPools = new List + { + new Microsoft.Azure.Batch.InboundNatPool( + name: "ssh-nat-pool", + protocol: Microsoft.Azure.Batch.Common.InboundEndpointProtocol.Tcp, + backendPort: 22, + frontendPortRangeStart: 50000, + frontendPortRangeEnd: 50100) + }; + + var endpointConfiguration = new PSPoolEndpointConfiguration(inboundNatPools); + + var publicIPAddressConfiguration = new PSPublicIPAddressConfiguration( + provision: Microsoft.Azure.Batch.Common.IPAddressProvisioningType.BatchManaged); + + var fullPsNetworkConfig = new PSNetworkConfiguration() + { + SubnetId = "/subscriptions/sub1/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet1/subnets/subnet1", + DynamicVNetAssignmentScope = Microsoft.Azure.Batch.Common.DynamicVNetAssignmentScope.Job, + EndpointConfiguration = endpointConfiguration, + PublicIPAddressConfiguration = publicIPAddressConfiguration, + EnableAcceleratedNetworking = true + }; + + var fullMgmtNetworkConfig = fullPsNetworkConfig.toMgmtNetworkConfiguration(); + var backToPs = PSNetworkConfiguration.fromMgmtNetworkConfiguration(fullMgmtNetworkConfig); + + Assert.Equal(DynamicVNetAssignmentScope.Job, fullMgmtNetworkConfig.DynamicVnetAssignmentScope); + Assert.Equal(Microsoft.Azure.Batch.Common.DynamicVNetAssignmentScope.Job, backToPs.DynamicVNetAssignmentScope); + Assert.True(fullMgmtNetworkConfig.EnableAcceleratedNetworking); + Assert.True(backToPs.EnableAcceleratedNetworking); + Assert.Equal(fullPsNetworkConfig.SubnetId, backToPs.SubnetId); + + // Test minimal network configuration + var minimalPsNetworkConfig = new PSNetworkConfiguration() + { + SubnetId = "/subscriptions/sub1/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet1/subnets/subnet1" + }; + + var minimalMgmtNetworkConfig = minimalPsNetworkConfig.toMgmtNetworkConfiguration(); + var backToPsMinimal = PSNetworkConfiguration.fromMgmtNetworkConfiguration(minimalMgmtNetworkConfig); + + Assert.Equal(minimalPsNetworkConfig.SubnetId, minimalMgmtNetworkConfig.SubnetId); + Assert.Equal(minimalPsNetworkConfig.SubnetId, backToPsMinimal.SubnetId); + Assert.Null(backToPsMinimal.DynamicVNetAssignmentScope); + Assert.Null(backToPsMinimal.EnableAcceleratedNetworking); + } + + [Fact] + public void NetworkConfigurationConversions_NullHandling_WorksCorrectly() + { + // Test null handling in conversions + + // Act + var resultFromNull = PSNetworkConfiguration.fromMgmtNetworkConfiguration(null); + + // Assert + Assert.Null(resultFromNull); + } + + [Fact] + public void NetworkConfigurationConversions_BatchPoolNetworkingContext_VerifyCorrectUsage() + { + // This test validates the conversions work correctly in the context of Batch pool networking configuration + // NetworkConfiguration is used to configure virtual network settings for Azure Batch pools + + // Arrange - Test with realistic Batch pool networking scenarios + var poolNetworkingScenarios = new[] + { + // Basic VNet integration with accelerated networking + new { + SubnetId = "/subscriptions/sub1/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/batch-vnet/subnets/batch-subnet", + DynamicVNetAssignmentScope = Microsoft.Azure.Batch.Common.DynamicVNetAssignmentScope.None, + EnableAcceleratedNetworking = true, + Description = "Basic VNet integration with accelerated networking for high-performance workloads" + }, + // Job-level dynamic VNet assignment for multi-tenant scenarios + new { + SubnetId = "/subscriptions/sub1/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/multi-tenant-vnet/subnets/tenant-subnet", + DynamicVNetAssignmentScope = Microsoft.Azure.Batch.Common.DynamicVNetAssignmentScope.Job, + EnableAcceleratedNetworking = false, + Description = "Job-level dynamic VNet assignment for multi-tenant isolation" + }, + // Private pool with no public IP addresses + new { + SubnetId = "/subscriptions/sub1/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/private-vnet/subnets/private-subnet", + DynamicVNetAssignmentScope = Microsoft.Azure.Batch.Common.DynamicVNetAssignmentScope.None, + EnableAcceleratedNetworking = false, + Description = "Private pool configuration with no public IP addresses" + } + }; + + foreach (var scenario in poolNetworkingScenarios) + { + // Act + var psNetworkConfiguration = new PSNetworkConfiguration() + { + SubnetId = scenario.SubnetId, + DynamicVNetAssignmentScope = scenario.DynamicVNetAssignmentScope, + EnableAcceleratedNetworking = scenario.EnableAcceleratedNetworking + }; + + var mgmtNetworkConfiguration = psNetworkConfiguration.toMgmtNetworkConfiguration(); + + // Assert - Should convert correctly for Batch pool networking configuration + Assert.NotNull(mgmtNetworkConfiguration); + Assert.Equal(scenario.SubnetId, mgmtNetworkConfiguration.SubnetId); + Assert.Equal(scenario.EnableAcceleratedNetworking, mgmtNetworkConfiguration.EnableAcceleratedNetworking); + + var expectedMgmtScope = scenario.DynamicVNetAssignmentScope == Microsoft.Azure.Batch.Common.DynamicVNetAssignmentScope.None + ? DynamicVNetAssignmentScope.None + : DynamicVNetAssignmentScope.Job; + Assert.Equal(expectedMgmtScope, mgmtNetworkConfiguration.DynamicVnetAssignmentScope); + + // Verify round-trip conversion maintains pool networking semantics + var backToPs = PSNetworkConfiguration.fromMgmtNetworkConfiguration(mgmtNetworkConfiguration); + Assert.NotNull(backToPs); + Assert.Equal(scenario.SubnetId, backToPs.SubnetId); + Assert.Equal(scenario.DynamicVNetAssignmentScope, backToPs.DynamicVNetAssignmentScope); + Assert.Equal(scenario.EnableAcceleratedNetworking, backToPs.EnableAcceleratedNetworking); + } + } + + [Fact] + public void NetworkConfigurationConversions_InstanceCreation_VerifyBehavior() + { + // This test verifies that the conversion methods create appropriate instances + + // Arrange + var psPublicIPAddressConfiguration = new PSPublicIPAddressConfiguration( + provision: Microsoft.Azure.Batch.Common.IPAddressProvisioningType.UserManaged); + + var psNetworkConfiguration = new PSNetworkConfiguration() + { + SubnetId = "/subscriptions/sub1/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet1/subnets/subnet1", + PublicIPAddressConfiguration = psPublicIPAddressConfiguration, + EnableAcceleratedNetworking = true + }; + + var mgmtPublicIPAddressConfiguration = new PublicIPAddressConfiguration( + provision: IPAddressProvisioningType.BatchManaged); + + var mgmtNetworkConfiguration = new NetworkConfiguration( + subnetId: "/subscriptions/sub1/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet2/subnets/subnet2", + publicIPAddressConfiguration: mgmtPublicIPAddressConfiguration, + enableAcceleratedNetworking: false); + + // Act + var mgmtResult = psNetworkConfiguration.toMgmtNetworkConfiguration(); + var psResult = PSNetworkConfiguration.fromMgmtNetworkConfiguration(mgmtNetworkConfiguration); + + // Assert - Verify proper instance creation + Assert.NotNull(mgmtResult); + Assert.NotNull(psResult); + Assert.IsType(mgmtResult); + Assert.IsType(psResult); + + // Verify new instances are created + Assert.NotSame(mgmtNetworkConfiguration, mgmtResult); + Assert.NotSame(psNetworkConfiguration, psResult); + } + + #endregion + + #region Edge Case Tests + + [Fact] + public void NetworkConfigurationConversions_TypeSafety_VerifyCorrectTypes() + { + // Test that conversions return the correct types + + // Arrange + var psNetworkConfiguration = new PSNetworkConfiguration() + { + SubnetId = "/subscriptions/sub1/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet1/subnets/subnet1", + EnableAcceleratedNetworking = true + }; + + var mgmtNetworkConfiguration = new NetworkConfiguration( + subnetId: "/subscriptions/sub1/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet2/subnets/subnet2", + enableAcceleratedNetworking: false); + + // Act + var mgmtResult = psNetworkConfiguration.toMgmtNetworkConfiguration(); + var psResult = PSNetworkConfiguration.fromMgmtNetworkConfiguration(mgmtNetworkConfiguration); + + // Assert - Verify correct types are returned + Assert.IsType(mgmtResult); + Assert.IsType(psResult); + } + + [Fact] + public void NetworkConfigurationConversions_SubnetIdValues_HandleValidFormats() + { + // Test that various subnet ID formats are handled correctly + + var subnetIdFormats = new[] + { + "/subscriptions/12345678-1234-1234-1234-123456789abc/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet1/subnets/subnet1", + "/subscriptions/87654321-4321-4321-4321-cba987654321/resourceGroups/batch-rg/providers/Microsoft.Network/virtualNetworks/batch-vnet/subnets/batch-subnet", + "/subscriptions/11111111-2222-3333-4444-555555555555/resourceGroups/test-rg/providers/Microsoft.Network/virtualNetworks/test-vnet/subnets/default" + }; + + foreach (var subnetId in subnetIdFormats) + { + // Arrange + var psNetworkConfiguration = new PSNetworkConfiguration() + { + SubnetId = subnetId + }; + + // Act + var mgmtNetworkConfiguration = psNetworkConfiguration.toMgmtNetworkConfiguration(); + var roundTripPsNetworkConfiguration = PSNetworkConfiguration.fromMgmtNetworkConfiguration(mgmtNetworkConfiguration); + + // Assert + Assert.Equal(subnetId, mgmtNetworkConfiguration.SubnetId); + Assert.Equal(subnetId, roundTripPsNetworkConfiguration.SubnetId); + } + } + + [Fact] + public void NetworkConfigurationConversions_AcceleratedNetworkingValues_HandleAllOptions() + { + // Test that accelerated networking boolean values are handled correctly + + var acceleratedNetworkingValues = new bool?[] { true, false, null }; + + foreach (var acceleratedNetworking in acceleratedNetworkingValues) + { + // Arrange + var psNetworkConfiguration = new PSNetworkConfiguration() + { + SubnetId = "/subscriptions/sub1/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet1/subnets/subnet1", + EnableAcceleratedNetworking = acceleratedNetworking + }; + + // Act + var mgmtNetworkConfiguration = psNetworkConfiguration.toMgmtNetworkConfiguration(); + var roundTripPsNetworkConfiguration = PSNetworkConfiguration.fromMgmtNetworkConfiguration(mgmtNetworkConfiguration); + + // Assert + Assert.Equal(acceleratedNetworking, mgmtNetworkConfiguration.EnableAcceleratedNetworking); + Assert.Equal(acceleratedNetworking, roundTripPsNetworkConfiguration.EnableAcceleratedNetworking); + } + } + + #endregion + + #region Performance Tests + + [Fact] + public void NetworkConfigurationConversions_PerformanceTest_ExecutesQuickly() + { + // This test ensures the conversions are efficient + + // Arrange + var inboundNatPools = new List + { + new Microsoft.Azure.Batch.InboundNatPool( + name: "ssh-nat-pool", + protocol: Microsoft.Azure.Batch.Common.InboundEndpointProtocol.Tcp, + backendPort: 22, + frontendPortRangeStart: 50000, + frontendPortRangeEnd: 50100) + }; + + var endpointConfiguration = new PSPoolEndpointConfiguration(inboundNatPools); + + var publicIPAddressConfiguration = new PSPublicIPAddressConfiguration( + provision: Microsoft.Azure.Batch.Common.IPAddressProvisioningType.BatchManaged); + + var psNetworkConfiguration = new PSNetworkConfiguration() + { + SubnetId = "/subscriptions/sub1/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet1/subnets/subnet1", + DynamicVNetAssignmentScope = Microsoft.Azure.Batch.Common.DynamicVNetAssignmentScope.Job, + EndpointConfiguration = endpointConfiguration, + PublicIPAddressConfiguration = publicIPAddressConfiguration, + EnableAcceleratedNetworking = true + }; + + var mgmtInboundNatPools = new List + { + new InboundNatPool( + name: "rdp-nat-pool", + protocol: InboundEndpointProtocol.TCP, + backendPort: 3389, + frontendPortRangeStart: 51000, + frontendPortRangeEnd: 51100) + }; + + var mgmtEndpointConfiguration = new PoolEndpointConfiguration(mgmtInboundNatPools); + + var mgmtPublicIPAddressConfiguration = new PublicIPAddressConfiguration( + provision: IPAddressProvisioningType.UserManaged); + + var mgmtNetworkConfiguration = new NetworkConfiguration( + subnetId: "/subscriptions/sub1/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet2/subnets/subnet2", + dynamicVnetAssignmentScope: DynamicVNetAssignmentScope.None, + endpointConfiguration: mgmtEndpointConfiguration, + publicIPAddressConfiguration: mgmtPublicIPAddressConfiguration, + enableAcceleratedNetworking: false); + + // Act & Assert - Multiple conversions should complete without delay + for (int i = 0; i < 100; i++) + { + var mgmtResult = psNetworkConfiguration.toMgmtNetworkConfiguration(); + var psResult = PSNetworkConfiguration.fromMgmtNetworkConfiguration(mgmtNetworkConfiguration); + + Assert.NotNull(mgmtResult); + Assert.NotNull(psResult); + Assert.Equal("/subscriptions/sub1/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet1/subnets/subnet1", mgmtResult.SubnetId); + Assert.Equal("/subscriptions/sub1/resourceGroups/rg1/providers/Microsoft.Network/virtualNetworks/vnet2/subnets/subnet2", psResult.SubnetId); + } + } + + #endregion + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Test/Models/PSNetworkSecurityGroupRuleTests.cs b/src/Batch/Batch.Test/Models/PSNetworkSecurityGroupRuleTests.cs new file mode 100644 index 000000000000..69987ba86891 --- /dev/null +++ b/src/Batch/Batch.Test/Models/PSNetworkSecurityGroupRuleTests.cs @@ -0,0 +1,775 @@ +// ----------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ----------------------------------------------------------------------------- + +using Microsoft.Azure.Commands.Batch.Models; +using Microsoft.Azure.Management.Batch.Models; +using System; +using System.Collections.Generic; +using System.Linq; +using Xunit; + +namespace Microsoft.Azure.Commands.Batch.Test.ModelsConversions +{ + public class PSNetworkSecurityGroupRuleTests + { + #region FromMgmtNetworkSecurityGroupRule Tests + + [Fact] + public void FromMgmtNetworkSecurityGroupRule_WithAllProperties_ReturnsCorrectMapping() + { + // Arrange + var sourcePortRanges = new List { "80", "443", "8080-8090" }; + var mgmtRule = new NetworkSecurityGroupRule( + priority: 100, + access: NetworkSecurityGroupRuleAccess.Allow, + sourceAddressPrefix: "10.0.0.0/24", + sourcePortRanges: sourcePortRanges); + + // Act + var result = PSNetworkSecurityGroupRule.FromMgmtNetworkSecurityGroupRule(mgmtRule); + + // Assert + Assert.NotNull(result); + Assert.Equal(100, result.Priority); + Assert.Equal(Microsoft.Azure.Batch.Common.NetworkSecurityGroupRuleAccess.Allow, result.Access); + Assert.Equal("10.0.0.0/24", result.SourceAddressPrefix); + Assert.NotNull(result.SourcePortRanges); + Assert.Equal(3, result.SourcePortRanges.Count); + Assert.Contains("80", result.SourcePortRanges); + Assert.Contains("443", result.SourcePortRanges); + Assert.Contains("8080-8090", result.SourcePortRanges); + } + + [Fact] + public void FromMgmtNetworkSecurityGroupRule_WithDenyAccess_ReturnsCorrectMapping() + { + // Arrange + var mgmtRule = new NetworkSecurityGroupRule( + priority: 200, + access: NetworkSecurityGroupRuleAccess.Deny, + sourceAddressPrefix: "*", + sourcePortRanges: new List { "*" }); + + // Act + var result = PSNetworkSecurityGroupRule.FromMgmtNetworkSecurityGroupRule(mgmtRule); + + // Assert + Assert.NotNull(result); + Assert.Equal(200, result.Priority); + Assert.Equal(Microsoft.Azure.Batch.Common.NetworkSecurityGroupRuleAccess.Deny, result.Access); + Assert.Equal("*", result.SourceAddressPrefix); + Assert.NotNull(result.SourcePortRanges); + Assert.Single(result.SourcePortRanges); + Assert.Contains("*", result.SourcePortRanges); + } + + [Fact] + public void FromMgmtNetworkSecurityGroupRule_WithMinimalProperties_ReturnsCorrectMapping() + { + // Arrange + var mgmtRule = new NetworkSecurityGroupRule( + priority: 150, + access: NetworkSecurityGroupRuleAccess.Allow, + sourceAddressPrefix: "192.168.1.0/24"); + + // Act + var result = PSNetworkSecurityGroupRule.FromMgmtNetworkSecurityGroupRule(mgmtRule); + + // Assert + Assert.NotNull(result); + Assert.Equal(150, result.Priority); + Assert.Equal(Microsoft.Azure.Batch.Common.NetworkSecurityGroupRuleAccess.Allow, result.Access); + Assert.Equal("192.168.1.0/24", result.SourceAddressPrefix); + // SourcePortRanges can be null when not specified + Assert.True(result.SourcePortRanges == null || result.SourcePortRanges.Count == 0); + } + + [Fact] + public void FromMgmtNetworkSecurityGroupRule_WithNullInput_ReturnsNull() + { + // Act + var result = PSNetworkSecurityGroupRule.FromMgmtNetworkSecurityGroupRule(null); + + // Assert + Assert.Null(result); + } + + [Fact] + public void FromMgmtNetworkSecurityGroupRule_WithEmptySourcePortRanges_HandlesCorrectly() + { + // Arrange + var mgmtRule = new NetworkSecurityGroupRule( + priority: 250, + access: NetworkSecurityGroupRuleAccess.Deny, + sourceAddressPrefix: "10.10.10.10", + sourcePortRanges: new List()); + + // Act + var result = PSNetworkSecurityGroupRule.FromMgmtNetworkSecurityGroupRule(mgmtRule); + + // Assert + Assert.NotNull(result); + Assert.Equal(250, result.Priority); + Assert.Equal(Microsoft.Azure.Batch.Common.NetworkSecurityGroupRuleAccess.Deny, result.Access); + Assert.Equal("10.10.10.10", result.SourceAddressPrefix); + Assert.NotNull(result.SourcePortRanges); + Assert.Empty(result.SourcePortRanges); + } + + [Fact] + public void FromMgmtNetworkSecurityGroupRule_VerifyPSNetworkSecurityGroupRuleType() + { + // Arrange + var mgmtRule = new NetworkSecurityGroupRule( + priority: 300, + access: NetworkSecurityGroupRuleAccess.Allow, + sourceAddressPrefix: "172.16.0.0/16"); + + // Act + var result = PSNetworkSecurityGroupRule.FromMgmtNetworkSecurityGroupRule(mgmtRule); + + // Assert + Assert.NotNull(result); + Assert.IsType(result); + } + + [Theory] + [InlineData(NetworkSecurityGroupRuleAccess.Allow, Microsoft.Azure.Batch.Common.NetworkSecurityGroupRuleAccess.Allow)] + [InlineData(NetworkSecurityGroupRuleAccess.Deny, Microsoft.Azure.Batch.Common.NetworkSecurityGroupRuleAccess.Deny)] + public void FromMgmtNetworkSecurityGroupRule_AllAccessTypes_ReturnsCorrectMapping( + NetworkSecurityGroupRuleAccess mgmtAccess, + Microsoft.Azure.Batch.Common.NetworkSecurityGroupRuleAccess expectedPsAccess) + { + // Arrange + var mgmtRule = new NetworkSecurityGroupRule( + priority: 400, + access: mgmtAccess, + sourceAddressPrefix: "203.0.113.0/24"); + + // Act + var result = PSNetworkSecurityGroupRule.FromMgmtNetworkSecurityGroupRule(mgmtRule); + + // Assert + Assert.NotNull(result); + Assert.Equal(expectedPsAccess, result.Access); + } + + [Fact] + public void FromMgmtNetworkSecurityGroupRule_WithComplexPortRanges_HandlesCorrectly() + { + // Arrange + var complexPortRanges = new List + { + "22", + "80", + "443", + "3000-3010", + "8080-8090", + "9000" + }; + var mgmtRule = new NetworkSecurityGroupRule( + priority: 500, + access: NetworkSecurityGroupRuleAccess.Allow, + sourceAddressPrefix: "0.0.0.0/0", + sourcePortRanges: complexPortRanges); + + // Act + var result = PSNetworkSecurityGroupRule.FromMgmtNetworkSecurityGroupRule(mgmtRule); + + // Assert + Assert.NotNull(result); + Assert.NotNull(result.SourcePortRanges); + Assert.Equal(6, result.SourcePortRanges.Count); + Assert.Equal(complexPortRanges, result.SourcePortRanges.ToList()); + } + + #endregion + + #region toMgmtNetworkSecurityGroupRule Tests + + [Fact] + public void ToMgmtNetworkSecurityGroupRule_WithAllProperties_ReturnsCorrectMapping() + { + // Arrange + var sourcePortRanges = new List { "80", "443", "8080-8090" }; + var psRule = new PSNetworkSecurityGroupRule( + priority: 100, + access: Microsoft.Azure.Batch.Common.NetworkSecurityGroupRuleAccess.Allow, + sourceAddressPrefix: "10.0.0.0/24", + sourcePortRanges: sourcePortRanges); + + // Act + var result = psRule.toMgmtNetworkSecurityGroupRule(); + + // Assert + Assert.NotNull(result); + Assert.Equal(100, result.Priority); + Assert.Equal(NetworkSecurityGroupRuleAccess.Allow, result.Access); + Assert.Equal("10.0.0.0/24", result.SourceAddressPrefix); + Assert.NotNull(result.SourcePortRanges); + Assert.Equal(3, result.SourcePortRanges.Count); + Assert.Contains("80", result.SourcePortRanges); + Assert.Contains("443", result.SourcePortRanges); + Assert.Contains("8080-8090", result.SourcePortRanges); + } + + [Fact] + public void ToMgmtNetworkSecurityGroupRule_WithDenyAccess_ReturnsCorrectMapping() + { + // Arrange + var psRule = new PSNetworkSecurityGroupRule( + priority: 200, + access: Microsoft.Azure.Batch.Common.NetworkSecurityGroupRuleAccess.Deny, + sourceAddressPrefix: "*", + sourcePortRanges: new List { "*" }); + + // Act + var result = psRule.toMgmtNetworkSecurityGroupRule(); + + // Assert + Assert.NotNull(result); + Assert.Equal(200, result.Priority); + Assert.Equal(NetworkSecurityGroupRuleAccess.Deny, result.Access); + Assert.Equal("*", result.SourceAddressPrefix); + Assert.NotNull(result.SourcePortRanges); + Assert.Single(result.SourcePortRanges); + Assert.Contains("*", result.SourcePortRanges); + } + + [Fact] + public void ToMgmtNetworkSecurityGroupRule_WithMinimalProperties_ReturnsCorrectMapping() + { + // Arrange + var psRule = new PSNetworkSecurityGroupRule( + priority: 150, + access: Microsoft.Azure.Batch.Common.NetworkSecurityGroupRuleAccess.Allow, + sourceAddressPrefix: "192.168.1.0/24"); + + // Act + var result = psRule.toMgmtNetworkSecurityGroupRule(); + + // Assert + Assert.NotNull(result); + Assert.Equal(150, result.Priority); + Assert.Equal(NetworkSecurityGroupRuleAccess.Allow, result.Access); + Assert.Equal("192.168.1.0/24", result.SourceAddressPrefix); + // SourcePortRanges can be null when not specified + Assert.True(result.SourcePortRanges == null || result.SourcePortRanges.Count == 0); + } + + [Fact] + public void ToMgmtNetworkSecurityGroupRule_VerifyNetworkSecurityGroupRuleType() + { + // Arrange + var psRule = new PSNetworkSecurityGroupRule( + priority: 300, + access: Microsoft.Azure.Batch.Common.NetworkSecurityGroupRuleAccess.Allow, + sourceAddressPrefix: "172.16.0.0/16"); + + // Act + var result = psRule.toMgmtNetworkSecurityGroupRule(); + + // Assert + Assert.NotNull(result); + Assert.IsType(result); + } + + [Theory] + [InlineData(Microsoft.Azure.Batch.Common.NetworkSecurityGroupRuleAccess.Allow, NetworkSecurityGroupRuleAccess.Allow)] + [InlineData(Microsoft.Azure.Batch.Common.NetworkSecurityGroupRuleAccess.Deny, NetworkSecurityGroupRuleAccess.Deny)] + public void ToMgmtNetworkSecurityGroupRule_AllAccessTypes_ReturnsCorrectMapping( + Microsoft.Azure.Batch.Common.NetworkSecurityGroupRuleAccess psAccess, + NetworkSecurityGroupRuleAccess expectedMgmtAccess) + { + // Arrange + var psRule = new PSNetworkSecurityGroupRule( + priority: 400, + access: psAccess, + sourceAddressPrefix: "203.0.113.0/24"); + + // Act + var result = psRule.toMgmtNetworkSecurityGroupRule(); + + // Assert + Assert.NotNull(result); + Assert.Equal(expectedMgmtAccess, result.Access); + } + + [Fact] + public void ToMgmtNetworkSecurityGroupRule_WithComplexPortRanges_HandlesCorrectly() + { + // Arrange + var complexPortRanges = new List + { + "22", + "80", + "443", + "3000-3010", + "8080-8090", + "9000" + }; + var psRule = new PSNetworkSecurityGroupRule( + priority: 500, + access: Microsoft.Azure.Batch.Common.NetworkSecurityGroupRuleAccess.Allow, + sourceAddressPrefix: "0.0.0.0/0", + sourcePortRanges: complexPortRanges); + + // Act + var result = psRule.toMgmtNetworkSecurityGroupRule(); + + // Assert + Assert.NotNull(result); + Assert.NotNull(result.SourcePortRanges); + Assert.Equal(6, result.SourcePortRanges.Count); + Assert.Equal(complexPortRanges, result.SourcePortRanges.ToList()); + } + + [Fact] + public void ToMgmtNetworkSecurityGroupRule_AlwaysCreatesNewInstance() + { + // Arrange + var psRule = new PSNetworkSecurityGroupRule( + priority: 600, + access: Microsoft.Azure.Batch.Common.NetworkSecurityGroupRuleAccess.Deny, + sourceAddressPrefix: "198.51.100.0/24"); + + // Act + var result1 = psRule.toMgmtNetworkSecurityGroupRule(); + var result2 = psRule.toMgmtNetworkSecurityGroupRule(); + + // Assert + Assert.NotNull(result1); + Assert.NotNull(result2); + Assert.NotSame(result1, result2); + } + + #endregion + + #region Round-trip Conversion Tests + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesAllProperties() + { + // Arrange + var originalSourcePortRanges = new List { "80", "443", "8080-8090" }; + var originalPsRule = new PSNetworkSecurityGroupRule( + priority: 100, + access: Microsoft.Azure.Batch.Common.NetworkSecurityGroupRuleAccess.Allow, + sourceAddressPrefix: "10.0.0.0/24", + sourcePortRanges: originalSourcePortRanges); + + // Act + var mgmtRule = originalPsRule.toMgmtNetworkSecurityGroupRule(); + var roundTripPsRule = PSNetworkSecurityGroupRule.FromMgmtNetworkSecurityGroupRule(mgmtRule); + + // Assert + Assert.NotNull(roundTripPsRule); + Assert.Equal(originalPsRule.Priority, roundTripPsRule.Priority); + Assert.Equal(originalPsRule.Access, roundTripPsRule.Access); + Assert.Equal(originalPsRule.SourceAddressPrefix, roundTripPsRule.SourceAddressPrefix); + Assert.Equal(originalPsRule.SourcePortRanges?.Count, roundTripPsRule.SourcePortRanges?.Count); + if (originalPsRule.SourcePortRanges != null && roundTripPsRule.SourcePortRanges != null) + { + Assert.Equal(originalPsRule.SourcePortRanges.ToList(), roundTripPsRule.SourcePortRanges.ToList()); + } + } + + [Fact] + public void RoundTripConversion_FromMgmtAndToMgmt_PreservesAllProperties() + { + // Arrange + var originalSourcePortRanges = new List { "22", "3389", "5000-5010" }; + var originalMgmtRule = new NetworkSecurityGroupRule( + priority: 200, + access: NetworkSecurityGroupRuleAccess.Deny, + sourceAddressPrefix: "172.16.0.0/16", + sourcePortRanges: originalSourcePortRanges); + + // Act + var psRule = new PSNetworkSecurityGroupRule(PSNetworkSecurityGroupRule.FromMgmtNetworkSecurityGroupRule(originalMgmtRule)); + var roundTripMgmtRule = psRule.toMgmtNetworkSecurityGroupRule(); + + // Assert + Assert.NotNull(roundTripMgmtRule); + Assert.Equal(originalMgmtRule.Priority, roundTripMgmtRule.Priority); + Assert.Equal(originalMgmtRule.Access, roundTripMgmtRule.Access); + Assert.Equal(originalMgmtRule.SourceAddressPrefix, roundTripMgmtRule.SourceAddressPrefix); + Assert.Equal(originalMgmtRule.SourcePortRanges?.Count, roundTripMgmtRule.SourcePortRanges?.Count); + if (originalMgmtRule.SourcePortRanges != null && roundTripMgmtRule.SourcePortRanges != null) + { + Assert.Equal(originalMgmtRule.SourcePortRanges.ToList(), roundTripMgmtRule.SourcePortRanges.ToList()); + } + } + + [Theory] + [InlineData(Microsoft.Azure.Batch.Common.NetworkSecurityGroupRuleAccess.Allow)] + [InlineData(Microsoft.Azure.Batch.Common.NetworkSecurityGroupRuleAccess.Deny)] + public void RoundTripConversion_AllAccessTypes_PreservesOriginalValues( + Microsoft.Azure.Batch.Common.NetworkSecurityGroupRuleAccess originalAccess) + { + // Arrange + var originalPsRule = new PSNetworkSecurityGroupRule( + priority: 300, + access: originalAccess, + sourceAddressPrefix: "192.168.0.0/16", + sourcePortRanges: new List { "80", "443" }); + + // Act + var mgmtRule = originalPsRule.toMgmtNetworkSecurityGroupRule(); + var roundTripPsRule = PSNetworkSecurityGroupRule.FromMgmtNetworkSecurityGroupRule(mgmtRule); + + // Assert + Assert.NotNull(roundTripPsRule); + Assert.Equal(originalAccess, roundTripPsRule.Access); + } + + [Fact] + public void RoundTripConversion_WithNullSourcePortRanges_PreservesNullValue() + { + // Arrange + var originalPsRule = new PSNetworkSecurityGroupRule( + priority: 400, + access: Microsoft.Azure.Batch.Common.NetworkSecurityGroupRuleAccess.Allow, + sourceAddressPrefix: "203.0.113.0/24"); + + // Act + var mgmtRule = originalPsRule.toMgmtNetworkSecurityGroupRule(); + var roundTripPsRule = PSNetworkSecurityGroupRule.FromMgmtNetworkSecurityGroupRule(mgmtRule); + + // Assert + Assert.NotNull(roundTripPsRule); + Assert.True(roundTripPsRule.SourcePortRanges == null || roundTripPsRule.SourcePortRanges.Count == 0); + } + + #endregion + + #region Integration Tests + + [Fact] + public void NetworkSecurityGroupRuleConversions_BothDirections_MaintainSemanticEquivalence() + { + // This test ensures that the semantic meaning is preserved across conversions + + // Test Allow rule with specific port ranges + var allowPsRule = new PSNetworkSecurityGroupRule( + priority: 100, + access: Microsoft.Azure.Batch.Common.NetworkSecurityGroupRuleAccess.Allow, + sourceAddressPrefix: "10.0.0.0/8", + sourcePortRanges: new List { "80", "443" }); + + var allowMgmtRule = allowPsRule.toMgmtNetworkSecurityGroupRule(); + var backToPs = PSNetworkSecurityGroupRule.FromMgmtNetworkSecurityGroupRule(allowMgmtRule); + + Assert.Equal(NetworkSecurityGroupRuleAccess.Allow, allowMgmtRule.Access); + Assert.Equal(Microsoft.Azure.Batch.Common.NetworkSecurityGroupRuleAccess.Allow, backToPs.Access); + Assert.Equal(allowPsRule.Priority, backToPs.Priority); + Assert.Equal(allowPsRule.SourceAddressPrefix, backToPs.SourceAddressPrefix); + + // Test Deny rule with wildcard + var denyPsRule = new PSNetworkSecurityGroupRule( + priority: 200, + access: Microsoft.Azure.Batch.Common.NetworkSecurityGroupRuleAccess.Deny, + sourceAddressPrefix: "*", + sourcePortRanges: new List { "*" }); + + var denyMgmtRule = denyPsRule.toMgmtNetworkSecurityGroupRule(); + var backToPsDeny = PSNetworkSecurityGroupRule.FromMgmtNetworkSecurityGroupRule(denyMgmtRule); + + Assert.Equal(NetworkSecurityGroupRuleAccess.Deny, denyMgmtRule.Access); + Assert.Equal(Microsoft.Azure.Batch.Common.NetworkSecurityGroupRuleAccess.Deny, backToPsDeny.Access); + Assert.Equal(denyPsRule.Priority, backToPsDeny.Priority); + Assert.Equal(denyPsRule.SourceAddressPrefix, backToPsDeny.SourceAddressPrefix); + } + + [Fact] + public void NetworkSecurityGroupRuleConversions_NullHandling_WorksCorrectly() + { + // Test null handling in conversions + + // Act + var resultFromNull = PSNetworkSecurityGroupRule.FromMgmtNetworkSecurityGroupRule(null); + + // Assert + Assert.Null(resultFromNull); + } + + [Fact] + public void NetworkSecurityGroupRuleConversions_BatchNetworkSecurityContext_VerifyCorrectUsage() + { + // This test validates the conversions work correctly in the context of Batch network security configuration + // NetworkSecurityGroupRule is used to configure inbound endpoint security in Azure Batch + + // Arrange - Test with realistic Batch network security scenarios + var networkSecurityScenarios = new[] + { + // SSH access for Linux compute nodes + new { + Priority = 100, + Access = Microsoft.Azure.Batch.Common.NetworkSecurityGroupRuleAccess.Allow, + SourceAddressPrefix = "203.0.113.0/24", + SourcePortRanges = new List { "22" }, + Description = "Allow SSH access from specific subnet" + }, + // RDP access for Windows compute nodes + new { + Priority = 110, + Access = Microsoft.Azure.Batch.Common.NetworkSecurityGroupRuleAccess.Allow, + SourceAddressPrefix = "198.51.100.0/24", + SourcePortRanges = new List { "3389" }, + Description = "Allow RDP access from management subnet" + }, + // Web application ports + new { + Priority = 200, + Access = Microsoft.Azure.Batch.Common.NetworkSecurityGroupRuleAccess.Allow, + SourceAddressPrefix = "0.0.0.0/0", + SourcePortRanges = new List { "80", "443", "8080-8090" }, + Description = "Allow web traffic from internet" + }, + // Deny all other traffic + new { + Priority = 4000, + Access = Microsoft.Azure.Batch.Common.NetworkSecurityGroupRuleAccess.Deny, + SourceAddressPrefix = "*", + SourcePortRanges = new List { "*" }, + Description = "Deny all other traffic (default deny)" + } + }; + + foreach (var scenario in networkSecurityScenarios) + { + // Act + var psRule = new PSNetworkSecurityGroupRule( + priority: scenario.Priority, + access: scenario.Access, + sourceAddressPrefix: scenario.SourceAddressPrefix, + sourcePortRanges: scenario.SourcePortRanges); + + var mgmtRule = psRule.toMgmtNetworkSecurityGroupRule(); + + // Assert - Should convert correctly for Batch network security configuration + Assert.NotNull(mgmtRule); + Assert.Equal(scenario.Priority, mgmtRule.Priority); + + var expectedMgmtAccess = scenario.Access == Microsoft.Azure.Batch.Common.NetworkSecurityGroupRuleAccess.Allow + ? NetworkSecurityGroupRuleAccess.Allow + : NetworkSecurityGroupRuleAccess.Deny; + Assert.Equal(expectedMgmtAccess, mgmtRule.Access); + Assert.Equal(scenario.SourceAddressPrefix, mgmtRule.SourceAddressPrefix); + Assert.Equal(scenario.SourcePortRanges.Count, mgmtRule.SourcePortRanges.Count); + + // Verify round-trip conversion maintains network security semantics + var backToPs = PSNetworkSecurityGroupRule.FromMgmtNetworkSecurityGroupRule(mgmtRule); + Assert.NotNull(backToPs); + Assert.Equal(scenario.Priority, backToPs.Priority); + Assert.Equal(scenario.Access, backToPs.Access); + Assert.Equal(scenario.SourceAddressPrefix, backToPs.SourceAddressPrefix); + Assert.Equal(scenario.SourcePortRanges.Count, backToPs.SourcePortRanges.Count); + } + } + + [Fact] + public void NetworkSecurityGroupRuleConversions_InstanceCreation_VerifyBehavior() + { + // This test verifies that the conversion methods create appropriate instances + + // Arrange + var psRule = new PSNetworkSecurityGroupRule( + priority: 300, + access: Microsoft.Azure.Batch.Common.NetworkSecurityGroupRuleAccess.Allow, + sourceAddressPrefix: "172.16.0.0/12", + sourcePortRanges: new List { "8080", "9090" }); + + var mgmtRule = new NetworkSecurityGroupRule( + priority: 400, + access: NetworkSecurityGroupRuleAccess.Deny, + sourceAddressPrefix: "192.168.0.0/16", + sourcePortRanges: new List { "443", "8443" }); + + // Act + var mgmtResult = psRule.toMgmtNetworkSecurityGroupRule(); + var psResult = PSNetworkSecurityGroupRule.FromMgmtNetworkSecurityGroupRule(mgmtRule); + + // Assert - Verify proper instance creation + Assert.NotNull(mgmtResult); + Assert.NotNull(psResult); + Assert.IsType(mgmtResult); + Assert.IsType(psResult); + + // Verify new instances are created + Assert.NotSame(mgmtRule, mgmtResult); + Assert.NotSame(psRule, psResult); + } + + #endregion + + #region Edge Case Tests + + [Fact] + public void NetworkSecurityGroupRuleConversions_TypeSafety_VerifyCorrectTypes() + { + // Test that conversions return the correct types + + // Arrange + var psRule = new PSNetworkSecurityGroupRule( + priority: 500, + access: Microsoft.Azure.Batch.Common.NetworkSecurityGroupRuleAccess.Deny, + sourceAddressPrefix: "10.1.0.0/16"); + + var mgmtRule = new NetworkSecurityGroupRule( + priority: 600, + access: NetworkSecurityGroupRuleAccess.Allow, + sourceAddressPrefix: "10.2.0.0/16"); + + // Act + var mgmtResult = psRule.toMgmtNetworkSecurityGroupRule(); + var psResult = PSNetworkSecurityGroupRule.FromMgmtNetworkSecurityGroupRule(mgmtRule); + + // Assert - Verify correct types are returned + Assert.IsType(mgmtResult); + Assert.IsType(psResult); + } + + [Fact] + public void NetworkSecurityGroupRuleConversions_PriorityValues_HandleValidRange() + { + // Test that priority values within valid range are handled correctly + + var validPriorities = new[] { 150, 250, 350, 1000, 2000, 4000, 4096 }; + + foreach (var priority in validPriorities) + { + // Arrange + var psRule = new PSNetworkSecurityGroupRule( + priority: priority, + access: Microsoft.Azure.Batch.Common.NetworkSecurityGroupRuleAccess.Allow, + sourceAddressPrefix: "10.0.0.0/8"); + + // Act + var mgmtRule = psRule.toMgmtNetworkSecurityGroupRule(); + var roundTripPsRule = PSNetworkSecurityGroupRule.FromMgmtNetworkSecurityGroupRule(mgmtRule); + + // Assert + Assert.Equal(priority, mgmtRule.Priority); + Assert.Equal(priority, roundTripPsRule.Priority); + } + } + + [Fact] + public void NetworkSecurityGroupRuleConversions_SourceAddressPrefixValues_HandleVariousFormats() + { + // Test that various source address prefix formats are handled correctly + + var sourceAddressPrefixes = new[] + { + "10.10.10.10", // Single IP + "192.168.1.0/24", // IP subnet + "172.16.0.0/12", // Larger subnet + "203.0.113.0/24", // Test network + "*", // All addresses + "0.0.0.0/0" // All addresses (CIDR) + }; + + foreach (var sourceAddressPrefix in sourceAddressPrefixes) + { + // Arrange + var psRule = new PSNetworkSecurityGroupRule( + priority: 100, + access: Microsoft.Azure.Batch.Common.NetworkSecurityGroupRuleAccess.Allow, + sourceAddressPrefix: sourceAddressPrefix); + + // Act + var mgmtRule = psRule.toMgmtNetworkSecurityGroupRule(); + var roundTripPsRule = PSNetworkSecurityGroupRule.FromMgmtNetworkSecurityGroupRule(mgmtRule); + + // Assert + Assert.Equal(sourceAddressPrefix, mgmtRule.SourceAddressPrefix); + Assert.Equal(sourceAddressPrefix, roundTripPsRule.SourceAddressPrefix); + } + } + + [Fact] + public void NetworkSecurityGroupRuleConversions_SourcePortRangesValues_HandleVariousFormats() + { + // Test that various source port range formats are handled correctly + + var portRangeScenarios = new[] + { + new List { "*" }, // All ports + new List { "80" }, // Single port + new List { "80", "443" }, // Multiple single ports + new List { "8080-8090" }, // Port range + new List { "80", "443", "8080-8090" }, // Mixed single ports and ranges + new List { "22", "80", "443", "3000-3010", "8080-8090", "9000" } // Complex mix + }; + + foreach (var sourcePortRanges in portRangeScenarios) + { + // Arrange + var psRule = new PSNetworkSecurityGroupRule( + priority: 100, + access: Microsoft.Azure.Batch.Common.NetworkSecurityGroupRuleAccess.Allow, + sourceAddressPrefix: "10.0.0.0/8", + sourcePortRanges: sourcePortRanges); + + // Act + var mgmtRule = psRule.toMgmtNetworkSecurityGroupRule(); + var roundTripPsRule = PSNetworkSecurityGroupRule.FromMgmtNetworkSecurityGroupRule(mgmtRule); + + // Assert + Assert.Equal(sourcePortRanges.Count, mgmtRule.SourcePortRanges.Count); + Assert.Equal(sourcePortRanges, mgmtRule.SourcePortRanges.ToList()); + Assert.Equal(sourcePortRanges.Count, roundTripPsRule.SourcePortRanges.Count); + Assert.Equal(sourcePortRanges, roundTripPsRule.SourcePortRanges.ToList()); + } + } + + #endregion + + #region Performance Tests + + [Fact] + public void NetworkSecurityGroupRuleConversions_PerformanceTest_ExecutesQuickly() + { + // This test ensures the conversions are efficient + + // Arrange + var psRule = new PSNetworkSecurityGroupRule( + priority: 100, + access: Microsoft.Azure.Batch.Common.NetworkSecurityGroupRuleAccess.Allow, + sourceAddressPrefix: "10.0.0.0/8", + sourcePortRanges: new List { "80", "443", "8080-8090" }); + + var mgmtRule = new NetworkSecurityGroupRule( + priority: 200, + access: NetworkSecurityGroupRuleAccess.Deny, + sourceAddressPrefix: "192.168.0.0/16", + sourcePortRanges: new List { "22", "3389" }); + + // Act & Assert - Multiple conversions should complete without delay + for (int i = 0; i < 100; i++) + { + var mgmtResult = psRule.toMgmtNetworkSecurityGroupRule(); + var psResult = PSNetworkSecurityGroupRule.FromMgmtNetworkSecurityGroupRule(mgmtRule); + + Assert.NotNull(mgmtResult); + Assert.NotNull(psResult); + Assert.Equal(100, mgmtResult.Priority); + Assert.Equal(200, psResult.Priority); + } + } + + #endregion + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Test/Models/PSNfsMountConfigurationTests.cs b/src/Batch/Batch.Test/Models/PSNfsMountConfigurationTests.cs new file mode 100644 index 000000000000..8fac1a2e358d --- /dev/null +++ b/src/Batch/Batch.Test/Models/PSNfsMountConfigurationTests.cs @@ -0,0 +1,831 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using Microsoft.Azure.Commands.Batch.Models; +using Microsoft.Azure.Management.Batch.Models; +using Microsoft.WindowsAzure.Commands.ScenarioTest; +using System.Collections.Generic; +using Xunit; + +namespace Microsoft.Azure.Commands.Batch.Test.ModelsConversions +{ + public class PSNfsMountConfigurationTests + { + #region toMgmtNfsMountConfiguration Tests + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void ToMgmtNfsMountConfiguration_WithAllProperties_ConvertsCorrectly() + { + // Arrange + var psConfig = new PSNfsMountConfiguration( + source: "nfs.example.com:/data", + relativeMountPath: "nfs-data", + mountOptions: "vers=4.1,rsize=1048576,wsize=1048576,hard,intr,timeo=600"); + + // Act + var mgmtConfig = psConfig.toMgmtNfsMountConfiguration(); + + // Assert + Assert.NotNull(mgmtConfig); + Assert.Equal("nfs.example.com:/data", mgmtConfig.Source); + Assert.Equal("nfs-data", mgmtConfig.RelativeMountPath); + Assert.Equal("vers=4.1,rsize=1048576,wsize=1048576,hard,intr,timeo=600", mgmtConfig.MountOptions); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void ToMgmtNfsMountConfiguration_WithoutMountOptions_ConvertsCorrectly() + { + // Arrange + var psConfig = new PSNfsMountConfiguration( + source: "nfs.example.com:/shared", + relativeMountPath: "shared", + mountOptions: null); + + // Act + var mgmtConfig = psConfig.toMgmtNfsMountConfiguration(); + + // Assert + Assert.NotNull(mgmtConfig); + Assert.Equal("nfs.example.com:/shared", mgmtConfig.Source); + Assert.Equal("shared", mgmtConfig.RelativeMountPath); + Assert.Null(mgmtConfig.MountOptions); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void ToMgmtNfsMountConfiguration_WithEmptyMountOptions_ConvertsCorrectly() + { + // Arrange + var psConfig = new PSNfsMountConfiguration( + source: "192.168.1.100:/exports/data", + relativeMountPath: "network-data", + mountOptions: ""); + + // Act + var mgmtConfig = psConfig.toMgmtNfsMountConfiguration(); + + // Assert + Assert.NotNull(mgmtConfig); + Assert.Equal("192.168.1.100:/exports/data", mgmtConfig.Source); + Assert.Equal("network-data", mgmtConfig.RelativeMountPath); + Assert.Equal("", mgmtConfig.MountOptions); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void ToMgmtNfsMountConfiguration_WithMinimalConfiguration_ConvertsCorrectly() + { + // Arrange - Using constructor without mount options parameter + var psConfig = new PSNfsMountConfiguration( + source: "nfs-server:/volume1", + relativeMountPath: "volume1"); + + // Act + var mgmtConfig = psConfig.toMgmtNfsMountConfiguration(); + + // Assert + Assert.NotNull(mgmtConfig); + Assert.Equal("nfs-server:/volume1", mgmtConfig.Source); + Assert.Equal("volume1", mgmtConfig.RelativeMountPath); + Assert.Null(mgmtConfig.MountOptions); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void ToMgmtNfsMountConfiguration_AlwaysCreatesNewInstance() + { + // Arrange + var psConfig = new PSNfsMountConfiguration( + source: "nfs.example.com:/data", + relativeMountPath: "data"); + + // Act + var mgmtConfig1 = psConfig.toMgmtNfsMountConfiguration(); + var mgmtConfig2 = psConfig.toMgmtNfsMountConfiguration(); + + // Assert + Assert.NotNull(mgmtConfig1); + Assert.NotNull(mgmtConfig2); + Assert.NotSame(mgmtConfig1, mgmtConfig2); + Assert.Equal(mgmtConfig1.Source, mgmtConfig2.Source); + Assert.Equal(mgmtConfig1.RelativeMountPath, mgmtConfig2.RelativeMountPath); + Assert.Equal(mgmtConfig1.MountOptions, mgmtConfig2.MountOptions); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void ToMgmtNfsMountConfiguration_VerifyReturnType() + { + // Arrange + var psConfig = new PSNfsMountConfiguration( + source: "nfs.example.com:/test", + relativeMountPath: "test"); + + // Act + var mgmtConfig = psConfig.toMgmtNfsMountConfiguration(); + + // Assert + Assert.NotNull(mgmtConfig); + Assert.IsType(mgmtConfig); + Assert.IsAssignableFrom(mgmtConfig); + } + + #endregion + + #region fromMgmtNfsMountConfiguration Tests + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void FromMgmtNfsMountConfiguration_WithNull_ReturnsNull() + { + // Act + var result = PSNfsMountConfiguration.fromMgmtNfsMountConfiguration(null); + + // Assert + Assert.Null(result); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void FromMgmtNfsMountConfiguration_WithAllProperties_ConvertsCorrectly() + { + // Arrange + var mgmtConfig = new NFSMountConfiguration( + source: "nfs.example.com:/data", + relativeMountPath: "nfs-data", + mountOptions: "vers=4.1,rsize=1048576,wsize=1048576,hard,intr,timeo=600"); + + // Act + var psConfig = PSNfsMountConfiguration.fromMgmtNfsMountConfiguration(mgmtConfig); + + // Assert + Assert.NotNull(psConfig); + Assert.Equal("nfs.example.com:/data", psConfig.Source); + Assert.Equal("nfs-data", psConfig.RelativeMountPath); + Assert.Equal("vers=4.1,rsize=1048576,wsize=1048576,hard,intr,timeo=600", psConfig.MountOptions); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void FromMgmtNfsMountConfiguration_WithoutMountOptions_ConvertsCorrectly() + { + // Arrange + var mgmtConfig = new NFSMountConfiguration( + source: "nfs.example.com:/shared", + relativeMountPath: "shared", + mountOptions: null); + + // Act + var psConfig = PSNfsMountConfiguration.fromMgmtNfsMountConfiguration(mgmtConfig); + + // Assert + Assert.NotNull(psConfig); + Assert.Equal("nfs.example.com:/shared", psConfig.Source); + Assert.Equal("shared", psConfig.RelativeMountPath); + Assert.Null(psConfig.MountOptions); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void FromMgmtNfsMountConfiguration_WithEmptyMountOptions_ConvertsCorrectly() + { + // Arrange + var mgmtConfig = new NFSMountConfiguration( + source: "192.168.1.100:/exports/data", + relativeMountPath: "network-data", + mountOptions: ""); + + // Act + var psConfig = PSNfsMountConfiguration.fromMgmtNfsMountConfiguration(mgmtConfig); + + // Assert + Assert.NotNull(psConfig); + Assert.Equal("192.168.1.100:/exports/data", psConfig.Source); + Assert.Equal("network-data", psConfig.RelativeMountPath); + Assert.Equal("", psConfig.MountOptions); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void FromMgmtNfsMountConfiguration_WithMinimalConfiguration_ConvertsCorrectly() + { + // Arrange + var mgmtConfig = new NFSMountConfiguration( + source: "nfs-server:/volume1", + relativeMountPath: "volume1"); + + // Act + var psConfig = PSNfsMountConfiguration.fromMgmtNfsMountConfiguration(mgmtConfig); + + // Assert + Assert.NotNull(psConfig); + Assert.Equal("nfs-server:/volume1", psConfig.Source); + Assert.Equal("volume1", psConfig.RelativeMountPath); + Assert.Null(psConfig.MountOptions); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void FromMgmtNfsMountConfiguration_StaticMethod_DoesNotRequireInstance() + { + // Arrange + var mgmtConfig = new NFSMountConfiguration( + source: "nfs.test.com:/data", + relativeMountPath: "test-data", + mountOptions: "vers=3"); + + // Act - Call static method directly on class + var psConfig = PSNfsMountConfiguration.fromMgmtNfsMountConfiguration(mgmtConfig); + + // Assert + Assert.NotNull(psConfig); + Assert.Equal("nfs.test.com:/data", psConfig.Source); + Assert.Equal("test-data", psConfig.RelativeMountPath); + Assert.Equal("vers=3", psConfig.MountOptions); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void FromMgmtNfsMountConfiguration_AlwaysCreatesNewInstance() + { + // Arrange + var mgmtConfig = new NFSMountConfiguration( + source: "nfs.example.com:/data", + relativeMountPath: "data", + mountOptions: "vers=4"); + + // Act + var psConfig1 = PSNfsMountConfiguration.fromMgmtNfsMountConfiguration(mgmtConfig); + var psConfig2 = PSNfsMountConfiguration.fromMgmtNfsMountConfiguration(mgmtConfig); + + // Assert + Assert.NotNull(psConfig1); + Assert.NotNull(psConfig2); + Assert.NotSame(psConfig1, psConfig2); + Assert.Equal(psConfig1.Source, psConfig2.Source); + Assert.Equal(psConfig1.RelativeMountPath, psConfig2.RelativeMountPath); + Assert.Equal(psConfig1.MountOptions, psConfig2.MountOptions); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void FromMgmtNfsMountConfiguration_VerifyReturnType() + { + // Arrange + var mgmtConfig = new NFSMountConfiguration( + source: "nfs.example.com:/test", + relativeMountPath: "test"); + + // Act + var psConfig = PSNfsMountConfiguration.fromMgmtNfsMountConfiguration(mgmtConfig); + + // Assert + Assert.NotNull(psConfig); + Assert.IsType(psConfig); + Assert.IsAssignableFrom(psConfig); + } + + #endregion + + #region Round-trip Conversion Tests + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesAllProperties() + { + // Arrange + var originalPsConfig = new PSNfsMountConfiguration( + source: "nfs.example.com:/data", + relativeMountPath: "nfs-data", + mountOptions: "vers=4.1,rsize=1048576,wsize=1048576,hard,intr,timeo=600"); + + // Act + var mgmtConfig = originalPsConfig.toMgmtNfsMountConfiguration(); + var roundTripPsConfig = PSNfsMountConfiguration.fromMgmtNfsMountConfiguration(mgmtConfig); + + // Assert + Assert.NotNull(roundTripPsConfig); + Assert.Equal(originalPsConfig.Source, roundTripPsConfig.Source); + Assert.Equal(originalPsConfig.RelativeMountPath, roundTripPsConfig.RelativeMountPath); + Assert.Equal(originalPsConfig.MountOptions, roundTripPsConfig.MountOptions); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesNullMountOptions() + { + // Arrange + var originalPsConfig = new PSNfsMountConfiguration( + source: "nfs.example.com:/shared", + relativeMountPath: "shared", + mountOptions: null); + + // Act + var mgmtConfig = originalPsConfig.toMgmtNfsMountConfiguration(); + var roundTripPsConfig = PSNfsMountConfiguration.fromMgmtNfsMountConfiguration(mgmtConfig); + + // Assert + Assert.NotNull(roundTripPsConfig); + Assert.Equal(originalPsConfig.Source, roundTripPsConfig.Source); + Assert.Equal(originalPsConfig.RelativeMountPath, roundTripPsConfig.RelativeMountPath); + Assert.Null(roundTripPsConfig.MountOptions); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesEmptyMountOptions() + { + // Arrange + var originalPsConfig = new PSNfsMountConfiguration( + source: "192.168.1.100:/exports/data", + relativeMountPath: "network-data", + mountOptions: ""); + + // Act + var mgmtConfig = originalPsConfig.toMgmtNfsMountConfiguration(); + var roundTripPsConfig = PSNfsMountConfiguration.fromMgmtNfsMountConfiguration(mgmtConfig); + + // Assert + Assert.NotNull(roundTripPsConfig); + Assert.Equal(originalPsConfig.Source, roundTripPsConfig.Source); + Assert.Equal(originalPsConfig.RelativeMountPath, roundTripPsConfig.RelativeMountPath); + Assert.Equal("", roundTripPsConfig.MountOptions); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void RoundTripConversion_FromMgmtAndToMgmt_PreservesAllProperties() + { + // Arrange + var originalMgmtConfig = new NFSMountConfiguration( + source: "nfs.example.com:/data", + relativeMountPath: "nfs-data", + mountOptions: "vers=4.1,rsize=1048576,wsize=1048576,hard,intr,timeo=600"); + + // Act + var psConfig = PSNfsMountConfiguration.fromMgmtNfsMountConfiguration(originalMgmtConfig); + var roundTripMgmtConfig = psConfig.toMgmtNfsMountConfiguration(); + + // Assert + Assert.NotNull(roundTripMgmtConfig); + Assert.Equal(originalMgmtConfig.Source, roundTripMgmtConfig.Source); + Assert.Equal(originalMgmtConfig.RelativeMountPath, roundTripMgmtConfig.RelativeMountPath); + Assert.Equal(originalMgmtConfig.MountOptions, roundTripMgmtConfig.MountOptions); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void RoundTripConversion_FromMgmtAndToMgmt_PreservesNullMountOptions() + { + // Arrange + var originalMgmtConfig = new NFSMountConfiguration( + source: "nfs.example.com:/shared", + relativeMountPath: "shared", + mountOptions: null); + + // Act + var psConfig = PSNfsMountConfiguration.fromMgmtNfsMountConfiguration(originalMgmtConfig); + var roundTripMgmtConfig = psConfig.toMgmtNfsMountConfiguration(); + + // Assert + Assert.NotNull(roundTripMgmtConfig); + Assert.Equal(originalMgmtConfig.Source, roundTripMgmtConfig.Source); + Assert.Equal(originalMgmtConfig.RelativeMountPath, roundTripMgmtConfig.RelativeMountPath); + Assert.Null(roundTripMgmtConfig.MountOptions); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void RoundTripConversion_FromMgmtAndToMgmt_PreservesEmptyMountOptions() + { + // Arrange + var originalMgmtConfig = new NFSMountConfiguration( + source: "192.168.1.100:/exports/data", + relativeMountPath: "network-data", + mountOptions: ""); + + // Act + var psConfig = PSNfsMountConfiguration.fromMgmtNfsMountConfiguration(originalMgmtConfig); + var roundTripMgmtConfig = psConfig.toMgmtNfsMountConfiguration(); + + // Assert + Assert.NotNull(roundTripMgmtConfig); + Assert.Equal(originalMgmtConfig.Source, roundTripMgmtConfig.Source); + Assert.Equal(originalMgmtConfig.RelativeMountPath, roundTripMgmtConfig.RelativeMountPath); + Assert.Equal("", roundTripMgmtConfig.MountOptions); + } + + #endregion + + #region Integration Tests + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void NfsMountConfigurationConversions_BothDirections_MaintainSemanticEquivalence() + { + // This test ensures that the semantic meaning is preserved across conversions for Azure Batch NFS file system mounting + + // Test various NFS mount scenarios + var nfsScenarios = new[] + { + new { + Source = "nfs.example.com:/data", + RelativeMountPath = "shared-data", + MountOptions = "vers=4.1,rsize=1048576,wsize=1048576,hard,intr,timeo=600", + Description = "High-performance NFS v4.1 mount with optimized read/write sizes" + }, + new { + Source = "192.168.1.100:/exports/ml-datasets", + RelativeMountPath = "datasets", + MountOptions = "vers=3,soft,rsize=32768,wsize=32768", + Description = "NFS v3 mount for machine learning datasets with soft mount" + }, + new { + Source = "nfs-server.local:/volume1/projects", + RelativeMountPath = "projects", + MountOptions = (string)null, + Description = "Basic NFS mount without specific options" + }, + new { + Source = "nfs.azure.com:/premium-storage", + RelativeMountPath = "premium", + MountOptions = "vers=4.0,proto=tcp,port=2049,bg,hard,intr", + Description = "Azure NFS premium storage with TCP protocol and background mount" + } + }; + + foreach (var scenario in nfsScenarios) + { + // Act - PS to Management conversion + var psConfig = new PSNfsMountConfiguration( + source: scenario.Source, + relativeMountPath: scenario.RelativeMountPath, + mountOptions: scenario.MountOptions); + + var mgmtConfig = psConfig.toMgmtNfsMountConfiguration(); + var backToPs = PSNfsMountConfiguration.fromMgmtNfsMountConfiguration(mgmtConfig); + + // Assert - Verify semantic equivalence + Assert.NotNull(mgmtConfig); + Assert.Equal(scenario.Source, mgmtConfig.Source); + Assert.Equal(scenario.RelativeMountPath, mgmtConfig.RelativeMountPath); + Assert.Equal(scenario.MountOptions, mgmtConfig.MountOptions); + + Assert.NotNull(backToPs); + Assert.Equal(scenario.Source, backToPs.Source); + Assert.Equal(scenario.RelativeMountPath, backToPs.RelativeMountPath); + Assert.Equal(scenario.MountOptions, backToPs.MountOptions); + + // Act - Management to PS conversion + var originalMgmtConfig = new NFSMountConfiguration( + source: scenario.Source, + relativeMountPath: scenario.RelativeMountPath, + mountOptions: scenario.MountOptions); + + var mgmtToPs = PSNfsMountConfiguration.fromMgmtNfsMountConfiguration(originalMgmtConfig); + var backToMgmt = mgmtToPs.toMgmtNfsMountConfiguration(); + + // Assert - Verify semantic equivalence in reverse direction + Assert.NotNull(mgmtToPs); + Assert.Equal(scenario.Source, mgmtToPs.Source); + Assert.Equal(scenario.RelativeMountPath, mgmtToPs.RelativeMountPath); + Assert.Equal(scenario.MountOptions, mgmtToPs.MountOptions); + + Assert.NotNull(backToMgmt); + Assert.Equal(scenario.Source, backToMgmt.Source); + Assert.Equal(scenario.RelativeMountPath, backToMgmt.RelativeMountPath); + Assert.Equal(scenario.MountOptions, backToMgmt.MountOptions); + } + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void NfsMountConfigurationConversions_NullHandling_WorksCorrectly() + { + // Test null handling in conversions + + // Act + var resultFromNull = PSNfsMountConfiguration.fromMgmtNfsMountConfiguration(null); + + // Assert + Assert.Null(resultFromNull); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void NfsMountConfigurationConversions_BatchPoolContext_VerifyCorrectUsage() + { + // This test validates the conversions work correctly in the context of Azure Batch pool mount configuration + // NfsMountConfiguration is used to mount NFS file systems on Batch compute nodes for distributed storage access + + // Arrange - Test high-performance computing (HPC) workload scenarios + var hpcScenarios = new PSNfsMountConfiguration[] + { + new PSNfsMountConfiguration( + source: "hpc-nfs.example.com:/shared/scratch", + relativeMountPath: "scratch", + mountOptions: "vers=4.1,rsize=1048576,wsize=1048576,hard,intr,timeo=600,retrans=2" + ), + new PSNfsMountConfiguration( + source: "nfs.example.com:/datasets/genomics", + relativeMountPath: "genomics-data", + mountOptions: "vers=3,rsize=65536,wsize=65536,soft,timeo=300" + ), + new PSNfsMountConfiguration( + source: "storage.local:/exports/results", + relativeMountPath: "results", + mountOptions: null + ), + new PSNfsMountConfiguration( + source: "192.168.10.50:/mnt/shared-cache", + relativeMountPath: "cache", + mountOptions: "vers=4.0,proto=tcp,fsc,local_lock=none" + ) + }; + + foreach (var scenario in hpcScenarios) + { + // Arrange + var psNfsConfig = new PSNfsMountConfiguration( + source: scenario.Source, + relativeMountPath: scenario.RelativeMountPath, + mountOptions: scenario.MountOptions); + + // Act + var mgmtNfsConfig = psNfsConfig.toMgmtNfsMountConfiguration(); + + // Assert - Should convert correctly for Batch pool mount configuration + Assert.NotNull(mgmtNfsConfig); + Assert.Equal(scenario.Source, mgmtNfsConfig.Source); + Assert.Equal(scenario.RelativeMountPath, mgmtNfsConfig.RelativeMountPath); + Assert.Equal(scenario.MountOptions, mgmtNfsConfig.MountOptions); + + // Verify round-trip conversion maintains Batch pool semantics + var backToPs = PSNfsMountConfiguration.fromMgmtNfsMountConfiguration(mgmtNfsConfig); + Assert.NotNull(backToPs); + Assert.Equal(scenario.Source, backToPs.Source); + Assert.Equal(scenario.RelativeMountPath, backToPs.RelativeMountPath); + Assert.Equal(scenario.MountOptions, backToPs.MountOptions); + } + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void NfsMountConfigurationConversions_InstanceCreation_VerifyBehavior() + { + // This test verifies that the conversion methods create appropriate instances + + // Arrange + var psConfig = new PSNfsMountConfiguration( + source: "nfs.example.com:/data", + relativeMountPath: "data", + mountOptions: "vers=4"); + + var mgmtConfig = new NFSMountConfiguration( + source: "nfs.test.com:/volume", + relativeMountPath: "volume", + mountOptions: "vers=3"); + + // Act + var mgmtResult = psConfig.toMgmtNfsMountConfiguration(); + var psResult = PSNfsMountConfiguration.fromMgmtNfsMountConfiguration(mgmtConfig); + + // Assert - Verify proper instance creation + Assert.NotNull(mgmtResult); + Assert.NotNull(psResult); + Assert.IsType(mgmtResult); + Assert.IsType(psResult); + + // Verify new instances are created + Assert.NotSame(mgmtConfig, mgmtResult); + Assert.NotSame(psConfig, psResult); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void NfsMountConfigurationConversions_EdgeCaseValues_HandleCorrectly() + { + // Test conversion with various edge case values + + var testConfigurations = new[] + { + // Standard configurations + new { Source = "nfs.example.com:/data", RelativeMountPath = "data", MountOptions = "vers=4.1" }, + new { Source = "192.168.1.100:/exports", RelativeMountPath = "exports", MountOptions = "vers=3" }, + // Edge cases + new { Source = "", RelativeMountPath = "", MountOptions = "" }, + new { Source = "nfs://server/path", RelativeMountPath = "path", MountOptions = (string)null }, + new { Source = " ", RelativeMountPath = " ", MountOptions = " " }, // Whitespace + new { Source = "very-long-nfs-server-name.example.com:/very/long/path/to/shared/directory", RelativeMountPath = "very-long-relative-mount-path-for-testing", MountOptions = "vers=4.1,rsize=1048576,wsize=1048576,hard,intr,timeo=600,retrans=2,bg,proto=tcp,port=2049,fsc,local_lock=none" } + }; + + foreach (var testConfig in testConfigurations) + { + // Arrange + var psConfig = new PSNfsMountConfiguration( + source: testConfig.Source, + relativeMountPath: testConfig.RelativeMountPath, + mountOptions: testConfig.MountOptions); + + var mgmtConfig = new NFSMountConfiguration( + source: testConfig.Source, + relativeMountPath: testConfig.RelativeMountPath, + mountOptions: testConfig.MountOptions); + + // Act + var mgmtResult = psConfig.toMgmtNfsMountConfiguration(); + var psFromMgmtResult = PSNfsMountConfiguration.fromMgmtNfsMountConfiguration(mgmtConfig); + var roundTripResult = PSNfsMountConfiguration.fromMgmtNfsMountConfiguration(mgmtResult); + + // Assert + Assert.NotNull(mgmtResult); + Assert.NotNull(psFromMgmtResult); + Assert.NotNull(roundTripResult); + + Assert.Equal(testConfig.Source, mgmtResult.Source); + Assert.Equal(testConfig.RelativeMountPath, mgmtResult.RelativeMountPath); + Assert.Equal(testConfig.MountOptions, mgmtResult.MountOptions); + + Assert.Equal(testConfig.Source, psFromMgmtResult.Source); + Assert.Equal(testConfig.RelativeMountPath, psFromMgmtResult.RelativeMountPath); + Assert.Equal(testConfig.MountOptions, psFromMgmtResult.MountOptions); + + Assert.Equal(testConfig.Source, roundTripResult.Source); + Assert.Equal(testConfig.RelativeMountPath, roundTripResult.RelativeMountPath); + Assert.Equal(testConfig.MountOptions, roundTripResult.MountOptions); + } + } + + #endregion + + #region Performance and Validation Tests + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void NfsMountConfigurationConversions_PerformanceTest_ExecutesQuickly() + { + // This test ensures the conversions are efficient with multiple operations + + // Arrange + var psConfigs = new List(); + var mgmtConfigs = new List(); + + for (int i = 0; i < 100; i++) + { + psConfigs.Add(new PSNfsMountConfiguration( + source: $"nfs{i}.example.com:/data{i}", + relativeMountPath: $"data{i}", + mountOptions: $"vers=4.{i % 2},rsize={1024 * (i + 1)},wsize={1024 * (i + 1)}")); + + mgmtConfigs.Add(new NFSMountConfiguration( + source: $"mgmt-nfs{i}.example.com:/volume{i}", + relativeMountPath: $"volume{i}", + mountOptions: $"vers=3,timeo={300 + i}")); + } + + // Act & Assert - Multiple conversions should complete without delay + for (int i = 0; i < 10; i++) + { + foreach (var psConfig in psConfigs) + { + var mgmtResult = psConfig.toMgmtNfsMountConfiguration(); + Assert.NotNull(mgmtResult); + } + + foreach (var mgmtConfig in mgmtConfigs) + { + var psResult = PSNfsMountConfiguration.fromMgmtNfsMountConfiguration(mgmtConfig); + Assert.NotNull(psResult); + } + } + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void NfsMountConfigurationConversions_RealWorldNfsOptions_HandleCorrectly() + { + // Test with realistic NFS mount options that would be used in production + + var realWorldConfigurations = new PSNfsMountConfiguration[] + { + // High-performance computing scenario + new PSNfsMountConfiguration( + source: "hpc-nfs.example.com:/gpfs/scratch", + relativeMountPath: "scratch", + mountOptions: "vers=4.1,rsize=1048576,wsize=1048576,hard,intr,timeo=600,retrans=2,proto=tcp,fsc" + ), + // Machine learning data lake scenario + new PSNfsMountConfiguration( + source: "ml-data.azure.com:/datasets", + relativeMountPath: "ml-datasets", + mountOptions: "vers=4.0,rsize=65536,wsize=65536,hard,intr,timeo=300,bg,proto=tcp,port=2049" + ), + // Bioinformatics reference data scenario + new PSNfsMountConfiguration( + source: "bioref.example.com:/reference/genomes", + relativeMountPath: "reference-genomes", + mountOptions: "vers=3,rsize=32768,wsize=32768,soft,timeo=100,retrans=3,ro" + ), + // Financial data processing scenario + new PSNfsMountConfiguration( + source: "findata.secure.com:/secure/market-data", + relativeMountPath: "market-data", + mountOptions: "vers=4.2,rsize=262144,wsize=262144,hard,intr,timeo=900,sec=krb5p" + ), + // Simple shared storage scenario + new PSNfsMountConfiguration( + source: "shared.local:/exports/common", + relativeMountPath: "shared", + mountOptions: null + ) + }; + + foreach (var config in realWorldConfigurations) + { + // Arrange + var psConfig = new PSNfsMountConfiguration( + source: config.Source, + relativeMountPath: config.RelativeMountPath, + mountOptions: config.MountOptions); + + // Act + var mgmtConfig = psConfig.toMgmtNfsMountConfiguration(); + var roundTripPs = PSNfsMountConfiguration.fromMgmtNfsMountConfiguration(mgmtConfig); + + // Assert + Assert.NotNull(mgmtConfig); + Assert.NotNull(roundTripPs); + + Assert.Equal(config.Source, mgmtConfig.Source); + Assert.Equal(config.RelativeMountPath, mgmtConfig.RelativeMountPath); + Assert.Equal(config.MountOptions, mgmtConfig.MountOptions); + + Assert.Equal(config.Source, roundTripPs.Source); + Assert.Equal(config.RelativeMountPath, roundTripPs.RelativeMountPath); + Assert.Equal(config.MountOptions, roundTripPs.MountOptions); + } + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void NfsMountConfigurationConversions_MountPathValidation_VerifyBehavior() + { + // Test with various mount path formats to ensure they're preserved correctly + + var mountPathScenarios = new[] + { + // Standard relative paths + new { Source = "nfs.example.com:/data", RelativeMountPath = "data", Valid = true }, + new { Source = "nfs.example.com:/shared", RelativeMountPath = "shared/subdir", Valid = true }, + new { Source = "nfs.example.com:/exports", RelativeMountPath = "exports", Valid = true }, + // Edge case paths + new { Source = "nfs.example.com:/", RelativeMountPath = "root", Valid = true }, + new { Source = "nfs.example.com:/path with spaces", RelativeMountPath = "spaces", Valid = true }, + new { Source = "nfs.example.com:/path-with-dashes", RelativeMountPath = "dashes", Valid = true }, + new { Source = "nfs.example.com:/path_with_underscores", RelativeMountPath = "underscores", Valid = true }, + new { Source = "nfs.example.com:/123numeric", RelativeMountPath = "numeric123", Valid = true }, + // Unicode and special characters (should be preserved as-is) + new { Source = "nfs.example.com:/caf", RelativeMountPath = "caf", Valid = true }, + new { Source = "nfs.example.com:/data", RelativeMountPath = "", Valid = true }, // Empty relative path + }; + + foreach (var scenario in mountPathScenarios) + { + // Arrange + var psConfig = new PSNfsMountConfiguration( + source: scenario.Source, + relativeMountPath: scenario.RelativeMountPath, + mountOptions: "vers=4"); + + // Act + var mgmtConfig = psConfig.toMgmtNfsMountConfiguration(); + var roundTripPs = PSNfsMountConfiguration.fromMgmtNfsMountConfiguration(mgmtConfig); + + // Assert - All paths should be preserved exactly as provided + Assert.NotNull(mgmtConfig); + Assert.NotNull(roundTripPs); + + Assert.Equal(scenario.Source, mgmtConfig.Source); + Assert.Equal(scenario.RelativeMountPath, mgmtConfig.RelativeMountPath); + + Assert.Equal(scenario.Source, roundTripPs.Source); + Assert.Equal(scenario.RelativeMountPath, roundTripPs.RelativeMountPath); + } + } + + #endregion + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Test/Models/PSNodePlacementConfigurationTests.cs b/src/Batch/Batch.Test/Models/PSNodePlacementConfigurationTests.cs new file mode 100644 index 000000000000..00c17b26a722 --- /dev/null +++ b/src/Batch/Batch.Test/Models/PSNodePlacementConfigurationTests.cs @@ -0,0 +1,636 @@ +// ----------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ----------------------------------------------------------------------------- + +using Microsoft.Azure.Commands.Batch.Models; +using Microsoft.Azure.Management.Batch.Models; +using System; +using Xunit; + +namespace Microsoft.Azure.Commands.Batch.Test.ModelsConversions +{ + public class PSNodePlacementConfigurationTests + { + #region toMgmtNodePlacementConfiguration Tests + + [Fact] + public void ToMgmtNodePlacementConfiguration_WithRegionalPolicy_ReturnsCorrectMapping() + { + // Arrange + var psConfig = new PSNodePlacementConfiguration(Azure.Batch.Common.NodePlacementPolicyType.Regional); + + // Act + var result = psConfig.toMgmtNodePlacementConfiguration(); + + // Assert + Assert.NotNull(result); + Assert.Equal(NodePlacementPolicyType.Regional, result.Policy); + } + + [Fact] + public void ToMgmtNodePlacementConfiguration_WithZonalPolicy_ReturnsCorrectMapping() + { + // Arrange + var psConfig = new PSNodePlacementConfiguration(Azure.Batch.Common.NodePlacementPolicyType.Zonal); + + // Act + var result = psConfig.toMgmtNodePlacementConfiguration(); + + // Assert + Assert.NotNull(result); + Assert.Equal(NodePlacementPolicyType.Zonal, result.Policy); + } + + [Theory] + [InlineData(Azure.Batch.Common.NodePlacementPolicyType.Regional, NodePlacementPolicyType.Regional)] + [InlineData(Azure.Batch.Common.NodePlacementPolicyType.Zonal, NodePlacementPolicyType.Zonal)] + public void ToMgmtNodePlacementConfiguration_AllValidPolicyTypes_ReturnsCorrectMapping( + Azure.Batch.Common.NodePlacementPolicyType psPolicyType, + NodePlacementPolicyType expectedMgmtPolicyType) + { + // Arrange + var psConfig = new PSNodePlacementConfiguration(psPolicyType); + + // Act + var result = psConfig.toMgmtNodePlacementConfiguration(); + + // Assert + Assert.NotNull(result); + Assert.Equal(expectedMgmtPolicyType, result.Policy); + } + + [Fact] + public void ToMgmtNodePlacementConfiguration_WithNullPolicy_ReturnsCorrectMapping() + { + // Arrange + var psConfig = new PSNodePlacementConfiguration(policy: null); + + // Act + var result = psConfig.toMgmtNodePlacementConfiguration(); + + // Assert + Assert.NotNull(result); + Assert.Null(result.Policy); + } + + [Fact] + public void ToMgmtNodePlacementConfiguration_AlwaysCreatesNewInstance() + { + // Arrange + var psConfig = new PSNodePlacementConfiguration(Azure.Batch.Common.NodePlacementPolicyType.Regional); + + // Act + var result1 = psConfig.toMgmtNodePlacementConfiguration(); + var result2 = psConfig.toMgmtNodePlacementConfiguration(); + + // Assert + Assert.NotNull(result1); + Assert.NotNull(result2); + Assert.NotSame(result1, result2); + } + + [Fact] + public void ToMgmtNodePlacementConfiguration_VerifyNodePlacementConfigurationType() + { + // Arrange + var psConfig = new PSNodePlacementConfiguration(Azure.Batch.Common.NodePlacementPolicyType.Zonal); + + // Act + var result = psConfig.toMgmtNodePlacementConfiguration(); + + // Assert + Assert.NotNull(result); + Assert.IsType(result); + } + + [Fact] + public void ToMgmtNodePlacementConfiguration_RegionalSemantics_PreservesPlacementStrategy() + { + // Arrange - Regional strategy places nodes across multiple regions for high availability + var psConfig = new PSNodePlacementConfiguration(Azure.Batch.Common.NodePlacementPolicyType.Regional); + + // Act + var result = psConfig.toMgmtNodePlacementConfiguration(); + + // Assert + Assert.NotNull(result); + Assert.Equal(NodePlacementPolicyType.Regional, result.Policy); + // Regional semantics: Nodes are placed across multiple Azure regions for high availability + } + + [Fact] + public void ToMgmtNodePlacementConfiguration_ZonalSemantics_PreservesPlacementStrategy() + { + // Arrange - Zonal strategy places nodes within specific availability zones + var psConfig = new PSNodePlacementConfiguration(Azure.Batch.Common.NodePlacementPolicyType.Zonal); + + // Act + var result = psConfig.toMgmtNodePlacementConfiguration(); + + // Assert + Assert.NotNull(result); + Assert.Equal(NodePlacementPolicyType.Zonal, result.Policy); + // Zonal semantics: Nodes are placed within specific availability zones for fault tolerance + } + + #endregion + + #region fromMgmtNodePlacementConfiguration Tests + + [Fact] + public void FromMgmtNodePlacementConfiguration_WithRegionalPolicy_ReturnsCorrectMapping() + { + // Arrange + var mgmtConfig = new NodePlacementConfiguration(NodePlacementPolicyType.Regional); + + // Act + var result = PSNodePlacementConfiguration.fromMgmtNodePlacementConfiguration(mgmtConfig); + + // Assert + Assert.NotNull(result); + Assert.Equal(Azure.Batch.Common.NodePlacementPolicyType.Regional, result.Policy); + } + + [Fact] + public void FromMgmtNodePlacementConfiguration_WithZonalPolicy_ReturnsCorrectMapping() + { + // Arrange + var mgmtConfig = new NodePlacementConfiguration(NodePlacementPolicyType.Zonal); + + // Act + var result = PSNodePlacementConfiguration.fromMgmtNodePlacementConfiguration(mgmtConfig); + + // Assert + Assert.NotNull(result); + Assert.Equal(Azure.Batch.Common.NodePlacementPolicyType.Zonal, result.Policy); + } + + [Theory] + [InlineData(NodePlacementPolicyType.Regional, Azure.Batch.Common.NodePlacementPolicyType.Regional)] + [InlineData(NodePlacementPolicyType.Zonal, Azure.Batch.Common.NodePlacementPolicyType.Zonal)] + public void FromMgmtNodePlacementConfiguration_AllValidPolicyTypes_ReturnsCorrectMapping( + NodePlacementPolicyType mgmtPolicyType, + Azure.Batch.Common.NodePlacementPolicyType expectedPsPolicyType) + { + // Arrange + var mgmtConfig = new NodePlacementConfiguration(mgmtPolicyType); + + // Act + var result = PSNodePlacementConfiguration.fromMgmtNodePlacementConfiguration(mgmtConfig); + + // Assert + Assert.NotNull(result); + Assert.Equal(expectedPsPolicyType, result.Policy); + } + + [Fact] + public void FromMgmtNodePlacementConfiguration_WithNullPolicy_ReturnsCorrectMapping() + { + // Arrange + var mgmtConfig = new NodePlacementConfiguration(null); + + // Act + var result = PSNodePlacementConfiguration.fromMgmtNodePlacementConfiguration(mgmtConfig); + + // Assert + Assert.NotNull(result); + Assert.Null(result.Policy); + } + + [Fact] + public void FromMgmtNodePlacementConfiguration_WithNullConfiguration_ReturnsNull() + { + // Act + var result = PSNodePlacementConfiguration.fromMgmtNodePlacementConfiguration(null); + + // Assert + Assert.Null(result); + } + + [Fact] + public void FromMgmtNodePlacementConfiguration_VerifyPSNodePlacementConfigurationType() + { + // Arrange + var mgmtConfig = new NodePlacementConfiguration(NodePlacementPolicyType.Regional); + + // Act + var result = PSNodePlacementConfiguration.fromMgmtNodePlacementConfiguration(mgmtConfig); + + // Assert + Assert.NotNull(result); + Assert.IsType(result); + } + + [Fact] + public void FromMgmtNodePlacementConfiguration_RegionalSemantics_PreservesPlacementStrategy() + { + // Arrange + var mgmtConfig = new NodePlacementConfiguration(NodePlacementPolicyType.Regional); + + // Act + var result = PSNodePlacementConfiguration.fromMgmtNodePlacementConfiguration(mgmtConfig); + + // Assert + Assert.NotNull(result); + Assert.Equal(Azure.Batch.Common.NodePlacementPolicyType.Regional, result.Policy); + // Regional semantics preserved: Multi-region placement for high availability + } + + [Fact] + public void FromMgmtNodePlacementConfiguration_ZonalSemantics_PreservesPlacementStrategy() + { + // Arrange + var mgmtConfig = new NodePlacementConfiguration(NodePlacementPolicyType.Zonal); + + // Act + var result = PSNodePlacementConfiguration.fromMgmtNodePlacementConfiguration(mgmtConfig); + + // Assert + Assert.NotNull(result); + Assert.Equal(Azure.Batch.Common.NodePlacementPolicyType.Zonal, result.Policy); + // Zonal semantics preserved: Availability zone placement for fault tolerance + } + + [Fact] + public void FromMgmtNodePlacementConfiguration_WithDefaultNodePlacementConfiguration_HandlesCorrectly() + { + // Arrange + var mgmtConfig = new NodePlacementConfiguration(); // Uses default constructor + + // Act + var result = PSNodePlacementConfiguration.fromMgmtNodePlacementConfiguration(mgmtConfig); + + // Assert + Assert.NotNull(result); + // The result should handle the default Policy from the management configuration + Assert.True(result.Policy == null || Enum.IsDefined(typeof(Azure.Batch.Common.NodePlacementPolicyType), result.Policy)); + } + + #endregion + + #region Round-trip Conversion Tests + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesRegionalValue() + { + // Arrange + var originalPsConfig = new PSNodePlacementConfiguration(Azure.Batch.Common.NodePlacementPolicyType.Regional); + + // Act + var mgmtConfig = originalPsConfig.toMgmtNodePlacementConfiguration(); + var roundTripPsConfig = PSNodePlacementConfiguration.fromMgmtNodePlacementConfiguration(mgmtConfig); + + // Assert + Assert.NotNull(roundTripPsConfig); + Assert.Equal(originalPsConfig.Policy, roundTripPsConfig.Policy); + Assert.Equal(Azure.Batch.Common.NodePlacementPolicyType.Regional, roundTripPsConfig.Policy); + } + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesZonalValue() + { + // Arrange + var originalPsConfig = new PSNodePlacementConfiguration(Azure.Batch.Common.NodePlacementPolicyType.Zonal); + + // Act + var mgmtConfig = originalPsConfig.toMgmtNodePlacementConfiguration(); + var roundTripPsConfig = PSNodePlacementConfiguration.fromMgmtNodePlacementConfiguration(mgmtConfig); + + // Assert + Assert.NotNull(roundTripPsConfig); + Assert.Equal(originalPsConfig.Policy, roundTripPsConfig.Policy); + Assert.Equal(Azure.Batch.Common.NodePlacementPolicyType.Zonal, roundTripPsConfig.Policy); + } + + [Theory] + [InlineData(Azure.Batch.Common.NodePlacementPolicyType.Regional)] + [InlineData(Azure.Batch.Common.NodePlacementPolicyType.Zonal)] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesAllValidValues( + Azure.Batch.Common.NodePlacementPolicyType originalPolicyType) + { + // Arrange + var originalPsConfig = new PSNodePlacementConfiguration(originalPolicyType); + + // Act + var mgmtConfig = originalPsConfig.toMgmtNodePlacementConfiguration(); + var roundTripPsConfig = PSNodePlacementConfiguration.fromMgmtNodePlacementConfiguration(mgmtConfig); + + // Assert + Assert.NotNull(roundTripPsConfig); + Assert.Equal(originalPolicyType, roundTripPsConfig.Policy); + } + + [Fact] + public void RoundTripConversion_FromMgmtAndToMgmt_PreservesValues() + { + // Arrange + var originalMgmtConfig = new NodePlacementConfiguration(NodePlacementPolicyType.Regional); + + // Act + var psConfig = PSNodePlacementConfiguration.fromMgmtNodePlacementConfiguration(originalMgmtConfig); + var roundTripMgmtConfig = psConfig.toMgmtNodePlacementConfiguration(); + + // Assert + Assert.NotNull(roundTripMgmtConfig); + Assert.Equal(originalMgmtConfig.Policy, roundTripMgmtConfig.Policy); + Assert.Equal(NodePlacementPolicyType.Regional, roundTripMgmtConfig.Policy); + } + + [Fact] + public void RoundTripConversion_WithNullPolicy_PreservesNullValue() + { + // Arrange + var originalPsConfig = new PSNodePlacementConfiguration(policy: null); + + // Act + var mgmtConfig = originalPsConfig.toMgmtNodePlacementConfiguration(); + var roundTripPsConfig = PSNodePlacementConfiguration.fromMgmtNodePlacementConfiguration(mgmtConfig); + + // Assert + Assert.NotNull(roundTripPsConfig); + Assert.Null(roundTripPsConfig.Policy); + } + + [Fact] + public void RoundTripConversion_WithNullConfiguration_HandlesCorrectly() + { + // Arrange + NodePlacementConfiguration nullMgmtConfig = null; + + // Act + var psConfig = PSNodePlacementConfiguration.fromMgmtNodePlacementConfiguration(nullMgmtConfig); + + // Assert + Assert.Null(psConfig); + } + + #endregion + + #region Integration Tests + + [Fact] + public void NodePlacementConfigurationConversions_BothDirections_MaintainSemanticEquivalence() + { + // This test ensures that the semantic meaning is preserved across conversions + + // Test Regional semantics - Nodes placed across multiple regions for high availability + var psRegional = new PSNodePlacementConfiguration(Azure.Batch.Common.NodePlacementPolicyType.Regional); + var mgmtRegional = psRegional.toMgmtNodePlacementConfiguration(); + var backToPs = PSNodePlacementConfiguration.fromMgmtNodePlacementConfiguration(mgmtRegional); + + Assert.Equal(NodePlacementPolicyType.Regional, mgmtRegional.Policy); + Assert.Equal(Azure.Batch.Common.NodePlacementPolicyType.Regional, backToPs.Policy); + + // Test Zonal semantics - Nodes placed within specific availability zones + var psZonal = new PSNodePlacementConfiguration(Azure.Batch.Common.NodePlacementPolicyType.Zonal); + var mgmtZonal = psZonal.toMgmtNodePlacementConfiguration(); + var backToPsZonal = PSNodePlacementConfiguration.fromMgmtNodePlacementConfiguration(mgmtZonal); + + Assert.Equal(NodePlacementPolicyType.Zonal, mgmtZonal.Policy); + Assert.Equal(Azure.Batch.Common.NodePlacementPolicyType.Zonal, backToPsZonal.Policy); + } + + [Fact] + public void NodePlacementConfigurationConversions_NullHandling_WorksCorrectly() + { + // Test null handling in conversions + + // Act + var resultFromNullMgmt = PSNodePlacementConfiguration.fromMgmtNodePlacementConfiguration(null); + + // Assert + Assert.Null(resultFromNullMgmt); + } + + [Fact] + public void NodePlacementConfigurationConversions_PoolPlacementContext_VerifyCorrectUsage() + { + // This test validates the conversions work correctly in the context of Batch pool node placement + // NodePlacementConfiguration is used to determine how compute nodes are allocated across Azure infrastructure + + // Arrange - Test Regional strategy for distributed workloads + var psRegional = new PSNodePlacementConfiguration(Azure.Batch.Common.NodePlacementPolicyType.Regional); + var mgmtRegional = psRegional.toMgmtNodePlacementConfiguration(); + + // Act & Assert - Regional should convert correctly for cross-region high availability + Assert.Equal(NodePlacementPolicyType.Regional, mgmtRegional.Policy); + + // Arrange - Test Zonal strategy for zone-aware workloads + var psZonal = new PSNodePlacementConfiguration(Azure.Batch.Common.NodePlacementPolicyType.Zonal); + var mgmtZonal = psZonal.toMgmtNodePlacementConfiguration(); + + // Act & Assert - Zonal should convert correctly for availability zone placement + Assert.Equal(NodePlacementPolicyType.Zonal, mgmtZonal.Policy); + + // Verify round-trip conversion maintains pool placement semantics + var backToRegional = PSNodePlacementConfiguration.fromMgmtNodePlacementConfiguration(mgmtRegional); + var backToZonal = PSNodePlacementConfiguration.fromMgmtNodePlacementConfiguration(mgmtZonal); + + Assert.Equal(Azure.Batch.Common.NodePlacementPolicyType.Regional, backToRegional.Policy); + Assert.Equal(Azure.Batch.Common.NodePlacementPolicyType.Zonal, backToZonal.Policy); + } + + [Fact] + public void NodePlacementConfigurationConversions_InstanceCreation_VerifyBehavior() + { + // This test verifies that the conversion methods create appropriate instances + + // Arrange + var psConfig = new PSNodePlacementConfiguration(Azure.Batch.Common.NodePlacementPolicyType.Regional); + var mgmtConfig = new NodePlacementConfiguration(NodePlacementPolicyType.Zonal); + + // Act + var mgmtResult = psConfig.toMgmtNodePlacementConfiguration(); + var psResult = PSNodePlacementConfiguration.fromMgmtNodePlacementConfiguration(mgmtConfig); + + // Assert - Verify proper instance creation + Assert.NotNull(mgmtResult); + Assert.NotNull(psResult); + Assert.IsType(mgmtResult); + Assert.IsType(psResult); + + // Verify new instances are created + Assert.NotSame(mgmtConfig, mgmtResult); + Assert.NotSame(psConfig, psResult); + } + + [Fact] + public void NodePlacementConfigurationConversions_DefaultValues_HandleCorrectly() + { + // Test conversion with default/null policy values + + // Arrange + var defaultPsConfig = new PSNodePlacementConfiguration(policy: null); + var defaultMgmtConfig = new NodePlacementConfiguration(); // Uses default constructor + + // Act + var mgmtResult = defaultPsConfig.toMgmtNodePlacementConfiguration(); + var psResult = PSNodePlacementConfiguration.fromMgmtNodePlacementConfiguration(defaultMgmtConfig); + + // Assert + Assert.NotNull(mgmtResult); + Assert.NotNull(psResult); + Assert.Null(mgmtResult.Policy); + Assert.True(psResult.Policy == null || Enum.IsDefined(typeof(Azure.Batch.Common.NodePlacementPolicyType), psResult.Policy)); + } + + #endregion + + #region Performance and Edge Case Tests + + [Fact] + public void NodePlacementConfigurationConversions_PerformanceTest_ExecutesQuickly() + { + // This test ensures the conversions are efficient + + // Arrange + var psConfig = new PSNodePlacementConfiguration(Azure.Batch.Common.NodePlacementPolicyType.Regional); + var mgmtConfig = new NodePlacementConfiguration(NodePlacementPolicyType.Zonal); + + // Act & Assert - Multiple conversions should complete without delay + for (int i = 0; i < 100; i++) + { + var mgmtResult = psConfig.toMgmtNodePlacementConfiguration(); + var psResult = PSNodePlacementConfiguration.fromMgmtNodePlacementConfiguration(mgmtConfig); + + Assert.NotNull(mgmtResult); + Assert.NotNull(psResult); + } + } + + [Fact] + public void NodePlacementConfigurationConversions_TypeSafety_VerifyCorrectTypes() + { + // Test that conversions return the correct types + + // Arrange + var psConfig = new PSNodePlacementConfiguration(Azure.Batch.Common.NodePlacementPolicyType.Regional); + var mgmtConfig = new NodePlacementConfiguration(NodePlacementPolicyType.Zonal); + + // Act + var mgmtResult = psConfig.toMgmtNodePlacementConfiguration(); + var psResult = PSNodePlacementConfiguration.fromMgmtNodePlacementConfiguration(mgmtConfig); + + // Assert - Verify correct types are returned + Assert.IsType(mgmtResult); + Assert.IsType(psResult); + } + + [Fact] + public void NodePlacementConfigurationConversions_PolicyProperty_AccessibleAfterConversion() + { + // Test that the Policy property is accessible and correct after conversion + + // Arrange + var originalPolicy = Azure.Batch.Common.NodePlacementPolicyType.Zonal; + var psConfig = new PSNodePlacementConfiguration(originalPolicy); + + // Act + var mgmtConfig = psConfig.toMgmtNodePlacementConfiguration(); + var convertedPsConfig = PSNodePlacementConfiguration.fromMgmtNodePlacementConfiguration(mgmtConfig); + + // Assert + Assert.Equal(originalPolicy, psConfig.Policy); + Assert.Equal(NodePlacementPolicyType.Zonal, mgmtConfig.Policy); + Assert.Equal(originalPolicy, convertedPsConfig.Policy); + } + + #endregion + + #region Infrastructure Resilience Tests + + [Fact] + public void NodePlacementConfigurationConversions_RegionalStrategy_InfrastructureResilience() + { + // This test validates that Regional policy semantics are preserved for infrastructure resilience + + // Arrange - Regional policy for spreading across regions + var psConfig = new PSNodePlacementConfiguration(Azure.Batch.Common.NodePlacementPolicyType.Regional); + + // Act + var mgmtConfig = psConfig.toMgmtNodePlacementConfiguration(); + var backToPs = PSNodePlacementConfiguration.fromMgmtNodePlacementConfiguration(mgmtConfig); + + // Assert - Regional placement semantics preserved + Assert.Equal(NodePlacementPolicyType.Regional, mgmtConfig.Policy); + Assert.Equal(Azure.Batch.Common.NodePlacementPolicyType.Regional, backToPs.Policy); + // Regional policy ensures nodes are distributed across multiple Azure regions for maximum resilience + } + + [Fact] + public void NodePlacementConfigurationConversions_ZonalStrategy_AvailabilityZoneAwareness() + { + // This test validates that Zonal policy semantics are preserved for availability zone awareness + + // Arrange - Zonal policy for availability zone placement + var psConfig = new PSNodePlacementConfiguration(Azure.Batch.Common.NodePlacementPolicyType.Zonal); + + // Act + var mgmtConfig = psConfig.toMgmtNodePlacementConfiguration(); + var backToPs = PSNodePlacementConfiguration.fromMgmtNodePlacementConfiguration(mgmtConfig); + + // Assert - Zonal placement semantics preserved + Assert.Equal(NodePlacementPolicyType.Zonal, mgmtConfig.Policy); + Assert.Equal(Azure.Batch.Common.NodePlacementPolicyType.Zonal, backToPs.Policy); + // Zonal policy ensures nodes are placed within specific availability zones for fault tolerance + } + + #endregion + + #region Constructor and Internal Object Tests + + [Fact] + public void PSNodePlacementConfiguration_Constructor_InitializesCorrectly() + { + // Test that the PS constructor properly initializes the internal object + + // Arrange & Act + var regionalConfig = new PSNodePlacementConfiguration(Azure.Batch.Common.NodePlacementPolicyType.Regional); + var zonalConfig = new PSNodePlacementConfiguration(Azure.Batch.Common.NodePlacementPolicyType.Zonal); + var nullConfig = new PSNodePlacementConfiguration(policy: null); + + // Assert + Assert.Equal(Azure.Batch.Common.NodePlacementPolicyType.Regional, regionalConfig.Policy); + Assert.Equal(Azure.Batch.Common.NodePlacementPolicyType.Zonal, zonalConfig.Policy); + Assert.Null(nullConfig.Policy); + } + + [Fact] + public void PSNodePlacementConfiguration_InternalConstructor_ThrowsOnNullOmObject() + { + // Test that the internal constructor validates the omObject parameter + + // Act & Assert + Assert.Throws(() => + new PSNodePlacementConfiguration((Microsoft.Azure.Batch.NodePlacementConfiguration)null)); + } + + [Fact] + public void PSNodePlacementConfiguration_InternalConstructor_WorksWithValidOmObject() + { + // Test that the internal constructor works with a valid omObject + + // Arrange + var omObject = new Microsoft.Azure.Batch.NodePlacementConfiguration(Azure.Batch.Common.NodePlacementPolicyType.Regional); + + // Act + var psConfig = new PSNodePlacementConfiguration(omObject); + + // Assert + Assert.NotNull(psConfig); + Assert.Equal(Azure.Batch.Common.NodePlacementPolicyType.Regional, psConfig.Policy); + } + + #endregion + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Test/Models/PSOSDiskTests.cs b/src/Batch/Batch.Test/Models/PSOSDiskTests.cs new file mode 100644 index 000000000000..1fe6fcf94d79 --- /dev/null +++ b/src/Batch/Batch.Test/Models/PSOSDiskTests.cs @@ -0,0 +1,833 @@ +// ----------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ----------------------------------------------------------------------------- + +using Microsoft.Azure.Commands.Batch.Models; +using Microsoft.Azure.Management.Batch.Models; +using System; +using Xunit; + +namespace Microsoft.Azure.Commands.Batch.Test.ModelsConversions +{ + public class PSOSDiskTests + { + #region fromMgmtOSDisk Tests + + [Fact] + public void FromMgmtOSDisk_WithCompleteOSDisk_ReturnsCorrectMapping() + { + // Arrange + var mgmtManagedDisk = new ManagedDisk(StorageAccountType.PremiumLRS); + var mgmtEphemeralSettings = new DiffDiskSettings(DiffDiskPlacement.CacheDisk); + var mgmtOSDisk = new OSDisk( + ephemeralOSDiskSettings: mgmtEphemeralSettings, + caching: CachingType.ReadWrite, + managedDisk: mgmtManagedDisk, + diskSizeGb: 128, + writeAcceleratorEnabled: true + ); + + // Act + var result = PSOSDisk.fromMgmtOSDisk(mgmtOSDisk); + + // Assert + Assert.NotNull(result); + Assert.NotNull(result.ManagedDisk); + Assert.Equal(Microsoft.Azure.Batch.Common.StorageAccountType.PremiumLrs, result.ManagedDisk.StorageAccountType); + Assert.Equal(128, result.DiskSizeGB); + Assert.NotNull(result.EphemeralOSDiskSettings); + Assert.Equal(Azure.Batch.Common.DiffDiskPlacement.CacheDisk, result.EphemeralOSDiskSettings.Placement); + Assert.Equal(Microsoft.Azure.Batch.Common.CachingType.ReadWrite, result.Caching); + Assert.True(result.WriteAcceleratorEnabled); + } + + [Fact] + public void FromMgmtOSDisk_WithMinimalOSDisk_ReturnsCorrectMapping() + { + // Arrange + var mgmtOSDisk = new OSDisk(); + + // Act + var result = PSOSDisk.fromMgmtOSDisk(mgmtOSDisk); + + // Assert + Assert.NotNull(result); + Assert.Null(result.ManagedDisk); + Assert.Null(result.DiskSizeGB); + Assert.Null(result.EphemeralOSDiskSettings); + Assert.Null(result.Caching); + Assert.Null(result.WriteAcceleratorEnabled); + } + + [Fact] + public void FromMgmtOSDisk_WithNullOSDisk_ReturnsNull() + { + // Act + var result = PSOSDisk.fromMgmtOSDisk(null); + + // Assert + Assert.Null(result); + } + + [Fact] + public void FromMgmtOSDisk_VerifyCorrectType_ReturnsPSOSDisk() + { + // Arrange + var mgmtOSDisk = new OSDisk(diskSizeGb: 64); + + // Act + var result = PSOSDisk.fromMgmtOSDisk(mgmtOSDisk); + + // Assert + Assert.NotNull(result); + Assert.IsType(result); + } + + [Theory] + [InlineData(CachingType.None, Microsoft.Azure.Batch.Common.CachingType.None)] + [InlineData(CachingType.ReadOnly, Microsoft.Azure.Batch.Common.CachingType.ReadOnly)] + [InlineData(CachingType.ReadWrite, Microsoft.Azure.Batch.Common.CachingType.ReadWrite)] + public void FromMgmtOSDisk_AllValidCachingTypes_ReturnsCorrectMapping( + CachingType mgmtCaching, + Microsoft.Azure.Batch.Common.CachingType expectedPsCaching) + { + // Arrange + var mgmtOSDisk = new OSDisk(caching: mgmtCaching); + + // Act + var result = PSOSDisk.fromMgmtOSDisk(mgmtOSDisk); + + // Assert + Assert.NotNull(result); + Assert.Equal(expectedPsCaching, result.Caching); + } + + [Theory] + [InlineData(64)] + [InlineData(128)] + [InlineData(256)] + [InlineData(512)] + [InlineData(1024)] + public void FromMgmtOSDisk_VariousDiskSizes_ReturnsCorrectMapping(int diskSize) + { + // Arrange + var mgmtOSDisk = new OSDisk(diskSizeGb: diskSize); + + // Act + var result = PSOSDisk.fromMgmtOSDisk(mgmtOSDisk); + + // Assert + Assert.NotNull(result); + Assert.Equal(diskSize, result.DiskSizeGB); + } + + [Theory] + [InlineData(true)] + [InlineData(false)] + public void FromMgmtOSDisk_WriteAcceleratorEnabled_ReturnsCorrectMapping(bool writeAcceleratorEnabled) + { + // Arrange + var mgmtOSDisk = new OSDisk(writeAcceleratorEnabled: writeAcceleratorEnabled); + + // Act + var result = PSOSDisk.fromMgmtOSDisk(mgmtOSDisk); + + // Assert + Assert.NotNull(result); + Assert.Equal(writeAcceleratorEnabled, result.WriteAcceleratorEnabled); + } + + #endregion + + #region toMgmtOSDisk Tests + + [Fact] + public void ToMgmtOSDisk_WithCompleteOSDisk_ReturnsCorrectMapping() + { + // Arrange + var psManagedDisk = new PSManagedDisk(Microsoft.Azure.Batch.Common.StorageAccountType.StandardSSDLRS); + var psEphemeralSettings = new PSDiffDiskSettings + { + Placement = Azure.Batch.Common.DiffDiskPlacement.CacheDisk + }; + var psOSDisk = new PSOSDisk + { + ManagedDisk = psManagedDisk, + DiskSizeGB = 256, + EphemeralOSDiskSettings = psEphemeralSettings, + Caching = Microsoft.Azure.Batch.Common.CachingType.ReadOnly, + WriteAcceleratorEnabled = false + }; + + // Act + var result = psOSDisk.toMgmtOSDisk(); + + // Assert + Assert.NotNull(result); + Assert.NotNull(result.ManagedDisk); + Assert.Equal(StorageAccountType.StandardSSDLRS, result.ManagedDisk.StorageAccountType); + Assert.Equal(256, result.DiskSizeGb); + Assert.NotNull(result.EphemeralOSDiskSettings); + Assert.Equal(DiffDiskPlacement.CacheDisk, result.EphemeralOSDiskSettings.Placement); + Assert.Equal(CachingType.ReadOnly, result.Caching); + Assert.False(result.WriteAcceleratorEnabled); + } + + [Fact] + public void ToMgmtOSDisk_WithMinimalOSDisk_ReturnsCorrectMapping() + { + // Arrange + var psOSDisk = new PSOSDisk(); + + // Act + var result = psOSDisk.toMgmtOSDisk(); + + // Assert + Assert.NotNull(result); + Assert.Null(result.ManagedDisk); + Assert.Null(result.DiskSizeGb); + Assert.Null(result.EphemeralOSDiskSettings); + Assert.Null(result.Caching); + Assert.Null(result.WriteAcceleratorEnabled); + } + + [Fact] + public void ToMgmtOSDisk_VerifyCorrectType_ReturnsOSDisk() + { + // Arrange + var psOSDisk = new PSOSDisk + { + DiskSizeGB = 64 + }; + + // Act + var result = psOSDisk.toMgmtOSDisk(); + + // Assert + Assert.NotNull(result); + Assert.IsType(result); + } + + [Theory] + [InlineData(Microsoft.Azure.Batch.Common.CachingType.None, CachingType.None)] + [InlineData(Microsoft.Azure.Batch.Common.CachingType.ReadOnly, CachingType.ReadOnly)] + [InlineData(Microsoft.Azure.Batch.Common.CachingType.ReadWrite, CachingType.ReadWrite)] + public void ToMgmtOSDisk_AllValidCachingTypes_ReturnsCorrectMapping( + Microsoft.Azure.Batch.Common.CachingType psCaching, + CachingType expectedMgmtCaching) + { + // Arrange + var psOSDisk = new PSOSDisk + { + Caching = psCaching + }; + + // Act + var result = psOSDisk.toMgmtOSDisk(); + + // Assert + Assert.NotNull(result); + Assert.Equal(expectedMgmtCaching, result.Caching); + } + + [Theory] + [InlineData(32)] + [InlineData(64)] + [InlineData(128)] + [InlineData(256)] + [InlineData(512)] + [InlineData(1024)] + [InlineData(2048)] + public void ToMgmtOSDisk_VariousDiskSizes_ReturnsCorrectMapping(int diskSize) + { + // Arrange + var psOSDisk = new PSOSDisk + { + DiskSizeGB = diskSize + }; + + // Act + var result = psOSDisk.toMgmtOSDisk(); + + // Assert + Assert.NotNull(result); + Assert.Equal(diskSize, result.DiskSizeGb); + } + + [Theory] + [InlineData(true)] + [InlineData(false)] + public void ToMgmtOSDisk_WriteAcceleratorEnabled_ReturnsCorrectMapping(bool writeAcceleratorEnabled) + { + // Arrange + var psOSDisk = new PSOSDisk + { + WriteAcceleratorEnabled = writeAcceleratorEnabled + }; + + // Act + var result = psOSDisk.toMgmtOSDisk(); + + // Assert + Assert.NotNull(result); + Assert.Equal(writeAcceleratorEnabled, result.WriteAcceleratorEnabled); + } + + [Fact] + public void ToMgmtOSDisk_AlwaysCreatesNewInstance() + { + // Arrange + var psOSDisk = new PSOSDisk + { + DiskSizeGB = 128 + }; + + // Act + var result1 = psOSDisk.toMgmtOSDisk(); + var result2 = psOSDisk.toMgmtOSDisk(); + + // Assert + Assert.NotNull(result1); + Assert.NotNull(result2); + Assert.NotSame(result1, result2); + } + + #endregion + + #region Round-trip Conversion Tests + + [Fact] + public void RoundTripConversion_FromMgmtAndToMgmt_PreservesCompleteConfiguration() + { + // Arrange + var originalMgmtOSDisk = new OSDisk( + ephemeralOSDiskSettings: new DiffDiskSettings(DiffDiskPlacement.CacheDisk), + caching: CachingType.ReadWrite, + managedDisk: new ManagedDisk(StorageAccountType.PremiumLRS), + diskSizeGb: 512, + writeAcceleratorEnabled: true + ); + + // Act - Convert Management -> PS -> Management + var psOSDisk = PSOSDisk.fromMgmtOSDisk(originalMgmtOSDisk); + var roundTripMgmtOSDisk = psOSDisk.toMgmtOSDisk(); + + // Assert - Should get back the original values + Assert.NotNull(roundTripMgmtOSDisk); + Assert.Equal(originalMgmtOSDisk.DiskSizeGb, roundTripMgmtOSDisk.DiskSizeGb); + Assert.Equal(originalMgmtOSDisk.Caching, roundTripMgmtOSDisk.Caching); + Assert.Equal(originalMgmtOSDisk.WriteAcceleratorEnabled, roundTripMgmtOSDisk.WriteAcceleratorEnabled); + Assert.Equal(originalMgmtOSDisk.ManagedDisk.StorageAccountType, roundTripMgmtOSDisk.ManagedDisk.StorageAccountType); + Assert.Equal(originalMgmtOSDisk.EphemeralOSDiskSettings.Placement, roundTripMgmtOSDisk.EphemeralOSDiskSettings.Placement); + } + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesCompleteConfiguration() + { + // Arrange + var originalPsOSDisk = new PSOSDisk + { + ManagedDisk = new PSManagedDisk(Microsoft.Azure.Batch.Common.StorageAccountType.StandardLrs), + DiskSizeGB = 256, + EphemeralOSDiskSettings = new PSDiffDiskSettings { Placement = Azure.Batch.Common.DiffDiskPlacement.CacheDisk }, + Caching = Microsoft.Azure.Batch.Common.CachingType.ReadOnly, + WriteAcceleratorEnabled = false + }; + + // Act - Convert PS -> Management -> PS + var mgmtOSDisk = originalPsOSDisk.toMgmtOSDisk(); + var roundTripPsOSDisk = PSOSDisk.fromMgmtOSDisk(mgmtOSDisk); + + // Assert - Should get back the original values + Assert.NotNull(roundTripPsOSDisk); + Assert.Equal(originalPsOSDisk.DiskSizeGB, roundTripPsOSDisk.DiskSizeGB); + Assert.Equal(originalPsOSDisk.Caching, roundTripPsOSDisk.Caching); + Assert.Equal(originalPsOSDisk.WriteAcceleratorEnabled, roundTripPsOSDisk.WriteAcceleratorEnabled); + Assert.Equal(originalPsOSDisk.ManagedDisk.StorageAccountType, roundTripPsOSDisk.ManagedDisk.StorageAccountType); + Assert.Equal(originalPsOSDisk.EphemeralOSDiskSettings.Placement, roundTripPsOSDisk.EphemeralOSDiskSettings.Placement); + } + + [Theory] + [InlineData(64, CachingType.None, false)] + [InlineData(128, CachingType.ReadOnly, true)] + [InlineData(256, CachingType.ReadWrite, false)] + [InlineData(512, CachingType.ReadOnly, true)] + public void RoundTripConversion_VariousConfigurations_PreservesAllValues( + int diskSize, CachingType caching, bool writeAcceleratorEnabled) + { + // Arrange + var originalMgmtOSDisk = new OSDisk( + caching: caching, + diskSizeGb: diskSize, + writeAcceleratorEnabled: writeAcceleratorEnabled + ); + + // Act - Convert Management -> PS -> Management + var psOSDisk = PSOSDisk.fromMgmtOSDisk(originalMgmtOSDisk); + var roundTripMgmtOSDisk = psOSDisk.toMgmtOSDisk(); + + // Assert - Should get back the original values + Assert.NotNull(roundTripMgmtOSDisk); + Assert.Equal(diskSize, roundTripMgmtOSDisk.DiskSizeGb); + Assert.Equal(caching, roundTripMgmtOSDisk.Caching); + Assert.Equal(writeAcceleratorEnabled, roundTripMgmtOSDisk.WriteAcceleratorEnabled); + } + + [Fact] + public void RoundTripConversion_WithNullValues_PreservesNulls() + { + // Arrange + var originalMgmtOSDisk = new OSDisk( + ephemeralOSDiskSettings: null, + caching: null, + managedDisk: null, + diskSizeGb: null, + writeAcceleratorEnabled: null + ); + + // Act - Convert Management -> PS -> Management + var psOSDisk = PSOSDisk.fromMgmtOSDisk(originalMgmtOSDisk); + var roundTripMgmtOSDisk = psOSDisk.toMgmtOSDisk(); + + // Assert - Should preserve null values + Assert.NotNull(roundTripMgmtOSDisk); + Assert.Null(roundTripMgmtOSDisk.EphemeralOSDiskSettings); + Assert.Null(roundTripMgmtOSDisk.Caching); + Assert.Null(roundTripMgmtOSDisk.ManagedDisk); + Assert.Null(roundTripMgmtOSDisk.DiskSizeGb); + Assert.Null(roundTripMgmtOSDisk.WriteAcceleratorEnabled); + } + + [Fact] + public void RoundTripConversion_WithNullOSDisk_HandlesCorrectly() + { + // Arrange + OSDisk nullMgmtOSDisk = null; + + // Act + var psOSDisk = PSOSDisk.fromMgmtOSDisk(nullMgmtOSDisk); + + // Assert + Assert.Null(psOSDisk); + } + + #endregion + + #region Integration Tests + + [Fact] + public void OSDiskConversions_BothDirections_MaintainSemanticEquivalence() + { + // This test ensures that the semantic meaning is preserved across conversions + + // Test complete OS disk configuration with all components + var mgmtOSDisk = new OSDisk( + ephemeralOSDiskSettings: new DiffDiskSettings(DiffDiskPlacement.CacheDisk), + caching: CachingType.ReadWrite, + managedDisk: new ManagedDisk(StorageAccountType.PremiumLRS), + diskSizeGb: 128, + writeAcceleratorEnabled: true + ); + + var psOSDisk = PSOSDisk.fromMgmtOSDisk(mgmtOSDisk); + var backToMgmt = psOSDisk.toMgmtOSDisk(); + + // Assert semantic equivalence preserved + Assert.Equal(Azure.Batch.Common.DiffDiskPlacement.CacheDisk, psOSDisk.EphemeralOSDiskSettings.Placement); + Assert.Equal(Microsoft.Azure.Batch.Common.CachingType.ReadWrite, psOSDisk.Caching); + Assert.Equal(Microsoft.Azure.Batch.Common.StorageAccountType.PremiumLrs, psOSDisk.ManagedDisk.StorageAccountType); + Assert.Equal(128, psOSDisk.DiskSizeGB); + Assert.True(psOSDisk.WriteAcceleratorEnabled); + + Assert.Equal(DiffDiskPlacement.CacheDisk, backToMgmt.EphemeralOSDiskSettings.Placement); + Assert.Equal(CachingType.ReadWrite, backToMgmt.Caching); + Assert.Equal(StorageAccountType.PremiumLRS, backToMgmt.ManagedDisk.StorageAccountType); + Assert.Equal(128, backToMgmt.DiskSizeGb); + Assert.True(backToMgmt.WriteAcceleratorEnabled); + } + + [Fact] + public void OSDiskConversions_NullHandling_WorksCorrectly() + { + // Test null handling in conversions + + // Act + var resultFromNull = PSOSDisk.fromMgmtOSDisk(null); + + // Assert + Assert.Null(resultFromNull); + } + + [Fact] + public void OSDiskConversions_VirtualMachineContext_VerifyCorrectUsage() + { + // This test validates the conversions work correctly in the context of Azure VM OS disk configuration + // OSDisk is used to configure the operating system disk for Azure Batch VMs + + // Arrange - Test OS disk configuration for high-performance Batch nodes + var mgmtOSDisk = new OSDisk( + ephemeralOSDiskSettings: new DiffDiskSettings(DiffDiskPlacement.CacheDisk), + caching: CachingType.ReadWrite, + managedDisk: new ManagedDisk(StorageAccountType.PremiumLRS), + diskSizeGb: 256, + writeAcceleratorEnabled: true + ); + + var psOSDisk = PSOSDisk.fromMgmtOSDisk(mgmtOSDisk); + + // Act & Assert - Should convert correctly for VM OS disk configuration + Assert.Equal(Azure.Batch.Common.DiffDiskPlacement.CacheDisk, psOSDisk.EphemeralOSDiskSettings.Placement); + Assert.Equal(Microsoft.Azure.Batch.Common.CachingType.ReadWrite, psOSDisk.Caching); + Assert.Equal(Microsoft.Azure.Batch.Common.StorageAccountType.PremiumLrs, psOSDisk.ManagedDisk.StorageAccountType); + + // Verify round-trip conversion maintains VM OS disk semantics + var backToMgmt = psOSDisk.toMgmtOSDisk(); + + Assert.Equal(DiffDiskPlacement.CacheDisk, backToMgmt.EphemeralOSDiskSettings.Placement); + Assert.Equal(CachingType.ReadWrite, backToMgmt.Caching); + Assert.Equal(StorageAccountType.PremiumLRS, backToMgmt.ManagedDisk.StorageAccountType); + } + + [Fact] + public void OSDiskConversions_DefaultValues_HandleCorrectly() + { + // Test conversion with default OS disk values + + // Arrange + var defaultMgmtOSDisk = new OSDisk(); + var defaultPsOSDisk = new PSOSDisk(); + + // Act + var psFromDefault = PSOSDisk.fromMgmtOSDisk(defaultMgmtOSDisk); + var mgmtFromDefault = defaultPsOSDisk.toMgmtOSDisk(); + + // Assert + Assert.NotNull(psFromDefault); + Assert.NotNull(mgmtFromDefault); + // Default values should be preserved + Assert.Equal(defaultMgmtOSDisk.DiskSizeGb, mgmtFromDefault.DiskSizeGb); + Assert.Equal(defaultMgmtOSDisk.Caching, mgmtFromDefault.Caching); + Assert.Equal(defaultMgmtOSDisk.WriteAcceleratorEnabled, mgmtFromDefault.WriteAcceleratorEnabled); + } + + #endregion + + #region Performance and Edge Case Tests + + [Fact] + public void OSDiskConversions_PerformanceTest_ExecutesQuickly() + { + // This test ensures the conversions are efficient + + // Arrange + var mgmtOSDisk = new OSDisk( + caching: CachingType.ReadWrite, + diskSizeGb: 128 + ); + var psOSDisk = new PSOSDisk + { + Caching = Microsoft.Azure.Batch.Common.CachingType.ReadOnly, + DiskSizeGB = 256 + }; + + // Act & Assert - Multiple conversions should complete without delay + for (int i = 0; i < 100; i++) + { + var psResult = PSOSDisk.fromMgmtOSDisk(mgmtOSDisk); + var mgmtResult = psOSDisk.toMgmtOSDisk(); + + Assert.NotNull(psResult); + Assert.NotNull(mgmtResult); + Assert.Equal(Microsoft.Azure.Batch.Common.CachingType.ReadWrite, psResult.Caching); + Assert.Equal(CachingType.ReadOnly, mgmtResult.Caching); + } + } + + [Fact] + public void OSDiskConversions_EdgeCaseDiskSizes_HandleCorrectly() + { + // Test conversion with various edge case disk sizes + + var testDiskSizes = new[] + { + // Minimum OS disk sizes + 30, + 32, + + // Common OS disk sizes + 64, + 128, + 256, + 512, + 1024, + + // Large OS disk sizes + 2048, + 4096 + }; + + foreach (var diskSize in testDiskSizes) + { + // Arrange + var mgmtOSDisk = new OSDisk(diskSizeGb: diskSize); + + // Act + var psResult = PSOSDisk.fromMgmtOSDisk(mgmtOSDisk); + var roundTripResult = psResult.toMgmtOSDisk(); + + // Assert + Assert.NotNull(psResult); + Assert.NotNull(roundTripResult); + Assert.Equal(diskSize, psResult.DiskSizeGB); + Assert.Equal(diskSize, roundTripResult.DiskSizeGb); + } + } + + #endregion + + #region Type Safety and Instance Creation Tests + + [Fact] + public void OSDiskConversions_TypeSafety_VerifyCorrectTypes() + { + // Test that conversions return the correct types + + // Arrange + var mgmtOSDisk = new OSDisk(diskSizeGb: 128); + var psOSDisk = new PSOSDisk + { + DiskSizeGB = 256 + }; + + // Act + var psResult = PSOSDisk.fromMgmtOSDisk(mgmtOSDisk); + var mgmtResult = psOSDisk.toMgmtOSDisk(); + + // Assert - Verify correct types are returned + Assert.IsType(psResult); + Assert.IsType(mgmtResult); + } + + [Fact] + public void OSDiskConversions_InstanceCreation_VerifyBehavior() + { + // This test verifies that the conversion methods create appropriate instances + + // Arrange + var mgmtOSDisk = new OSDisk( + caching: CachingType.ReadWrite, + diskSizeGb: 128, + writeAcceleratorEnabled: true + ); + var psOSDisk = new PSOSDisk + { + Caching = Microsoft.Azure.Batch.Common.CachingType.ReadOnly, + DiskSizeGB = 256, + WriteAcceleratorEnabled = false + }; + + // Act + var psResult = PSOSDisk.fromMgmtOSDisk(mgmtOSDisk); + var mgmtResult = psOSDisk.toMgmtOSDisk(); + + // Assert - Verify proper instance creation + Assert.NotNull(psResult); + Assert.NotNull(mgmtResult); + Assert.IsType(psResult); + Assert.IsType(mgmtResult); + + // Verify new instances are created + Assert.NotSame(mgmtOSDisk, mgmtResult); + Assert.NotSame(psOSDisk, psResult); + } + + [Fact] + public void OSDiskConversions_PropertiesAccessible_AfterConversion() + { + // Test that all properties are accessible and correct after conversion + + // Arrange + var originalCaching = Microsoft.Azure.Batch.Common.CachingType.ReadWrite; + var originalDiskSize = 512; + var originalWriteAccelerator = true; + + var psOSDisk = new PSOSDisk + { + Caching = originalCaching, + DiskSizeGB = originalDiskSize, + WriteAcceleratorEnabled = originalWriteAccelerator + }; + + // Act + var mgmtOSDisk = psOSDisk.toMgmtOSDisk(); + var convertedPsOSDisk = PSOSDisk.fromMgmtOSDisk(mgmtOSDisk); + + // Assert + Assert.Equal(originalCaching, psOSDisk.Caching); + Assert.Equal(originalDiskSize, psOSDisk.DiskSizeGB); + Assert.Equal(originalWriteAccelerator, psOSDisk.WriteAcceleratorEnabled); + + Assert.Equal(CachingType.ReadWrite, mgmtOSDisk.Caching); + Assert.Equal(originalDiskSize, mgmtOSDisk.DiskSizeGb); + Assert.Equal(originalWriteAccelerator, mgmtOSDisk.WriteAcceleratorEnabled); + + Assert.Equal(originalCaching, convertedPsOSDisk.Caching); + Assert.Equal(originalDiskSize, convertedPsOSDisk.DiskSizeGB); + Assert.Equal(originalWriteAccelerator, convertedPsOSDisk.WriteAcceleratorEnabled); + } + + #endregion + + #region Batch Pool Configuration Context Tests + + [Fact] + public void OSDiskConversions_BatchPoolConfiguration_VerifyOSDiskStrategy() + { + // This test validates the conversions work correctly in Batch pool configuration scenarios + // OSDisk determines the operating system disk configuration for Azure Batch pool VMs + + // Arrange - Test various OS disk configurations for Batch pools + var scenarios = new[] + { + new { + MgmtOSDisk = new OSDisk( + ephemeralOSDiskSettings: new DiffDiskSettings(DiffDiskPlacement.CacheDisk), + caching: CachingType.ReadWrite, + managedDisk: new ManagedDisk(StorageAccountType.PremiumLRS), + diskSizeGb: 128, + writeAcceleratorEnabled: true + ), + Description = "High-performance OS disk configuration for compute-intensive Batch workloads" + }, + new { + MgmtOSDisk = new OSDisk( + caching: CachingType.ReadOnly, + managedDisk: new ManagedDisk(StorageAccountType.StandardLRS), + diskSizeGb: 64, + writeAcceleratorEnabled: false + ), + Description = "Standard OS disk configuration for general Batch workloads" + } + }; + + foreach (var scenario in scenarios) + { + // Act + var psResult = PSOSDisk.fromMgmtOSDisk(scenario.MgmtOSDisk); + var mgmtResult = psResult.toMgmtOSDisk(); + + // Assert + Assert.Equal(scenario.MgmtOSDisk.DiskSizeGb, psResult.DiskSizeGB); + Assert.Equal(scenario.MgmtOSDisk.Caching, mgmtResult.Caching); + Assert.Equal(scenario.MgmtOSDisk.WriteAcceleratorEnabled, mgmtResult.WriteAcceleratorEnabled); + + // Verify round-trip maintains Batch pool OS disk strategy + var roundTripMgmt = psResult.toMgmtOSDisk(); + var roundTripPs = PSOSDisk.fromMgmtOSDisk(mgmtResult); + + Assert.Equal(scenario.MgmtOSDisk.DiskSizeGb, roundTripMgmt.DiskSizeGb); + Assert.Equal(scenario.MgmtOSDisk.Caching.Value.ToString(), roundTripPs.Caching.Value.ToString()); + } + } + + [Fact] + public void OSDiskConversions_VMConfigurationContext_PreservesOSDiskSemantics() + { + // This test ensures that OS disk configuration semantics are correctly preserved in VM context + + // Arrange - High-performance OS disk for Azure Batch compute nodes + var mgmtHighPerfOSDisk = new OSDisk( + ephemeralOSDiskSettings: new DiffDiskSettings(DiffDiskPlacement.CacheDisk), + caching: CachingType.ReadWrite, + managedDisk: new ManagedDisk(StorageAccountType.PremiumLRS), + diskSizeGb: 256, + writeAcceleratorEnabled: true + ); + + // Act + var psHighPerfOSDisk = PSOSDisk.fromMgmtOSDisk(mgmtHighPerfOSDisk); + var backToMgmtHighPerf = psHighPerfOSDisk.toMgmtOSDisk(); + + // Assert - High-performance OS disk semantics preserved + Assert.Equal(Azure.Batch.Common.DiffDiskPlacement.CacheDisk, psHighPerfOSDisk.EphemeralOSDiskSettings.Placement); + Assert.Equal(Microsoft.Azure.Batch.Common.CachingType.ReadWrite, psHighPerfOSDisk.Caching); + Assert.Equal(Microsoft.Azure.Batch.Common.StorageAccountType.PremiumLrs, psHighPerfOSDisk.ManagedDisk.StorageAccountType); + Assert.True(psHighPerfOSDisk.WriteAcceleratorEnabled); + + Assert.Equal(DiffDiskPlacement.CacheDisk, backToMgmtHighPerf.EphemeralOSDiskSettings.Placement); + Assert.Equal(CachingType.ReadWrite, backToMgmtHighPerf.Caching); + Assert.Equal(StorageAccountType.PremiumLRS, backToMgmtHighPerf.ManagedDisk.StorageAccountType); + Assert.True(backToMgmtHighPerf.WriteAcceleratorEnabled); + // OS disk configuration ensures optimal performance for Batch compute workloads + } + + #endregion + + #region Constructor and Internal Object Tests + + [Fact] + public void PSOSDisk_Constructor_InitializesCorrectly() + { + // Test that the PS constructor properly initializes + + // Arrange & Act + var defaultOSDisk = new PSOSDisk(); + var configuredOSDisk = new PSOSDisk + { + DiskSizeGB = 128, + Caching = Microsoft.Azure.Batch.Common.CachingType.ReadWrite, + WriteAcceleratorEnabled = true + }; + + // Assert + Assert.Null(defaultOSDisk.DiskSizeGB); + Assert.Null(defaultOSDisk.Caching); + Assert.Null(defaultOSDisk.WriteAcceleratorEnabled); + + Assert.Equal(128, configuredOSDisk.DiskSizeGB); + Assert.Equal(Microsoft.Azure.Batch.Common.CachingType.ReadWrite, configuredOSDisk.Caching); + Assert.True(configuredOSDisk.WriteAcceleratorEnabled); + } + + [Fact] + public void OSDisk_Constructor_WorksWithParameters() + { + // Test that the Management constructor works with all parameters + + // Arrange & Act + var minimalOSDisk = new OSDisk(); + var fullOSDisk = new OSDisk( + ephemeralOSDiskSettings: new DiffDiskSettings(DiffDiskPlacement.CacheDisk), + caching: CachingType.ReadWrite, + managedDisk: new ManagedDisk(StorageAccountType.PremiumLRS), + diskSizeGb: 256, + writeAcceleratorEnabled: true + ); + + // Assert + Assert.Null(minimalOSDisk.EphemeralOSDiskSettings); + Assert.Null(minimalOSDisk.Caching); + Assert.Null(minimalOSDisk.ManagedDisk); + Assert.Null(minimalOSDisk.DiskSizeGb); + Assert.Null(minimalOSDisk.WriteAcceleratorEnabled); + + Assert.Equal(DiffDiskPlacement.CacheDisk, fullOSDisk.EphemeralOSDiskSettings.Placement); + Assert.Equal(CachingType.ReadWrite, fullOSDisk.Caching); + Assert.Equal(StorageAccountType.PremiumLRS, fullOSDisk.ManagedDisk.StorageAccountType); + Assert.Equal(256, fullOSDisk.DiskSizeGb); + Assert.True(fullOSDisk.WriteAcceleratorEnabled); + } + + #endregion + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Test/Models/PSPublicIPAddressConfigurationTests.cs b/src/Batch/Batch.Test/Models/PSPublicIPAddressConfigurationTests.cs new file mode 100644 index 000000000000..cc21c4877dd6 --- /dev/null +++ b/src/Batch/Batch.Test/Models/PSPublicIPAddressConfigurationTests.cs @@ -0,0 +1,976 @@ +// ----------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ----------------------------------------------------------------------------- + +using Microsoft.Azure.Commands.Batch.Models; +using Microsoft.Azure.Management.Batch.Models; +using System.Collections.Generic; +using System.Linq; +using Xunit; + +namespace Microsoft.Azure.Commands.Batch.Test.ModelsConversions +{ + public class PSPublicIPAddressConfigurationTests + { + #region toMgmtPublicIPAddressConfiguration Tests + + [Fact] + public void ToMgmtPublicIPAddressConfiguration_WithBatchManagedProvision_ReturnsCorrectMapping() + { + // Arrange + var psConfig = new PSPublicIPAddressConfiguration(Microsoft.Azure.Batch.Common.IPAddressProvisioningType.BatchManaged); + + // Act + var result = psConfig.toMgmtPublicIPAddressConfiguration(); + + // Assert + Assert.NotNull(result); + Assert.Equal(IPAddressProvisioningType.BatchManaged, result.Provision); + Assert.Null(result.IPAddressIds); + } + + [Fact] + public void ToMgmtPublicIPAddressConfiguration_WithUserManagedProvision_ReturnsCorrectMapping() + { + // Arrange + var psConfig = new PSPublicIPAddressConfiguration(Microsoft.Azure.Batch.Common.IPAddressProvisioningType.UserManaged); + + // Act + var result = psConfig.toMgmtPublicIPAddressConfiguration(); + + // Assert + Assert.NotNull(result); + Assert.Equal(IPAddressProvisioningType.UserManaged, result.Provision); + Assert.Null(result.IPAddressIds); + } + + [Fact] + public void ToMgmtPublicIPAddressConfiguration_WithNoPublicIPAddresses_ReturnsCorrectMapping() + { + // Arrange + var psConfig = new PSPublicIPAddressConfiguration(Microsoft.Azure.Batch.Common.IPAddressProvisioningType.NoPublicIPAddresses); + + // Act + var result = psConfig.toMgmtPublicIPAddressConfiguration(); + + // Assert + Assert.NotNull(result); + Assert.Equal(IPAddressProvisioningType.NoPublicIPAddresses, result.Provision); + Assert.Null(result.IPAddressIds); + } + + [Fact] + public void ToMgmtPublicIPAddressConfiguration_WithNullProvision_ReturnsCorrectMapping() + { + // Arrange + var psConfig = new PSPublicIPAddressConfiguration(provision: null); + + // Act + var result = psConfig.toMgmtPublicIPAddressConfiguration(); + + // Assert + Assert.NotNull(result); + Assert.Null(result.Provision); + Assert.Null(result.IPAddressIds); + } + + [Fact] + public void ToMgmtPublicIPAddressConfiguration_WithSingleIPAddressId_ReturnsCorrectMapping() + { + // Arrange + var ipAddressIds = new List + { + "/subscriptions/12345678-1234-1234-1234-123456789abc/resourceGroups/test-rg/providers/Microsoft.Network/publicIPAddresses/test-ip-1" + }; + var psConfig = new PSPublicIPAddressConfiguration(Microsoft.Azure.Batch.Common.IPAddressProvisioningType.UserManaged) + { + IpAddressIds = ipAddressIds + }; + + // Act + var result = psConfig.toMgmtPublicIPAddressConfiguration(); + + // Assert + Assert.NotNull(result); + Assert.Equal(IPAddressProvisioningType.UserManaged, result.Provision); + Assert.NotNull(result.IPAddressIds); + Assert.Single(result.IPAddressIds); + Assert.Equal(ipAddressIds[0], result.IPAddressIds[0]); + } + + [Fact] + public void ToMgmtPublicIPAddressConfiguration_WithMultipleIPAddressIds_ReturnsCorrectMapping() + { + // Arrange + var ipAddressIds = new List + { + "/subscriptions/12345678-1234-1234-1234-123456789abc/resourceGroups/test-rg/providers/Microsoft.Network/publicIPAddresses/test-ip-1", + "/subscriptions/12345678-1234-1234-1234-123456789abc/resourceGroups/test-rg/providers/Microsoft.Network/publicIPAddresses/test-ip-2", + "/subscriptions/12345678-1234-1234-1234-123456789abc/resourceGroups/test-rg/providers/Microsoft.Network/publicIPAddresses/test-ip-3" + }; + var psConfig = new PSPublicIPAddressConfiguration(Microsoft.Azure.Batch.Common.IPAddressProvisioningType.UserManaged) + { + IpAddressIds = ipAddressIds + }; + + // Act + var result = psConfig.toMgmtPublicIPAddressConfiguration(); + + // Assert + Assert.NotNull(result); + Assert.Equal(IPAddressProvisioningType.UserManaged, result.Provision); + Assert.NotNull(result.IPAddressIds); + Assert.Equal(3, result.IPAddressIds.Count); + Assert.Equal(ipAddressIds, result.IPAddressIds); + } + + [Fact] + public void ToMgmtPublicIPAddressConfiguration_WithEmptyIPAddressIds_ReturnsEmptyList() + { + // Arrange + var psConfig = new PSPublicIPAddressConfiguration(Microsoft.Azure.Batch.Common.IPAddressProvisioningType.UserManaged) + { + IpAddressIds = new List() + }; + + // Act + var result = psConfig.toMgmtPublicIPAddressConfiguration(); + + // Assert + Assert.NotNull(result); + Assert.Equal(IPAddressProvisioningType.UserManaged, result.Provision); + Assert.NotNull(result.IPAddressIds); + Assert.Empty(result.IPAddressIds); + } + + [Fact] + public void ToMgmtPublicIPAddressConfiguration_WithNullIPAddressIds_ReturnsNull() + { + // Arrange + var psConfig = new PSPublicIPAddressConfiguration(Microsoft.Azure.Batch.Common.IPAddressProvisioningType.UserManaged) + { + IpAddressIds = null + }; + + // Act + var result = psConfig.toMgmtPublicIPAddressConfiguration(); + + // Assert + Assert.NotNull(result); + Assert.Equal(IPAddressProvisioningType.UserManaged, result.Provision); + Assert.Null(result.IPAddressIds); + } + + [Fact] + public void ToMgmtPublicIPAddressConfiguration_AlwaysCreatesNewInstance() + { + // Arrange + var psConfig = new PSPublicIPAddressConfiguration(Microsoft.Azure.Batch.Common.IPAddressProvisioningType.BatchManaged); + + // Act + var result1 = psConfig.toMgmtPublicIPAddressConfiguration(); + var result2 = psConfig.toMgmtPublicIPAddressConfiguration(); + + // Assert + Assert.NotNull(result1); + Assert.NotNull(result2); + Assert.NotSame(result1, result2); + } + + [Fact] + public void ToMgmtPublicIPAddressConfiguration_VerifyPublicIPAddressConfigurationType() + { + // Arrange + var psConfig = new PSPublicIPAddressConfiguration(Microsoft.Azure.Batch.Common.IPAddressProvisioningType.BatchManaged); + + // Act + var result = psConfig.toMgmtPublicIPAddressConfiguration(); + + // Assert + Assert.NotNull(result); + Assert.IsType(result); + } + + [Theory] + [InlineData(Microsoft.Azure.Batch.Common.IPAddressProvisioningType.BatchManaged, IPAddressProvisioningType.BatchManaged)] + [InlineData(Microsoft.Azure.Batch.Common.IPAddressProvisioningType.UserManaged, IPAddressProvisioningType.UserManaged)] + [InlineData(Microsoft.Azure.Batch.Common.IPAddressProvisioningType.NoPublicIPAddresses, IPAddressProvisioningType.NoPublicIPAddresses)] + public void ToMgmtPublicIPAddressConfiguration_AllValidProvisionTypes_ReturnsCorrectMapping( + Microsoft.Azure.Batch.Common.IPAddressProvisioningType psProvisionType, + IPAddressProvisioningType expectedMgmtProvisionType) + { + // Arrange + var psConfig = new PSPublicIPAddressConfiguration(psProvisionType); + + // Act + var result = psConfig.toMgmtPublicIPAddressConfiguration(); + + // Assert + Assert.NotNull(result); + Assert.Equal(expectedMgmtProvisionType, result.Provision); + } + + #endregion + + #region FromMgmtPublicIPAddressConfiguration Tests + + [Fact] + public void FromMgmtPublicIPAddressConfiguration_WithBatchManagedProvision_ReturnsCorrectMapping() + { + // Arrange + var mgmtConfig = new PublicIPAddressConfiguration(IPAddressProvisioningType.BatchManaged); + + // Act + var result = PSPublicIPAddressConfiguration.FromMgmtPublicIPAddressConfiguration(mgmtConfig); + + // Assert + Assert.NotNull(result); + Assert.Equal(Microsoft.Azure.Batch.Common.IPAddressProvisioningType.BatchManaged, result.Provision); + Assert.Null(result.IpAddressIds); + } + + [Fact] + public void FromMgmtPublicIPAddressConfiguration_WithUserManagedProvision_ReturnsCorrectMapping() + { + // Arrange + var mgmtConfig = new PublicIPAddressConfiguration(IPAddressProvisioningType.UserManaged); + + // Act + var result = PSPublicIPAddressConfiguration.FromMgmtPublicIPAddressConfiguration(mgmtConfig); + + // Assert + Assert.NotNull(result); + Assert.Equal(Microsoft.Azure.Batch.Common.IPAddressProvisioningType.UserManaged, result.Provision); + Assert.Null(result.IpAddressIds); + } + + [Fact] + public void FromMgmtPublicIPAddressConfiguration_WithNoPublicIPAddresses_ReturnsCorrectMapping() + { + // Arrange + var mgmtConfig = new PublicIPAddressConfiguration(IPAddressProvisioningType.NoPublicIPAddresses); + + // Act + var result = PSPublicIPAddressConfiguration.FromMgmtPublicIPAddressConfiguration(mgmtConfig); + + // Assert + Assert.NotNull(result); + Assert.Equal(Microsoft.Azure.Batch.Common.IPAddressProvisioningType.NoPublicIPAddresses, result.Provision); + Assert.Null(result.IpAddressIds); + } + + [Fact] + public void FromMgmtPublicIPAddressConfiguration_WithNullProvision_ReturnsCorrectMapping() + { + // Arrange + var mgmtConfig = new PublicIPAddressConfiguration(null); + + // Act + var result = PSPublicIPAddressConfiguration.FromMgmtPublicIPAddressConfiguration(mgmtConfig); + + // Assert + Assert.NotNull(result); + Assert.Null(result.Provision); + Assert.Null(result.IpAddressIds); + } + + [Fact] + public void FromMgmtPublicIPAddressConfiguration_WithNullConfiguration_ReturnsNull() + { + // Act + var result = PSPublicIPAddressConfiguration.FromMgmtPublicIPAddressConfiguration(null); + + // Assert + Assert.Null(result); + } + + [Fact] + public void FromMgmtPublicIPAddressConfiguration_WithSingleIPAddressId_ReturnsCorrectMapping() + { + // Arrange + var ipAddressIds = new List + { + "/subscriptions/12345678-1234-1234-1234-123456789abc/resourceGroups/test-rg/providers/Microsoft.Network/publicIPAddresses/test-ip-1" + }; + var mgmtConfig = new PublicIPAddressConfiguration(IPAddressProvisioningType.UserManaged, ipAddressIds); + + // Act + var result = PSPublicIPAddressConfiguration.FromMgmtPublicIPAddressConfiguration(mgmtConfig); + + // Assert + Assert.NotNull(result); + Assert.Equal(Microsoft.Azure.Batch.Common.IPAddressProvisioningType.UserManaged, result.Provision); + Assert.NotNull(result.IpAddressIds); + Assert.Single(result.IpAddressIds); + Assert.Equal(ipAddressIds[0], result.IpAddressIds[0]); + } + + [Fact] + public void FromMgmtPublicIPAddressConfiguration_WithMultipleIPAddressIds_ReturnsCorrectMapping() + { + // Arrange + var ipAddressIds = new List + { + "/subscriptions/12345678-1234-1234-1234-123456789abc/resourceGroups/test-rg/providers/Microsoft.Network/publicIPAddresses/test-ip-1", + "/subscriptions/12345678-1234-1234-1234-123456789abc/resourceGroups/test-rg/providers/Microsoft.Network/publicIPAddresses/test-ip-2", + "/subscriptions/12345678-1234-1234-1234-123456789abc/resourceGroups/test-rg/providers/Microsoft.Network/publicIPAddresses/test-ip-3" + }; + var mgmtConfig = new PublicIPAddressConfiguration(IPAddressProvisioningType.UserManaged, ipAddressIds); + + // Act + var result = PSPublicIPAddressConfiguration.FromMgmtPublicIPAddressConfiguration(mgmtConfig); + + // Assert + Assert.NotNull(result); + Assert.Equal(Microsoft.Azure.Batch.Common.IPAddressProvisioningType.UserManaged, result.Provision); + Assert.NotNull(result.IpAddressIds); + Assert.Equal(3, result.IpAddressIds.Count); + Assert.Equal(ipAddressIds, result.IpAddressIds); + } + + [Fact] + public void FromMgmtPublicIPAddressConfiguration_WithEmptyIPAddressIds_ReturnsEmptyList() + { + // Arrange + var mgmtConfig = new PublicIPAddressConfiguration(IPAddressProvisioningType.UserManaged, new List()); + + // Act + var result = PSPublicIPAddressConfiguration.FromMgmtPublicIPAddressConfiguration(mgmtConfig); + + // Assert + Assert.NotNull(result); + Assert.Equal(Microsoft.Azure.Batch.Common.IPAddressProvisioningType.UserManaged, result.Provision); + Assert.NotNull(result.IpAddressIds); + Assert.Empty(result.IpAddressIds); + } + + [Fact] + public void FromMgmtPublicIPAddressConfiguration_WithNullIPAddressIds_ReturnsNull() + { + // Arrange + var mgmtConfig = new PublicIPAddressConfiguration(IPAddressProvisioningType.UserManaged, null); + + // Act + var result = PSPublicIPAddressConfiguration.FromMgmtPublicIPAddressConfiguration(mgmtConfig); + + // Assert + Assert.NotNull(result); + Assert.Equal(Microsoft.Azure.Batch.Common.IPAddressProvisioningType.UserManaged, result.Provision); + Assert.Null(result.IpAddressIds); + } + + [Fact] + public void FromMgmtPublicIPAddressConfiguration_VerifyPSPublicIPAddressConfigurationType() + { + // Arrange + var mgmtConfig = new PublicIPAddressConfiguration(IPAddressProvisioningType.BatchManaged); + + // Act + var result = PSPublicIPAddressConfiguration.FromMgmtPublicIPAddressConfiguration(mgmtConfig); + + // Assert + Assert.NotNull(result); + Assert.IsType(result); + } + + [Theory] + [InlineData(IPAddressProvisioningType.BatchManaged, Microsoft.Azure.Batch.Common.IPAddressProvisioningType.BatchManaged)] + [InlineData(IPAddressProvisioningType.UserManaged, Microsoft.Azure.Batch.Common.IPAddressProvisioningType.UserManaged)] + [InlineData(IPAddressProvisioningType.NoPublicIPAddresses, Microsoft.Azure.Batch.Common.IPAddressProvisioningType.NoPublicIPAddresses)] + public void FromMgmtPublicIPAddressConfiguration_AllValidProvisionTypes_ReturnsCorrectMapping( + IPAddressProvisioningType mgmtProvisionType, + Microsoft.Azure.Batch.Common.IPAddressProvisioningType expectedPsProvisionType) + { + // Arrange + var mgmtConfig = new PublicIPAddressConfiguration(mgmtProvisionType); + + // Act + var result = PSPublicIPAddressConfiguration.FromMgmtPublicIPAddressConfiguration(mgmtConfig); + + // Assert + Assert.NotNull(result); + Assert.Equal(expectedPsProvisionType, result.Provision); + } + + #endregion + + #region Round-trip Conversion Tests + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesBatchManagedProvision() + { + // Arrange + var originalPsConfig = new PSPublicIPAddressConfiguration(Microsoft.Azure.Batch.Common.IPAddressProvisioningType.BatchManaged); + + // Act + var mgmtConfig = originalPsConfig.toMgmtPublicIPAddressConfiguration(); + var roundTripPsConfig = PSPublicIPAddressConfiguration.FromMgmtPublicIPAddressConfiguration(mgmtConfig); + + // Assert + Assert.NotNull(roundTripPsConfig); + Assert.Equal(originalPsConfig.Provision, roundTripPsConfig.Provision); + Assert.Equal(Microsoft.Azure.Batch.Common.IPAddressProvisioningType.BatchManaged, roundTripPsConfig.Provision); + } + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesUserManagedWithIPAddresses() + { + // Arrange + var ipAddressIds = new List + { + "/subscriptions/12345678-1234-1234-1234-123456789abc/resourceGroups/test-rg/providers/Microsoft.Network/publicIPAddresses/test-ip-1", + "/subscriptions/12345678-1234-1234-1234-123456789abc/resourceGroups/test-rg/providers/Microsoft.Network/publicIPAddresses/test-ip-2" + }; + var originalPsConfig = new PSPublicIPAddressConfiguration(Microsoft.Azure.Batch.Common.IPAddressProvisioningType.UserManaged) + { + IpAddressIds = ipAddressIds + }; + + // Act + var mgmtConfig = originalPsConfig.toMgmtPublicIPAddressConfiguration(); + var roundTripPsConfig = PSPublicIPAddressConfiguration.FromMgmtPublicIPAddressConfiguration(mgmtConfig); + + // Assert + Assert.NotNull(roundTripPsConfig); + Assert.Equal(originalPsConfig.Provision, roundTripPsConfig.Provision); + Assert.Equal(Microsoft.Azure.Batch.Common.IPAddressProvisioningType.UserManaged, roundTripPsConfig.Provision); + Assert.NotNull(roundTripPsConfig.IpAddressIds); + Assert.Equal(2, roundTripPsConfig.IpAddressIds.Count); + Assert.Equal(ipAddressIds, roundTripPsConfig.IpAddressIds); + } + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesNoPublicIPAddresses() + { + // Arrange + var originalPsConfig = new PSPublicIPAddressConfiguration(Microsoft.Azure.Batch.Common.IPAddressProvisioningType.NoPublicIPAddresses); + + // Act + var mgmtConfig = originalPsConfig.toMgmtPublicIPAddressConfiguration(); + var roundTripPsConfig = PSPublicIPAddressConfiguration.FromMgmtPublicIPAddressConfiguration(mgmtConfig); + + // Assert + Assert.NotNull(roundTripPsConfig); + Assert.Equal(originalPsConfig.Provision, roundTripPsConfig.Provision); + Assert.Equal(Microsoft.Azure.Batch.Common.IPAddressProvisioningType.NoPublicIPAddresses, roundTripPsConfig.Provision); + } + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesNullProvision() + { + // Arrange + var originalPsConfig = new PSPublicIPAddressConfiguration(provision: null); + + // Act + var mgmtConfig = originalPsConfig.toMgmtPublicIPAddressConfiguration(); + var roundTripPsConfig = PSPublicIPAddressConfiguration.FromMgmtPublicIPAddressConfiguration(mgmtConfig); + + // Assert + Assert.NotNull(roundTripPsConfig); + Assert.Equal(originalPsConfig.Provision, roundTripPsConfig.Provision); + Assert.Null(roundTripPsConfig.Provision); + } + + [Theory] + [InlineData(Microsoft.Azure.Batch.Common.IPAddressProvisioningType.BatchManaged)] + [InlineData(Microsoft.Azure.Batch.Common.IPAddressProvisioningType.UserManaged)] + [InlineData(Microsoft.Azure.Batch.Common.IPAddressProvisioningType.NoPublicIPAddresses)] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesAllValidProvisionTypes( + Microsoft.Azure.Batch.Common.IPAddressProvisioningType originalProvisionType) + { + // Arrange + var originalPsConfig = new PSPublicIPAddressConfiguration(originalProvisionType); + + // Act + var mgmtConfig = originalPsConfig.toMgmtPublicIPAddressConfiguration(); + var roundTripPsConfig = PSPublicIPAddressConfiguration.FromMgmtPublicIPAddressConfiguration(mgmtConfig); + + // Assert + Assert.NotNull(roundTripPsConfig); + Assert.Equal(originalProvisionType, roundTripPsConfig.Provision); + } + + [Fact] + public void RoundTripConversion_FromMgmtAndToMgmt_PreservesValues() + { + // Arrange + var ipAddressIds = new List + { + "/subscriptions/12345678-1234-1234-1234-123456789abc/resourceGroups/test-rg/providers/Microsoft.Network/publicIPAddresses/test-ip-1" + }; + var originalMgmtConfig = new PublicIPAddressConfiguration(IPAddressProvisioningType.UserManaged, ipAddressIds); + + // Act + var psConfig = PSPublicIPAddressConfiguration.FromMgmtPublicIPAddressConfiguration(originalMgmtConfig); + var roundTripMgmtConfig = psConfig.toMgmtPublicIPAddressConfiguration(); + + // Assert + Assert.NotNull(roundTripMgmtConfig); + Assert.Equal(originalMgmtConfig.Provision, roundTripMgmtConfig.Provision); + Assert.Equal(IPAddressProvisioningType.UserManaged, roundTripMgmtConfig.Provision); + Assert.NotNull(roundTripMgmtConfig.IPAddressIds); + Assert.Single(roundTripMgmtConfig.IPAddressIds); + Assert.Equal(ipAddressIds[0], roundTripMgmtConfig.IPAddressIds[0]); + } + + [Fact] + public void RoundTripConversion_WithNullConfiguration_HandlesCorrectly() + { + // Arrange + PublicIPAddressConfiguration nullMgmtConfig = null; + + // Act + var psConfig = PSPublicIPAddressConfiguration.FromMgmtPublicIPAddressConfiguration(nullMgmtConfig); + + // Assert + Assert.Null(psConfig); + } + + [Fact] + public void RoundTripConversion_WithEmptyIPAddressIds_PreservesEmptyList() + { + // Arrange + var originalPsConfig = new PSPublicIPAddressConfiguration(Microsoft.Azure.Batch.Common.IPAddressProvisioningType.UserManaged) + { + IpAddressIds = new List() + }; + + // Act + var mgmtConfig = originalPsConfig.toMgmtPublicIPAddressConfiguration(); + var roundTripPsConfig = PSPublicIPAddressConfiguration.FromMgmtPublicIPAddressConfiguration(mgmtConfig); + + // Assert + Assert.NotNull(roundTripPsConfig); + Assert.NotNull(roundTripPsConfig.IpAddressIds); + Assert.Empty(roundTripPsConfig.IpAddressIds); + } + + [Fact] + public void RoundTripConversion_WithNullIPAddressIds_PreservesNull() + { + // Arrange + var originalPsConfig = new PSPublicIPAddressConfiguration(Microsoft.Azure.Batch.Common.IPAddressProvisioningType.UserManaged) + { + IpAddressIds = null + }; + + // Act + var mgmtConfig = originalPsConfig.toMgmtPublicIPAddressConfiguration(); + var roundTripPsConfig = PSPublicIPAddressConfiguration.FromMgmtPublicIPAddressConfiguration(mgmtConfig); + + // Assert + Assert.NotNull(roundTripPsConfig); + Assert.Null(roundTripPsConfig.IpAddressIds); + } + + #endregion + + #region Integration Tests + + [Fact] + public void PublicIPAddressConfigurationConversions_BothDirections_MaintainSemanticEquivalence() + { + // This test ensures that the semantic meaning is preserved across conversions + + // Test BatchManaged semantics - Batch service manages public IPs automatically + var psBatchManaged = new PSPublicIPAddressConfiguration(Microsoft.Azure.Batch.Common.IPAddressProvisioningType.BatchManaged); + var mgmtBatchManaged = psBatchManaged.toMgmtPublicIPAddressConfiguration(); + var backToPs = PSPublicIPAddressConfiguration.FromMgmtPublicIPAddressConfiguration(mgmtBatchManaged); + + Assert.Equal(IPAddressProvisioningType.BatchManaged, mgmtBatchManaged.Provision); + Assert.Equal(Microsoft.Azure.Batch.Common.IPAddressProvisioningType.BatchManaged, backToPs.Provision); + + // Test UserManaged semantics - User provides specific public IP addresses + var ipAddressIds = new List + { + "/subscriptions/12345678-1234-1234-1234-123456789abc/resourceGroups/test-rg/providers/Microsoft.Network/publicIPAddresses/pool-ip-1", + "/subscriptions/12345678-1234-1234-1234-123456789abc/resourceGroups/test-rg/providers/Microsoft.Network/publicIPAddresses/pool-ip-2" + }; + var psUserManaged = new PSPublicIPAddressConfiguration(Microsoft.Azure.Batch.Common.IPAddressProvisioningType.UserManaged) + { + IpAddressIds = ipAddressIds + }; + var mgmtUserManaged = psUserManaged.toMgmtPublicIPAddressConfiguration(); + var backToPsUserManaged = PSPublicIPAddressConfiguration.FromMgmtPublicIPAddressConfiguration(mgmtUserManaged); + + Assert.Equal(IPAddressProvisioningType.UserManaged, mgmtUserManaged.Provision); + Assert.Equal(Microsoft.Azure.Batch.Common.IPAddressProvisioningType.UserManaged, backToPsUserManaged.Provision); + Assert.Equal(ipAddressIds, mgmtUserManaged.IPAddressIds); + Assert.Equal(ipAddressIds, backToPsUserManaged.IpAddressIds); + + // Test NoPublicIPAddresses semantics - No public IPs for compute nodes + var psNoPublicIP = new PSPublicIPAddressConfiguration(Microsoft.Azure.Batch.Common.IPAddressProvisioningType.NoPublicIPAddresses); + var mgmtNoPublicIP = psNoPublicIP.toMgmtPublicIPAddressConfiguration(); + var backToPsNoPublicIP = PSPublicIPAddressConfiguration.FromMgmtPublicIPAddressConfiguration(mgmtNoPublicIP); + + Assert.Equal(IPAddressProvisioningType.NoPublicIPAddresses, mgmtNoPublicIP.Provision); + Assert.Equal(Microsoft.Azure.Batch.Common.IPAddressProvisioningType.NoPublicIPAddresses, backToPsNoPublicIP.Provision); + } + + [Fact] + public void PublicIPAddressConfigurationConversions_NullHandling_WorksCorrectly() + { + // Test null handling in conversions + + // Act + var resultFromNull = PSPublicIPAddressConfiguration.FromMgmtPublicIPAddressConfiguration(null); + + // Assert + Assert.Null(resultFromNull); + } + + [Fact] + public void PublicIPAddressConfigurationConversions_BatchPoolContext_VerifyCorrectUsage() + { + // This test validates the conversions work correctly in the context of Batch pool public IP configuration + // PublicIPAddressConfiguration is used to configure how public IPs are provisioned for Batch pool compute nodes + + // Arrange - Test BatchManaged scenario for production workloads + var psBatchManagedConfig = new PSPublicIPAddressConfiguration(Microsoft.Azure.Batch.Common.IPAddressProvisioningType.BatchManaged); + var mgmtBatchManagedConfig = psBatchManagedConfig.toMgmtPublicIPAddressConfiguration(); + + // Act & Assert - BatchManaged should convert correctly for automatic IP management + Assert.Equal(IPAddressProvisioningType.BatchManaged, mgmtBatchManagedConfig.Provision); + + // Arrange - Test UserManaged scenario for enterprise networks with specific IP requirements + var enterpriseIPAddresses = new List + { + "/subscriptions/enterprise-sub/resourceGroups/network-rg/providers/Microsoft.Network/publicIPAddresses/enterprise-batch-ip-1", + "/subscriptions/enterprise-sub/resourceGroups/network-rg/providers/Microsoft.Network/publicIPAddresses/enterprise-batch-ip-2", + "/subscriptions/enterprise-sub/resourceGroups/network-rg/providers/Microsoft.Network/publicIPAddresses/enterprise-batch-ip-3" + }; + var psUserManagedConfig = new PSPublicIPAddressConfiguration(Microsoft.Azure.Batch.Common.IPAddressProvisioningType.UserManaged) + { + IpAddressIds = enterpriseIPAddresses + }; + var mgmtUserManagedConfig = psUserManagedConfig.toMgmtPublicIPAddressConfiguration(); + + // Act & Assert - UserManaged should convert correctly for enterprise IP management + Assert.Equal(IPAddressProvisioningType.UserManaged, mgmtUserManagedConfig.Provision); + Assert.Equal(3, mgmtUserManagedConfig.IPAddressIds.Count); + + // Arrange - Test NoPublicIPAddresses scenario for secure private networks + var psNoPublicIPConfig = new PSPublicIPAddressConfiguration(Microsoft.Azure.Batch.Common.IPAddressProvisioningType.NoPublicIPAddresses); + var mgmtNoPublicIPConfig = psNoPublicIPConfig.toMgmtPublicIPAddressConfiguration(); + + // Act & Assert - NoPublicIPAddresses should convert correctly for private networking + Assert.Equal(IPAddressProvisioningType.NoPublicIPAddresses, mgmtNoPublicIPConfig.Provision); + + // Verify round-trip conversion maintains Batch pool networking semantics + var backToBatchManaged = PSPublicIPAddressConfiguration.FromMgmtPublicIPAddressConfiguration(mgmtBatchManagedConfig); + var backToUserManaged = PSPublicIPAddressConfiguration.FromMgmtPublicIPAddressConfiguration(mgmtUserManagedConfig); + var backToNoPublicIP = PSPublicIPAddressConfiguration.FromMgmtPublicIPAddressConfiguration(mgmtNoPublicIPConfig); + + Assert.Equal(Microsoft.Azure.Batch.Common.IPAddressProvisioningType.BatchManaged, backToBatchManaged.Provision); + Assert.Equal(Microsoft.Azure.Batch.Common.IPAddressProvisioningType.UserManaged, backToUserManaged.Provision); + Assert.Equal(enterpriseIPAddresses, backToUserManaged.IpAddressIds); + Assert.Equal(Microsoft.Azure.Batch.Common.IPAddressProvisioningType.NoPublicIPAddresses, backToNoPublicIP.Provision); + } + + [Fact] + public void PublicIPAddressConfigurationConversions_InstanceCreation_VerifyBehavior() + { + // This test verifies that the conversion methods create appropriate instances + + // Arrange + var ipAddressIds = new List + { + "/subscriptions/test/resourceGroups/test/providers/Microsoft.Network/publicIPAddresses/test" + }; + var psConfig = new PSPublicIPAddressConfiguration(Microsoft.Azure.Batch.Common.IPAddressProvisioningType.UserManaged) + { + IpAddressIds = ipAddressIds + }; + var mgmtConfig = new PublicIPAddressConfiguration(IPAddressProvisioningType.BatchManaged); + + // Act + var mgmtResult = psConfig.toMgmtPublicIPAddressConfiguration(); + var psResult = PSPublicIPAddressConfiguration.FromMgmtPublicIPAddressConfiguration(mgmtConfig); + + // Assert - Verify proper instance creation + Assert.NotNull(mgmtResult); + Assert.NotNull(psResult); + Assert.IsType(mgmtResult); + Assert.IsType(psResult); + + // Verify new instances are created + Assert.NotSame(mgmtConfig, mgmtResult); + Assert.NotSame(psConfig, psResult); + } + + #endregion + + #region Performance and Edge Case Tests + + [Fact] + public void PublicIPAddressConfigurationConversions_PerformanceTest_ExecutesQuickly() + { + // This test ensures the conversions are efficient + + // Arrange + var ipAddressIds = new List + { + "/subscriptions/perf-test/resourceGroups/test/providers/Microsoft.Network/publicIPAddresses/ip-1", + "/subscriptions/perf-test/resourceGroups/test/providers/Microsoft.Network/publicIPAddresses/ip-2" + }; + var psConfig = new PSPublicIPAddressConfiguration(Microsoft.Azure.Batch.Common.IPAddressProvisioningType.UserManaged) + { + IpAddressIds = ipAddressIds + }; + var mgmtConfig = new PublicIPAddressConfiguration(IPAddressProvisioningType.BatchManaged); + + // Act & Assert - Multiple conversions should complete without delay + for (int i = 0; i < 100; i++) + { + var mgmtResult = psConfig.toMgmtPublicIPAddressConfiguration(); + var psResult = PSPublicIPAddressConfiguration.FromMgmtPublicIPAddressConfiguration(mgmtConfig); + + Assert.NotNull(mgmtResult); + Assert.NotNull(psResult); + Assert.Equal(IPAddressProvisioningType.UserManaged, mgmtResult.Provision); + Assert.Equal(Microsoft.Azure.Batch.Common.IPAddressProvisioningType.BatchManaged, psResult.Provision); + } + } + + [Fact] + public void PublicIPAddressConfigurationConversions_TypeSafety_VerifyCorrectTypes() + { + // Test that conversions return the correct types + + // Arrange + var psConfig = new PSPublicIPAddressConfiguration(Microsoft.Azure.Batch.Common.IPAddressProvisioningType.BatchManaged); + var mgmtConfig = new PublicIPAddressConfiguration(IPAddressProvisioningType.UserManaged); + + // Act + var mgmtResult = psConfig.toMgmtPublicIPAddressConfiguration(); + var psResult = PSPublicIPAddressConfiguration.FromMgmtPublicIPAddressConfiguration(mgmtConfig); + + // Assert - Verify correct types are returned + Assert.IsType(mgmtResult); + Assert.IsType(psResult); + } + + [Fact] + public void PublicIPAddressConfigurationConversions_LargeIPAddressIdList_HandlesCorrectly() + { + // Test with a large list of IP address IDs to verify performance and correctness + + // Arrange - Create a list with maximum realistic number of IP addresses for a large pool + var largeIPAddressList = new List(); + for (int i = 1; i <= 50; i++) // 50 IPs would support 5000 compute nodes (100 nodes per IP) + { + largeIPAddressList.Add($"/subscriptions/large-pool-test/resourceGroups/network-rg/providers/Microsoft.Network/publicIPAddresses/batch-ip-{i:D2}"); + } + + var psConfig = new PSPublicIPAddressConfiguration(Microsoft.Azure.Batch.Common.IPAddressProvisioningType.UserManaged) + { + IpAddressIds = largeIPAddressList + }; + + // Act + var mgmtResult = psConfig.toMgmtPublicIPAddressConfiguration(); + var psResult = PSPublicIPAddressConfiguration.FromMgmtPublicIPAddressConfiguration(mgmtResult); + + // Assert + Assert.NotNull(mgmtResult); + Assert.NotNull(psResult); + Assert.Equal(50, mgmtResult.IPAddressIds.Count); + Assert.Equal(50, psResult.IpAddressIds.Count); + Assert.Equal(largeIPAddressList, mgmtResult.IPAddressIds); + Assert.Equal(largeIPAddressList, psResult.IpAddressIds); + } + + [Fact] + public void PublicIPAddressConfigurationConversions_IPAddressIdFormat_ValidatesCorrectFormat() + { + // Test that various valid Azure resource ID formats are preserved correctly + + // Arrange - Test with different subscription, resource group, and resource name patterns + var validIPAddressIds = new List + { + "/subscriptions/12345678-1234-1234-1234-123456789abc/resourceGroups/rg-batch-prod/providers/Microsoft.Network/publicIPAddresses/batch-pool-ip-001", + "/subscriptions/87654321-4321-4321-4321-abcdef123456/resourceGroups/network-resources/providers/Microsoft.Network/publicIPAddresses/compute-node-public-ip", + "/subscriptions/abcdef12-3456-7890-abcd-ef1234567890/resourceGroups/batch-networking/providers/Microsoft.Network/publicIPAddresses/pool-external-ip-primary" + }; + + var psConfig = new PSPublicIPAddressConfiguration(Microsoft.Azure.Batch.Common.IPAddressProvisioningType.UserManaged) + { + IpAddressIds = validIPAddressIds + }; + + // Act + var mgmtResult = psConfig.toMgmtPublicIPAddressConfiguration(); + var roundTripResult = PSPublicIPAddressConfiguration.FromMgmtPublicIPAddressConfiguration(mgmtResult); + + // Assert - All formats should be preserved exactly + Assert.NotNull(mgmtResult); + Assert.NotNull(roundTripResult); + Assert.Equal(validIPAddressIds.Count, mgmtResult.IPAddressIds.Count); + Assert.Equal(validIPAddressIds.Count, roundTripResult.IpAddressIds.Count); + Assert.Equal(validIPAddressIds, mgmtResult.IPAddressIds); + Assert.Equal(validIPAddressIds, roundTripResult.IpAddressIds); + } + + #endregion + + #region Pool Networking Strategy Tests + + [Fact] + public void PublicIPAddressConfigurationConversions_BatchManagedStrategy_AutomaticIPManagement() + { + // This test validates that BatchManaged provisioning semantics are preserved for automatic IP management + + // Arrange - BatchManaged provisioning for Azure Batch-managed public IPs + var psBatchManaged = new PSPublicIPAddressConfiguration(Microsoft.Azure.Batch.Common.IPAddressProvisioningType.BatchManaged); + + // Act + var mgmtBatchManaged = psBatchManaged.toMgmtPublicIPAddressConfiguration(); + var backToPs = PSPublicIPAddressConfiguration.FromMgmtPublicIPAddressConfiguration(mgmtBatchManaged); + + // Assert - BatchManaged provisioning semantics preserved + Assert.Equal(IPAddressProvisioningType.BatchManaged, mgmtBatchManaged.Provision); + Assert.Equal(Microsoft.Azure.Batch.Common.IPAddressProvisioningType.BatchManaged, backToPs.Provision); + Assert.Null(mgmtBatchManaged.IPAddressIds); // No specific IPs needed for BatchManaged + Assert.Null(backToPs.IpAddressIds); + // BatchManaged ensures Azure Batch automatically creates and manages public IPs based on pool size + } + + [Fact] + public void PublicIPAddressConfigurationConversions_UserManagedStrategy_EnterpriseIPControl() + { + // This test validates that UserManaged provisioning semantics are preserved for enterprise IP control + + // Arrange - UserManaged provisioning for enterprise-controlled public IPs + var enterpriseIPPool = new List + { + "/subscriptions/enterprise-123/resourceGroups/corp-network/providers/Microsoft.Network/publicIPAddresses/batch-corp-ip-east-001", + "/subscriptions/enterprise-123/resourceGroups/corp-network/providers/Microsoft.Network/publicIPAddresses/batch-corp-ip-east-002", + "/subscriptions/enterprise-123/resourceGroups/corp-network/providers/Microsoft.Network/publicIPAddresses/batch-corp-ip-east-003" + }; + var psUserManaged = new PSPublicIPAddressConfiguration(Microsoft.Azure.Batch.Common.IPAddressProvisioningType.UserManaged) + { + IpAddressIds = enterpriseIPPool + }; + + // Act + var mgmtUserManaged = psUserManaged.toMgmtPublicIPAddressConfiguration(); + var backToPs = PSPublicIPAddressConfiguration.FromMgmtPublicIPAddressConfiguration(mgmtUserManaged); + + // Assert - UserManaged provisioning semantics preserved + Assert.Equal(IPAddressProvisioningType.UserManaged, mgmtUserManaged.Provision); + Assert.Equal(Microsoft.Azure.Batch.Common.IPAddressProvisioningType.UserManaged, backToPs.Provision); + Assert.Equal(enterpriseIPPool, mgmtUserManaged.IPAddressIds); + Assert.Equal(enterpriseIPPool, backToPs.IpAddressIds); + // UserManaged ensures enterprise controls exactly which public IPs are used for compute nodes + } + + [Fact] + public void PublicIPAddressConfigurationConversions_NoPublicIPStrategy_PrivateNetworking() + { + // This test validates that NoPublicIPAddresses provisioning semantics are preserved for private networking + + // Arrange - NoPublicIPAddresses provisioning for secure private environments + var psNoPublicIP = new PSPublicIPAddressConfiguration(Microsoft.Azure.Batch.Common.IPAddressProvisioningType.NoPublicIPAddresses); + + // Act + var mgmtNoPublicIP = psNoPublicIP.toMgmtPublicIPAddressConfiguration(); + var backToPs = PSPublicIPAddressConfiguration.FromMgmtPublicIPAddressConfiguration(mgmtNoPublicIP); + + // Assert - NoPublicIPAddresses provisioning semantics preserved + Assert.Equal(IPAddressProvisioningType.NoPublicIPAddresses, mgmtNoPublicIP.Provision); + Assert.Equal(Microsoft.Azure.Batch.Common.IPAddressProvisioningType.NoPublicIPAddresses, backToPs.Provision); + Assert.Null(mgmtNoPublicIP.IPAddressIds); // No public IPs for private networking + Assert.Null(backToPs.IpAddressIds); + // NoPublicIPAddresses ensures compute nodes have no public IP addresses for maximum security + } + + #endregion + + #region Constructor and Property Tests + + [Fact] + public void PSPublicIPAddressConfiguration_Constructor_InitializesCorrectly() + { + // Test that the PS constructor properly initializes the configuration + + // Arrange & Act + var batchManagedConfig = new PSPublicIPAddressConfiguration(Microsoft.Azure.Batch.Common.IPAddressProvisioningType.BatchManaged); + var userManagedConfig = new PSPublicIPAddressConfiguration(Microsoft.Azure.Batch.Common.IPAddressProvisioningType.UserManaged); + var noPublicIPConfig = new PSPublicIPAddressConfiguration(Microsoft.Azure.Batch.Common.IPAddressProvisioningType.NoPublicIPAddresses); + var nullConfig = new PSPublicIPAddressConfiguration(provision:null); + + // Assert + Assert.Equal(Microsoft.Azure.Batch.Common.IPAddressProvisioningType.BatchManaged, batchManagedConfig.Provision); + Assert.Equal(Microsoft.Azure.Batch.Common.IPAddressProvisioningType.UserManaged, userManagedConfig.Provision); + Assert.Equal(Microsoft.Azure.Batch.Common.IPAddressProvisioningType.NoPublicIPAddresses, noPublicIPConfig.Provision); + Assert.Null(nullConfig.Provision); + + // Verify all configurations have null IP addresses initially + Assert.Null(batchManagedConfig.IpAddressIds); + Assert.Null(userManagedConfig.IpAddressIds); + Assert.Null(noPublicIPConfig.IpAddressIds); + Assert.Null(nullConfig.IpAddressIds); + } + + [Fact] + public void PSPublicIPAddressConfiguration_IpAddressIdsProperty_WorksCorrectly() + { + // Test that the IpAddressIds property setter and getter work correctly + + // Arrange + var config = new PSPublicIPAddressConfiguration(Microsoft.Azure.Batch.Common.IPAddressProvisioningType.UserManaged); + var testIPAddresses = new List + { + "/subscriptions/test/resourceGroups/test/providers/Microsoft.Network/publicIPAddresses/test-ip-1", + "/subscriptions/test/resourceGroups/test/providers/Microsoft.Network/publicIPAddresses/test-ip-2" + }; + + // Act + config.IpAddressIds = testIPAddresses; + + // Assert + Assert.NotNull(config.IpAddressIds); + Assert.Equal(2, config.IpAddressIds.Count); + Assert.Equal(testIPAddresses, config.IpAddressIds); + + // Test setting to null + config.IpAddressIds = null; + Assert.Null(config.IpAddressIds); + + // Test setting to empty list + config.IpAddressIds = new List(); + Assert.NotNull(config.IpAddressIds); + Assert.Empty(config.IpAddressIds); + } + + [Fact] + public void PSPublicIPAddressConfiguration_ProvisionProperty_IsReadOnly() + { + // Test that the Provision property is read-only and set during construction + + // Arrange & Act + var config = new PSPublicIPAddressConfiguration(Microsoft.Azure.Batch.Common.IPAddressProvisioningType.BatchManaged); + + // Assert + Assert.Equal(Microsoft.Azure.Batch.Common.IPAddressProvisioningType.BatchManaged, config.Provision); + + // Verify that Provision property has no setter (read-only) + var provisionProperty = typeof(PSPublicIPAddressConfiguration).GetProperty("Provision"); + Assert.NotNull(provisionProperty); + Assert.True(provisionProperty.CanRead); + Assert.False(provisionProperty.CanWrite); // Should be read-only + } + + #endregion + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Test/Models/PSSecurityProfileTests.cs b/src/Batch/Batch.Test/Models/PSSecurityProfileTests.cs new file mode 100644 index 000000000000..e1c94b888650 --- /dev/null +++ b/src/Batch/Batch.Test/Models/PSSecurityProfileTests.cs @@ -0,0 +1,1247 @@ +// ----------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ----------------------------------------------------------------------------- + +using Microsoft.Azure.Commands.Batch.Models; +using Microsoft.Azure.Management.Batch.Models; +using System; +using Xunit; + +namespace Microsoft.Azure.Commands.Batch.Test.ModelsConversions +{ + public class PSSecurityProfileTests + { + #region toMgmtSecurityProfile Tests + + [Fact] + public void ToMgmtSecurityProfile_WithTrustedLaunchAndEncryption_ReturnsCorrectMapping() + { + // Arrange + var psSecurityProfile = new PSSecurityProfile() + { + SecurityType = Azure.Batch.Common.SecurityTypes.TrustedLaunch, + EncryptionAtHost = true, + UefiSettings = new PSUefiSettings() + { + SecureBootEnabled = true, + VTpmEnabled = true + } + }; + + // Act + var result = psSecurityProfile.toMgmtSecurityProfile(); + + // Assert + Assert.NotNull(result); + Assert.Equal(SecurityTypes.TrustedLaunch, result.SecurityType); + Assert.True(result.EncryptionAtHost); + Assert.NotNull(result.UefiSettings); + Assert.True(result.UefiSettings.SecureBootEnabled); + Assert.True(result.UefiSettings.VTpmEnabled); + } + + [Fact] + public void ToMgmtSecurityProfile_WithConfidentialVM_ReturnsCorrectMapping() + { + // Arrange + var psSecurityProfile = new PSSecurityProfile() + { + SecurityType = Azure.Batch.Common.SecurityTypes.ConfidentialVM, + EncryptionAtHost = false, + UefiSettings = new PSUefiSettings() + { + SecureBootEnabled = true, + VTpmEnabled = false + } + }; + + // Act + var result = psSecurityProfile.toMgmtSecurityProfile(); + + // Assert + Assert.NotNull(result); + Assert.Equal(SecurityTypes.ConfidentialVM, result.SecurityType); + Assert.False(result.EncryptionAtHost); + Assert.NotNull(result.UefiSettings); + Assert.True(result.UefiSettings.SecureBootEnabled); + Assert.False(result.UefiSettings.VTpmEnabled); + } + + [Fact] + public void ToMgmtSecurityProfile_WithNullSecurityType_ReturnsNullSecurityType() + { + // Arrange + var psSecurityProfile = new PSSecurityProfile() + { + SecurityType = null, + EncryptionAtHost = true, + UefiSettings = null + }; + + // Act + var result = psSecurityProfile.toMgmtSecurityProfile(); + + // Assert + Assert.NotNull(result); + Assert.Null(result.SecurityType); + Assert.True(result.EncryptionAtHost); + Assert.Null(result.UefiSettings); + } + + [Fact] + public void ToMgmtSecurityProfile_WithNullEncryptionAtHost_ReturnsNullEncryption() + { + // Arrange + var psSecurityProfile = new PSSecurityProfile() + { + SecurityType = Azure.Batch.Common.SecurityTypes.TrustedLaunch, + EncryptionAtHost = null, + UefiSettings = new PSUefiSettings() + { + SecureBootEnabled = false, + VTpmEnabled = false + } + }; + + // Act + var result = psSecurityProfile.toMgmtSecurityProfile(); + + // Assert + Assert.NotNull(result); + Assert.Equal(SecurityTypes.TrustedLaunch, result.SecurityType); + Assert.Null(result.EncryptionAtHost); + Assert.NotNull(result.UefiSettings); + Assert.False(result.UefiSettings.SecureBootEnabled); + Assert.False(result.UefiSettings.VTpmEnabled); + } + + [Fact] + public void ToMgmtSecurityProfile_WithNullUefiSettings_ReturnsNullUefiSettings() + { + // Arrange + var psSecurityProfile = new PSSecurityProfile() + { + SecurityType = Azure.Batch.Common.SecurityTypes.ConfidentialVM, + EncryptionAtHost = false, + UefiSettings = null + }; + + // Act + var result = psSecurityProfile.toMgmtSecurityProfile(); + + // Assert + Assert.NotNull(result); + Assert.Equal(SecurityTypes.ConfidentialVM, result.SecurityType); + Assert.False(result.EncryptionAtHost); + Assert.Null(result.UefiSettings); + } + + [Fact] + public void ToMgmtSecurityProfile_WithAllNullValues_ReturnsAllNull() + { + // Arrange + var psSecurityProfile = new PSSecurityProfile() + { + SecurityType = null, + EncryptionAtHost = null, + UefiSettings = null + }; + + // Act + var result = psSecurityProfile.toMgmtSecurityProfile(); + + // Assert + Assert.NotNull(result); + Assert.Null(result.SecurityType); + Assert.Null(result.EncryptionAtHost); + Assert.Null(result.UefiSettings); + } + + [Theory] + [InlineData(Azure.Batch.Common.SecurityTypes.TrustedLaunch, SecurityTypes.TrustedLaunch)] + [InlineData(Azure.Batch.Common.SecurityTypes.ConfidentialVM, SecurityTypes.ConfidentialVM)] + public void ToMgmtSecurityProfile_AllValidSecurityTypes_ReturnsCorrectMapping( + Azure.Batch.Common.SecurityTypes psSecurityType, + SecurityTypes expectedMgmtSecurityType) + { + // Arrange + var psSecurityProfile = new PSSecurityProfile() + { + SecurityType = psSecurityType, + EncryptionAtHost = true + }; + + // Act + var result = psSecurityProfile.toMgmtSecurityProfile(); + + // Assert + Assert.NotNull(result); + Assert.Equal(expectedMgmtSecurityType, result.SecurityType); + } + + [Fact] + public void ToMgmtSecurityProfile_AlwaysCreatesNewInstance() + { + // Arrange + var psSecurityProfile = new PSSecurityProfile() + { + SecurityType = Azure.Batch.Common.SecurityTypes.TrustedLaunch, + EncryptionAtHost = true, + UefiSettings = new PSUefiSettings() { SecureBootEnabled = true } + }; + + // Act + var result1 = psSecurityProfile.toMgmtSecurityProfile(); + var result2 = psSecurityProfile.toMgmtSecurityProfile(); + + // Assert + Assert.NotNull(result1); + Assert.NotNull(result2); + Assert.NotSame(result1, result2); + } + + [Fact] + public void ToMgmtSecurityProfile_VerifySecurityProfileType() + { + // Arrange + var psSecurityProfile = new PSSecurityProfile() + { + SecurityType = Azure.Batch.Common.SecurityTypes.ConfidentialVM, + EncryptionAtHost = false + }; + + // Act + var result = psSecurityProfile.toMgmtSecurityProfile(); + + // Assert + Assert.NotNull(result); + Assert.IsType(result); + } + + [Fact] + public void ToMgmtSecurityProfile_DefaultValues_HandlesCorrectly() + { + // Arrange + var psSecurityProfile = new PSSecurityProfile(); // Using default constructor + + // Act + var result = psSecurityProfile.toMgmtSecurityProfile(); + + // Assert + Assert.NotNull(result); + // Default values should be null for nullable properties + Assert.Null(result.SecurityType); + Assert.Null(result.EncryptionAtHost); + Assert.Null(result.UefiSettings); + } + + [Fact] + public void ToMgmtSecurityProfile_TrustedLaunchConfiguration_PreservesSecuritySettings() + { + // Arrange - Trusted Launch with maximum security settings + var psSecurityProfile = new PSSecurityProfile() + { + SecurityType = Azure.Batch.Common.SecurityTypes.TrustedLaunch, + EncryptionAtHost = true, + UefiSettings = new PSUefiSettings() + { + SecureBootEnabled = true, + VTpmEnabled = true + } + }; + + // Act + var result = psSecurityProfile.toMgmtSecurityProfile(); + + // Assert + Assert.NotNull(result); + Assert.Equal(SecurityTypes.TrustedLaunch, result.SecurityType); + Assert.True(result.EncryptionAtHost); + Assert.NotNull(result.UefiSettings); + Assert.True(result.UefiSettings.SecureBootEnabled); + Assert.True(result.UefiSettings.VTpmEnabled); + // Trusted Launch with full security features enabled + } + + #endregion + + #region fromMgmtSecurityProfile Tests + + [Fact] + public void FromMgmtSecurityProfile_WithTrustedLaunchAndEncryption_ReturnsCorrectMapping() + { + // Arrange + var mgmtSecurityProfile = new SecurityProfile( + securityType: SecurityTypes.TrustedLaunch, + encryptionAtHost: true, + uefiSettings: new UefiSettings( + secureBootEnabled: true, + vTpmEnabled: true)); + + // Act + var result = PSSecurityProfile.fromMgmtSecurityProfile(mgmtSecurityProfile); + + // Assert + Assert.NotNull(result); + Assert.Equal(Azure.Batch.Common.SecurityTypes.TrustedLaunch, result.SecurityType); + Assert.True(result.EncryptionAtHost); + Assert.NotNull(result.UefiSettings); + Assert.True(result.UefiSettings.SecureBootEnabled); + Assert.True(result.UefiSettings.VTpmEnabled); + } + + [Fact] + public void FromMgmtSecurityProfile_WithConfidentialVM_ReturnsCorrectMapping() + { + // Arrange + var mgmtSecurityProfile = new SecurityProfile( + securityType: SecurityTypes.ConfidentialVM, + encryptionAtHost: false, + uefiSettings: new UefiSettings( + secureBootEnabled: true, + vTpmEnabled: false)); + + // Act + var result = PSSecurityProfile.fromMgmtSecurityProfile(mgmtSecurityProfile); + + // Assert + Assert.NotNull(result); + Assert.Equal(Azure.Batch.Common.SecurityTypes.ConfidentialVM, result.SecurityType); + Assert.False(result.EncryptionAtHost); + Assert.NotNull(result.UefiSettings); + Assert.True(result.UefiSettings.SecureBootEnabled); + Assert.False(result.UefiSettings.VTpmEnabled); + } + + [Fact] + public void FromMgmtSecurityProfile_WithNullMgmtProfile_ReturnsNull() + { + // Act + var result = PSSecurityProfile.fromMgmtSecurityProfile(null); + + // Assert + Assert.Null(result); + } + + [Fact] + public void FromMgmtSecurityProfile_WithNullSecurityType_ReturnsNullSecurityType() + { + // Arrange + var mgmtSecurityProfile = new SecurityProfile( + securityType: null, + encryptionAtHost: true, + uefiSettings: null); + + // Act + var result = PSSecurityProfile.fromMgmtSecurityProfile(mgmtSecurityProfile); + + // Assert + Assert.NotNull(result); + Assert.Null(result.SecurityType); + Assert.True(result.EncryptionAtHost); + Assert.Null(result.UefiSettings); + } + + [Fact] + public void FromMgmtSecurityProfile_WithNullEncryptionAtHost_ReturnsNullEncryption() + { + // Arrange + var mgmtSecurityProfile = new SecurityProfile( + securityType: SecurityTypes.TrustedLaunch, + encryptionAtHost: null, + uefiSettings: new UefiSettings( + secureBootEnabled: false, + vTpmEnabled: false)); + + // Act + var result = PSSecurityProfile.fromMgmtSecurityProfile(mgmtSecurityProfile); + + // Assert + Assert.NotNull(result); + Assert.Equal(Azure.Batch.Common.SecurityTypes.TrustedLaunch, result.SecurityType); + Assert.Null(result.EncryptionAtHost); + Assert.NotNull(result.UefiSettings); + Assert.False(result.UefiSettings.SecureBootEnabled); + Assert.False(result.UefiSettings.VTpmEnabled); + } + + [Fact] + public void FromMgmtSecurityProfile_WithNullUefiSettings_ReturnsNullUefiSettings() + { + // Arrange + var mgmtSecurityProfile = new SecurityProfile( + securityType: SecurityTypes.ConfidentialVM, + encryptionAtHost: false, + uefiSettings: null); + + // Act + var result = PSSecurityProfile.fromMgmtSecurityProfile(mgmtSecurityProfile); + + // Assert + Assert.NotNull(result); + Assert.Equal(Azure.Batch.Common.SecurityTypes.ConfidentialVM, result.SecurityType); + Assert.False(result.EncryptionAtHost); + Assert.Null(result.UefiSettings); + } + + [Fact] + public void FromMgmtSecurityProfile_WithAllNullValues_ReturnsAllNull() + { + // Arrange + var mgmtSecurityProfile = new SecurityProfile( + securityType: null, + encryptionAtHost: null, + uefiSettings: null); + + // Act + var result = PSSecurityProfile.fromMgmtSecurityProfile(mgmtSecurityProfile); + + // Assert + Assert.NotNull(result); + Assert.Null(result.SecurityType); + Assert.Null(result.EncryptionAtHost); + Assert.Null(result.UefiSettings); + } + + [Theory] + [InlineData(SecurityTypes.TrustedLaunch, Azure.Batch.Common.SecurityTypes.TrustedLaunch)] + [InlineData(SecurityTypes.ConfidentialVM, Azure.Batch.Common.SecurityTypes.ConfidentialVM)] + public void FromMgmtSecurityProfile_AllValidSecurityTypes_ReturnsCorrectMapping( + SecurityTypes mgmtSecurityType, + Azure.Batch.Common.SecurityTypes expectedPsSecurityType) + { + // Arrange + var mgmtSecurityProfile = new SecurityProfile( + securityType: mgmtSecurityType, + encryptionAtHost: true); + + // Act + var result = PSSecurityProfile.fromMgmtSecurityProfile(mgmtSecurityProfile); + + // Assert + Assert.NotNull(result); + Assert.Equal(expectedPsSecurityType, result.SecurityType); + } + + [Fact] + public void FromMgmtSecurityProfile_StaticMethod_DoesNotRequireInstance() + { + // Arrange + var mgmtSecurityProfile = new SecurityProfile( + securityType: SecurityTypes.TrustedLaunch, + encryptionAtHost: false); + + // Act - Call static method directly on class + var result = PSSecurityProfile.fromMgmtSecurityProfile(mgmtSecurityProfile); + + // Assert + Assert.NotNull(result); + Assert.Equal(Azure.Batch.Common.SecurityTypes.TrustedLaunch, result.SecurityType); + Assert.False(result.EncryptionAtHost); + } + + [Fact] + public void FromMgmtSecurityProfile_AlwaysCreatesNewInstance() + { + // Arrange + var mgmtSecurityProfile = new SecurityProfile( + securityType: SecurityTypes.ConfidentialVM, + encryptionAtHost: true, + uefiSettings: new UefiSettings(true, true)); + + // Act + var result1 = PSSecurityProfile.fromMgmtSecurityProfile(mgmtSecurityProfile); + var result2 = PSSecurityProfile.fromMgmtSecurityProfile(mgmtSecurityProfile); + + // Assert + Assert.NotNull(result1); + Assert.NotNull(result2); + Assert.NotSame(result1, result2); + } + + [Fact] + public void FromMgmtSecurityProfile_VerifyPSSecurityProfileType() + { + // Arrange + var mgmtSecurityProfile = new SecurityProfile( + securityType: SecurityTypes.TrustedLaunch, + encryptionAtHost: true); + + // Act + var result = PSSecurityProfile.fromMgmtSecurityProfile(mgmtSecurityProfile); + + // Assert + Assert.NotNull(result); + Assert.IsType(result); + } + + [Fact] + public void FromMgmtSecurityProfile_WithDefaultConstructor_HandlesCorrectly() + { + // Arrange + var mgmtSecurityProfile = new SecurityProfile(); // Uses default constructor + + // Act + var result = PSSecurityProfile.fromMgmtSecurityProfile(mgmtSecurityProfile); + + // Assert + Assert.NotNull(result); + Assert.Null(result.SecurityType); + Assert.Null(result.EncryptionAtHost); + Assert.Null(result.UefiSettings); + } + + [Fact] + public void FromMgmtSecurityProfile_ConfidentialVMConfiguration_PreservesSecuritySettings() + { + // Arrange + var mgmtSecurityProfile = new SecurityProfile( + securityType: SecurityTypes.ConfidentialVM, + encryptionAtHost: true, + uefiSettings: new UefiSettings( + secureBootEnabled: true, + vTpmEnabled: true)); + + // Act + var result = PSSecurityProfile.fromMgmtSecurityProfile(mgmtSecurityProfile); + + // Assert + Assert.NotNull(result); + Assert.Equal(Azure.Batch.Common.SecurityTypes.ConfidentialVM, result.SecurityType); + Assert.True(result.EncryptionAtHost); + Assert.NotNull(result.UefiSettings); + Assert.True(result.UefiSettings.SecureBootEnabled); + Assert.True(result.UefiSettings.VTpmEnabled); + // Confidential VM with maximum security features + } + + #endregion + + #region Round-trip Conversion Tests + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesAllPropertiesTrustedLaunch() + { + // Arrange + var originalPsSecurityProfile = new PSSecurityProfile() + { + SecurityType = Azure.Batch.Common.SecurityTypes.TrustedLaunch, + EncryptionAtHost = true, + UefiSettings = new PSUefiSettings() + { + SecureBootEnabled = true, + VTpmEnabled = true + } + }; + + // Act + var mgmtSecurityProfile = originalPsSecurityProfile.toMgmtSecurityProfile(); + var roundTripPsSecurityProfile = PSSecurityProfile.fromMgmtSecurityProfile(mgmtSecurityProfile); + + // Assert + Assert.NotNull(roundTripPsSecurityProfile); + Assert.Equal(originalPsSecurityProfile.SecurityType, roundTripPsSecurityProfile.SecurityType); + Assert.Equal(originalPsSecurityProfile.EncryptionAtHost, roundTripPsSecurityProfile.EncryptionAtHost); + Assert.NotNull(roundTripPsSecurityProfile.UefiSettings); + Assert.Equal(originalPsSecurityProfile.UefiSettings.SecureBootEnabled, roundTripPsSecurityProfile.UefiSettings.SecureBootEnabled); + Assert.Equal(originalPsSecurityProfile.UefiSettings.VTpmEnabled, roundTripPsSecurityProfile.UefiSettings.VTpmEnabled); + } + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesAllPropertiesConfidentialVM() + { + // Arrange + var originalPsSecurityProfile = new PSSecurityProfile() + { + SecurityType = Azure.Batch.Common.SecurityTypes.ConfidentialVM, + EncryptionAtHost = false, + UefiSettings = new PSUefiSettings() + { + SecureBootEnabled = true, + VTpmEnabled = false + } + }; + + // Act + var mgmtSecurityProfile = originalPsSecurityProfile.toMgmtSecurityProfile(); + var roundTripPsSecurityProfile = PSSecurityProfile.fromMgmtSecurityProfile(mgmtSecurityProfile); + + // Assert + Assert.NotNull(roundTripPsSecurityProfile); + Assert.Equal(originalPsSecurityProfile.SecurityType, roundTripPsSecurityProfile.SecurityType); + Assert.Equal(originalPsSecurityProfile.EncryptionAtHost, roundTripPsSecurityProfile.EncryptionAtHost); + Assert.NotNull(roundTripPsSecurityProfile.UefiSettings); + Assert.Equal(originalPsSecurityProfile.UefiSettings.SecureBootEnabled, roundTripPsSecurityProfile.UefiSettings.SecureBootEnabled); + Assert.Equal(originalPsSecurityProfile.UefiSettings.VTpmEnabled, roundTripPsSecurityProfile.UefiSettings.VTpmEnabled); + } + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesNullValues() + { + // Arrange + var originalPsSecurityProfile = new PSSecurityProfile() + { + SecurityType = null, + EncryptionAtHost = null, + UefiSettings = null + }; + + // Act + var mgmtSecurityProfile = originalPsSecurityProfile.toMgmtSecurityProfile(); + var roundTripPsSecurityProfile = PSSecurityProfile.fromMgmtSecurityProfile(mgmtSecurityProfile); + + // Assert + Assert.NotNull(roundTripPsSecurityProfile); + Assert.Null(roundTripPsSecurityProfile.SecurityType); + Assert.Null(roundTripPsSecurityProfile.EncryptionAtHost); + Assert.Null(roundTripPsSecurityProfile.UefiSettings); + } + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesPartialNullValues() + { + // Arrange + var originalPsSecurityProfile = new PSSecurityProfile() + { + SecurityType = Azure.Batch.Common.SecurityTypes.TrustedLaunch, + EncryptionAtHost = null, + UefiSettings = new PSUefiSettings() + { + SecureBootEnabled = true, + VTpmEnabled = null + } + }; + + // Act + var mgmtSecurityProfile = originalPsSecurityProfile.toMgmtSecurityProfile(); + var roundTripPsSecurityProfile = PSSecurityProfile.fromMgmtSecurityProfile(mgmtSecurityProfile); + + // Assert + Assert.NotNull(roundTripPsSecurityProfile); + Assert.Equal(originalPsSecurityProfile.SecurityType, roundTripPsSecurityProfile.SecurityType); + Assert.Null(roundTripPsSecurityProfile.EncryptionAtHost); + Assert.NotNull(roundTripPsSecurityProfile.UefiSettings); + Assert.Equal(originalPsSecurityProfile.UefiSettings.SecureBootEnabled, roundTripPsSecurityProfile.UefiSettings.SecureBootEnabled); + Assert.Null(roundTripPsSecurityProfile.UefiSettings.VTpmEnabled); + } + + [Theory] + [InlineData(Azure.Batch.Common.SecurityTypes.TrustedLaunch, true)] + [InlineData(Azure.Batch.Common.SecurityTypes.TrustedLaunch, false)] + [InlineData(Azure.Batch.Common.SecurityTypes.ConfidentialVM, true)] + [InlineData(Azure.Batch.Common.SecurityTypes.ConfidentialVM, false)] + public void RoundTripConversion_AllValidCombinations_PreservesOriginalValue( + Azure.Batch.Common.SecurityTypes originalSecurityType, + bool originalEncryptionAtHost) + { + // Arrange + var originalPsSecurityProfile = new PSSecurityProfile() + { + SecurityType = originalSecurityType, + EncryptionAtHost = originalEncryptionAtHost, + UefiSettings = new PSUefiSettings() + { + SecureBootEnabled = true, + VTpmEnabled = true + } + }; + + // Act + var mgmtSecurityProfile = originalPsSecurityProfile.toMgmtSecurityProfile(); + var roundTripPsSecurityProfile = PSSecurityProfile.fromMgmtSecurityProfile(mgmtSecurityProfile); + + // Assert + Assert.NotNull(roundTripPsSecurityProfile); + Assert.Equal(originalSecurityType, roundTripPsSecurityProfile.SecurityType); + Assert.Equal(originalEncryptionAtHost, roundTripPsSecurityProfile.EncryptionAtHost); + Assert.NotNull(roundTripPsSecurityProfile.UefiSettings); + } + + [Fact] + public void RoundTripConversion_FromMgmtAndToMgmt_PreservesValues() + { + // Arrange + var originalMgmtSecurityProfile = new SecurityProfile( + securityType: SecurityTypes.ConfidentialVM, + encryptionAtHost: true, + uefiSettings: new UefiSettings( + secureBootEnabled: false, + vTpmEnabled: true)); + + // Act + var psSecurityProfile = PSSecurityProfile.fromMgmtSecurityProfile(originalMgmtSecurityProfile); + var roundTripMgmtSecurityProfile = psSecurityProfile.toMgmtSecurityProfile(); + + // Assert + Assert.NotNull(roundTripMgmtSecurityProfile); + Assert.Equal(originalMgmtSecurityProfile.SecurityType, roundTripMgmtSecurityProfile.SecurityType); + Assert.Equal(originalMgmtSecurityProfile.EncryptionAtHost, roundTripMgmtSecurityProfile.EncryptionAtHost); + Assert.NotNull(roundTripMgmtSecurityProfile.UefiSettings); + Assert.Equal(originalMgmtSecurityProfile.UefiSettings.SecureBootEnabled, roundTripMgmtSecurityProfile.UefiSettings.SecureBootEnabled); + Assert.Equal(originalMgmtSecurityProfile.UefiSettings.VTpmEnabled, roundTripMgmtSecurityProfile.UefiSettings.VTpmEnabled); + } + + #endregion + + #region Integration Tests + + [Fact] + public void SecurityProfileConversions_BothDirections_MaintainSemanticEquivalence() + { + // This test ensures that the semantic meaning is preserved across conversions + + // Arrange - Test with realistic security configuration scenarios + var psSecurityProfile = new PSSecurityProfile() + { + SecurityType = Azure.Batch.Common.SecurityTypes.TrustedLaunch, + EncryptionAtHost = true, + UefiSettings = new PSUefiSettings() + { + SecureBootEnabled = true, + VTpmEnabled = true + } + }; + + // Act + var mgmtSecurityProfile = psSecurityProfile.toMgmtSecurityProfile(); + var backToPs = PSSecurityProfile.fromMgmtSecurityProfile(mgmtSecurityProfile); + + // Assert + Assert.NotNull(mgmtSecurityProfile); + Assert.Equal(SecurityTypes.TrustedLaunch, mgmtSecurityProfile.SecurityType); + Assert.True(mgmtSecurityProfile.EncryptionAtHost); + Assert.NotNull(mgmtSecurityProfile.UefiSettings); + Assert.True(mgmtSecurityProfile.UefiSettings.SecureBootEnabled); + Assert.True(mgmtSecurityProfile.UefiSettings.VTpmEnabled); + + Assert.NotNull(backToPs); + Assert.Equal(Azure.Batch.Common.SecurityTypes.TrustedLaunch, backToPs.SecurityType); + Assert.True(backToPs.EncryptionAtHost); + Assert.NotNull(backToPs.UefiSettings); + Assert.True(backToPs.UefiSettings.SecureBootEnabled); + Assert.True(backToPs.UefiSettings.VTpmEnabled); + } + + [Fact] + public void SecurityProfileConversions_NullHandling_WorksCorrectly() + { + // Test null handling in conversions + + // Act + var resultFromNull = PSSecurityProfile.fromMgmtSecurityProfile(null); + + // Assert + Assert.Null(resultFromNull); + } + + [Fact] + public void SecurityProfileConversions_BatchVMSecurityContext_VerifyCorrectUsage() + { + // This test validates the conversions work correctly in the context of Batch VM security configuration + // SecurityProfile is used to configure security settings for virtual machines in Azure Batch pools + + // Arrange - Test with different security scenarios + var securityScenarios = new[] + { + // Trusted Launch with maximum security + new { + SecurityType = Azure.Batch.Common.SecurityTypes.TrustedLaunch, + EncryptionAtHost = true, + SecureBootEnabled = true, + VTpmEnabled = true, + Description = "Trusted Launch with maximum security features" + }, + // Confidential VM with selective features + new { + SecurityType = Azure.Batch.Common.SecurityTypes.ConfidentialVM, + EncryptionAtHost = false, + SecureBootEnabled = true, + VTpmEnabled = false, + Description = "Confidential VM with selective security features" + } + }; + + foreach (var scenario in securityScenarios) + { + // Arrange + var psSecurityProfile = new PSSecurityProfile() + { + SecurityType = scenario.SecurityType, + EncryptionAtHost = scenario.EncryptionAtHost, + UefiSettings = scenario.SecureBootEnabled || scenario.VTpmEnabled + ? new PSUefiSettings() + { + SecureBootEnabled = scenario.SecureBootEnabled, + VTpmEnabled = scenario.VTpmEnabled + } + : null + }; + + // Act + var mgmtSecurityProfile = psSecurityProfile.toMgmtSecurityProfile(); + + // Assert - Should convert correctly for Batch VM security configuration + Assert.NotNull(mgmtSecurityProfile); + + + var expectedMgmtType = scenario.SecurityType == Azure.Batch.Common.SecurityTypes.TrustedLaunch + ? SecurityTypes.TrustedLaunch + : SecurityTypes.ConfidentialVM; + Assert.Equal(expectedMgmtType, mgmtSecurityProfile.SecurityType); + + + Assert.Equal(scenario.EncryptionAtHost, mgmtSecurityProfile.EncryptionAtHost); + + if (psSecurityProfile.UefiSettings != null) + { + Assert.NotNull(mgmtSecurityProfile.UefiSettings); + Assert.Equal(scenario.SecureBootEnabled, mgmtSecurityProfile.UefiSettings.SecureBootEnabled); + Assert.Equal(scenario.VTpmEnabled, mgmtSecurityProfile.UefiSettings.VTpmEnabled); + } + else + { + Assert.Null(mgmtSecurityProfile.UefiSettings); + } + + // Verify round-trip conversion maintains security semantics + var backToPs = PSSecurityProfile.fromMgmtSecurityProfile(mgmtSecurityProfile); + Assert.NotNull(backToPs); + Assert.Equal(scenario.SecurityType, backToPs.SecurityType); + Assert.Equal(scenario.EncryptionAtHost, backToPs.EncryptionAtHost); + } + } + + [Fact] + public void SecurityProfileConversions_ConfidentialComputingContext_VerifyCorrectUsage() + { + // This test validates the conversions work correctly in the context of confidential computing + // SecurityProfile is essential for configuring security features in confidential VMs + + // Arrange - Test with confidential computing scenarios + var confidentialScenarios = new[] + { + // Maximum security Confidential VM + new { + SecurityType = Azure.Batch.Common.SecurityTypes.ConfidentialVM, + EncryptionAtHost = true, + SecureBootEnabled = true, + VTpmEnabled = true, + ComplianceType = "Maximum Security", + Description = "Confidential VM with all security features enabled" + }, + // Standard Trusted Launch + new { + SecurityType = Azure.Batch.Common.SecurityTypes.TrustedLaunch, + EncryptionAtHost = false, + SecureBootEnabled = true, + VTpmEnabled = true, + ComplianceType = "Trusted Launch", + Description = "Trusted Launch VM with standard security features" + } + }; + + foreach (var scenario in confidentialScenarios) + { + // Act + var psSecurityProfile = new PSSecurityProfile() + { + SecurityType = scenario.SecurityType, + EncryptionAtHost = scenario.EncryptionAtHost, + UefiSettings = new PSUefiSettings() + { + SecureBootEnabled = scenario.SecureBootEnabled, + VTpmEnabled = scenario.VTpmEnabled + } + }; + var mgmtType = psSecurityProfile.toMgmtSecurityProfile(); + var roundTripType = PSSecurityProfile.fromMgmtSecurityProfile(mgmtType); + + // Assert - Confidential computing semantics should be preserved + Assert.NotNull(roundTripType); + Assert.Equal(scenario.SecurityType, roundTripType.SecurityType); + Assert.Equal(scenario.EncryptionAtHost, roundTripType.EncryptionAtHost); + Assert.NotNull(roundTripType.UefiSettings); + Assert.Equal(scenario.SecureBootEnabled, roundTripType.UefiSettings.SecureBootEnabled); + Assert.Equal(scenario.VTpmEnabled, roundTripType.UefiSettings.VTpmEnabled); + + // Verify the conversion maintains the security context + var expectedMgmtValue = scenario.SecurityType switch + { + Azure.Batch.Common.SecurityTypes.TrustedLaunch => SecurityTypes.TrustedLaunch, + Azure.Batch.Common.SecurityTypes.ConfidentialVM => SecurityTypes.ConfidentialVM, + _ => throw new ArgumentOutOfRangeException() + }; + + Assert.NotNull(mgmtType); + Assert.Equal(expectedMgmtValue, mgmtType.SecurityType); + Assert.Equal(scenario.EncryptionAtHost, mgmtType.EncryptionAtHost); + Assert.NotNull(mgmtType.UefiSettings); + Assert.Equal(scenario.SecureBootEnabled, mgmtType.UefiSettings.SecureBootEnabled); + Assert.Equal(scenario.VTpmEnabled, mgmtType.UefiSettings.VTpmEnabled); + } + } + + [Fact] + public void SecurityProfileConversions_VMSecurityIntegration_VerifySemantics() + { + // This test validates the semantic usage in the context of Azure Batch VM security configuration + // SecurityProfile determines VM security features for compute nodes in Batch pools + + // Trusted Launch semantics - Boot integrity and attestation + var trustedLaunchPs = new PSSecurityProfile() + { + SecurityType = Azure.Batch.Common.SecurityTypes.TrustedLaunch, + EncryptionAtHost = true, + UefiSettings = new PSUefiSettings() + { + SecureBootEnabled = true, + VTpmEnabled = true + } + }; + var mgmtTrustedLaunch = trustedLaunchPs.toMgmtSecurityProfile(); + + Assert.NotNull(mgmtTrustedLaunch); + Assert.Equal(SecurityTypes.TrustedLaunch, mgmtTrustedLaunch.SecurityType); + Assert.True(mgmtTrustedLaunch.EncryptionAtHost); + Assert.NotNull(mgmtTrustedLaunch.UefiSettings); + Assert.True(mgmtTrustedLaunch.UefiSettings.SecureBootEnabled); + Assert.True(mgmtTrustedLaunch.UefiSettings.VTpmEnabled); + // Use case: Enhanced boot security and hardware attestation for compliance + + // Confidential VM semantics - Hardware-enforced confidentiality + var confidentialVMPs = new PSSecurityProfile() + { + SecurityType = Azure.Batch.Common.SecurityTypes.ConfidentialVM, + EncryptionAtHost = false, + UefiSettings = new PSUefiSettings() + { + SecureBootEnabled = true, + VTpmEnabled = false + } + }; + var mgmtConfidentialVM = confidentialVMPs.toMgmtSecurityProfile(); + + Assert.NotNull(mgmtConfidentialVM); + Assert.Equal(SecurityTypes.ConfidentialVM, mgmtConfidentialVM.SecurityType); + Assert.False(mgmtConfidentialVM.EncryptionAtHost); + Assert.NotNull(mgmtConfidentialVM.UefiSettings); + Assert.True(mgmtConfidentialVM.UefiSettings.SecureBootEnabled); + Assert.False(mgmtConfidentialVM.UefiSettings.VTpmEnabled); + // Use case: Confidential computing with selective security features + + // Verify all round-trip correctly + var trustedLaunchRoundTrip = PSSecurityProfile.fromMgmtSecurityProfile(mgmtTrustedLaunch); + var confidentialVMRoundTrip = PSSecurityProfile.fromMgmtSecurityProfile(mgmtConfidentialVM); + + Assert.NotNull(trustedLaunchRoundTrip); + Assert.NotNull(confidentialVMRoundTrip); + Assert.Equal(trustedLaunchPs.SecurityType, trustedLaunchRoundTrip.SecurityType); + Assert.Equal(trustedLaunchPs.EncryptionAtHost, trustedLaunchRoundTrip.EncryptionAtHost); + Assert.Equal(confidentialVMPs.SecurityType, confidentialVMRoundTrip.SecurityType); + Assert.Equal(confidentialVMPs.EncryptionAtHost, confidentialVMRoundTrip.EncryptionAtHost); + } + + [Fact] + public void SecurityProfileConversions_InstanceCreation_VerifyBehavior() + { + // This test verifies that the conversion methods create appropriate instances + + // Arrange + var psSecurityProfile = new PSSecurityProfile() + { + SecurityType = Azure.Batch.Common.SecurityTypes.TrustedLaunch, + EncryptionAtHost = true, + UefiSettings = new PSUefiSettings() + { + SecureBootEnabled = true, + VTpmEnabled = true + } + }; + + var mgmtSecurityProfile = new SecurityProfile( + securityType: SecurityTypes.ConfidentialVM, + encryptionAtHost: false, + uefiSettings: new UefiSettings(false, false)); + + // Act + var mgmtResult = psSecurityProfile.toMgmtSecurityProfile(); + var psResult = PSSecurityProfile.fromMgmtSecurityProfile(mgmtSecurityProfile); + + // Assert - Verify proper instance creation + Assert.NotNull(mgmtResult); + Assert.NotNull(psResult); + Assert.IsType(mgmtResult); + Assert.IsType(psResult); + + // Verify new instances are created + Assert.NotSame(mgmtSecurityProfile, mgmtResult); + Assert.NotSame(psSecurityProfile, psResult); + } + + #endregion + + #region Performance and Edge Case Tests + + [Fact] + public void SecurityProfileConversions_PerformanceTest_ExecutesQuickly() + { + // This test ensures the conversions are efficient + + // Arrange + var psSecurityProfile = new PSSecurityProfile() + { + SecurityType = Azure.Batch.Common.SecurityTypes.TrustedLaunch, + EncryptionAtHost = true, + UefiSettings = new PSUefiSettings() + { + SecureBootEnabled = true, + VTpmEnabled = true + } + }; + + var mgmtSecurityProfile = new SecurityProfile( + securityType: SecurityTypes.ConfidentialVM, + encryptionAtHost: false, + uefiSettings: new UefiSettings(false, false)); + + // Act & Assert - Multiple conversions should complete without delay + for (int i = 0; i < 100; i++) + { + var mgmtResult = psSecurityProfile.toMgmtSecurityProfile(); + var psResult = PSSecurityProfile.fromMgmtSecurityProfile(mgmtSecurityProfile); + + Assert.NotNull(mgmtResult); + Assert.NotNull(psResult); + Assert.Equal(SecurityTypes.TrustedLaunch, mgmtResult.SecurityType); + Assert.Equal(Azure.Batch.Common.SecurityTypes.ConfidentialVM, psResult.SecurityType); + } + } + + [Fact] + public void SecurityProfileConversions_TypeSafety_VerifyCorrectTypes() + { + // Test that conversions return the correct types + + // Arrange + var psSecurityProfile = new PSSecurityProfile() + { + SecurityType = Azure.Batch.Common.SecurityTypes.TrustedLaunch, + EncryptionAtHost = false + }; + var mgmtSecurityProfile = new SecurityProfile( + securityType: SecurityTypes.ConfidentialVM, + encryptionAtHost: true); + + // Act + var mgmtResult = psSecurityProfile.toMgmtSecurityProfile(); + var psResult = PSSecurityProfile.fromMgmtSecurityProfile(mgmtSecurityProfile); + + // Assert - Verify correct types are returned + Assert.IsType(mgmtResult); + Assert.IsType(psResult); + } + + [Fact] + public void SecurityProfileConversions_EdgeCases_HandleCorrectly() + { + // Test edge cases and boundary conditions + + // Default PS security profile + var defaultPs = new PSSecurityProfile(); + var mgmtFromDefaultPs = defaultPs.toMgmtSecurityProfile(); + + Assert.NotNull(mgmtFromDefaultPs); + Assert.Null(mgmtFromDefaultPs.SecurityType); + Assert.Null(mgmtFromDefaultPs.EncryptionAtHost); + Assert.Null(mgmtFromDefaultPs.UefiSettings); + + // Default management security profile + var defaultMgmt = new SecurityProfile(); + var psFromDefaultMgmt = PSSecurityProfile.fromMgmtSecurityProfile(defaultMgmt); + + Assert.NotNull(psFromDefaultMgmt); + Assert.Null(psFromDefaultMgmt.SecurityType); + Assert.Null(psFromDefaultMgmt.EncryptionAtHost); + Assert.Null(psFromDefaultMgmt.UefiSettings); + } + + [Fact] + public void SecurityProfileConversions_PropertyAccess_VerifyBehavior() + { + // Test that properties are accessible and correct after conversion + + // Arrange + var originalSecurityType = Azure.Batch.Common.SecurityTypes.ConfidentialVM; + var originalEncryptionAtHost = true; + var psSecurityProfile = new PSSecurityProfile() + { + SecurityType = originalSecurityType, + EncryptionAtHost = originalEncryptionAtHost, + UefiSettings = new PSUefiSettings() + { + SecureBootEnabled = false, + VTpmEnabled = true + } + }; + + // Act + var mgmtSecurityProfile = psSecurityProfile.toMgmtSecurityProfile(); + var convertedPsSecurityProfile = PSSecurityProfile.fromMgmtSecurityProfile(mgmtSecurityProfile); + + // Assert + Assert.Equal(originalSecurityType, psSecurityProfile.SecurityType); + Assert.Equal(originalEncryptionAtHost, psSecurityProfile.EncryptionAtHost); + Assert.Equal(SecurityTypes.ConfidentialVM, mgmtSecurityProfile.SecurityType); + Assert.Equal(originalEncryptionAtHost, mgmtSecurityProfile.EncryptionAtHost); + Assert.Equal(originalSecurityType, convertedPsSecurityProfile.SecurityType); + Assert.Equal(originalEncryptionAtHost, convertedPsSecurityProfile.EncryptionAtHost); + + Assert.NotNull(psSecurityProfile.UefiSettings); + Assert.NotNull(mgmtSecurityProfile.UefiSettings); + Assert.NotNull(convertedPsSecurityProfile.UefiSettings); + Assert.False(psSecurityProfile.UefiSettings.SecureBootEnabled); + Assert.True(psSecurityProfile.UefiSettings.VTpmEnabled); + Assert.False(mgmtSecurityProfile.UefiSettings.SecureBootEnabled); + Assert.True(mgmtSecurityProfile.UefiSettings.VTpmEnabled); + Assert.False(convertedPsSecurityProfile.UefiSettings.SecureBootEnabled); + Assert.True(convertedPsSecurityProfile.UefiSettings.VTpmEnabled); + } + + #endregion + + #region Security Configuration Context Tests + + [Fact] + public void SecurityProfileConversions_TrustedLaunchConfiguration_VerifySecurityStrategy() + { + // This test validates conversions work correctly for Trusted Launch VM configurations + // Security profiles are critical for Trusted Launch security features + + // Arrange - Trusted Launch requires specific security configuration + var trustedLaunchPs = new PSSecurityProfile() + { + SecurityType = Azure.Batch.Common.SecurityTypes.TrustedLaunch, + EncryptionAtHost = true, + UefiSettings = new PSUefiSettings() + { + SecureBootEnabled = true, + VTpmEnabled = true + } + }; + + // Act + var mgmtResult = trustedLaunchPs.toMgmtSecurityProfile(); + var psResult = PSSecurityProfile.fromMgmtSecurityProfile(mgmtResult); + + // Assert + Assert.NotNull(mgmtResult); + Assert.Equal(SecurityTypes.TrustedLaunch, mgmtResult.SecurityType); + Assert.True(mgmtResult.EncryptionAtHost); + Assert.NotNull(mgmtResult.UefiSettings); + Assert.True(mgmtResult.UefiSettings.SecureBootEnabled); + Assert.True(mgmtResult.UefiSettings.VTpmEnabled); + + Assert.NotNull(psResult); + Assert.Equal(Azure.Batch.Common.SecurityTypes.TrustedLaunch, psResult.SecurityType); + Assert.True(psResult.EncryptionAtHost); + Assert.NotNull(psResult.UefiSettings); + Assert.True(psResult.UefiSettings.SecureBootEnabled); + Assert.True(psResult.UefiSettings.VTpmEnabled); + + // Verify round-trip maintains Trusted Launch configuration + var roundTripMgmt = psResult.toMgmtSecurityProfile(); + Assert.NotNull(roundTripMgmt); + Assert.Equal(SecurityTypes.TrustedLaunch, roundTripMgmt.SecurityType); + Assert.True(roundTripMgmt.EncryptionAtHost); + Assert.NotNull(roundTripMgmt.UefiSettings); + Assert.True(roundTripMgmt.UefiSettings.SecureBootEnabled); + Assert.True(roundTripMgmt.UefiSettings.VTpmEnabled); + } + + [Fact] + public void SecurityProfileConversions_BatchPoolSecurityProfiles_VerifyConfiguration() + { + // This test validates the conversions work correctly for different Batch pool security profiles + // Different workload types require different security configurations + + var securityProfiles = new[] + { + new { + Name = "High Security Profile", + SecurityType = Azure.Batch.Common.SecurityTypes.ConfidentialVM, + EncryptionAtHost = true, + SecureBootEnabled = true, + VTpmEnabled = true, + Description = "Maximum security for sensitive workloads" + }, + new { + Name = "Standard Security Profile", + SecurityType = Azure.Batch.Common.SecurityTypes.TrustedLaunch, + EncryptionAtHost = false, + SecureBootEnabled = true, + VTpmEnabled = true, + Description = "Standard trusted launch for regular workloads" + } + }; + + foreach (var profile in securityProfiles) + { + // Arrange + var psSettings = new PSSecurityProfile() + { + SecurityType = profile.SecurityType, + EncryptionAtHost = profile.EncryptionAtHost, + UefiSettings = profile.SecureBootEnabled || profile.VTpmEnabled + ? new PSUefiSettings() + { + SecureBootEnabled = profile.SecureBootEnabled, + VTpmEnabled = profile.VTpmEnabled + } + : null + }; + + // Act + var mgmtSettings = psSettings.toMgmtSecurityProfile(); + var roundTripSettings = PSSecurityProfile.fromMgmtSecurityProfile(mgmtSettings); + + // Assert - Security profile should be preserved + Assert.NotNull(mgmtSettings); + + + var expectedType = profile.SecurityType == Azure.Batch.Common.SecurityTypes.TrustedLaunch + ? SecurityTypes.TrustedLaunch + : SecurityTypes.ConfidentialVM; + Assert.Equal(expectedType, mgmtSettings.SecurityType); + + Assert.Equal(profile.EncryptionAtHost, mgmtSettings.EncryptionAtHost); + + Assert.NotNull(roundTripSettings); + Assert.Equal(profile.SecurityType, roundTripSettings.SecurityType); + Assert.Equal(profile.EncryptionAtHost, roundTripSettings.EncryptionAtHost); + + if (profile.SecureBootEnabled || profile.VTpmEnabled) + { + Assert.NotNull(roundTripSettings.UefiSettings); + Assert.Equal(profile.SecureBootEnabled, roundTripSettings.UefiSettings.SecureBootEnabled); + Assert.Equal(profile.VTpmEnabled, roundTripSettings.UefiSettings.VTpmEnabled); + } + else + { + Assert.Null(roundTripSettings.UefiSettings); + } + } + } + + #endregion + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Test/Models/PSServiceArtifactReferenceTests.cs b/src/Batch/Batch.Test/Models/PSServiceArtifactReferenceTests.cs new file mode 100644 index 000000000000..f35cf19cc5a3 --- /dev/null +++ b/src/Batch/Batch.Test/Models/PSServiceArtifactReferenceTests.cs @@ -0,0 +1,788 @@ +// ----------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ----------------------------------------------------------------------------- + +using Microsoft.Azure.Commands.Batch.Models; +using Microsoft.Azure.Management.Batch.Models; +using System; +using Xunit; + +namespace Microsoft.Azure.Commands.Batch.Test.ModelsConversions +{ + public class PSServiceArtifactReferenceTests + { + #region toMgmtServiceArtifactReference Tests + + [Fact] + public void ToMgmtServiceArtifactReference_WithValidServiceArtifactId_ReturnsCorrectMapping() + { + // Arrange + var serviceArtifactId = "/subscriptions/12345678-1234-1234-1234-123456789abc/resourceGroups/test-rg/providers/Microsoft.Compute/galleries/testGallery/serviceArtifacts/testArtifact/vmArtifactsProfiles/testProfile"; + var psServiceArtifactRef = new PSServiceArtifactReference(serviceArtifactId); + + // Act + var result = psServiceArtifactRef.toMgmtServiceArtifactReference(); + + // Assert + Assert.NotNull(result); + Assert.Equal(serviceArtifactId, result.Id); + } + + [Fact] + public void ToMgmtServiceArtifactReference_WithNullId_ReturnsObjectWithNullId() + { + // Arrange + var psServiceArtifactRef = new PSServiceArtifactReference(id: null); + + // Act + var result = psServiceArtifactRef.toMgmtServiceArtifactReference(); + + // Assert + Assert.NotNull(result); + Assert.Null(result.Id); + } + + [Fact] + public void ToMgmtServiceArtifactReference_WithEmptyId_ReturnsObjectWithEmptyId() + { + // Arrange + var psServiceArtifactRef = new PSServiceArtifactReference(string.Empty); + + // Act + var result = psServiceArtifactRef.toMgmtServiceArtifactReference(); + + // Assert + Assert.NotNull(result); + Assert.Equal(string.Empty, result.Id); + } + + [Theory] + [InlineData("/subscriptions/12345678-1234-1234-1234-123456789abc/resourceGroups/rg1/providers/Microsoft.Compute/galleries/gallery1/serviceArtifacts/artifact1/vmArtifactsProfiles/profile1")] + [InlineData("/subscriptions/87654321-4321-4321-4321-cba987654321/resourceGroups/test-group/providers/Microsoft.Compute/galleries/my-gallery/serviceArtifacts/my-artifact/vmArtifactsProfiles/my-profile")] + [InlineData("/subscriptions/11111111-2222-3333-4444-555555555555/resourceGroups/prod-rg/providers/Microsoft.Compute/galleries/prod-gallery/serviceArtifacts/prod-artifact/vmArtifactsProfiles/prod-profile")] + public void ToMgmtServiceArtifactReference_VariousServiceArtifactIds_ReturnsCorrectMapping(string serviceArtifactId) + { + // Arrange + var psServiceArtifactRef = new PSServiceArtifactReference(serviceArtifactId); + + // Act + var result = psServiceArtifactRef.toMgmtServiceArtifactReference(); + + // Assert + Assert.NotNull(result); + Assert.Equal(serviceArtifactId, result.Id); + } + + [Fact] + public void ToMgmtServiceArtifactReference_AlwaysCreatesNewInstance() + { + // Arrange + var psServiceArtifactRef = new PSServiceArtifactReference("/subscriptions/test/resourceGroups/test/providers/Microsoft.Compute/galleries/test/serviceArtifacts/test/vmArtifactsProfiles/test"); + + // Act + var result1 = psServiceArtifactRef.toMgmtServiceArtifactReference(); + var result2 = psServiceArtifactRef.toMgmtServiceArtifactReference(); + + // Assert + Assert.NotNull(result1); + Assert.NotNull(result2); + Assert.NotSame(result1, result2); + } + + [Fact] + public void ToMgmtServiceArtifactReference_VerifyServiceArtifactReferenceType() + { + // Arrange + var psServiceArtifactRef = new PSServiceArtifactReference("/subscriptions/test/resourceGroups/test/providers/Microsoft.Compute/galleries/test/serviceArtifacts/test/vmArtifactsProfiles/test"); + + // Act + var result = psServiceArtifactRef.toMgmtServiceArtifactReference(); + + // Assert + Assert.NotNull(result); + Assert.IsType(result); + } + + [Fact] + public void ToMgmtServiceArtifactReference_WithWhitespaceId_PreservesValue() + { + // Arrange + var serviceArtifactId = " /subscriptions/test/resourceGroups/test/providers/Microsoft.Compute/galleries/test/serviceArtifacts/test/vmArtifactsProfiles/test "; + var psServiceArtifactRef = new PSServiceArtifactReference(serviceArtifactId); + + // Act + var result = psServiceArtifactRef.toMgmtServiceArtifactReference(); + + // Assert + Assert.NotNull(result); + Assert.Equal(serviceArtifactId, result.Id); + } + + [Fact] + public void ToMgmtServiceArtifactReference_WithModifiedId_ReflectsCurrentValue() + { + // Arrange + var originalId = "/subscriptions/test/resourceGroups/test/providers/Microsoft.Compute/galleries/test/serviceArtifacts/test/vmArtifactsProfiles/test"; + var newId = "/subscriptions/test/resourceGroups/test/providers/Microsoft.Compute/galleries/test/serviceArtifacts/updated/vmArtifactsProfiles/updated"; + var psServiceArtifactRef = new PSServiceArtifactReference(originalId); + + // Act - Modify the Id property + psServiceArtifactRef.Id = newId; + var result = psServiceArtifactRef.toMgmtServiceArtifactReference(); + + // Assert + Assert.NotNull(result); + Assert.Equal(newId, result.Id); + } + + [Fact] + public void ToMgmtServiceArtifactReference_ServiceArtifactSemantics_PreservesArtifactStrategy() + { + // Arrange - Service artifact reference for VM scale set image versioning + var serviceArtifactId = "/subscriptions/12345678-1234-1234-1234-123456789abc/resourceGroups/batch-rg/providers/Microsoft.Compute/galleries/batchGallery/serviceArtifacts/batchArtifact/vmArtifactsProfiles/latestProfile"; + var psServiceArtifactRef = new PSServiceArtifactReference(serviceArtifactId); + + // Act + var result = psServiceArtifactRef.toMgmtServiceArtifactReference(); + + // Assert + Assert.NotNull(result); + Assert.Equal(serviceArtifactId, result.Id); + // Service artifact semantics: Used to set same image version for all VMs in scale set when using 'latest' image version + } + + #endregion + + #region fromMgmtServiceArtifactReference Tests + + [Fact] + public void FromMgmtServiceArtifactReference_WithValidServiceArtifactId_ReturnsCorrectMapping() + { + // Arrange + var serviceArtifactId = "/subscriptions/12345678-1234-1234-1234-123456789abc/resourceGroups/test-rg/providers/Microsoft.Compute/galleries/testGallery/serviceArtifacts/testArtifact/vmArtifactsProfiles/testProfile"; + var mgmtServiceArtifactRef = new ServiceArtifactReference(serviceArtifactId); + + // Act + var result = PSServiceArtifactReference.fromMgmtServiceArtifactReference(mgmtServiceArtifactRef); + + // Assert + Assert.NotNull(result); + Assert.Equal(serviceArtifactId, result.Id); + } + + [Fact] + public void FromMgmtServiceArtifactReference_WithNullId_ReturnsObjectWithNullId() + { + // Arrange + var mgmtServiceArtifactRef = new ServiceArtifactReference + { + Id = null + }; + + // Act + var result = PSServiceArtifactReference.fromMgmtServiceArtifactReference(mgmtServiceArtifactRef); + + // Assert + Assert.NotNull(result); + Assert.Null(result.Id); + } + + [Fact] + public void FromMgmtServiceArtifactReference_WithEmptyId_ReturnsObjectWithEmptyId() + { + // Arrange + var mgmtServiceArtifactRef = new ServiceArtifactReference + { + Id = string.Empty + }; + + // Act + var result = PSServiceArtifactReference.fromMgmtServiceArtifactReference(mgmtServiceArtifactRef); + + // Assert + Assert.NotNull(result); + Assert.Equal(string.Empty, result.Id); + } + + [Fact] + public void FromMgmtServiceArtifactReference_WithNullMgmtServiceArtifactReference_ReturnsNull() + { + // Act + var result = PSServiceArtifactReference.fromMgmtServiceArtifactReference(null); + + // Assert + Assert.Null(result); + } + + [Theory] + [InlineData("/subscriptions/12345678-1234-1234-1234-123456789abc/resourceGroups/rg1/providers/Microsoft.Compute/galleries/gallery1/serviceArtifacts/artifact1/vmArtifactsProfiles/profile1")] + [InlineData("/subscriptions/87654321-4321-4321-4321-cba987654321/resourceGroups/test-group/providers/Microsoft.Compute/galleries/my-gallery/serviceArtifacts/my-artifact/vmArtifactsProfiles/my-profile")] + [InlineData("/subscriptions/11111111-2222-3333-4444-555555555555/resourceGroups/prod-rg/providers/Microsoft.Compute/galleries/prod-gallery/serviceArtifacts/prod-artifact/vmArtifactsProfiles/prod-profile")] + public void FromMgmtServiceArtifactReference_VariousServiceArtifactIds_ReturnsCorrectMapping(string serviceArtifactId) + { + // Arrange + var mgmtServiceArtifactRef = new ServiceArtifactReference(serviceArtifactId); + + // Act + var result = PSServiceArtifactReference.fromMgmtServiceArtifactReference(mgmtServiceArtifactRef); + + // Assert + Assert.NotNull(result); + Assert.Equal(serviceArtifactId, result.Id); + } + + [Fact] + public void FromMgmtServiceArtifactReference_StaticMethod_DoesNotRequireInstance() + { + // Arrange + var mgmtServiceArtifactRef = new ServiceArtifactReference("/subscriptions/test/resourceGroups/test/providers/Microsoft.Compute/galleries/test/serviceArtifacts/test/vmArtifactsProfiles/test"); + + // Act - Call static method directly on class + var result = PSServiceArtifactReference.fromMgmtServiceArtifactReference(mgmtServiceArtifactRef); + + // Assert + Assert.NotNull(result); + Assert.Equal("/subscriptions/test/resourceGroups/test/providers/Microsoft.Compute/galleries/test/serviceArtifacts/test/vmArtifactsProfiles/test", result.Id); + } + + [Fact] + public void FromMgmtServiceArtifactReference_AlwaysCreatesNewInstance() + { + // Arrange + var mgmtServiceArtifactRef = new ServiceArtifactReference("/subscriptions/test/resourceGroups/test/providers/Microsoft.Compute/galleries/test/serviceArtifacts/test/vmArtifactsProfiles/test"); + + // Act + var result1 = PSServiceArtifactReference.fromMgmtServiceArtifactReference(mgmtServiceArtifactRef); + var result2 = PSServiceArtifactReference.fromMgmtServiceArtifactReference(mgmtServiceArtifactRef); + + // Assert + Assert.NotNull(result1); + Assert.NotNull(result2); + Assert.NotSame(result1, result2); + } + + [Fact] + public void FromMgmtServiceArtifactReference_VerifyPSServiceArtifactReferenceType() + { + // Arrange + var mgmtServiceArtifactRef = new ServiceArtifactReference("/subscriptions/test/resourceGroups/test/providers/Microsoft.Compute/galleries/test/serviceArtifacts/test/vmArtifactsProfiles/test"); + + // Act + var result = PSServiceArtifactReference.fromMgmtServiceArtifactReference(mgmtServiceArtifactRef); + + // Assert + Assert.NotNull(result); + Assert.IsType(result); + } + + [Fact] + public void FromMgmtServiceArtifactReference_WithDefaultConstructor_HandlesCorrectly() + { + // Arrange + var mgmtServiceArtifactRef = new ServiceArtifactReference(); // Uses default constructor + + // Act + var result = PSServiceArtifactReference.fromMgmtServiceArtifactReference(mgmtServiceArtifactRef); + + // Assert + Assert.NotNull(result); + Assert.Null(result.Id); // Default value should be null + } + + [Fact] + public void FromMgmtServiceArtifactReference_WithWhitespaceId_PreservesValue() + { + // Arrange + var serviceArtifactId = " /subscriptions/test/resourceGroups/test/providers/Microsoft.Compute/galleries/test/serviceArtifacts/test/vmArtifactsProfiles/test "; + var mgmtServiceArtifactRef = new ServiceArtifactReference(serviceArtifactId); + + // Act + var result = PSServiceArtifactReference.fromMgmtServiceArtifactReference(mgmtServiceArtifactRef); + + // Assert + Assert.NotNull(result); + Assert.Equal(serviceArtifactId, result.Id); + } + + [Fact] + public void FromMgmtServiceArtifactReference_ServiceArtifactSemantics_PreservesArtifactStrategy() + { + // Arrange + var serviceArtifactId = "/subscriptions/12345678-1234-1234-1234-123456789abc/resourceGroups/batch-rg/providers/Microsoft.Compute/galleries/batchGallery/serviceArtifacts/batchArtifact/vmArtifactsProfiles/latestProfile"; + var mgmtServiceArtifactRef = new ServiceArtifactReference(serviceArtifactId); + + // Act + var result = PSServiceArtifactReference.fromMgmtServiceArtifactReference(mgmtServiceArtifactRef); + + // Assert + Assert.NotNull(result); + Assert.Equal(serviceArtifactId, result.Id); + // Service artifact semantics preserved: Used for image version consistency across VM scale set + } + + #endregion + + #region Round-trip Conversion Tests + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesValidServiceArtifactId() + { + // Arrange + var originalServiceArtifactId = "/subscriptions/12345678-1234-1234-1234-123456789abc/resourceGroups/test-rg/providers/Microsoft.Compute/galleries/testGallery/serviceArtifacts/testArtifact/vmArtifactsProfiles/testProfile"; + var originalPsServiceArtifactRef = new PSServiceArtifactReference(originalServiceArtifactId); + + // Act + var mgmtServiceArtifactRef = originalPsServiceArtifactRef.toMgmtServiceArtifactReference(); + var roundTripPsServiceArtifactRef = PSServiceArtifactReference.fromMgmtServiceArtifactReference(mgmtServiceArtifactRef); + + // Assert + Assert.NotNull(roundTripPsServiceArtifactRef); + Assert.Equal(originalServiceArtifactId, roundTripPsServiceArtifactRef.Id); + } + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesNullId() + { + // Arrange + var originalPsServiceArtifactRef = new PSServiceArtifactReference(id: null); + + // Act + var mgmtServiceArtifactRef = originalPsServiceArtifactRef.toMgmtServiceArtifactReference(); + var roundTripPsServiceArtifactRef = PSServiceArtifactReference.fromMgmtServiceArtifactReference(mgmtServiceArtifactRef); + + // Assert + Assert.NotNull(roundTripPsServiceArtifactRef); + Assert.Null(roundTripPsServiceArtifactRef.Id); + } + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesEmptyId() + { + // Arrange + var originalPsServiceArtifactRef = new PSServiceArtifactReference(string.Empty); + + // Act + var mgmtServiceArtifactRef = originalPsServiceArtifactRef.toMgmtServiceArtifactReference(); + var roundTripPsServiceArtifactRef = PSServiceArtifactReference.fromMgmtServiceArtifactReference(mgmtServiceArtifactRef); + + // Assert + Assert.NotNull(roundTripPsServiceArtifactRef); + Assert.Equal(string.Empty, roundTripPsServiceArtifactRef.Id); + } + + [Theory] + [InlineData("/subscriptions/12345678-1234-1234-1234-123456789abc/resourceGroups/rg1/providers/Microsoft.Compute/galleries/gallery1/serviceArtifacts/artifact1/vmArtifactsProfiles/profile1")] + [InlineData("/subscriptions/87654321-4321-4321-4321-cba987654321/resourceGroups/test-group/providers/Microsoft.Compute/galleries/my-gallery/serviceArtifacts/my-artifact/vmArtifactsProfiles/my-profile")] + [InlineData("")] + [InlineData(null)] + public void RoundTripConversion_AllValidValues_PreservesOriginalValue(string originalServiceArtifactId) + { + // Arrange + var originalPsServiceArtifactRef = new PSServiceArtifactReference(originalServiceArtifactId); + + // Act + var mgmtServiceArtifactRef = originalPsServiceArtifactRef.toMgmtServiceArtifactReference(); + var roundTripPsServiceArtifactRef = PSServiceArtifactReference.fromMgmtServiceArtifactReference(mgmtServiceArtifactRef); + + // Assert + Assert.NotNull(roundTripPsServiceArtifactRef); + Assert.Equal(originalServiceArtifactId, roundTripPsServiceArtifactRef.Id); + } + + [Fact] + public void RoundTripConversion_FromMgmtAndToMgmt_PreservesValues() + { + // Arrange + var originalServiceArtifactId = "/subscriptions/12345678-1234-1234-1234-123456789abc/resourceGroups/test-rg/providers/Microsoft.Compute/galleries/testGallery/serviceArtifacts/testArtifact/vmArtifactsProfiles/testProfile"; + var originalMgmtServiceArtifactRef = new ServiceArtifactReference(originalServiceArtifactId); + + // Act + var psServiceArtifactRef = PSServiceArtifactReference.fromMgmtServiceArtifactReference(originalMgmtServiceArtifactRef); + var roundTripMgmtServiceArtifactRef = psServiceArtifactRef.toMgmtServiceArtifactReference(); + + // Assert + Assert.NotNull(roundTripMgmtServiceArtifactRef); + Assert.Equal(originalServiceArtifactId, roundTripMgmtServiceArtifactRef.Id); + } + + #endregion + + #region Integration Tests + + [Fact] + public void ServiceArtifactReferenceConversions_BothDirections_MaintainSemanticEquivalence() + { + // This test ensures that the semantic meaning is preserved across conversions + + // Arrange - Test with a typical service artifact reference ID + var serviceArtifactId = "/subscriptions/12345678-1234-1234-1234-123456789abc/resourceGroups/batch-rg/providers/Microsoft.Compute/galleries/batchGallery/serviceArtifacts/batchArtifact/vmArtifactsProfiles/latestProfile"; + var psServiceArtifactRef = new PSServiceArtifactReference(serviceArtifactId); + + // Act + var mgmtServiceArtifactRef = psServiceArtifactRef.toMgmtServiceArtifactReference(); + var backToPs = PSServiceArtifactReference.fromMgmtServiceArtifactReference(mgmtServiceArtifactRef); + + // Assert + Assert.NotNull(mgmtServiceArtifactRef); + Assert.Equal(serviceArtifactId, mgmtServiceArtifactRef.Id); + Assert.NotNull(backToPs); + Assert.Equal(serviceArtifactId, backToPs.Id); + } + + [Fact] + public void ServiceArtifactReferenceConversions_NullHandling_WorksCorrectly() + { + // Test null handling in conversions + + // Act + var resultFromNull = PSServiceArtifactReference.fromMgmtServiceArtifactReference(null); + + // Assert + Assert.Null(resultFromNull); + } + + [Fact] + public void ServiceArtifactReferenceConversions_BatchVMImageContext_VerifyCorrectUsage() + { + // This test validates the conversions work correctly in the context of Batch VM image configuration + // ServiceArtifactReference is used to specify service artifact reference for VM scale sets + + // Arrange - Test with realistic Batch scenarios + var subscriptionId = "12345678-1234-1234-1234-123456789abc"; + var resourceGroupName = "batch-images-rg"; + var galleryName = "batchComputeGallery"; + var serviceArtifactName = "batchNodeArtifact"; + var vmArtifactsProfileName = "latestImageProfile"; + var serviceArtifactId = $"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/serviceArtifacts/{serviceArtifactName}/vmArtifactsProfiles/{vmArtifactsProfileName}"; + + var psServiceArtifactRef = new PSServiceArtifactReference(serviceArtifactId); + + // Act + var mgmtServiceArtifactRef = psServiceArtifactRef.toMgmtServiceArtifactReference(); + + // Assert - Should convert correctly for Batch VM image configuration + Assert.NotNull(mgmtServiceArtifactRef); + Assert.Equal(serviceArtifactId, mgmtServiceArtifactRef.Id); + Assert.IsType(mgmtServiceArtifactRef); + + // Verify round-trip conversion maintains Batch service artifact semantics + var backToPs = PSServiceArtifactReference.fromMgmtServiceArtifactReference(mgmtServiceArtifactRef); + Assert.NotNull(backToPs); + Assert.Equal(serviceArtifactId, backToPs.Id); + Assert.IsType(backToPs); + } + + [Fact] + public void ServiceArtifactReferenceConversions_InstanceCreation_VerifyBehavior() + { + // This test verifies that the conversion methods create appropriate instances + + // Arrange + var serviceArtifactId = "/subscriptions/test/resourceGroups/test/providers/Microsoft.Compute/galleries/test/serviceArtifacts/test/vmArtifactsProfiles/test"; + var psServiceArtifactRef = new PSServiceArtifactReference(serviceArtifactId); + var mgmtServiceArtifactRef = new ServiceArtifactReference(serviceArtifactId); + + // Act + var mgmtResult = psServiceArtifactRef.toMgmtServiceArtifactReference(); + var psResult = PSServiceArtifactReference.fromMgmtServiceArtifactReference(mgmtServiceArtifactRef); + + // Assert - Verify proper instance creation + Assert.NotNull(mgmtResult); + Assert.NotNull(psResult); + Assert.IsType(mgmtResult); + Assert.IsType(psResult); + + // Verify new instances are created + Assert.NotSame(mgmtServiceArtifactRef, mgmtResult); + Assert.NotSame(psServiceArtifactRef, psResult); + } + + #endregion + + #region Performance and Edge Case Tests + + [Fact] + public void ServiceArtifactReferenceConversions_PerformanceTest_ExecutesQuickly() + { + // This test ensures the conversions are efficient + + // Arrange + var serviceArtifactId = "/subscriptions/12345678-1234-1234-1234-123456789abc/resourceGroups/test/providers/Microsoft.Compute/galleries/test/serviceArtifacts/test/vmArtifactsProfiles/test"; + var psServiceArtifactRef = new PSServiceArtifactReference(serviceArtifactId); + var mgmtServiceArtifactRef = new ServiceArtifactReference(serviceArtifactId); + + // Act & Assert - Multiple conversions should complete without delay + for (int i = 0; i < 100; i++) + { + var mgmtResult = psServiceArtifactRef.toMgmtServiceArtifactReference(); + var psResult = PSServiceArtifactReference.fromMgmtServiceArtifactReference(mgmtServiceArtifactRef); + + Assert.NotNull(mgmtResult); + Assert.NotNull(psResult); + Assert.Equal(serviceArtifactId, mgmtResult.Id); + Assert.Equal(serviceArtifactId, psResult.Id); + } + } + + [Fact] + public void ServiceArtifactReferenceConversions_EdgeCaseServiceArtifactIds_HandleCorrectly() + { + // Test conversion with various edge case service artifact ID formats + + var testServiceArtifactIds = new[] + { + // Standard format + "/subscriptions/12345678-1234-1234-1234-123456789abc/resourceGroups/rg/providers/Microsoft.Compute/galleries/gallery/serviceArtifacts/artifact/vmArtifactsProfiles/profile", + // With special characters in names + "/subscriptions/12345678-1234-1234-1234-123456789abc/resourceGroups/test-rg_123/providers/Microsoft.Compute/galleries/test-gallery_v2/serviceArtifacts/test-artifact_v1/vmArtifactsProfiles/test-profile_v3", + // Long names + "/subscriptions/12345678-1234-1234-1234-123456789abc/resourceGroups/very-long-resource-group-name-for-testing/providers/Microsoft.Compute/galleries/very-long-gallery-name-for-comprehensive-testing/serviceArtifacts/very-long-service-artifact-name-for-testing/vmArtifactsProfiles/very-long-vm-artifacts-profile-name-for-testing", + // Minimal valid format + "/subscriptions/12345678-1234-1234-1234-123456789abc/resourceGroups/rg/providers/Microsoft.Compute/galleries/g/serviceArtifacts/a/vmArtifactsProfiles/p", + // With numbers and hyphens + "/subscriptions/12345678-1234-1234-1234-123456789abc/resourceGroups/rg-001/providers/Microsoft.Compute/galleries/gallery-v1-0/serviceArtifacts/artifact-2023-01/vmArtifactsProfiles/profile-latest-v2" + }; + + foreach (var serviceArtifactId in testServiceArtifactIds) + { + // Arrange + var psServiceArtifactRef = new PSServiceArtifactReference(serviceArtifactId); + + // Act + var mgmtResult = psServiceArtifactRef.toMgmtServiceArtifactReference(); + var roundTripResult = PSServiceArtifactReference.fromMgmtServiceArtifactReference(mgmtResult); + + // Assert + Assert.NotNull(mgmtResult); + Assert.NotNull(roundTripResult); + Assert.Equal(serviceArtifactId, mgmtResult.Id); + Assert.Equal(serviceArtifactId, roundTripResult.Id); + } + } + + [Fact] + public void ServiceArtifactReferenceConversions_TypeSafety_VerifyCorrectTypes() + { + // Test that conversions return the correct types + + // Arrange + var psServiceArtifactRef = new PSServiceArtifactReference("/subscriptions/test/resourceGroups/test/providers/Microsoft.Compute/galleries/test/serviceArtifacts/test/vmArtifactsProfiles/test"); + var mgmtServiceArtifactRef = new ServiceArtifactReference("/subscriptions/test/resourceGroups/test/providers/Microsoft.Compute/galleries/test/serviceArtifacts/test/vmArtifactsProfiles/test"); + + // Act + var mgmtResult = psServiceArtifactRef.toMgmtServiceArtifactReference(); + var psResult = PSServiceArtifactReference.fromMgmtServiceArtifactReference(mgmtServiceArtifactRef); + + // Assert - Verify correct types are returned + Assert.IsType(mgmtResult); + Assert.IsType(psResult); + } + + [Fact] + public void ServiceArtifactReferenceConversions_PropertyAccess_VerifyBehavior() + { + // Test that properties are accessible and correct after conversion + + // Arrange + var originalServiceArtifactId = "/subscriptions/12345678-1234-1234-1234-123456789abc/resourceGroups/test-rg/providers/Microsoft.Compute/galleries/testGallery/serviceArtifacts/testArtifact/vmArtifactsProfiles/testProfile"; + var psServiceArtifactRef = new PSServiceArtifactReference(originalServiceArtifactId); + + // Act + var mgmtServiceArtifactRef = psServiceArtifactRef.toMgmtServiceArtifactReference(); + var convertedPsServiceArtifactRef = PSServiceArtifactReference.fromMgmtServiceArtifactReference(mgmtServiceArtifactRef); + + // Assert + Assert.Equal(originalServiceArtifactId, psServiceArtifactRef.Id); + Assert.Equal(originalServiceArtifactId, mgmtServiceArtifactRef.Id); + Assert.Equal(originalServiceArtifactId, convertedPsServiceArtifactRef.Id); + } + + [Fact] + public void ServiceArtifactReferenceConversions_EdgeCaseStringValues_HandleCorrectly() + { + // Test conversion with various edge case string values + + var testServiceArtifactIds = new[] + { + // Valid values + "/subscriptions/12345678-1234-1234-1234-123456789abc/resourceGroups/rg/providers/Microsoft.Compute/galleries/gallery/serviceArtifacts/artifact/vmArtifactsProfiles/profile", + + // Edge cases + null, + "", + " ", // Whitespace + " /subscriptions/test/resourceGroups/test/providers/Microsoft.Compute/galleries/test/serviceArtifacts/test/vmArtifactsProfiles/test ", // Leading/trailing whitespace + + // Invalid formats (should still be preserved) + "InvalidServiceArtifactId", + "SomeOtherValue", + "/subscriptions/invalid", // Incomplete resource ID + "/invalid/path/format" + }; + + foreach (var serviceArtifactId in testServiceArtifactIds) + { + // Arrange + var psServiceArtifactRef = new PSServiceArtifactReference(serviceArtifactId); + + // Act + var mgmtResult = psServiceArtifactRef.toMgmtServiceArtifactReference(); + var roundTripResult = PSServiceArtifactReference.fromMgmtServiceArtifactReference(mgmtResult); + + // Assert + Assert.NotNull(mgmtResult); + Assert.NotNull(roundTripResult); + Assert.Equal(serviceArtifactId, mgmtResult.Id); + Assert.Equal(serviceArtifactId, roundTripResult.Id); + } + } + + #endregion + + #region Constructor and Internal Object Tests + + [Fact] + public void PSServiceArtifactReference_Constructor_InitializesCorrectly() + { + // Test that the PS constructor properly initializes the internal object + + // Arrange & Act + var serviceArtifactId = "/subscriptions/test/resourceGroups/test/providers/Microsoft.Compute/galleries/test/serviceArtifacts/test/vmArtifactsProfiles/test"; + var psServiceArtifactRef = new PSServiceArtifactReference(serviceArtifactId); + + // Assert + Assert.Equal(serviceArtifactId, psServiceArtifactRef.Id); + } + + [Fact] + public void PSServiceArtifactReference_InternalConstructor_ThrowsOnNullOmObject() + { + // Test that the internal constructor validates the omObject parameter + + // Act & Assert + Assert.Throws(() => + new PSServiceArtifactReference((Microsoft.Azure.Batch.ServiceArtifactReference)null)); + } + + [Fact] + public void PSServiceArtifactReference_InternalConstructor_WorksWithValidOmObject() + { + // Test that the internal constructor works with a valid omObject + + // Arrange + var serviceArtifactId = "/subscriptions/test/resourceGroups/test/providers/Microsoft.Compute/galleries/test/serviceArtifacts/test/vmArtifactsProfiles/test"; + var omObject = new Microsoft.Azure.Batch.ServiceArtifactReference(serviceArtifactId); + + // Act + var psServiceArtifactRef = new PSServiceArtifactReference(omObject); + + // Assert + Assert.NotNull(psServiceArtifactRef); + Assert.Equal(serviceArtifactId, psServiceArtifactRef.Id); + } + + [Fact] + public void PSServiceArtifactReference_PropertySetter_WorksCorrectly() + { + // Test that property setters work correctly + + // Arrange + var psServiceArtifactRef = new PSServiceArtifactReference("original"); + + // Act + psServiceArtifactRef.Id = "/subscriptions/test/resourceGroups/test/providers/Microsoft.Compute/galleries/test/serviceArtifacts/updated/vmArtifactsProfiles/updated"; + + // Assert + Assert.Equal("/subscriptions/test/resourceGroups/test/providers/Microsoft.Compute/galleries/test/serviceArtifacts/updated/vmArtifactsProfiles/updated", psServiceArtifactRef.Id); + } + + #endregion + + #region Service Artifact Image Versioning Tests + + [Fact] + public void ServiceArtifactReferenceConversions_ImageVersioningSemantics_VerifyCorrectUsage() + { + // This test validates that the service artifact references maintain their image versioning characteristics + // through the conversion process for VM scale set scenarios + + var imageVersioningProfiles = new[] + { + new { + Type = "Latest", + ServiceArtifactId = "/subscriptions/12345678-1234-1234-1234-123456789abc/resourceGroups/batch-rg/providers/Microsoft.Compute/galleries/gallery/serviceArtifacts/artifact/vmArtifactsProfiles/latest", + Description = "Latest image version profile for automatic updates", + UseCases = new[] { "Development environments", "Auto-scaling pools", "Rolling updates" } + }, + new { + Type = "Stable", + ServiceArtifactId = "/subscriptions/12345678-1234-1234-1234-123456789abc/resourceGroups/batch-rg/providers/Microsoft.Compute/galleries/gallery/serviceArtifacts/artifact/vmArtifactsProfiles/stable-v1-0", + Description = "Stable image version profile for production workloads", + UseCases = new[] { "Production pools", "Long-running tasks", "Critical workloads" } + }, + new { + Type = "Custom", + ServiceArtifactId = "/subscriptions/12345678-1234-1234-1234-123456789abc/resourceGroups/batch-rg/providers/Microsoft.Compute/galleries/gallery/serviceArtifacts/artifact/vmArtifactsProfiles/custom-2023-12", + Description = "Custom image version profile for specific requirements", + UseCases = new[] { "Specialized workloads", "Compliance requirements", "Testing scenarios" } + } + }; + + foreach (var profile in imageVersioningProfiles) + { + // Act - Convert to management type and back + var psServiceArtifactRef = new PSServiceArtifactReference(profile.ServiceArtifactId); + var mgmtType = psServiceArtifactRef.toMgmtServiceArtifactReference(); + var roundTripType = PSServiceArtifactReference.fromMgmtServiceArtifactReference(mgmtType); + + // Assert - Image versioning characteristics should be preserved + Assert.NotNull(mgmtType); + Assert.NotNull(roundTripType); + Assert.Equal(profile.ServiceArtifactId, roundTripType.Id); + Assert.Equal(profile.ServiceArtifactId, mgmtType.Id); + } + } + + [Fact] + public void ServiceArtifactReferenceConversions_BatchVMScaleSetIntegration_VerifySemantics() + { + // This test validates the semantic usage in the context of Azure Batch VM scale set configuration + // ServiceArtifactReference is required for VM scale sets to ensure consistent image versions + + // Latest profile semantics - Automatic image version updates + var latestProfileRef = new PSServiceArtifactReference("/subscriptions/12345678-1234-1234-1234-123456789abc/resourceGroups/batch-rg/providers/Microsoft.Compute/galleries/batchGallery/serviceArtifacts/nodeArtifact/vmArtifactsProfiles/latest"); + var mgmtLatestProfile = latestProfileRef.toMgmtServiceArtifactReference(); + + Assert.NotNull(mgmtLatestProfile); + Assert.Contains("latest", mgmtLatestProfile.Id); + // Use case: Development and testing environments with automatic updates + + // Stable profile semantics - Fixed image version for production + var stableProfileRef = new PSServiceArtifactReference("/subscriptions/12345678-1234-1234-1234-123456789abc/resourceGroups/batch-rg/providers/Microsoft.Compute/galleries/batchGallery/serviceArtifacts/nodeArtifact/vmArtifactsProfiles/stable-v2-1"); + var mgmtStableProfile = stableProfileRef.toMgmtServiceArtifactReference(); + + Assert.NotNull(mgmtStableProfile); + Assert.Contains("stable", mgmtStableProfile.Id); + // Use case: Production environments requiring stable, tested image versions + + // Verify all round-trip correctly + var latestRoundTrip = PSServiceArtifactReference.fromMgmtServiceArtifactReference(mgmtLatestProfile); + var stableRoundTrip = PSServiceArtifactReference.fromMgmtServiceArtifactReference(mgmtStableProfile); + + Assert.Equal(latestProfileRef.Id, latestRoundTrip.Id); + Assert.Equal(stableProfileRef.Id, stableRoundTrip.Id); + } + + #endregion + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Test/Models/PSUefiSettingsTests.cs b/src/Batch/Batch.Test/Models/PSUefiSettingsTests.cs new file mode 100644 index 000000000000..929505420ee0 --- /dev/null +++ b/src/Batch/Batch.Test/Models/PSUefiSettingsTests.cs @@ -0,0 +1,1029 @@ +// ----------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ----------------------------------------------------------------------------- + +using Microsoft.Azure.Commands.Batch.Models; +using Microsoft.Azure.Management.Batch.Models; +using System; +using Xunit; + +namespace Microsoft.Azure.Commands.Batch.Test.ModelsConversions +{ + public class PSUefiSettingsTests + { + #region toMgmtUefiSettings Tests + + [Fact] + public void ToMgmtUefiSettings_WithAllPropertiesEnabled_ReturnsCorrectMapping() + { + // Arrange + var psUefiSettings = new PSUefiSettings() + { + SecureBootEnabled = true, + VTpmEnabled = true + }; + + // Act + var result = psUefiSettings.toMgmtUefiSettings(); + + // Assert + Assert.NotNull(result); + Assert.True(result.SecureBootEnabled); + Assert.True(result.VTpmEnabled); + } + + [Fact] + public void ToMgmtUefiSettings_WithAllPropertiesDisabled_ReturnsCorrectMapping() + { + // Arrange + var psUefiSettings = new PSUefiSettings() + { + SecureBootEnabled = false, + VTpmEnabled = false + }; + + // Act + var result = psUefiSettings.toMgmtUefiSettings(); + + // Assert + Assert.NotNull(result); + Assert.False(result.SecureBootEnabled); + Assert.False(result.VTpmEnabled); + } + + [Fact] + public void ToMgmtUefiSettings_WithMixedSettings_ReturnsCorrectMapping() + { + // Arrange + var psUefiSettings = new PSUefiSettings() + { + SecureBootEnabled = true, + VTpmEnabled = false + }; + + // Act + var result = psUefiSettings.toMgmtUefiSettings(); + + // Assert + Assert.NotNull(result); + Assert.True(result.SecureBootEnabled); + Assert.False(result.VTpmEnabled); + } + + [Fact] + public void ToMgmtUefiSettings_WithNullSecureBootEnabled_ReturnsNullSecureBoot() + { + // Arrange + var psUefiSettings = new PSUefiSettings() + { + SecureBootEnabled = null, + VTpmEnabled = true + }; + + // Act + var result = psUefiSettings.toMgmtUefiSettings(); + + // Assert + Assert.NotNull(result); + Assert.Null(result.SecureBootEnabled); + Assert.True(result.VTpmEnabled); + } + + [Fact] + public void ToMgmtUefiSettings_WithNullVTpmEnabled_ReturnsNullVTpm() + { + // Arrange + var psUefiSettings = new PSUefiSettings() + { + SecureBootEnabled = true, + VTpmEnabled = null + }; + + // Act + var result = psUefiSettings.toMgmtUefiSettings(); + + // Assert + Assert.NotNull(result); + Assert.True(result.SecureBootEnabled); + Assert.Null(result.VTpmEnabled); + } + + [Fact] + public void ToMgmtUefiSettings_WithBothNullValues_ReturnsBothNull() + { + // Arrange + var psUefiSettings = new PSUefiSettings() + { + SecureBootEnabled = null, + VTpmEnabled = null + }; + + // Act + var result = psUefiSettings.toMgmtUefiSettings(); + + // Assert + Assert.NotNull(result); + Assert.Null(result.SecureBootEnabled); + Assert.Null(result.VTpmEnabled); + } + + [Theory] + [InlineData(true, true)] + [InlineData(true, false)] + [InlineData(false, true)] + [InlineData(false, false)] + public void ToMgmtUefiSettings_AllValidCombinations_ReturnsCorrectMapping( + bool secureBootEnabled, + bool vTpmEnabled) + { + // Arrange + var psUefiSettings = new PSUefiSettings() + { + SecureBootEnabled = secureBootEnabled, + VTpmEnabled = vTpmEnabled + }; + + // Act + var result = psUefiSettings.toMgmtUefiSettings(); + + // Assert + Assert.NotNull(result); + Assert.Equal(secureBootEnabled, result.SecureBootEnabled); + Assert.Equal(vTpmEnabled, result.VTpmEnabled); + } + + [Fact] + public void ToMgmtUefiSettings_AlwaysCreatesNewInstance() + { + // Arrange + var psUefiSettings = new PSUefiSettings() + { + SecureBootEnabled = true, + VTpmEnabled = true + }; + + // Act + var result1 = psUefiSettings.toMgmtUefiSettings(); + var result2 = psUefiSettings.toMgmtUefiSettings(); + + // Assert + Assert.NotNull(result1); + Assert.NotNull(result2); + Assert.NotSame(result1, result2); + } + + [Fact] + public void ToMgmtUefiSettings_VerifyUefiSettingsType() + { + // Arrange + var psUefiSettings = new PSUefiSettings() + { + SecureBootEnabled = true, + VTpmEnabled = false + }; + + // Act + var result = psUefiSettings.toMgmtUefiSettings(); + + // Assert + Assert.NotNull(result); + Assert.IsType(result); + } + + [Fact] + public void ToMgmtUefiSettings_DefaultValues_HandlesCorrectly() + { + // Arrange + var psUefiSettings = new PSUefiSettings(); // Using default constructor + + // Act + var result = psUefiSettings.toMgmtUefiSettings(); + + // Assert + Assert.NotNull(result); + // Default values should be null for nullable bool properties + Assert.Null(result.SecureBootEnabled); + Assert.Null(result.VTpmEnabled); + } + + [Fact] + public void ToMgmtUefiSettings_ConfidentialVMConfiguration_PreservesSecuritySettings() + { + // Arrange - Confidential VM with maximum security settings + var psUefiSettings = new PSUefiSettings() + { + SecureBootEnabled = true, + VTpmEnabled = true + }; + + // Act + var result = psUefiSettings.toMgmtUefiSettings(); + + // Assert + Assert.NotNull(result); + Assert.True(result.SecureBootEnabled); + Assert.True(result.VTpmEnabled); + // Both secure boot and vTPM enabled for maximum security + } + + #endregion + + #region fromMgmtUefiSettings Tests + + [Fact] + public void FromMgmtUefiSettings_WithAllPropertiesEnabled_ReturnsCorrectMapping() + { + // Arrange + var mgmtUefiSettings = new UefiSettings( + secureBootEnabled: true, + vTpmEnabled: true); + + // Act + var result = PSUefiSettings.fromMgmtUefiSettings(mgmtUefiSettings); + + // Assert + Assert.NotNull(result); + Assert.True(result.SecureBootEnabled); + Assert.True(result.VTpmEnabled); + } + + [Fact] + public void FromMgmtUefiSettings_WithAllPropertiesDisabled_ReturnsCorrectMapping() + { + // Arrange + var mgmtUefiSettings = new UefiSettings( + secureBootEnabled: false, + vTpmEnabled: false); + + // Act + var result = PSUefiSettings.fromMgmtUefiSettings(mgmtUefiSettings); + + // Assert + Assert.NotNull(result); + Assert.False(result.SecureBootEnabled); + Assert.False(result.VTpmEnabled); + } + + [Fact] + public void FromMgmtUefiSettings_WithMixedSettings_ReturnsCorrectMapping() + { + // Arrange + var mgmtUefiSettings = new UefiSettings( + secureBootEnabled: true, + vTpmEnabled: false); + + // Act + var result = PSUefiSettings.fromMgmtUefiSettings(mgmtUefiSettings); + + // Assert + Assert.NotNull(result); + Assert.True(result.SecureBootEnabled); + Assert.False(result.VTpmEnabled); + } + + [Fact] + public void FromMgmtUefiSettings_WithNullMgmtSettings_ReturnsNull() + { + // Act + var result = PSUefiSettings.fromMgmtUefiSettings(null); + + // Assert + Assert.Null(result); + } + + [Fact] + public void FromMgmtUefiSettings_WithNullSecureBootEnabled_ReturnsNullSecureBoot() + { + // Arrange + var mgmtUefiSettings = new UefiSettings( + secureBootEnabled: null, + vTpmEnabled: true); + + // Act + var result = PSUefiSettings.fromMgmtUefiSettings(mgmtUefiSettings); + + // Assert + Assert.NotNull(result); + Assert.Null(result.SecureBootEnabled); + Assert.True(result.VTpmEnabled); + } + + [Fact] + public void FromMgmtUefiSettings_WithNullVTpmEnabled_ReturnsNullVTpm() + { + // Arrange + var mgmtUefiSettings = new UefiSettings( + secureBootEnabled: true, + vTpmEnabled: null); + + // Act + var result = PSUefiSettings.fromMgmtUefiSettings(mgmtUefiSettings); + + // Assert + Assert.NotNull(result); + Assert.True(result.SecureBootEnabled); + Assert.Null(result.VTpmEnabled); + } + + [Fact] + public void FromMgmtUefiSettings_WithBothNullValues_ReturnsBothNull() + { + // Arrange + var mgmtUefiSettings = new UefiSettings( + secureBootEnabled: null, + vTpmEnabled: null); + + // Act + var result = PSUefiSettings.fromMgmtUefiSettings(mgmtUefiSettings); + + // Assert + Assert.NotNull(result); + Assert.Null(result.SecureBootEnabled); + Assert.Null(result.VTpmEnabled); + } + + [Theory] + [InlineData(true, true)] + [InlineData(true, false)] + [InlineData(false, true)] + [InlineData(false, false)] + public void FromMgmtUefiSettings_AllValidCombinations_ReturnsCorrectMapping( + bool secureBootEnabled, + bool vTpmEnabled) + { + // Arrange + var mgmtUefiSettings = new UefiSettings( + secureBootEnabled: secureBootEnabled, + vTpmEnabled: vTpmEnabled); + + // Act + var result = PSUefiSettings.fromMgmtUefiSettings(mgmtUefiSettings); + + // Assert + Assert.NotNull(result); + Assert.Equal(secureBootEnabled, result.SecureBootEnabled); + Assert.Equal(vTpmEnabled, result.VTpmEnabled); + } + + [Fact] + public void FromMgmtUefiSettings_StaticMethod_DoesNotRequireInstance() + { + // Arrange + var mgmtUefiSettings = new UefiSettings( + secureBootEnabled: true, + vTpmEnabled: false); + + // Act - Call static method directly on class + var result = PSUefiSettings.fromMgmtUefiSettings(mgmtUefiSettings); + + // Assert + Assert.NotNull(result); + Assert.True(result.SecureBootEnabled); + Assert.False(result.VTpmEnabled); + } + + [Fact] + public void FromMgmtUefiSettings_AlwaysCreatesNewInstance() + { + // Arrange + var mgmtUefiSettings = new UefiSettings( + secureBootEnabled: true, + vTpmEnabled: true); + + // Act + var result1 = PSUefiSettings.fromMgmtUefiSettings(mgmtUefiSettings); + var result2 = PSUefiSettings.fromMgmtUefiSettings(mgmtUefiSettings); + + // Assert + Assert.NotNull(result1); + Assert.NotNull(result2); + Assert.NotSame(result1, result2); + } + + [Fact] + public void FromMgmtUefiSettings_VerifyPSUefiSettingsType() + { + // Arrange + var mgmtUefiSettings = new UefiSettings( + secureBootEnabled: true, + vTpmEnabled: true); + + // Act + var result = PSUefiSettings.fromMgmtUefiSettings(mgmtUefiSettings); + + // Assert + Assert.NotNull(result); + Assert.IsType(result); + } + + [Fact] + public void FromMgmtUefiSettings_WithDefaultConstructor_HandlesCorrectly() + { + // Arrange + var mgmtUefiSettings = new UefiSettings(); // Uses default constructor + + // Act + var result = PSUefiSettings.fromMgmtUefiSettings(mgmtUefiSettings); + + // Assert + Assert.NotNull(result); + Assert.Null(result.SecureBootEnabled); + Assert.Null(result.VTpmEnabled); + } + + [Fact] + public void FromMgmtUefiSettings_ConfidentialVMConfiguration_PreservesSecuritySettings() + { + // Arrange + var mgmtUefiSettings = new UefiSettings( + secureBootEnabled: true, + vTpmEnabled: true); + + // Act + var result = PSUefiSettings.fromMgmtUefiSettings(mgmtUefiSettings); + + // Assert + Assert.NotNull(result); + Assert.True(result.SecureBootEnabled); + Assert.True(result.VTpmEnabled); + // Both secure boot and vTPM enabled for confidential computing + } + + #endregion + + #region Round-trip Conversion Tests + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesAllPropertiesEnabled() + { + // Arrange + var originalPsUefiSettings = new PSUefiSettings() + { + SecureBootEnabled = true, + VTpmEnabled = true + }; + + // Act + var mgmtUefiSettings = originalPsUefiSettings.toMgmtUefiSettings(); + var roundTripPsUefiSettings = PSUefiSettings.fromMgmtUefiSettings(mgmtUefiSettings); + + // Assert + Assert.NotNull(roundTripPsUefiSettings); + Assert.Equal(originalPsUefiSettings.SecureBootEnabled, roundTripPsUefiSettings.SecureBootEnabled); + Assert.Equal(originalPsUefiSettings.VTpmEnabled, roundTripPsUefiSettings.VTpmEnabled); + } + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesAllPropertiesDisabled() + { + // Arrange + var originalPsUefiSettings = new PSUefiSettings() + { + SecureBootEnabled = false, + VTpmEnabled = false + }; + + // Act + var mgmtUefiSettings = originalPsUefiSettings.toMgmtUefiSettings(); + var roundTripPsUefiSettings = PSUefiSettings.fromMgmtUefiSettings(mgmtUefiSettings); + + // Assert + Assert.NotNull(roundTripPsUefiSettings); + Assert.Equal(originalPsUefiSettings.SecureBootEnabled, roundTripPsUefiSettings.SecureBootEnabled); + Assert.Equal(originalPsUefiSettings.VTpmEnabled, roundTripPsUefiSettings.VTpmEnabled); + } + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesNullValues() + { + // Arrange + var originalPsUefiSettings = new PSUefiSettings() + { + SecureBootEnabled = null, + VTpmEnabled = null + }; + + // Act + var mgmtUefiSettings = originalPsUefiSettings.toMgmtUefiSettings(); + var roundTripPsUefiSettings = PSUefiSettings.fromMgmtUefiSettings(mgmtUefiSettings); + + // Assert + Assert.NotNull(roundTripPsUefiSettings); + Assert.Null(roundTripPsUefiSettings.SecureBootEnabled); + Assert.Null(roundTripPsUefiSettings.VTpmEnabled); + } + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesPartialNullValues() + { + // Arrange + var originalPsUefiSettings = new PSUefiSettings() + { + SecureBootEnabled = true, + VTpmEnabled = null + }; + + // Act + var mgmtUefiSettings = originalPsUefiSettings.toMgmtUefiSettings(); + var roundTripPsUefiSettings = PSUefiSettings.fromMgmtUefiSettings(mgmtUefiSettings); + + // Assert + Assert.NotNull(roundTripPsUefiSettings); + Assert.Equal(originalPsUefiSettings.SecureBootEnabled, roundTripPsUefiSettings.SecureBootEnabled); + Assert.Null(roundTripPsUefiSettings.VTpmEnabled); + } + + [Theory] + [InlineData(true, true)] + [InlineData(true, false)] + [InlineData(false, true)] + [InlineData(false, false)] + public void RoundTripConversion_AllValidCombinations_PreservesOriginalValue( + bool originalSecureBootEnabled, + bool originalVTpmEnabled) + { + // Arrange + var originalPsUefiSettings = new PSUefiSettings() + { + SecureBootEnabled = originalSecureBootEnabled, + VTpmEnabled = originalVTpmEnabled + }; + + // Act + var mgmtUefiSettings = originalPsUefiSettings.toMgmtUefiSettings(); + var roundTripPsUefiSettings = PSUefiSettings.fromMgmtUefiSettings(mgmtUefiSettings); + + // Assert + Assert.NotNull(roundTripPsUefiSettings); + Assert.Equal(originalSecureBootEnabled, roundTripPsUefiSettings.SecureBootEnabled); + Assert.Equal(originalVTpmEnabled, roundTripPsUefiSettings.VTpmEnabled); + } + + [Fact] + public void RoundTripConversion_FromMgmtAndToMgmt_PreservesValues() + { + // Arrange + var originalMgmtUefiSettings = new UefiSettings( + secureBootEnabled: true, + vTpmEnabled: false); + + // Act + var psUefiSettings = PSUefiSettings.fromMgmtUefiSettings(originalMgmtUefiSettings); + var roundTripMgmtUefiSettings = psUefiSettings.toMgmtUefiSettings(); + + // Assert + Assert.NotNull(roundTripMgmtUefiSettings); + Assert.Equal(originalMgmtUefiSettings.SecureBootEnabled, roundTripMgmtUefiSettings.SecureBootEnabled); + Assert.Equal(originalMgmtUefiSettings.VTpmEnabled, roundTripMgmtUefiSettings.VTpmEnabled); + } + + #endregion + + #region Integration Tests + + [Fact] + public void UefiSettingsConversions_BothDirections_MaintainSemanticEquivalence() + { + // This test ensures that the semantic meaning is preserved across conversions + + // Arrange - Test with realistic UEFI security scenarios + var psUefiSettings = new PSUefiSettings() + { + SecureBootEnabled = true, + VTpmEnabled = true + }; + + // Act + var mgmtUefiSettings = psUefiSettings.toMgmtUefiSettings(); + var backToPs = PSUefiSettings.fromMgmtUefiSettings(mgmtUefiSettings); + + // Assert + Assert.NotNull(mgmtUefiSettings); + Assert.True(mgmtUefiSettings.SecureBootEnabled); + Assert.True(mgmtUefiSettings.VTpmEnabled); + + Assert.NotNull(backToPs); + Assert.True(backToPs.SecureBootEnabled); + Assert.True(backToPs.VTpmEnabled); + } + + [Fact] + public void UefiSettingsConversions_NullHandling_WorksCorrectly() + { + // Test null handling in conversions + + // Act + var resultFromNull = PSUefiSettings.fromMgmtUefiSettings(null); + + // Assert + Assert.Null(resultFromNull); + } + + [Fact] + public void UefiSettingsConversions_BatchVMSecurityContext_VerifyCorrectUsage() + { + // This test validates the conversions work correctly in the context of Batch VM security configuration + // UefiSettings is used to configure security settings for virtual machines in Azure Batch pools + + // Arrange - Test with different security scenarios + var securityScenarios = new[] + { + // Maximum security configuration + new { + SecureBootEnabled = (bool?)true, + VTpmEnabled = (bool?)true, + Description = "Maximum security with both secure boot and vTPM enabled" + }, + // Standard security configuration + new { + SecureBootEnabled = (bool?)true, + VTpmEnabled = (bool?)false, + Description = "Standard security with secure boot enabled, vTPM disabled" + }, + // Basic configuration + new { + SecureBootEnabled = (bool?)false, + VTpmEnabled = (bool?)false, + Description = "Basic configuration with both features disabled" + }, + // Default configuration + new { + SecureBootEnabled = (bool?)null, + VTpmEnabled = (bool?)null, + Description = "Default configuration with unspecified values" + } + }; + + foreach (var scenario in securityScenarios) + { + // Arrange + var psUefiSettings = new PSUefiSettings() + { + SecureBootEnabled = scenario.SecureBootEnabled, + VTpmEnabled = scenario.VTpmEnabled + }; + + // Act + var mgmtUefiSettings = psUefiSettings.toMgmtUefiSettings(); + + // Assert - Should convert correctly for Batch VM security configuration + Assert.NotNull(mgmtUefiSettings); + Assert.Equal(scenario.SecureBootEnabled, mgmtUefiSettings.SecureBootEnabled); + Assert.Equal(scenario.VTpmEnabled, mgmtUefiSettings.VTpmEnabled); + + // Verify round-trip conversion maintains security semantics + var backToPs = PSUefiSettings.fromMgmtUefiSettings(mgmtUefiSettings); + Assert.NotNull(backToPs); + Assert.Equal(scenario.SecureBootEnabled, backToPs.SecureBootEnabled); + Assert.Equal(scenario.VTpmEnabled, backToPs.VTpmEnabled); + } + } + + [Fact] + public void UefiSettingsConversions_ConfidentialComputingContext_VerifyCorrectUsage() + { + // This test validates the conversions work correctly in the context of confidential computing + // UefiSettings is essential for configuring security features in confidential VMs + + // Arrange - Test with confidential computing scenarios + var confidentialScenarios = new[] + { + // Confidential VM with Trusted Launch + new { + SecureBootEnabled = true, + VTpmEnabled = true, + ComplianceType = "Trusted Launch", + Description = "Confidential VM with Trusted Launch security features" + }, + // Confidential VM with selective security features + new { + SecureBootEnabled = true, + VTpmEnabled = false, + ComplianceType = "Selective Security", + Description = "Confidential VM with secure boot only" + } + }; + + foreach (var scenario in confidentialScenarios) + { + // Act + var psUefiSettings = new PSUefiSettings() + { + SecureBootEnabled = scenario.SecureBootEnabled, + VTpmEnabled = scenario.VTpmEnabled + }; + var mgmtType = psUefiSettings.toMgmtUefiSettings(); + var roundTripType = PSUefiSettings.fromMgmtUefiSettings(mgmtType); + + // Assert - Confidential computing semantics should be preserved + Assert.NotNull(roundTripType); + Assert.Equal(scenario.SecureBootEnabled, roundTripType.SecureBootEnabled); + Assert.Equal(scenario.VTpmEnabled, roundTripType.VTpmEnabled); + + // Verify the conversion maintains the security context + Assert.NotNull(mgmtType); + Assert.Equal(scenario.SecureBootEnabled, mgmtType.SecureBootEnabled); + Assert.Equal(scenario.VTpmEnabled, mgmtType.VTpmEnabled); + } + } + + [Fact] + public void UefiSettingsConversions_VMSecurityIntegration_VerifySemantics() + { + // This test validates the semantic usage in the context of Azure Batch VM security configuration + // UefiSettings determines VM security features for compute nodes in Batch pools + + // SecureBoot semantics - Boot integrity and malware protection + var secureBootOnlyPs = new PSUefiSettings() + { + SecureBootEnabled = true, + VTpmEnabled = false + }; + var mgmtSecureBootOnly = secureBootOnlyPs.toMgmtUefiSettings(); + + Assert.NotNull(mgmtSecureBootOnly); + Assert.True(mgmtSecureBootOnly.SecureBootEnabled); + Assert.False(mgmtSecureBootOnly.VTpmEnabled); + // Use case: Basic boot integrity protection without TPM features + + // vTPM semantics - Hardware security module functionality + var vTpmOnlyPs = new PSUefiSettings() + { + SecureBootEnabled = false, + VTpmEnabled = true + }; + var mgmtVTpmOnly = vTpmOnlyPs.toMgmtUefiSettings(); + + Assert.NotNull(mgmtVTpmOnly); + Assert.False(mgmtVTpmOnly.SecureBootEnabled); + Assert.True(mgmtVTpmOnly.VTpmEnabled); + // Use case: Hardware security module functionality without secure boot + + // Combined semantics - Maximum security configuration + var maxSecurityPs = new PSUefiSettings() + { + SecureBootEnabled = true, + VTpmEnabled = true + }; + var mgmtMaxSecurity = maxSecurityPs.toMgmtUefiSettings(); + + Assert.NotNull(mgmtMaxSecurity); + Assert.True(mgmtMaxSecurity.SecureBootEnabled); + Assert.True(mgmtMaxSecurity.VTpmEnabled); + // Use case: Maximum security for confidential computing workloads + + // Verify all round-trip correctly + var secureBootRoundTrip = PSUefiSettings.fromMgmtUefiSettings(mgmtSecureBootOnly); + var vTpmRoundTrip = PSUefiSettings.fromMgmtUefiSettings(mgmtVTpmOnly); + var maxSecurityRoundTrip = PSUefiSettings.fromMgmtUefiSettings(mgmtMaxSecurity); + + Assert.NotNull(secureBootRoundTrip); + Assert.NotNull(vTpmRoundTrip); + Assert.NotNull(maxSecurityRoundTrip); + Assert.Equal(secureBootOnlyPs.SecureBootEnabled, secureBootRoundTrip.SecureBootEnabled); + Assert.Equal(secureBootOnlyPs.VTpmEnabled, secureBootRoundTrip.VTpmEnabled); + Assert.Equal(vTpmOnlyPs.SecureBootEnabled, vTpmRoundTrip.SecureBootEnabled); + Assert.Equal(vTpmOnlyPs.VTpmEnabled, vTpmRoundTrip.VTpmEnabled); + Assert.Equal(maxSecurityPs.SecureBootEnabled, maxSecurityRoundTrip.SecureBootEnabled); + Assert.Equal(maxSecurityPs.VTpmEnabled, maxSecurityRoundTrip.VTpmEnabled); + } + + [Fact] + public void UefiSettingsConversions_InstanceCreation_VerifyBehavior() + { + // This test verifies that the conversion methods create appropriate instances + + // Arrange + var psUefiSettings = new PSUefiSettings() + { + SecureBootEnabled = true, + VTpmEnabled = true + }; + + var mgmtUefiSettings = new UefiSettings( + secureBootEnabled: false, + vTpmEnabled: false); + + // Act + var mgmtResult = psUefiSettings.toMgmtUefiSettings(); + var psResult = PSUefiSettings.fromMgmtUefiSettings(mgmtUefiSettings); + + // Assert - Verify proper instance creation + Assert.NotNull(mgmtResult); + Assert.NotNull(psResult); + Assert.IsType(mgmtResult); + Assert.IsType(psResult); + + // Verify new instances are created + Assert.NotSame(mgmtUefiSettings, mgmtResult); + Assert.NotSame(psUefiSettings, psResult); + } + + #endregion + + #region Performance and Edge Case Tests + + [Fact] + public void UefiSettingsConversions_PerformanceTest_ExecutesQuickly() + { + // This test ensures the conversions are efficient + + // Arrange + var psUefiSettings = new PSUefiSettings() + { + SecureBootEnabled = true, + VTpmEnabled = true + }; + + var mgmtUefiSettings = new UefiSettings( + secureBootEnabled: false, + vTpmEnabled: false); + + // Act & Assert - Multiple conversions should complete without delay + for (int i = 0; i < 100; i++) + { + var mgmtResult = psUefiSettings.toMgmtUefiSettings(); + var psResult = PSUefiSettings.fromMgmtUefiSettings(mgmtUefiSettings); + + Assert.NotNull(mgmtResult); + Assert.NotNull(psResult); + Assert.True(mgmtResult.SecureBootEnabled); + Assert.False(psResult.SecureBootEnabled); + } + } + + [Fact] + public void UefiSettingsConversions_TypeSafety_VerifyCorrectTypes() + { + // Test that conversions return the correct types + + // Arrange + var psUefiSettings = new PSUefiSettings() + { + SecureBootEnabled = true, + VTpmEnabled = false + }; + var mgmtUefiSettings = new UefiSettings( + secureBootEnabled: false, + vTpmEnabled: true); + + // Act + var mgmtResult = psUefiSettings.toMgmtUefiSettings(); + var psResult = PSUefiSettings.fromMgmtUefiSettings(mgmtUefiSettings); + + // Assert - Verify correct types are returned + Assert.IsType(mgmtResult); + Assert.IsType(psResult); + } + + [Fact] + public void UefiSettingsConversions_EdgeCases_HandleCorrectly() + { + // Test edge cases and boundary conditions + + // Default PS UEFI settings + var defaultPs = new PSUefiSettings(); + var mgmtFromDefaultPs = defaultPs.toMgmtUefiSettings(); + + Assert.NotNull(mgmtFromDefaultPs); + Assert.Null(mgmtFromDefaultPs.SecureBootEnabled); + Assert.Null(mgmtFromDefaultPs.VTpmEnabled); + + // Default management UEFI settings + var defaultMgmt = new UefiSettings(); + var psFromDefaultMgmt = PSUefiSettings.fromMgmtUefiSettings(defaultMgmt); + + Assert.NotNull(psFromDefaultMgmt); + Assert.Null(psFromDefaultMgmt.SecureBootEnabled); + Assert.Null(psFromDefaultMgmt.VTpmEnabled); + } + + [Fact] + public void UefiSettingsConversions_PropertyAccess_VerifyBehavior() + { + // Test that properties are accessible and correct after conversion + + // Arrange + var originalSecureBootEnabled = true; + var originalVTpmEnabled = false; + var psUefiSettings = new PSUefiSettings() + { + SecureBootEnabled = originalSecureBootEnabled, + VTpmEnabled = originalVTpmEnabled + }; + + // Act + var mgmtUefiSettings = psUefiSettings.toMgmtUefiSettings(); + var convertedPsUefiSettings = PSUefiSettings.fromMgmtUefiSettings(mgmtUefiSettings); + + // Assert + Assert.Equal(originalSecureBootEnabled, psUefiSettings.SecureBootEnabled); + Assert.Equal(originalVTpmEnabled, psUefiSettings.VTpmEnabled); + Assert.Equal(originalSecureBootEnabled, mgmtUefiSettings.SecureBootEnabled); + Assert.Equal(originalVTpmEnabled, mgmtUefiSettings.VTpmEnabled); + Assert.Equal(originalSecureBootEnabled, convertedPsUefiSettings.SecureBootEnabled); + Assert.Equal(originalVTpmEnabled, convertedPsUefiSettings.VTpmEnabled); + } + + #endregion + + #region Security Configuration Context Tests + + [Fact] + public void UefiSettingsConversions_TrustedLaunchConfiguration_VerifySecurityStrategy() + { + // This test validates conversions work correctly for Trusted Launch VM configurations + // UEFI settings are critical for Trusted Launch security features + + // Arrange - Trusted Launch requires both secure boot and vTPM + var trustedLaunchPs = new PSUefiSettings() + { + SecureBootEnabled = true, + VTpmEnabled = true + }; + + // Act + var mgmtResult = trustedLaunchPs.toMgmtUefiSettings(); + var psResult = PSUefiSettings.fromMgmtUefiSettings(mgmtResult); + + // Assert + Assert.NotNull(mgmtResult); + Assert.True(mgmtResult.SecureBootEnabled); + Assert.True(mgmtResult.VTpmEnabled); + + Assert.NotNull(psResult); + Assert.True(psResult.SecureBootEnabled); + Assert.True(psResult.VTpmEnabled); + + // Verify round-trip maintains Trusted Launch configuration + var roundTripMgmt = psResult.toMgmtUefiSettings(); + Assert.NotNull(roundTripMgmt); + Assert.True(roundTripMgmt.SecureBootEnabled); + Assert.True(roundTripMgmt.VTpmEnabled); + } + + [Fact] + public void UefiSettingsConversions_BatchPoolSecurityProfiles_VerifyConfiguration() + { + // This test validates the conversions work correctly for different Batch pool security profiles + // Different workload types require different UEFI security configurations + + var securityProfiles = new[] + { + new { + Name = "High Security Profile", + SecureBootEnabled = true, + VTpmEnabled = true, + Description = "Maximum security for sensitive workloads" + }, + new { + Name = "Standard Security Profile", + SecureBootEnabled = true, + VTpmEnabled = false, + Description = "Boot integrity for standard workloads" + }, + new { + Name = "Basic Profile", + SecureBootEnabled = false, + VTpmEnabled = false, + Description = "No additional security features" + } + }; + + foreach (var profile in securityProfiles) + { + // Arrange + var psSettings = new PSUefiSettings() + { + SecureBootEnabled = profile.SecureBootEnabled, + VTpmEnabled = profile.VTpmEnabled + }; + + // Act + var mgmtSettings = psSettings.toMgmtUefiSettings(); + var roundTripSettings = PSUefiSettings.fromMgmtUefiSettings(mgmtSettings); + + // Assert - Security profile should be preserved + Assert.NotNull(mgmtSettings); + Assert.Equal(profile.SecureBootEnabled, mgmtSettings.SecureBootEnabled); + Assert.Equal(profile.VTpmEnabled, mgmtSettings.VTpmEnabled); + + Assert.NotNull(roundTripSettings); + Assert.Equal(profile.SecureBootEnabled, roundTripSettings.SecureBootEnabled); + Assert.Equal(profile.VTpmEnabled, roundTripSettings.VTpmEnabled); + } + } + + #endregion + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Test/Models/PSUserAccountTests.cs b/src/Batch/Batch.Test/Models/PSUserAccountTests.cs new file mode 100644 index 000000000000..762a26c66064 --- /dev/null +++ b/src/Batch/Batch.Test/Models/PSUserAccountTests.cs @@ -0,0 +1,1129 @@ +// ----------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ----------------------------------------------------------------------------- + +using Microsoft.Azure.Commands.Batch.Models; +using Microsoft.Azure.Management.Batch.Models; +using Microsoft.WindowsAzure.Commands.ScenarioTest; +using System.Linq; +using Xunit; + +namespace Microsoft.Azure.Commands.Batch.Test.ModelsConversions +{ + public class PSUserAccountTests + { + #region toMgmtUserAccount Tests + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void ToMgmtUserAccount_WithBasicProperties_ConvertsCorrectly() + { + // Arrange + var psUserAccount = new PSUserAccount( + name: "testuser", + password: "testpassword123", + elevationLevel: Microsoft.Azure.Batch.Common.ElevationLevel.NonAdmin); + + // Act + var mgmtUserAccount = psUserAccount.toMgmtUserAccount(); + + // Assert + Assert.NotNull(mgmtUserAccount); + Assert.Equal("testuser", mgmtUserAccount.Name); + Assert.Equal("testpassword123", mgmtUserAccount.Password); + Assert.NotNull(mgmtUserAccount.ElevationLevel); + Assert.Equal(ElevationLevel.NonAdmin, mgmtUserAccount.ElevationLevel.Value); + Assert.Null(mgmtUserAccount.LinuxUserConfiguration); + Assert.Null(mgmtUserAccount.WindowsUserConfiguration); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void ToMgmtUserAccount_WithAdminElevation_ConvertsCorrectly() + { + // Arrange + var psUserAccount = new PSUserAccount( + name: "adminuser", + password: "adminpassword456", + elevationLevel: Microsoft.Azure.Batch.Common.ElevationLevel.Admin); + + // Act + var mgmtUserAccount = psUserAccount.toMgmtUserAccount(); + + // Assert + Assert.NotNull(mgmtUserAccount); + Assert.Equal("adminuser", mgmtUserAccount.Name); + Assert.Equal("adminpassword456", mgmtUserAccount.Password); + Assert.NotNull(mgmtUserAccount.ElevationLevel); + Assert.Equal(ElevationLevel.Admin, mgmtUserAccount.ElevationLevel.Value); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void ToMgmtUserAccount_WithLinuxUserConfiguration_ConvertsCorrectly() + { + // Arrange + var linuxConfig = new PSLinuxUserConfiguration( + uid: 1000, + gid: 1000, + sshPrivateKey: "-----BEGIN RSA PRIVATE KEY-----\nMIIEpAIBAAKCAQEA7yn3bRHQ...\n-----END RSA PRIVATE KEY-----"); + var psUserAccount = new PSUserAccount( + name: "linuxuser", + password: "linuxpassword789", + elevationLevel: Microsoft.Azure.Batch.Common.ElevationLevel.NonAdmin, + linuxUserConfiguration: linuxConfig); + + // Act + var mgmtUserAccount = psUserAccount.toMgmtUserAccount(); + + // Assert + Assert.NotNull(mgmtUserAccount); + Assert.Equal("linuxuser", mgmtUserAccount.Name); + Assert.Equal("linuxpassword789", mgmtUserAccount.Password); + Assert.Equal(ElevationLevel.NonAdmin, mgmtUserAccount.ElevationLevel.Value); + Assert.NotNull(mgmtUserAccount.LinuxUserConfiguration); + Assert.Equal(1000, mgmtUserAccount.LinuxUserConfiguration.Uid); + Assert.Equal(1000, mgmtUserAccount.LinuxUserConfiguration.Gid); + Assert.Equal("-----BEGIN RSA PRIVATE KEY-----\nMIIEpAIBAAKCAQEA7yn3bRHQ...\n-----END RSA PRIVATE KEY-----", mgmtUserAccount.LinuxUserConfiguration.SshPrivateKey); + Assert.Null(mgmtUserAccount.WindowsUserConfiguration); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void ToMgmtUserAccount_WithWindowsUserConfiguration_ConvertsCorrectly() + { + // Arrange + var windowsConfig = new PSWindowsUserConfiguration( + loginMode: Microsoft.Azure.Batch.Common.LoginMode.Interactive); + var psUserAccount = new PSUserAccount( + name: "windowsuser", + password: "windowspassword123", + elevationLevel: Microsoft.Azure.Batch.Common.ElevationLevel.Admin, + windowsUserConfiguration: windowsConfig); + + // Act + var mgmtUserAccount = psUserAccount.toMgmtUserAccount(); + + // Assert + Assert.NotNull(mgmtUserAccount); + Assert.Equal("windowsuser", mgmtUserAccount.Name); + Assert.Equal("windowspassword123", mgmtUserAccount.Password); + Assert.Equal(ElevationLevel.Admin, mgmtUserAccount.ElevationLevel.Value); + Assert.Null(mgmtUserAccount.LinuxUserConfiguration); + Assert.NotNull(mgmtUserAccount.WindowsUserConfiguration); + Assert.NotNull(mgmtUserAccount.WindowsUserConfiguration.LoginMode); + Assert.Equal(LoginMode.Interactive, mgmtUserAccount.WindowsUserConfiguration.LoginMode.Value); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void ToMgmtUserAccount_WithBothConfigurations_ConvertsCorrectly() + { + // Arrange + var linuxConfig = new PSLinuxUserConfiguration( + uid: 2000, + gid: 2000, + sshPrivateKey: "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC7yn3bRHQ... user@example.com"); + var windowsConfig = new PSWindowsUserConfiguration( + loginMode: Microsoft.Azure.Batch.Common.LoginMode.Batch); + var psUserAccount = new PSUserAccount( + name: "hybriduser", + password: "hybridpassword456", + elevationLevel: Microsoft.Azure.Batch.Common.ElevationLevel.NonAdmin, + linuxUserConfiguration: linuxConfig, + windowsUserConfiguration: windowsConfig); + + // Act + var mgmtUserAccount = psUserAccount.toMgmtUserAccount(); + + // Assert + Assert.NotNull(mgmtUserAccount); + Assert.Equal("hybriduser", mgmtUserAccount.Name); + Assert.Equal("hybridpassword456", mgmtUserAccount.Password); + Assert.Equal(ElevationLevel.NonAdmin, mgmtUserAccount.ElevationLevel.Value); + + Assert.NotNull(mgmtUserAccount.LinuxUserConfiguration); + Assert.Equal(2000, mgmtUserAccount.LinuxUserConfiguration.Uid); + Assert.Equal(2000, mgmtUserAccount.LinuxUserConfiguration.Gid); + Assert.Equal("ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC7yn3bRHQ... user@example.com", mgmtUserAccount.LinuxUserConfiguration.SshPrivateKey); + + Assert.NotNull(mgmtUserAccount.WindowsUserConfiguration); + Assert.NotNull(mgmtUserAccount.WindowsUserConfiguration.LoginMode); + Assert.Equal(LoginMode.Batch, mgmtUserAccount.WindowsUserConfiguration.LoginMode.Value); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void ToMgmtUserAccount_WithNullElevationLevel_ConvertsCorrectly() + { + // Arrange + var psUserAccount = new PSUserAccount( + name: "defaultuser", + password: "defaultpassword", + elevationLevel: null); + + // Act + var mgmtUserAccount = psUserAccount.toMgmtUserAccount(); + + // Assert + Assert.NotNull(mgmtUserAccount); + Assert.Equal("defaultuser", mgmtUserAccount.Name); + Assert.Equal("defaultpassword", mgmtUserAccount.Password); + Assert.Null(mgmtUserAccount.ElevationLevel); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void ToMgmtUserAccount_WithNullConfigurations_ConvertsCorrectly() + { + // Arrange + var psUserAccount = new PSUserAccount( + name: "simpleuser", + password: "simplepassword", + elevationLevel: Microsoft.Azure.Batch.Common.ElevationLevel.NonAdmin, + linuxUserConfiguration: null, + windowsUserConfiguration: null); + + // Act + var mgmtUserAccount = psUserAccount.toMgmtUserAccount(); + + // Assert + Assert.NotNull(mgmtUserAccount); + Assert.Equal("simpleuser", mgmtUserAccount.Name); + Assert.Equal("simplepassword", mgmtUserAccount.Password); + Assert.Equal(ElevationLevel.NonAdmin, mgmtUserAccount.ElevationLevel.Value); + Assert.Null(mgmtUserAccount.LinuxUserConfiguration); + Assert.Null(mgmtUserAccount.WindowsUserConfiguration); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void ToMgmtUserAccount_AlwaysCreatesNewInstance() + { + // Arrange + var psUserAccount = new PSUserAccount( + name: "testuser", + password: "testpassword", + elevationLevel: Microsoft.Azure.Batch.Common.ElevationLevel.Admin); + + // Act + var mgmtUserAccount1 = psUserAccount.toMgmtUserAccount(); + var mgmtUserAccount2 = psUserAccount.toMgmtUserAccount(); + + // Assert + Assert.NotNull(mgmtUserAccount1); + Assert.NotNull(mgmtUserAccount2); + Assert.NotSame(mgmtUserAccount1, mgmtUserAccount2); + Assert.Equal(mgmtUserAccount1.Name, mgmtUserAccount2.Name); + Assert.Equal(mgmtUserAccount1.Password, mgmtUserAccount2.Password); + Assert.Equal(mgmtUserAccount1.ElevationLevel, mgmtUserAccount2.ElevationLevel); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void ToMgmtUserAccount_VerifyReturnType() + { + // Arrange + var psUserAccount = new PSUserAccount( + name: "testuser", + password: "testpassword"); + + // Act + var mgmtUserAccount = psUserAccount.toMgmtUserAccount(); + + // Assert + Assert.NotNull(mgmtUserAccount); + Assert.IsType(mgmtUserAccount); + Assert.IsAssignableFrom(mgmtUserAccount); + } + + [Theory] + [Trait(Category.AcceptanceType, Category.CheckIn)] + [InlineData(Microsoft.Azure.Batch.Common.ElevationLevel.NonAdmin, ElevationLevel.NonAdmin)] + [InlineData(Microsoft.Azure.Batch.Common.ElevationLevel.Admin, ElevationLevel.Admin)] + public void ToMgmtUserAccount_AllElevationLevels_ConvertsCorrectly( + Microsoft.Azure.Batch.Common.ElevationLevel psElevationLevel, + ElevationLevel expectedMgmtElevationLevel) + { + // Arrange + var psUserAccount = new PSUserAccount( + name: "elevationtest", + password: "elevationpassword", + elevationLevel: psElevationLevel); + + // Act + var mgmtUserAccount = psUserAccount.toMgmtUserAccount(); + + // Assert + Assert.NotNull(mgmtUserAccount); + Assert.NotNull(mgmtUserAccount.ElevationLevel); + Assert.Equal(expectedMgmtElevationLevel, mgmtUserAccount.ElevationLevel.Value); + } + + #endregion + + #region fromMgmtUserAccount Tests + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void FromMgmtUserAccount_WithNull_ReturnsNull() + { + // Act + var result = PSUserAccount.fromMgmtUserAccount(null); + + // Assert + Assert.Null(result); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void FromMgmtUserAccount_WithBasicProperties_ConvertsCorrectly() + { + // Arrange + var mgmtUserAccount = new UserAccount( + name: "testuser", + password: "testpassword123", + elevationLevel: ElevationLevel.NonAdmin); + + // Act + var psUserAccount = PSUserAccount.fromMgmtUserAccount(mgmtUserAccount); + + // Assert + Assert.NotNull(psUserAccount); + Assert.Equal("testuser", psUserAccount.Name); + Assert.Equal("testpassword123", psUserAccount.Password); + Assert.NotNull(psUserAccount.ElevationLevel); + Assert.Equal(Microsoft.Azure.Batch.Common.ElevationLevel.NonAdmin, psUserAccount.ElevationLevel.Value); + Assert.Null(psUserAccount.LinuxUserConfiguration); + Assert.Null(psUserAccount.WindowsUserConfiguration); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void FromMgmtUserAccount_WithAdminElevation_ConvertsCorrectly() + { + // Arrange + var mgmtUserAccount = new UserAccount( + name: "adminuser", + password: "adminpassword456", + elevationLevel: ElevationLevel.Admin); + + // Act + var psUserAccount = PSUserAccount.fromMgmtUserAccount(mgmtUserAccount); + + // Assert + Assert.NotNull(psUserAccount); + Assert.Equal("adminuser", psUserAccount.Name); + Assert.Equal("adminpassword456", psUserAccount.Password); + Assert.NotNull(psUserAccount.ElevationLevel); + Assert.Equal(Microsoft.Azure.Batch.Common.ElevationLevel.Admin, psUserAccount.ElevationLevel.Value); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void FromMgmtUserAccount_WithLinuxUserConfiguration_ConvertsCorrectly() + { + // Arrange + var linuxConfig = new LinuxUserConfiguration( + uid: 1000, + gid: 1000, + sshPrivateKey: "-----BEGIN OPENSSH PRIVATE KEY-----\nb3BlbnNzaC1rZXktdjEAAAAA...\n-----END OPENSSH PRIVATE KEY-----"); + var mgmtUserAccount = new UserAccount( + name: "linuxuser", + password: "linuxpassword789", + elevationLevel: ElevationLevel.NonAdmin, + linuxUserConfiguration: linuxConfig); + + // Act + var psUserAccount = PSUserAccount.fromMgmtUserAccount(mgmtUserAccount); + + // Assert + Assert.NotNull(psUserAccount); + Assert.Equal("linuxuser", psUserAccount.Name); + Assert.Equal("linuxpassword789", psUserAccount.Password); + Assert.Equal(Microsoft.Azure.Batch.Common.ElevationLevel.NonAdmin, psUserAccount.ElevationLevel.Value); + Assert.NotNull(psUserAccount.LinuxUserConfiguration); + Assert.Equal(1000, psUserAccount.LinuxUserConfiguration.Uid); + Assert.Equal(1000, psUserAccount.LinuxUserConfiguration.Gid); + Assert.Equal("-----BEGIN OPENSSH PRIVATE KEY-----\nb3BlbnNzaC1rZXktdjEAAAAA...\n-----END OPENSSH PRIVATE KEY-----", psUserAccount.LinuxUserConfiguration.SshPrivateKey); + Assert.Null(psUserAccount.WindowsUserConfiguration); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void FromMgmtUserAccount_WithWindowsUserConfiguration_ConvertsCorrectly() + { + // Arrange + var windowsConfig = new WindowsUserConfiguration( + loginMode: LoginMode.Interactive); + var mgmtUserAccount = new UserAccount( + name: "windowsuser", + password: "windowspassword123", + elevationLevel: ElevationLevel.Admin, + windowsUserConfiguration: windowsConfig); + + // Act + var psUserAccount = PSUserAccount.fromMgmtUserAccount(mgmtUserAccount); + + // Assert + Assert.NotNull(psUserAccount); + Assert.Equal("windowsuser", psUserAccount.Name); + Assert.Equal("windowspassword123", psUserAccount.Password); + Assert.Equal(Microsoft.Azure.Batch.Common.ElevationLevel.Admin, psUserAccount.ElevationLevel.Value); + Assert.Null(psUserAccount.LinuxUserConfiguration); + Assert.NotNull(psUserAccount.WindowsUserConfiguration); + Assert.NotNull(psUserAccount.WindowsUserConfiguration.LoginMode); + Assert.Equal(Microsoft.Azure.Batch.Common.LoginMode.Interactive, psUserAccount.WindowsUserConfiguration.LoginMode.Value); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void FromMgmtUserAccount_WithBothConfigurations_ConvertsCorrectly() + { + // Arrange + var linuxConfig = new LinuxUserConfiguration( + uid: 2000, + gid: 2000, + sshPrivateKey: "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIF... user@hostname"); + var windowsConfig = new WindowsUserConfiguration( + loginMode: LoginMode.Batch); + var mgmtUserAccount = new UserAccount( + name: "hybriduser", + password: "hybridpassword456", + elevationLevel: ElevationLevel.NonAdmin, + linuxUserConfiguration: linuxConfig, + windowsUserConfiguration: windowsConfig); + + // Act + var psUserAccount = PSUserAccount.fromMgmtUserAccount(mgmtUserAccount); + + // Assert + Assert.NotNull(psUserAccount); + Assert.Equal("hybriduser", psUserAccount.Name); + Assert.Equal("hybridpassword456", psUserAccount.Password); + Assert.Equal(Microsoft.Azure.Batch.Common.ElevationLevel.NonAdmin, psUserAccount.ElevationLevel.Value); + + Assert.NotNull(psUserAccount.LinuxUserConfiguration); + Assert.Equal(2000, psUserAccount.LinuxUserConfiguration.Uid); + Assert.Equal(2000, psUserAccount.LinuxUserConfiguration.Gid); + Assert.Equal("ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIF... user@hostname", psUserAccount.LinuxUserConfiguration.SshPrivateKey); + + Assert.NotNull(psUserAccount.WindowsUserConfiguration); + Assert.NotNull(psUserAccount.WindowsUserConfiguration.LoginMode); + Assert.Equal(Microsoft.Azure.Batch.Common.LoginMode.Batch, psUserAccount.WindowsUserConfiguration.LoginMode.Value); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void FromMgmtUserAccount_WithNullElevationLevel_ConvertsCorrectly() + { + // Arrange + var mgmtUserAccount = new UserAccount( + name: "defaultuser", + password: "defaultpassword", + elevationLevel: null); + + // Act + var psUserAccount = PSUserAccount.fromMgmtUserAccount(mgmtUserAccount); + + // Assert + Assert.NotNull(psUserAccount); + Assert.Equal("defaultuser", psUserAccount.Name); + Assert.Equal("defaultpassword", psUserAccount.Password); + Assert.Null(psUserAccount.ElevationLevel); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void FromMgmtUserAccount_WithNullConfigurations_ConvertsCorrectly() + { + // Arrange + var mgmtUserAccount = new UserAccount( + name: "simpleuser", + password: "simplepassword", + elevationLevel: ElevationLevel.NonAdmin, + linuxUserConfiguration: null, + windowsUserConfiguration: null); + + // Act + var psUserAccount = PSUserAccount.fromMgmtUserAccount(mgmtUserAccount); + + // Assert + Assert.NotNull(psUserAccount); + Assert.Equal("simpleuser", psUserAccount.Name); + Assert.Equal("simplepassword", psUserAccount.Password); + Assert.Equal(Microsoft.Azure.Batch.Common.ElevationLevel.NonAdmin, psUserAccount.ElevationLevel.Value); + Assert.Null(psUserAccount.LinuxUserConfiguration); + Assert.Null(psUserAccount.WindowsUserConfiguration); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void FromMgmtUserAccount_StaticMethod_DoesNotRequireInstance() + { + // Arrange + var mgmtUserAccount = new UserAccount( + name: "statictest", + password: "staticpassword", + elevationLevel: ElevationLevel.Admin); + + // Act - Call static method directly on class + var psUserAccount = PSUserAccount.fromMgmtUserAccount(mgmtUserAccount); + + // Assert + Assert.NotNull(psUserAccount); + Assert.Equal("statictest", psUserAccount.Name); + Assert.Equal("staticpassword", psUserAccount.Password); + Assert.Equal(Microsoft.Azure.Batch.Common.ElevationLevel.Admin, psUserAccount.ElevationLevel.Value); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void FromMgmtUserAccount_AlwaysCreatesNewInstance() + { + // Arrange + var mgmtUserAccount = new UserAccount( + name: "testuser", + password: "testpassword", + elevationLevel: ElevationLevel.NonAdmin); + + // Act + var psUserAccount1 = PSUserAccount.fromMgmtUserAccount(mgmtUserAccount); + var psUserAccount2 = PSUserAccount.fromMgmtUserAccount(mgmtUserAccount); + + // Assert + Assert.NotNull(psUserAccount1); + Assert.NotNull(psUserAccount2); + Assert.NotSame(psUserAccount1, psUserAccount2); + Assert.Equal(psUserAccount1.Name, psUserAccount2.Name); + Assert.Equal(psUserAccount1.Password, psUserAccount2.Password); + Assert.Equal(psUserAccount1.ElevationLevel, psUserAccount2.ElevationLevel); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void FromMgmtUserAccount_VerifyReturnType() + { + // Arrange + var mgmtUserAccount = new UserAccount( + name: "testuser", + password: "testpassword"); + + // Act + var psUserAccount = PSUserAccount.fromMgmtUserAccount(mgmtUserAccount); + + // Assert + Assert.NotNull(psUserAccount); + Assert.IsType(psUserAccount); + Assert.IsAssignableFrom(psUserAccount); + } + + [Theory] + [Trait(Category.AcceptanceType, Category.CheckIn)] + [InlineData(ElevationLevel.NonAdmin, Microsoft.Azure.Batch.Common.ElevationLevel.NonAdmin)] + [InlineData(ElevationLevel.Admin, Microsoft.Azure.Batch.Common.ElevationLevel.Admin)] + public void FromMgmtUserAccount_AllElevationLevels_ConvertsCorrectly( + ElevationLevel mgmtElevationLevel, + Microsoft.Azure.Batch.Common.ElevationLevel expectedPsElevationLevel) + { + // Arrange + var mgmtUserAccount = new UserAccount( + name: "elevationtest", + password: "elevationpassword", + elevationLevel: mgmtElevationLevel); + + // Act + var psUserAccount = PSUserAccount.fromMgmtUserAccount(mgmtUserAccount); + + // Assert + Assert.NotNull(psUserAccount); + Assert.NotNull(psUserAccount.ElevationLevel); + Assert.Equal(expectedPsElevationLevel, psUserAccount.ElevationLevel.Value); + } + + #endregion + + #region Round-trip Conversion Tests + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesBasicProperties() + { + // Arrange + var originalPsUserAccount = new PSUserAccount( + name: "roundtripuser", + password: "roundtrippassword", + elevationLevel: Microsoft.Azure.Batch.Common.ElevationLevel.Admin); + + // Act + var mgmtUserAccount = originalPsUserAccount.toMgmtUserAccount(); + var roundTripPsUserAccount = PSUserAccount.fromMgmtUserAccount(mgmtUserAccount); + + // Assert + Assert.NotNull(roundTripPsUserAccount); + Assert.Equal(originalPsUserAccount.Name, roundTripPsUserAccount.Name); + Assert.Equal(originalPsUserAccount.Password, roundTripPsUserAccount.Password); + Assert.Equal(originalPsUserAccount.ElevationLevel, roundTripPsUserAccount.ElevationLevel); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesLinuxConfiguration() + { + // Arrange + var linuxConfig = new PSLinuxUserConfiguration( + uid: 1500, + gid: 1500, + sshPrivateKey: "-----BEGIN RSA PRIVATE KEY-----\nMIIEpAIBAAKCAQEA7yn3bRHQ...\n-----END RSA PRIVATE KEY-----"); + var originalPsUserAccount = new PSUserAccount( + name: "linuxroundtrip", + password: "linuxpassword", + elevationLevel: Microsoft.Azure.Batch.Common.ElevationLevel.NonAdmin, + linuxUserConfiguration: linuxConfig); + + // Act + var mgmtUserAccount = originalPsUserAccount.toMgmtUserAccount(); + var roundTripPsUserAccount = PSUserAccount.fromMgmtUserAccount(mgmtUserAccount); + + // Assert + Assert.NotNull(roundTripPsUserAccount); + Assert.Equal(originalPsUserAccount.Name, roundTripPsUserAccount.Name); + Assert.Equal(originalPsUserAccount.Password, roundTripPsUserAccount.Password); + Assert.Equal(originalPsUserAccount.ElevationLevel, roundTripPsUserAccount.ElevationLevel); + + Assert.NotNull(roundTripPsUserAccount.LinuxUserConfiguration); + Assert.Equal(originalPsUserAccount.LinuxUserConfiguration.Uid, roundTripPsUserAccount.LinuxUserConfiguration.Uid); + Assert.Equal(originalPsUserAccount.LinuxUserConfiguration.Gid, roundTripPsUserAccount.LinuxUserConfiguration.Gid); + Assert.Equal(originalPsUserAccount.LinuxUserConfiguration.SshPrivateKey, roundTripPsUserAccount.LinuxUserConfiguration.SshPrivateKey); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesWindowsConfiguration() + { + // Arrange + var windowsConfig = new PSWindowsUserConfiguration( + loginMode: Microsoft.Azure.Batch.Common.LoginMode.Interactive); + var originalPsUserAccount = new PSUserAccount( + name: "windowsroundtrip", + password: "windowspassword", + elevationLevel: Microsoft.Azure.Batch.Common.ElevationLevel.Admin, + windowsUserConfiguration: windowsConfig); + + // Act + var mgmtUserAccount = originalPsUserAccount.toMgmtUserAccount(); + var roundTripPsUserAccount = PSUserAccount.fromMgmtUserAccount(mgmtUserAccount); + + // Assert + Assert.NotNull(roundTripPsUserAccount); + Assert.Equal(originalPsUserAccount.Name, roundTripPsUserAccount.Name); + Assert.Equal(originalPsUserAccount.Password, roundTripPsUserAccount.Password); + Assert.Equal(originalPsUserAccount.ElevationLevel, roundTripPsUserAccount.ElevationLevel); + + Assert.NotNull(roundTripPsUserAccount.WindowsUserConfiguration); + Assert.Equal(originalPsUserAccount.WindowsUserConfiguration.LoginMode, roundTripPsUserAccount.WindowsUserConfiguration.LoginMode); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesNullProperties() + { + // Arrange + var originalPsUserAccount = new PSUserAccount( + name: "nullroundtrip", + password: "nullpassword", + elevationLevel: null, + linuxUserConfiguration: null, + windowsUserConfiguration: null); + + // Act + var mgmtUserAccount = originalPsUserAccount.toMgmtUserAccount(); + var roundTripPsUserAccount = PSUserAccount.fromMgmtUserAccount(mgmtUserAccount); + + // Assert + Assert.NotNull(roundTripPsUserAccount); + Assert.Equal(originalPsUserAccount.Name, roundTripPsUserAccount.Name); + Assert.Equal(originalPsUserAccount.Password, roundTripPsUserAccount.Password); + Assert.Null(roundTripPsUserAccount.ElevationLevel); + Assert.Null(roundTripPsUserAccount.LinuxUserConfiguration); + Assert.Null(roundTripPsUserAccount.WindowsUserConfiguration); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void RoundTripConversion_FromMgmtAndToMgmt_PreservesAllProperties() + { + // Arrange + var linuxConfig = new LinuxUserConfiguration( + uid: 3000, + gid: 3000, + sshPrivateKey: "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC7yn3bRHQ... user@example.com"); + var windowsConfig = new WindowsUserConfiguration( + loginMode: LoginMode.Batch); + var originalMgmtUserAccount = new UserAccount( + name: "mgmtroundtrip", + password: "mgmtpassword", + elevationLevel: ElevationLevel.Admin, + linuxUserConfiguration: linuxConfig, + windowsUserConfiguration: windowsConfig); + + // Act + var psUserAccount = PSUserAccount.fromMgmtUserAccount(originalMgmtUserAccount); + var roundTripMgmtUserAccount = psUserAccount.toMgmtUserAccount(); + + // Assert + Assert.NotNull(roundTripMgmtUserAccount); + Assert.Equal(originalMgmtUserAccount.Name, roundTripMgmtUserAccount.Name); + Assert.Equal(originalMgmtUserAccount.Password, roundTripMgmtUserAccount.Password); + Assert.Equal(originalMgmtUserAccount.ElevationLevel, roundTripMgmtUserAccount.ElevationLevel); + + Assert.NotNull(roundTripMgmtUserAccount.LinuxUserConfiguration); + Assert.Equal(originalMgmtUserAccount.LinuxUserConfiguration.Uid, roundTripMgmtUserAccount.LinuxUserConfiguration.Uid); + Assert.Equal(originalMgmtUserAccount.LinuxUserConfiguration.Gid, roundTripMgmtUserAccount.LinuxUserConfiguration.Gid); + Assert.Equal(originalMgmtUserAccount.LinuxUserConfiguration.SshPrivateKey, roundTripMgmtUserAccount.LinuxUserConfiguration.SshPrivateKey); + + Assert.NotNull(roundTripMgmtUserAccount.WindowsUserConfiguration); + Assert.Equal(originalMgmtUserAccount.WindowsUserConfiguration.LoginMode, roundTripMgmtUserAccount.WindowsUserConfiguration.LoginMode); + } + + [Theory] + [Trait(Category.AcceptanceType, Category.CheckIn)] + [InlineData(Microsoft.Azure.Batch.Common.ElevationLevel.NonAdmin)] + [InlineData(Microsoft.Azure.Batch.Common.ElevationLevel.Admin)] + public void RoundTripConversion_AllElevationLevels_PreservesOriginalValue( + Microsoft.Azure.Batch.Common.ElevationLevel originalElevationLevel) + { + // Arrange + var originalPsUserAccount = new PSUserAccount( + name: "elevationroundtrip", + password: "elevationpassword", + elevationLevel: originalElevationLevel); + + // Act + var mgmtUserAccount = originalPsUserAccount.toMgmtUserAccount(); + var roundTripPsUserAccount = PSUserAccount.fromMgmtUserAccount(mgmtUserAccount); + + // Assert + Assert.NotNull(roundTripPsUserAccount); + Assert.Equal(originalElevationLevel, roundTripPsUserAccount.ElevationLevel); + } + + #endregion + + #region Integration Tests + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void UserAccountConversions_BothDirections_MaintainSemanticEquivalence() + { + // This test ensures that the semantic meaning is preserved across conversions for Azure Batch user accounts + + // Test standard user account semantics + var psStandardUser = new PSUserAccount( + name: "standarduser", + password: "standardpassword123", + elevationLevel: Microsoft.Azure.Batch.Common.ElevationLevel.NonAdmin); + var mgmtStandardUser = psStandardUser.toMgmtUserAccount(); + var backToPs = PSUserAccount.fromMgmtUserAccount(mgmtStandardUser); + + Assert.NotNull(mgmtStandardUser); + Assert.Equal("standarduser", mgmtStandardUser.Name); + Assert.Equal("standardpassword123", mgmtStandardUser.Password); + Assert.Equal(ElevationLevel.NonAdmin, mgmtStandardUser.ElevationLevel.Value); + Assert.NotNull(backToPs); + Assert.Equal("standarduser", backToPs.Name); + Assert.Equal("standardpassword123", backToPs.Password); + Assert.Equal(Microsoft.Azure.Batch.Common.ElevationLevel.NonAdmin, backToPs.ElevationLevel.Value); + + // Test admin user account semantics + var psAdminUser = new PSUserAccount( + name: "adminuser", + password: "adminpassword456", + elevationLevel: Microsoft.Azure.Batch.Common.ElevationLevel.Admin); + var mgmtAdminUser = psAdminUser.toMgmtUserAccount(); + var backToPsAdmin = PSUserAccount.fromMgmtUserAccount(mgmtAdminUser); + + Assert.NotNull(mgmtAdminUser); + Assert.Equal("adminuser", mgmtAdminUser.Name); + Assert.Equal("adminpassword456", mgmtAdminUser.Password); + Assert.Equal(ElevationLevel.Admin, mgmtAdminUser.ElevationLevel.Value); + Assert.NotNull(backToPsAdmin); + Assert.Equal("adminuser", backToPsAdmin.Name); + Assert.Equal("adminpassword456", backToPsAdmin.Password); + Assert.Equal(Microsoft.Azure.Batch.Common.ElevationLevel.Admin, backToPsAdmin.ElevationLevel.Value); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void UserAccountConversions_NullHandling_WorksCorrectly() + { + // Test null handling in conversions + + // Act + var resultFromNull = PSUserAccount.fromMgmtUserAccount(null); + + // Assert + Assert.Null(resultFromNull); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void UserAccountConversions_BatchPoolUserContext_VerifyCorrectUsage() + { + // This test validates the conversions work correctly in the context of Azure Batch pool user configuration + // UserAccount is used to configure user accounts on Batch compute nodes + + // Arrange - Test with realistic Batch pool user scenarios + var batchUserScenarios = new[] + { + // Standard batch processing user + new { + Name = "batchuser", + Password = "BatchProcessing123!", + ElevationLevel = Microsoft.Azure.Batch.Common.ElevationLevel.NonAdmin, + Description = "Standard user for batch processing tasks" + }, + // Administrative user for system operations + new { + Name = "batchadmin", + Password = "AdminOperations456!", + ElevationLevel = Microsoft.Azure.Batch.Common.ElevationLevel.Admin, + Description = "Admin user for system operations and privileged tasks" + }, + // Linux-specific user with SSH configuration + new { + Name = "linuxbatchuser", + Password = "LinuxBatch789!", + ElevationLevel = Microsoft.Azure.Batch.Common.ElevationLevel.NonAdmin, + Description = "Linux user with SSH key configuration" + }, + // Windows-specific user with login mode configuration + new { + Name = "windowsbatchuser", + Password = "WindowsBatch000!", + ElevationLevel = Microsoft.Azure.Batch.Common.ElevationLevel.Admin, + Description = "Windows user with interactive login mode" + } + }; + + foreach (var scenario in batchUserScenarios) + { + // Act + PSUserAccount psUserAccount; + if (scenario.Name.Contains("linux")) + { + var linuxConfig = new PSLinuxUserConfiguration( + uid: 1001, + gid: 1001, + sshPrivateKey: "-----BEGIN RSA PRIVATE KEY-----\nMIIEpAIBAAKCAQEA...\n-----END RSA PRIVATE KEY-----"); + psUserAccount = new PSUserAccount( + name: scenario.Name, + password: scenario.Password, + elevationLevel: scenario.ElevationLevel, + linuxUserConfiguration: linuxConfig); + } + else if (scenario.Name.Contains("windows")) + { + var windowsConfig = new PSWindowsUserConfiguration( + loginMode: Microsoft.Azure.Batch.Common.LoginMode.Interactive); + psUserAccount = new PSUserAccount( + name: scenario.Name, + password: scenario.Password, + elevationLevel: scenario.ElevationLevel, + windowsUserConfiguration: windowsConfig); + } + else + { + psUserAccount = new PSUserAccount( + name: scenario.Name, + password: scenario.Password, + elevationLevel: scenario.ElevationLevel); + } + + var mgmtUserAccount = psUserAccount.toMgmtUserAccount(); + + // Assert - Should convert correctly for Batch pool user configuration + Assert.NotNull(mgmtUserAccount); + Assert.Equal(scenario.Name, mgmtUserAccount.Name); + Assert.Equal(scenario.Password, mgmtUserAccount.Password); + + + Assert.NotNull(mgmtUserAccount.ElevationLevel); + var expectedMgmtLevel = scenario.ElevationLevel == Microsoft.Azure.Batch.Common.ElevationLevel.NonAdmin + ? ElevationLevel.NonAdmin + : ElevationLevel.Admin; + Assert.Equal(expectedMgmtLevel, mgmtUserAccount.ElevationLevel.Value); + + + // Verify round-trip conversion maintains Batch user semantics + var backToPs = PSUserAccount.fromMgmtUserAccount(mgmtUserAccount); + Assert.NotNull(backToPs); + Assert.Equal(scenario.Name, backToPs.Name); + Assert.Equal(scenario.Password, backToPs.Password); + Assert.Equal(scenario.ElevationLevel, backToPs.ElevationLevel); + } + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void UserAccountConversions_UserNameValidation_PreservesConstraints() + { + // Test that user name constraints are preserved during conversion + + var userNameScenarios = new[] + { + // Standard user names + "user1", + "batchuser", + "admin_user", + "test-user", + // Edge cases for 20 character limit + "12345678901234567890", // Exactly 20 characters + "a", // Single character + // Unicode characters (should be preserved) + "用户", // Chinese characters + "usuário", // Portuguese with accent + "пользователь", // Cyrillic + // Special characters + "user@domain", + "user.name", + "user+batch" + }; + + foreach (var userName in userNameScenarios) + { + // Arrange + var psUserAccount = new PSUserAccount( + name: userName, + password: "testpassword123", + elevationLevel: Microsoft.Azure.Batch.Common.ElevationLevel.NonAdmin); + + // Act + var mgmtUserAccount = psUserAccount.toMgmtUserAccount(); + var roundTripPs = PSUserAccount.fromMgmtUserAccount(mgmtUserAccount); + + // Assert - User name should be preserved exactly + Assert.NotNull(mgmtUserAccount); + Assert.NotNull(roundTripPs); + Assert.Equal(userName, mgmtUserAccount.Name); + Assert.Equal(userName, roundTripPs.Name); + } + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void UserAccountConversions_InstanceCreation_VerifyBehavior() + { + // This test verifies that the conversion methods create appropriate instances + + // Arrange + var psUserAccount = new PSUserAccount( + name: "instancetest", + password: "instancepassword", + elevationLevel: Microsoft.Azure.Batch.Common.ElevationLevel.Admin); + var mgmtUserAccount = new UserAccount( + name: "mgmtinstancetest", + password: "mgmtinstancepassword", + elevationLevel: ElevationLevel.NonAdmin); + + // Act + var mgmtResult = psUserAccount.toMgmtUserAccount(); + var psResult = PSUserAccount.fromMgmtUserAccount(mgmtUserAccount); + + // Assert - Verify proper instance creation + Assert.NotNull(mgmtResult); + Assert.NotNull(psResult); + Assert.IsType(mgmtResult); + Assert.IsType(psResult); + + // Verify new instances are created + Assert.NotSame(mgmtUserAccount, mgmtResult); + Assert.NotSame(psUserAccount, psResult); + } + + #endregion + + #region Performance Tests + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void UserAccountConversions_PerformanceTest_ExecutesQuickly() + { + // This test ensures the conversions are efficient with multiple operations + + // Arrange + var psUserAccounts = new PSUserAccount[50]; + var mgmtUserAccounts = new UserAccount[50]; + + for (int i = 0; i < 50; i++) + { + var elevationLevel = i % 2 == 0 + ? Microsoft.Azure.Batch.Common.ElevationLevel.NonAdmin + : Microsoft.Azure.Batch.Common.ElevationLevel.Admin; + psUserAccounts[i] = new PSUserAccount( + name: $"psuser{i}", + password: $"pspassword{i}", + elevationLevel: elevationLevel); + + var mgmtElevationLevel = i % 2 == 0 + ? ElevationLevel.NonAdmin + : ElevationLevel.Admin; + mgmtUserAccounts[i] = new UserAccount( + name: $"mgmtuser{i}", + password: $"mgmtpassword{i}", + elevationLevel: mgmtElevationLevel); + } + + // Act & Assert - Multiple conversions should complete without delay + for (int i = 0; i < 10; i++) + { + foreach (var psUserAccount in psUserAccounts) + { + var mgmtResult = psUserAccount.toMgmtUserAccount(); + Assert.NotNull(mgmtResult); + } + + foreach (var mgmtUserAccount in mgmtUserAccounts) + { + var psResult = PSUserAccount.fromMgmtUserAccount(mgmtUserAccount); + Assert.NotNull(psResult); + } + } + } + + #endregion + + #region Edge Case and Validation Tests + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void UserAccountConversions_EmptyStringHandling_PreservesValues() + { + // Test handling of empty strings (which may be valid in some contexts) + + var edgeCaseScenarios = new[] + { + new { Name = "", Password = "validpassword", Description = "Empty name" }, + new { Name = "validuser", Password = "", Description = "Empty password" }, + new { Name = " ", Password = "validpassword", Description = "Whitespace name" }, + new { Name = "validuser", Password = " ", Description = "Whitespace password" } + }; + + foreach (var scenario in edgeCaseScenarios) + { + // Arrange + var psUserAccount = new PSUserAccount( + name: scenario.Name, + password: scenario.Password, + elevationLevel: Microsoft.Azure.Batch.Common.ElevationLevel.NonAdmin); + + // Act + var mgmtUserAccount = psUserAccount.toMgmtUserAccount(); + var roundTripPs = PSUserAccount.fromMgmtUserAccount(mgmtUserAccount); + + // Assert - Values should be preserved exactly as provided + Assert.NotNull(mgmtUserAccount); + Assert.NotNull(roundTripPs); + Assert.Equal(scenario.Name, mgmtUserAccount.Name); + Assert.Equal(scenario.Password, mgmtUserAccount.Password); + Assert.Equal(scenario.Name, roundTripPs.Name); + Assert.Equal(scenario.Password, roundTripPs.Password); + } + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void UserAccountConversions_ConfigurationCombinations_HandleCorrectly() + { + // Test various combinations of Linux and Windows configurations + + var configurationScenarios = new[] + { + new { + HasLinux = true, + HasWindows = false, + Description = "Linux configuration only" + }, + new { + HasLinux = false, + HasWindows = true, + Description = "Windows configuration only" + }, + new { + HasLinux = true, + HasWindows = true, + Description = "Both Linux and Windows configurations" + }, + new { + HasLinux = false, + HasWindows = false, + Description = "No platform-specific configurations" + } + }; + + foreach (var scenario in configurationScenarios) + { + // Arrange + PSLinuxUserConfiguration linuxConfig = scenario.HasLinux + ? new PSLinuxUserConfiguration(uid: 1000, gid: 1000, sshPrivateKey: "test-key") + : null; + PSWindowsUserConfiguration windowsConfig = scenario.HasWindows + ? new PSWindowsUserConfiguration(loginMode: Microsoft.Azure.Batch.Common.LoginMode.Interactive) + : null; + + var psUserAccount = new PSUserAccount( + name: "configtest", + password: "configpassword", + elevationLevel: Microsoft.Azure.Batch.Common.ElevationLevel.NonAdmin, + linuxUserConfiguration: linuxConfig, + windowsUserConfiguration: windowsConfig); + + // Act + var mgmtUserAccount = psUserAccount.toMgmtUserAccount(); + var roundTripPs = PSUserAccount.fromMgmtUserAccount(mgmtUserAccount); + + // Assert - Configuration presence should be preserved + Assert.NotNull(mgmtUserAccount); + Assert.NotNull(roundTripPs); + + if (scenario.HasLinux) + { + Assert.NotNull(mgmtUserAccount.LinuxUserConfiguration); + Assert.NotNull(roundTripPs.LinuxUserConfiguration); + Assert.Equal(1000, mgmtUserAccount.LinuxUserConfiguration.Uid); + Assert.Equal(1000, roundTripPs.LinuxUserConfiguration.Uid); + } + else + { + Assert.Null(mgmtUserAccount.LinuxUserConfiguration); + Assert.Null(roundTripPs.LinuxUserConfiguration); + } + + if (scenario.HasWindows) + { + Assert.NotNull(mgmtUserAccount.WindowsUserConfiguration); + Assert.NotNull(roundTripPs.WindowsUserConfiguration); + Assert.Equal(LoginMode.Interactive, mgmtUserAccount.WindowsUserConfiguration.LoginMode.Value); + Assert.Equal(Microsoft.Azure.Batch.Common.LoginMode.Interactive, roundTripPs.WindowsUserConfiguration.LoginMode.Value); + } + else + { + Assert.Null(mgmtUserAccount.WindowsUserConfiguration); + Assert.Null(roundTripPs.WindowsUserConfiguration); + } + } + } + + #endregion + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Test/Models/PSVMDiskSecurityProfileTests.cs b/src/Batch/Batch.Test/Models/PSVMDiskSecurityProfileTests.cs new file mode 100644 index 000000000000..1c751cc650d9 --- /dev/null +++ b/src/Batch/Batch.Test/Models/PSVMDiskSecurityProfileTests.cs @@ -0,0 +1,757 @@ +// ----------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ----------------------------------------------------------------------------- + +using Microsoft.Azure.Commands.Batch.Models; +using Microsoft.Azure.Management.Batch.Models; +using System; +using Xunit; + +namespace Microsoft.Azure.Commands.Batch.Test.ModelsConversions +{ + public class PSVMDiskSecurityProfileTests + { + #region ToMgmtVMDiskSecurityProfile Tests + + [Fact] + public void ToMgmtVMDiskSecurityProfile_WithNonPersistedTPM_ReturnsCorrectMapping() + { + // Arrange + var psSecurityProfile = new PSVMDiskSecurityProfile() + { + SecurityEncryptionType = "NonPersistedTPM" + }; + + // Act + var result = psSecurityProfile.ToMgmtVMDiskSecurityProfile(); + + // Assert + Assert.NotNull(result); + Assert.Equal("NonPersistedTPM", result.SecurityEncryptionType); + } + + [Fact] + public void ToMgmtVMDiskSecurityProfile_WithVMGuestStateOnly_ReturnsCorrectMapping() + { + // Arrange + var psSecurityProfile = new PSVMDiskSecurityProfile() + { + SecurityEncryptionType = "VMGuestStateOnly" + }; + + // Act + var result = psSecurityProfile.ToMgmtVMDiskSecurityProfile(); + + // Assert + Assert.NotNull(result); + Assert.Equal("VMGuestStateOnly", result.SecurityEncryptionType); + } + + [Theory] + [InlineData("NonPersistedTPM")] + [InlineData("VMGuestStateOnly")] + [InlineData(null)] + [InlineData("")] + public void ToMgmtVMDiskSecurityProfile_AllValidValues_ReturnsCorrectMapping(string encryptionType) + { + // Arrange + var psSecurityProfile = new PSVMDiskSecurityProfile() + { + SecurityEncryptionType = encryptionType + }; + + // Act + var result = psSecurityProfile.ToMgmtVMDiskSecurityProfile(); + + // Assert + Assert.NotNull(result); + Assert.Equal(encryptionType, result.SecurityEncryptionType); + } + + [Fact] + public void ToMgmtVMDiskSecurityProfile_AlwaysCreatesNewInstance() + { + // Arrange + var psSecurityProfile = new PSVMDiskSecurityProfile() + { + SecurityEncryptionType = "NonPersistedTPM" + }; + + // Act + var result1 = psSecurityProfile.ToMgmtVMDiskSecurityProfile(); + var result2 = psSecurityProfile.ToMgmtVMDiskSecurityProfile(); + + // Assert + Assert.NotNull(result1); + Assert.NotNull(result2); + Assert.NotSame(result1, result2); + } + + [Fact] + public void ToMgmtVMDiskSecurityProfile_VerifyVMDiskSecurityProfileType() + { + // Arrange + var psSecurityProfile = new PSVMDiskSecurityProfile() + { + SecurityEncryptionType = "VMGuestStateOnly" + }; + + // Act + var result = psSecurityProfile.ToMgmtVMDiskSecurityProfile(); + + // Assert + Assert.NotNull(result); + Assert.IsType(result); + } + + [Fact] + public void ToMgmtVMDiskSecurityProfile_NonPersistedTPMSemantics_PreservesEncryptionStrategy() + { + // Arrange - NonPersistedTPM strategy for not persisting firmware state + var psSecurityProfile = new PSVMDiskSecurityProfile() + { + SecurityEncryptionType = "NonPersistedTPM" + }; + + // Act + var result = psSecurityProfile.ToMgmtVMDiskSecurityProfile(); + + // Assert + Assert.NotNull(result); + Assert.Equal("NonPersistedTPM", result.SecurityEncryptionType); + // NonPersistedTPM semantics: Firmware state is not persisted in the VMGuestState blob for security + } + + [Fact] + public void ToMgmtVMDiskSecurityProfile_VMGuestStateOnlySemantics_PreservesEncryptionStrategy() + { + // Arrange - VMGuestStateOnly strategy for encrypting just the VMGuestState blob + var psSecurityProfile = new PSVMDiskSecurityProfile() + { + SecurityEncryptionType = "VMGuestStateOnly" + }; + + // Act + var result = psSecurityProfile.ToMgmtVMDiskSecurityProfile(); + + // Assert + Assert.NotNull(result); + Assert.Equal("VMGuestStateOnly", result.SecurityEncryptionType); + // VMGuestStateOnly semantics: Only the VMGuestState blob is encrypted for confidentiality + } + + #endregion + + #region FromMgmtVMDiskSecurityProfile Tests + + [Fact] + public void FromMgmtVMDiskSecurityProfile_WithNonPersistedTPM_ReturnsCorrectMapping() + { + // Arrange + var mgmtSecurityProfile = new VMDiskSecurityProfile("NonPersistedTPM"); + + // Act + var result = PSVMDiskSecurityProfile.FromMgmtVMDiskSecurityProfile(mgmtSecurityProfile); + + // Assert + Assert.NotNull(result); + Assert.Equal("NonPersistedTPM", result.SecurityEncryptionType); + } + + [Fact] + public void FromMgmtVMDiskSecurityProfile_WithVMGuestStateOnly_ReturnsCorrectMapping() + { + // Arrange + var mgmtSecurityProfile = new VMDiskSecurityProfile("VMGuestStateOnly"); + + // Act + var result = PSVMDiskSecurityProfile.FromMgmtVMDiskSecurityProfile(mgmtSecurityProfile); + + // Assert + Assert.NotNull(result); + Assert.Equal("VMGuestStateOnly", result.SecurityEncryptionType); + } + + [Theory] + [InlineData("NonPersistedTPM")] + [InlineData("VMGuestStateOnly")] + [InlineData(null)] + [InlineData("")] + public void FromMgmtVMDiskSecurityProfile_AllValidValues_ReturnsCorrectMapping(string encryptionType) + { + // Arrange + var mgmtSecurityProfile = new VMDiskSecurityProfile(encryptionType); + + // Act + var result = PSVMDiskSecurityProfile.FromMgmtVMDiskSecurityProfile(mgmtSecurityProfile); + + // Assert + Assert.NotNull(result); + Assert.Equal(encryptionType, result.SecurityEncryptionType); + } + + [Fact] + public void FromMgmtVMDiskSecurityProfile_WithNullInput_ReturnsNull() + { + // Act + var result = PSVMDiskSecurityProfile.FromMgmtVMDiskSecurityProfile(null); + + // Assert + Assert.Null(result); + } + + [Fact] + public void FromMgmtVMDiskSecurityProfile_VerifyPSVMDiskSecurityProfileType() + { + // Arrange + var mgmtSecurityProfile = new VMDiskSecurityProfile("NonPersistedTPM"); + + // Act + var result = PSVMDiskSecurityProfile.FromMgmtVMDiskSecurityProfile(mgmtSecurityProfile); + + // Assert + Assert.NotNull(result); + Assert.IsType(result); + } + + [Fact] + public void FromMgmtVMDiskSecurityProfile_NonPersistedTPMSemantics_PreservesEncryptionStrategy() + { + // Arrange + var mgmtSecurityProfile = new VMDiskSecurityProfile("NonPersistedTPM"); + + // Act + var result = PSVMDiskSecurityProfile.FromMgmtVMDiskSecurityProfile(mgmtSecurityProfile); + + // Assert + Assert.NotNull(result); + Assert.Equal("NonPersistedTPM", result.SecurityEncryptionType); + // NonPersistedTPM semantics preserved: Firmware state not persisted for security + } + + [Fact] + public void FromMgmtVMDiskSecurityProfile_VMGuestStateOnlySemantics_PreservesEncryptionStrategy() + { + // Arrange + var mgmtSecurityProfile = new VMDiskSecurityProfile("VMGuestStateOnly"); + + // Act + var result = PSVMDiskSecurityProfile.FromMgmtVMDiskSecurityProfile(mgmtSecurityProfile); + + // Assert + Assert.NotNull(result); + Assert.Equal("VMGuestStateOnly", result.SecurityEncryptionType); + // VMGuestStateOnly semantics preserved: VMGuestState blob encryption for confidentiality + } + + [Fact] + public void FromMgmtVMDiskSecurityProfile_WithDefaultVMDiskSecurityProfile_HandlesCorrectly() + { + // Arrange + var mgmtSecurityProfile = new VMDiskSecurityProfile(); // Uses default constructor + + // Act + var result = PSVMDiskSecurityProfile.FromMgmtVMDiskSecurityProfile(mgmtSecurityProfile); + + // Assert + Assert.NotNull(result); + // The result should handle the default SecurityEncryptionType from the management profile + Assert.True(result.SecurityEncryptionType == null || + result.SecurityEncryptionType == "NonPersistedTPM" || + result.SecurityEncryptionType == "VMGuestStateOnly" || + result.SecurityEncryptionType == ""); + } + + #endregion + + #region Round-trip Conversion Tests + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesNonPersistedTPMValue() + { + // Arrange + var originalPsSecurityProfile = new PSVMDiskSecurityProfile() + { + SecurityEncryptionType = "NonPersistedTPM" + }; + + // Act + var mgmtSecurityProfile = originalPsSecurityProfile.ToMgmtVMDiskSecurityProfile(); + var roundTripPsSecurityProfile = PSVMDiskSecurityProfile.FromMgmtVMDiskSecurityProfile(mgmtSecurityProfile); + + // Assert + Assert.NotNull(roundTripPsSecurityProfile); + Assert.Equal(originalPsSecurityProfile.SecurityEncryptionType, roundTripPsSecurityProfile.SecurityEncryptionType); + Assert.Equal("NonPersistedTPM", roundTripPsSecurityProfile.SecurityEncryptionType); + } + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesVMGuestStateOnlyValue() + { + // Arrange + var originalPsSecurityProfile = new PSVMDiskSecurityProfile() + { + SecurityEncryptionType = "VMGuestStateOnly" + }; + + // Act + var mgmtSecurityProfile = originalPsSecurityProfile.ToMgmtVMDiskSecurityProfile(); + var roundTripPsSecurityProfile = PSVMDiskSecurityProfile.FromMgmtVMDiskSecurityProfile(mgmtSecurityProfile); + + // Assert + Assert.NotNull(roundTripPsSecurityProfile); + Assert.Equal(originalPsSecurityProfile.SecurityEncryptionType, roundTripPsSecurityProfile.SecurityEncryptionType); + Assert.Equal("VMGuestStateOnly", roundTripPsSecurityProfile.SecurityEncryptionType); + } + + [Theory] + [InlineData("NonPersistedTPM")] + [InlineData("VMGuestStateOnly")] + [InlineData(null)] + [InlineData("")] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesAllValidValues(string originalEncryptionType) + { + // Arrange + var originalPsSecurityProfile = new PSVMDiskSecurityProfile() + { + SecurityEncryptionType = originalEncryptionType + }; + + // Act + var mgmtSecurityProfile = originalPsSecurityProfile.ToMgmtVMDiskSecurityProfile(); + var roundTripPsSecurityProfile = PSVMDiskSecurityProfile.FromMgmtVMDiskSecurityProfile(mgmtSecurityProfile); + + // Assert + Assert.NotNull(roundTripPsSecurityProfile); + Assert.Equal(originalEncryptionType, roundTripPsSecurityProfile.SecurityEncryptionType); + } + + [Fact] + public void RoundTripConversion_FromMgmtAndToMgmt_PreservesValues() + { + // Arrange + var originalMgmtSecurityProfile = new VMDiskSecurityProfile("NonPersistedTPM"); + + // Act + var psSecurityProfile = PSVMDiskSecurityProfile.FromMgmtVMDiskSecurityProfile(originalMgmtSecurityProfile); + var roundTripMgmtSecurityProfile = psSecurityProfile.ToMgmtVMDiskSecurityProfile(); + + // Assert + Assert.NotNull(roundTripMgmtSecurityProfile); + Assert.Equal(originalMgmtSecurityProfile.SecurityEncryptionType, roundTripMgmtSecurityProfile.SecurityEncryptionType); + Assert.Equal("NonPersistedTPM", roundTripMgmtSecurityProfile.SecurityEncryptionType); + } + + [Fact] + public void RoundTripConversion_WithNullSecurityProfile_HandlesCorrectly() + { + // Arrange + VMDiskSecurityProfile nullMgmtSecurityProfile = null; + + // Act + var psSecurityProfile = PSVMDiskSecurityProfile.FromMgmtVMDiskSecurityProfile(nullMgmtSecurityProfile); + + // Assert + Assert.Null(psSecurityProfile); + } + + #endregion + + #region Integration Tests + + [Fact] + public void VMDiskSecurityProfileConversions_BothDirections_MaintainSemanticEquivalence() + { + // This test ensures that the semantic meaning is preserved across conversions + + // Test NonPersistedTPM semantics - Firmware state not persisted for security + var psNonPersistedTPM = new PSVMDiskSecurityProfile() + { + SecurityEncryptionType = "NonPersistedTPM" + }; + var mgmtNonPersistedTPM = psNonPersistedTPM.ToMgmtVMDiskSecurityProfile(); + var backToPs = PSVMDiskSecurityProfile.FromMgmtVMDiskSecurityProfile(mgmtNonPersistedTPM); + + Assert.Equal("NonPersistedTPM", mgmtNonPersistedTPM.SecurityEncryptionType); + Assert.Equal("NonPersistedTPM", backToPs.SecurityEncryptionType); + + // Test VMGuestStateOnly semantics - VMGuestState blob encryption + var psVMGuestStateOnly = new PSVMDiskSecurityProfile() + { + SecurityEncryptionType = "VMGuestStateOnly" + }; + var mgmtVMGuestStateOnly = psVMGuestStateOnly.ToMgmtVMDiskSecurityProfile(); + var backToPsVMGuest = PSVMDiskSecurityProfile.FromMgmtVMDiskSecurityProfile(mgmtVMGuestStateOnly); + + Assert.Equal("VMGuestStateOnly", mgmtVMGuestStateOnly.SecurityEncryptionType); + Assert.Equal("VMGuestStateOnly", backToPsVMGuest.SecurityEncryptionType); + } + + [Fact] + public void VMDiskSecurityProfileConversions_NullHandling_WorksCorrectly() + { + // Test null handling in conversions + + // Act + var resultFromNull = PSVMDiskSecurityProfile.FromMgmtVMDiskSecurityProfile(null); + + // Assert + Assert.Null(resultFromNull); + } + + [Fact] + public void VMDiskSecurityProfileConversions_ConfidentialVMContext_VerifyCorrectUsage() + { + // This test validates the conversions work correctly in the context of Confidential VM configuration + // VMDiskSecurityProfile is used to configure security settings for managed disks in Confidential VMs + + // Arrange - Test Confidential VM disk security scenarios + var confidentialVMScenarios = new[] + { + // High security scenario with NonPersistedTPM + new { + EncryptionType = "NonPersistedTPM", + Description = "Confidential VM with non-persisted TPM for maximum security" + }, + // VMGuestState encryption scenario + new { + EncryptionType = "VMGuestStateOnly", + Description = "Confidential VM with VMGuestState blob encryption" + } + }; + + foreach (var scenario in confidentialVMScenarios) + { + // Act + var psSecurityProfile = new PSVMDiskSecurityProfile() + { + SecurityEncryptionType = scenario.EncryptionType + }; + var mgmtSecurityProfile = psSecurityProfile.ToMgmtVMDiskSecurityProfile(); + + // Assert - Should convert correctly for Confidential VM configuration + Assert.NotNull(mgmtSecurityProfile); + Assert.Equal(scenario.EncryptionType, mgmtSecurityProfile.SecurityEncryptionType); + + // Verify round-trip conversion maintains Confidential VM semantics + var backToPs = PSVMDiskSecurityProfile.FromMgmtVMDiskSecurityProfile(mgmtSecurityProfile); + Assert.NotNull(backToPs); + Assert.Equal(scenario.EncryptionType, backToPs.SecurityEncryptionType); + } + } + + [Fact] + public void VMDiskSecurityProfileConversions_InstanceCreation_VerifyBehavior() + { + // This test verifies that the conversion methods create appropriate instances + + // Arrange + var psSecurityProfile = new PSVMDiskSecurityProfile() + { + SecurityEncryptionType = "NonPersistedTPM" + }; + var mgmtSecurityProfile = new VMDiskSecurityProfile("VMGuestStateOnly"); + + // Act + var mgmtResult = psSecurityProfile.ToMgmtVMDiskSecurityProfile(); + var psResult = PSVMDiskSecurityProfile.FromMgmtVMDiskSecurityProfile(mgmtSecurityProfile); + + // Assert - Verify proper instance creation + Assert.NotNull(mgmtResult); + Assert.NotNull(psResult); + Assert.IsType(mgmtResult); + Assert.IsType(psResult); + + // Verify new instances are created + Assert.NotSame(mgmtSecurityProfile, mgmtResult); + Assert.NotSame(psSecurityProfile, psResult); + } + + [Fact] + public void VMDiskSecurityProfileConversions_DefaultValues_HandleCorrectly() + { + // Test conversion with default/null security encryption type values + + // Arrange + var defaultPsSecurityProfile = new PSVMDiskSecurityProfile(); + var defaultMgmtSecurityProfile = new VMDiskSecurityProfile(); // Uses default constructor + + // Act + var mgmtResult = defaultPsSecurityProfile.ToMgmtVMDiskSecurityProfile(); + var psResult = PSVMDiskSecurityProfile.FromMgmtVMDiskSecurityProfile(defaultMgmtSecurityProfile); + + // Assert + Assert.NotNull(mgmtResult); + Assert.NotNull(psResult); + // Default values should be preserved + Assert.Equal(defaultPsSecurityProfile.SecurityEncryptionType, mgmtResult.SecurityEncryptionType); + Assert.Equal(defaultMgmtSecurityProfile.SecurityEncryptionType, psResult.SecurityEncryptionType); + } + + #endregion + + #region Performance and Edge Case Tests + + [Fact] + public void VMDiskSecurityProfileConversions_PerformanceTest_ExecutesQuickly() + { + // This test ensures the conversions are efficient + + // Arrange + var psSecurityProfile = new PSVMDiskSecurityProfile() + { + SecurityEncryptionType = "NonPersistedTPM" + }; + var mgmtSecurityProfile = new VMDiskSecurityProfile("VMGuestStateOnly"); + + // Act & Assert - Multiple conversions should complete without delay + for (int i = 0; i < 100; i++) + { + var mgmtResult = psSecurityProfile.ToMgmtVMDiskSecurityProfile(); + var psResult = PSVMDiskSecurityProfile.FromMgmtVMDiskSecurityProfile(mgmtSecurityProfile); + + Assert.NotNull(mgmtResult); + Assert.NotNull(psResult); + } + } + + [Fact] + public void VMDiskSecurityProfileConversions_TypeSafety_VerifyCorrectTypes() + { + // Test that conversions return the correct types + + // Arrange + var psSecurityProfile = new PSVMDiskSecurityProfile() + { + SecurityEncryptionType = "NonPersistedTPM" + }; + var mgmtSecurityProfile = new VMDiskSecurityProfile("VMGuestStateOnly"); + + // Act + var mgmtResult = psSecurityProfile.ToMgmtVMDiskSecurityProfile(); + var psResult = PSVMDiskSecurityProfile.FromMgmtVMDiskSecurityProfile(mgmtSecurityProfile); + + // Assert - Verify correct types are returned + Assert.IsType(mgmtResult); + Assert.IsType(psResult); + } + + [Fact] + public void VMDiskSecurityProfileConversions_SecurityEncryptionTypeProperty_AccessibleAfterConversion() + { + // Test that the SecurityEncryptionType property is accessible and correct after conversion + + // Arrange + var originalEncryptionType = "VMGuestStateOnly"; + var psSecurityProfile = new PSVMDiskSecurityProfile() + { + SecurityEncryptionType = originalEncryptionType + }; + + // Act + var mgmtSecurityProfile = psSecurityProfile.ToMgmtVMDiskSecurityProfile(); + var convertedPsSecurityProfile = PSVMDiskSecurityProfile.FromMgmtVMDiskSecurityProfile(mgmtSecurityProfile); + + // Assert + Assert.Equal(originalEncryptionType, psSecurityProfile.SecurityEncryptionType); + Assert.Equal(originalEncryptionType, mgmtSecurityProfile.SecurityEncryptionType); + Assert.Equal(originalEncryptionType, convertedPsSecurityProfile.SecurityEncryptionType); + } + + [Fact] + public void VMDiskSecurityProfileConversions_EdgeCaseStringValues_HandleCorrectly() + { + // Test conversion with various edge case string values + + var testEncryptionTypes = new[] + { + // Valid values + "NonPersistedTPM", + "VMGuestStateOnly", + + // Edge cases + null, + "", + " ", // Whitespace + " NonPersistedTPM ", // Leading/trailing whitespace + "nonpersistedtpm", // Different casing + "VMGUESTSTATEONLY", // Different casing + + // Invalid values (should still be preserved) + "InvalidType", + "SomeOtherValue" + }; + + foreach (var encryptionType in testEncryptionTypes) + { + // Arrange + var psSecurityProfile = new PSVMDiskSecurityProfile() + { + SecurityEncryptionType = encryptionType + }; + + // Act + var mgmtResult = psSecurityProfile.ToMgmtVMDiskSecurityProfile(); + var roundTripResult = PSVMDiskSecurityProfile.FromMgmtVMDiskSecurityProfile(mgmtResult); + + // Assert + Assert.NotNull(mgmtResult); + Assert.NotNull(roundTripResult); + Assert.Equal(encryptionType, mgmtResult.SecurityEncryptionType); + Assert.Equal(encryptionType, roundTripResult.SecurityEncryptionType); + } + } + + #endregion + + #region Constructor and Internal Object Tests + + [Fact] + public void PSVMDiskSecurityProfile_Constructor_InitializesCorrectly() + { + // Test that the PS constructor properly initializes the internal object + + // Arrange & Act + var psSecurityProfile = new PSVMDiskSecurityProfile(); + + // Assert + Assert.Null(psSecurityProfile.SecurityEncryptionType); + } + + [Fact] + public void PSVMDiskSecurityProfile_InternalConstructor_ThrowsOnNullOmObject() + { + // Test that the internal constructor validates the omObject parameter + + // Act & Assert + Assert.Throws(() => + new PSVMDiskSecurityProfile((Microsoft.Azure.Batch.VMDiskSecurityProfile)null)); + } + + [Fact] + public void PSVMDiskSecurityProfile_InternalConstructor_WorksWithValidOmObject() + { + // Test that the internal constructor works with a valid omObject + + // Arrange + var omObject = new Microsoft.Azure.Batch.VMDiskSecurityProfile() + { + SecurityEncryptionType = "NonPersistedTPM" + }; + + // Act + var psSecurityProfile = new PSVMDiskSecurityProfile(omObject); + + // Assert + Assert.NotNull(psSecurityProfile); + Assert.Equal("NonPersistedTPM", psSecurityProfile.SecurityEncryptionType); + } + + [Fact] + public void PSVMDiskSecurityProfile_PropertySetter_WorksCorrectly() + { + // Test that property setters work correctly + + // Arrange + var psSecurityProfile = new PSVMDiskSecurityProfile(); + + // Act + psSecurityProfile.SecurityEncryptionType = "VMGuestStateOnly"; + + // Assert + Assert.Equal("VMGuestStateOnly", psSecurityProfile.SecurityEncryptionType); + } + + #endregion + + #region Confidential Computing Security Tests + + [Fact] + public void VMDiskSecurityProfileConversions_ConfidentialComputingSecurity_VerifySemantics() + { + // This test validates that the security profile types maintain their security characteristics + // through the conversion process for Confidential Computing scenarios + + var securityProfiles = new[] + { + new { + Type = "NonPersistedTPM", + SecurityLevel = "Maximum", + Description = "Firmware state not persisted in VMGuestState blob", + UseCases = new[] { "High-security workloads", "Government compliance", "Financial services" } + }, + new { + Type = "VMGuestStateOnly", + SecurityLevel = "Standard", + Description = "Encryption of VMGuestState blob only", + UseCases = new[] { "General confidential computing", "Data protection", "Privacy-sensitive workloads" } + } + }; + + foreach (var profile in securityProfiles) + { + // Act - Convert to management type and back + var psSecurityProfile = new PSVMDiskSecurityProfile() + { + SecurityEncryptionType = profile.Type + }; + var mgmtType = psSecurityProfile.ToMgmtVMDiskSecurityProfile(); + var roundTripType = PSVMDiskSecurityProfile.FromMgmtVMDiskSecurityProfile(mgmtType); + + // Assert - Security characteristics should be preserved + Assert.NotNull(mgmtType); + Assert.NotNull(roundTripType); + Assert.Equal(profile.Type, roundTripType.SecurityEncryptionType); + Assert.Equal(profile.Type, mgmtType.SecurityEncryptionType); + } + } + + [Fact] + public void VMDiskSecurityProfileConversions_ConfidentialVMIntegration_VerifySemantics() + { + // This test validates the semantic usage in the context of Azure Confidential VM configuration + // VMDiskSecurityProfile is required for Confidential VMs and controls disk encryption behavior + + // NonPersistedTPM semantics - Maximum security with no firmware state persistence + var nonPersistedTPMProfile = new PSVMDiskSecurityProfile() + { + SecurityEncryptionType = "NonPersistedTPM" + }; + var mgmtNonPersistedTPMProfile = nonPersistedTPMProfile.ToMgmtVMDiskSecurityProfile(); + + Assert.NotNull(mgmtNonPersistedTPMProfile); + Assert.Equal("NonPersistedTPM", mgmtNonPersistedTPMProfile.SecurityEncryptionType); + // Use case: Maximum security for sensitive workloads where firmware state must not be persisted + + // VMGuestStateOnly semantics - Standard confidential computing encryption + var vmGuestStateOnlyProfile = new PSVMDiskSecurityProfile() + { + SecurityEncryptionType = "VMGuestStateOnly" + }; + var mgmtVMGuestStateOnlyProfile = vmGuestStateOnlyProfile.ToMgmtVMDiskSecurityProfile(); + + Assert.NotNull(mgmtVMGuestStateOnlyProfile); + Assert.Equal("VMGuestStateOnly", mgmtVMGuestStateOnlyProfile.SecurityEncryptionType); + // Use case: Standard confidential computing with VMGuestState blob encryption + + // Verify all round-trip correctly + var nonPersistedTPMRoundTrip = PSVMDiskSecurityProfile.FromMgmtVMDiskSecurityProfile(mgmtNonPersistedTPMProfile); + var vmGuestStateOnlyRoundTrip = PSVMDiskSecurityProfile.FromMgmtVMDiskSecurityProfile(mgmtVMGuestStateOnlyProfile); + + Assert.Equal("NonPersistedTPM", nonPersistedTPMRoundTrip.SecurityEncryptionType); + Assert.Equal("VMGuestStateOnly", vmGuestStateOnlyRoundTrip.SecurityEncryptionType); + } + + #endregion + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Test/Models/PSVMExtensionTests.cs b/src/Batch/Batch.Test/Models/PSVMExtensionTests.cs new file mode 100644 index 000000000000..3c16ec17a178 --- /dev/null +++ b/src/Batch/Batch.Test/Models/PSVMExtensionTests.cs @@ -0,0 +1,839 @@ +// ----------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ----------------------------------------------------------------------------- + +using Microsoft.Azure.Commands.Batch.Models; +using Microsoft.Azure.Management.Batch.Models; +using System; +using System.Collections.Generic; +using System.Linq; +using Xunit; + +namespace Microsoft.Azure.Commands.Batch.Test.ModelsConversions +{ + public class PSVMExtensionTests + { + #region toMgmtVMExtension Tests + + [Fact] + public void ToMgmtVMExtension_WithBasicProperties_ReturnsCorrectMapping() + { + // Arrange + var psExtension = new PSVMExtension("TestExtension", "Microsoft.Azure.Extensions", "CustomScript"); + + // Act + var result = psExtension.toMgmtVMExtension(); + + // Assert + Assert.NotNull(result); + Assert.Equal("TestExtension", result.Name); + Assert.Equal("Microsoft.Azure.Extensions", result.Publisher); + Assert.Equal("CustomScript", result.Type); + } + + [Fact] + public void ToMgmtVMExtension_WithAllProperties_ReturnsCorrectMapping() + { + // Arrange + var settings = new { commandToExecute = "echo Hello World" }; + var protectedSettings = new { password = "secret123" }; + var provisionAfterExtensions = new List { "Extension1", "Extension2" }; + + var psExtension = new PSVMExtension("TestExtension", "Microsoft.Azure.Extensions", "CustomScript") + { + TypeHandlerVersion = "1.10", + AutoUpgradeMinorVersion = true, + EnableAutomaticUpgrade = false, + Settings = settings, + ProtectedSettings = protectedSettings, + ProvisionAfterExtensions = provisionAfterExtensions + }; + + // Act + var result = psExtension.toMgmtVMExtension(); + + // Assert + Assert.NotNull(result); + Assert.Equal("TestExtension", result.Name); + Assert.Equal("Microsoft.Azure.Extensions", result.Publisher); + Assert.Equal("CustomScript", result.Type); + Assert.Equal("1.10", result.TypeHandlerVersion); + Assert.Equal(true, result.AutoUpgradeMinorVersion); + Assert.Equal(false, result.EnableAutomaticUpgrade); + Assert.Same(settings, result.Settings); + Assert.Same(protectedSettings, result.ProtectedSettings); + Assert.Equal(provisionAfterExtensions, result.ProvisionAfterExtensions); + } + + [Fact] + public void ToMgmtVMExtension_WithNullOptionalProperties_HandlesCorrectly() + { + // Arrange + var psExtension = new PSVMExtension("TestExtension", "Microsoft.Azure.Extensions", "CustomScript") + { + TypeHandlerVersion = null, + AutoUpgradeMinorVersion = null, + EnableAutomaticUpgrade = null, + Settings = null, + ProtectedSettings = null, + ProvisionAfterExtensions = null + }; + + // Act + var result = psExtension.toMgmtVMExtension(); + + // Assert + Assert.NotNull(result); + Assert.Equal("TestExtension", result.Name); + Assert.Equal("Microsoft.Azure.Extensions", result.Publisher); + Assert.Equal("CustomScript", result.Type); + Assert.Null(result.TypeHandlerVersion); + Assert.Null(result.AutoUpgradeMinorVersion); + Assert.Null(result.EnableAutomaticUpgrade); + Assert.Null(result.Settings); + Assert.Null(result.ProtectedSettings); + Assert.Null(result.ProvisionAfterExtensions); + } + + [Fact] + public void ToMgmtVMExtension_AlwaysCreatesNewInstance() + { + // Arrange + var psExtension = new PSVMExtension("TestExtension", "Microsoft.Azure.Extensions", "CustomScript"); + + // Act + var result1 = psExtension.toMgmtVMExtension(); + var result2 = psExtension.toMgmtVMExtension(); + + // Assert + Assert.NotNull(result1); + Assert.NotNull(result2); + Assert.NotSame(result1, result2); + } + + [Fact] + public void ToMgmtVMExtension_VerifyVMExtensionType() + { + // Arrange + var psExtension = new PSVMExtension("TestExtension", "Microsoft.Azure.Extensions", "CustomScript"); + + // Act + var result = psExtension.toMgmtVMExtension(); + + // Assert + Assert.NotNull(result); + Assert.IsType(result); + } + + [Fact] + public void ToMgmtVMExtension_WithComplexSettings_PreservesObjectReferences() + { + // Arrange + var complexSettings = new + { + script = "startup.ps1", + parameters = new { param1 = "value1", param2 = 42 }, + options = new[] { "option1", "option2" } + }; + + var psExtension = new PSVMExtension("TestExtension", "Microsoft.Azure.Extensions", "CustomScript") + { + Settings = complexSettings + }; + + // Act + var result = psExtension.toMgmtVMExtension(); + + // Assert + Assert.NotNull(result); + Assert.Same(complexSettings, result.Settings); + } + + [Fact] + public void ToMgmtVMExtension_WithEmptyProvisionAfterExtensions_HandlesCorrectly() + { + // Arrange + var psExtension = new PSVMExtension("TestExtension", "Microsoft.Azure.Extensions", "CustomScript") + { + ProvisionAfterExtensions = new List() + }; + + // Act + var result = psExtension.toMgmtVMExtension(); + + // Assert + Assert.NotNull(result); + Assert.NotNull(result.ProvisionAfterExtensions); + Assert.Empty(result.ProvisionAfterExtensions); + } + + #endregion + + #region fromMgmtVMExtension Tests + + [Fact] + public void FromMgmtVMExtension_WithBasicProperties_ReturnsCorrectMapping() + { + // Arrange + var mgmtExtension = new VMExtension("TestExtension", "Microsoft.Azure.Extensions", "CustomScript"); + + // Act + var result = PSVMExtension.fromMgmtVMExtension(mgmtExtension); + + // Assert + Assert.NotNull(result); + Assert.Equal("TestExtension", result.Name); + Assert.Equal("Microsoft.Azure.Extensions", result.Publisher); + Assert.Equal("CustomScript", result.Type); + } + + [Fact] + public void FromMgmtVMExtension_WithAllProperties_ReturnsCorrectMapping() + { + // Arrange + var settings = new { commandToExecute = "echo Hello World" }; + var protectedSettings = new { password = "secret123" }; + var provisionAfterExtensions = new List { "Extension1", "Extension2" }; + + var mgmtExtension = new VMExtension( + name: "TestExtension", + publisher: "Microsoft.Azure.Extensions", + type: "CustomScript", + typeHandlerVersion: "1.10", + autoUpgradeMinorVersion: true, + enableAutomaticUpgrade: false, + settings: settings, + protectedSettings: protectedSettings, + provisionAfterExtensions: provisionAfterExtensions + ); + + // Act + var result = PSVMExtension.fromMgmtVMExtension(mgmtExtension); + + // Assert + Assert.NotNull(result); + Assert.Equal("TestExtension", result.Name); + Assert.Equal("Microsoft.Azure.Extensions", result.Publisher); + Assert.Equal("CustomScript", result.Type); + Assert.Equal("1.10", result.TypeHandlerVersion); + Assert.Equal(true, result.AutoUpgradeMinorVersion); + Assert.Equal(false, result.EnableAutomaticUpgrade); + Assert.Same(settings, result.Settings); + Assert.Same(protectedSettings, result.ProtectedSettings); + Assert.Equal(provisionAfterExtensions, result.ProvisionAfterExtensions); + } + + [Fact] + public void FromMgmtVMExtension_WithNullOptionalProperties_HandlesCorrectly() + { + // Arrange + var mgmtExtension = new VMExtension( + name: "TestExtension", + publisher: "Microsoft.Azure.Extensions", + type: "CustomScript", + typeHandlerVersion: null, + autoUpgradeMinorVersion: null, + enableAutomaticUpgrade: null, + settings: null, + protectedSettings: null, + provisionAfterExtensions: null + ); + + // Act + var result = PSVMExtension.fromMgmtVMExtension(mgmtExtension); + + // Assert + Assert.NotNull(result); + Assert.Equal("TestExtension", result.Name); + Assert.Equal("Microsoft.Azure.Extensions", result.Publisher); + Assert.Equal("CustomScript", result.Type); + Assert.Null(result.TypeHandlerVersion); + Assert.Null(result.AutoUpgradeMinorVersion); + Assert.Null(result.EnableAutomaticUpgrade); + Assert.Null(result.Settings); + Assert.Null(result.ProtectedSettings); + Assert.Null(result.ProvisionAfterExtensions); + } + + [Fact] + public void FromMgmtVMExtension_WithNullInput_ReturnsNull() + { + // Act + var result = PSVMExtension.fromMgmtVMExtension(null); + + // Assert + Assert.Null(result); + } + + [Fact] + public void FromMgmtVMExtension_VerifyPSVMExtensionType() + { + // Arrange + var mgmtExtension = new VMExtension("TestExtension", "Microsoft.Azure.Extensions", "CustomScript"); + + // Act + var result = PSVMExtension.fromMgmtVMExtension(mgmtExtension); + + // Assert + Assert.NotNull(result); + Assert.IsType(result); + } + + [Fact] + public void FromMgmtVMExtension_WithComplexSettings_PreservesObjectReferences() + { + // Arrange + var complexProtectedSettings = new + { + storageAccountKey = "key123", + credentials = new { username = "admin", password = "secret" } + }; + + var mgmtExtension = new VMExtension( + name: "TestExtension", + publisher: "Microsoft.Azure.Extensions", + type: "CustomScript", + protectedSettings: complexProtectedSettings + ); + + // Act + var result = PSVMExtension.fromMgmtVMExtension(mgmtExtension); + + // Assert + Assert.NotNull(result); + Assert.Same(complexProtectedSettings, result.ProtectedSettings); + } + + #endregion + + #region Round-trip Conversion Tests + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesBasicProperties() + { + // Arrange + var originalPsExtension = new PSVMExtension("TestExtension", "Microsoft.Azure.Extensions", "CustomScript"); + + // Act + var mgmtExtension = originalPsExtension.toMgmtVMExtension(); + var roundTripPsExtension = PSVMExtension.fromMgmtVMExtension(mgmtExtension); + + // Assert + Assert.NotNull(roundTripPsExtension); + Assert.Equal(originalPsExtension.Name, roundTripPsExtension.Name); + Assert.Equal(originalPsExtension.Publisher, roundTripPsExtension.Publisher); + Assert.Equal(originalPsExtension.Type, roundTripPsExtension.Type); + } + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesAllProperties() + { + // Arrange + var settings = new { script = "test.ps1" }; + var protectedSettings = new { key = "secret" }; + var provisionAfterExtensions = new List { "Ext1", "Ext2" }; + + var originalPsExtension = new PSVMExtension("TestExtension", "Microsoft.Azure.Extensions", "CustomScript") + { + TypeHandlerVersion = "2.0", + AutoUpgradeMinorVersion = true, + EnableAutomaticUpgrade = false, + Settings = settings, + ProtectedSettings = protectedSettings, + ProvisionAfterExtensions = provisionAfterExtensions + }; + + // Act + var mgmtExtension = originalPsExtension.toMgmtVMExtension(); + var roundTripPsExtension = PSVMExtension.fromMgmtVMExtension(mgmtExtension); + + // Assert + Assert.NotNull(roundTripPsExtension); + Assert.Equal(originalPsExtension.Name, roundTripPsExtension.Name); + Assert.Equal(originalPsExtension.Publisher, roundTripPsExtension.Publisher); + Assert.Equal(originalPsExtension.Type, roundTripPsExtension.Type); + Assert.Equal(originalPsExtension.TypeHandlerVersion, roundTripPsExtension.TypeHandlerVersion); + Assert.Equal(originalPsExtension.AutoUpgradeMinorVersion, roundTripPsExtension.AutoUpgradeMinorVersion); + Assert.Equal(originalPsExtension.EnableAutomaticUpgrade, roundTripPsExtension.EnableAutomaticUpgrade); + Assert.Same(settings, roundTripPsExtension.Settings); + Assert.Same(protectedSettings, roundTripPsExtension.ProtectedSettings); + Assert.Equal(provisionAfterExtensions, roundTripPsExtension.ProvisionAfterExtensions); + } + + [Fact] + public void RoundTripConversion_FromMgmtAndToMgmt_PreservesValues() + { + // Arrange + var settings = new { fileUris = new[] { "http://example.com/script.ps1" } }; + var originalMgmtExtension = new VMExtension( + name: "TestExtension", + publisher: "Microsoft.Azure.Extensions", + type: "CustomScript", + typeHandlerVersion: "1.9", + autoUpgradeMinorVersion: false, + enableAutomaticUpgrade: true, + settings: settings + ); + + // Act + var psExtension = PSVMExtension.fromMgmtVMExtension(originalMgmtExtension); + var roundTripMgmtExtension = psExtension.toMgmtVMExtension(); + + // Assert + Assert.NotNull(roundTripMgmtExtension); + Assert.Equal(originalMgmtExtension.Name, roundTripMgmtExtension.Name); + Assert.Equal(originalMgmtExtension.Publisher, roundTripMgmtExtension.Publisher); + Assert.Equal(originalMgmtExtension.Type, roundTripMgmtExtension.Type); + Assert.Equal(originalMgmtExtension.TypeHandlerVersion, roundTripMgmtExtension.TypeHandlerVersion); + Assert.Equal(originalMgmtExtension.AutoUpgradeMinorVersion, roundTripMgmtExtension.AutoUpgradeMinorVersion); + Assert.Equal(originalMgmtExtension.EnableAutomaticUpgrade, roundTripMgmtExtension.EnableAutomaticUpgrade); + Assert.Same(settings, roundTripMgmtExtension.Settings); + } + + [Fact] + public void RoundTripConversion_WithNullValues_PreservesNulls() + { + // Arrange + var originalPsExtension = new PSVMExtension("TestExtension", "Microsoft.Azure.Extensions", "CustomScript") + { + TypeHandlerVersion = null, + AutoUpgradeMinorVersion = null, + EnableAutomaticUpgrade = null, + Settings = null, + ProtectedSettings = null, + ProvisionAfterExtensions = null + }; + + // Act + var mgmtExtension = originalPsExtension.toMgmtVMExtension(); + var roundTripPsExtension = PSVMExtension.fromMgmtVMExtension(mgmtExtension); + + // Assert + Assert.NotNull(roundTripPsExtension); + Assert.Null(roundTripPsExtension.TypeHandlerVersion); + Assert.Null(roundTripPsExtension.AutoUpgradeMinorVersion); + Assert.Null(roundTripPsExtension.EnableAutomaticUpgrade); + Assert.Null(roundTripPsExtension.Settings); + Assert.Null(roundTripPsExtension.ProtectedSettings); + Assert.Null(roundTripPsExtension.ProvisionAfterExtensions); + } + + #endregion + + #region Integration Tests + + [Fact] + public void VMExtensionConversions_BothDirections_MaintainSemanticEquivalence() + { + // This test ensures that the semantic meaning is preserved across conversions + + // Test custom script extension for Windows + var psCustomScript = new PSVMExtension("CustomScriptExtension", "Microsoft.Compute", "CustomScriptExtension") + { + TypeHandlerVersion = "1.10", + AutoUpgradeMinorVersion = true, + Settings = new { commandToExecute = "powershell.exe -ExecutionPolicy Unrestricted -File script.ps1" } + }; + + var mgmtCustomScript = psCustomScript.toMgmtVMExtension(); + var backToPs = PSVMExtension.fromMgmtVMExtension(mgmtCustomScript); + + Assert.Equal("CustomScriptExtension", mgmtCustomScript.Name); + Assert.Equal("Microsoft.Compute", mgmtCustomScript.Publisher); + Assert.Equal("CustomScriptExtension", mgmtCustomScript.Type); + Assert.Equal(psCustomScript.Name, backToPs.Name); + Assert.Equal(psCustomScript.Publisher, backToPs.Publisher); + Assert.Equal(psCustomScript.Type, backToPs.Type); + + // Test diagnostics extension + var psDiagnostics = new PSVMExtension("DiagnosticsExtension", "Microsoft.Azure.Diagnostics", "IaaSDiagnostics") + { + TypeHandlerVersion = "1.5", + AutoUpgradeMinorVersion = false, + EnableAutomaticUpgrade = true + }; + + var mgmtDiagnostics = psDiagnostics.toMgmtVMExtension(); + var backToPsDiagnostics = PSVMExtension.fromMgmtVMExtension(mgmtDiagnostics); + + Assert.Equal("DiagnosticsExtension", mgmtDiagnostics.Name); + Assert.Equal("Microsoft.Azure.Diagnostics", mgmtDiagnostics.Publisher); + Assert.Equal("IaaSDiagnostics", mgmtDiagnostics.Type); + Assert.Equal(psDiagnostics.Name, backToPsDiagnostics.Name); + Assert.Equal(psDiagnostics.Publisher, backToPsDiagnostics.Publisher); + Assert.Equal(psDiagnostics.Type, backToPsDiagnostics.Type); + } + + [Fact] + public void VMExtensionConversions_NullHandling_WorksCorrectly() + { + // Test null handling in conversions + + // Act + var resultFromNull = PSVMExtension.fromMgmtVMExtension(null); + + // Assert + Assert.Null(resultFromNull); + } + + [Fact] + public void VMExtensionConversions_BatchVMContext_VerifyCorrectUsage() + { + // This test validates the conversions work correctly in the context of Batch VM configuration + // VMExtension is used to configure extensions for virtual machines in Azure Batch pools + + // Arrange - Test Azure Batch VM extension scenarios + var batchScenarios = new[] + { + // Custom script extension for application installation + new PSVMExtension("AppInstaller", "Microsoft.Compute", "CustomScriptExtension") + { + TypeHandlerVersion = "1.10", + AutoUpgradeMinorVersion = true, + Settings = new { + fileUris = new[] { "https://storage.blob.core.windows.net/scripts/install-app.ps1" }, + commandToExecute = "powershell.exe -ExecutionPolicy Unrestricted -File install-app.ps1" + } + }, + // Monitoring extension for performance data collection + new PSVMExtension("MonitoringAgent", "Microsoft.Azure.Monitor", "AzureMonitorWindowsAgent") + { + TypeHandlerVersion = "1.0", + AutoUpgradeMinorVersion = false, + EnableAutomaticUpgrade = true + } + }; + + foreach (var scenario in batchScenarios) + { + // Act + var mgmtExtension = scenario.toMgmtVMExtension(); + + // Assert - Should convert correctly for Batch VM pool configuration + Assert.NotNull(mgmtExtension); + Assert.Equal(scenario.Name, mgmtExtension.Name); + Assert.Equal(scenario.Publisher, mgmtExtension.Publisher); + Assert.Equal(scenario.Type, mgmtExtension.Type); + + // Verify round-trip conversion maintains Batch VM semantics + var backToPs = PSVMExtension.fromMgmtVMExtension(mgmtExtension); + Assert.NotNull(backToPs); + Assert.Equal(scenario.Name, backToPs.Name); + Assert.Equal(scenario.Publisher, backToPs.Publisher); + Assert.Equal(scenario.Type, backToPs.Type); + } + } + + [Fact] + public void VMExtensionConversions_InstanceCreation_VerifyBehavior() + { + // This test verifies that the conversion methods create appropriate instances + + // Arrange + var psExtension = new PSVMExtension("TestExtension", "Microsoft.Azure.Extensions", "CustomScript"); + var mgmtExtension = new VMExtension("TestExtension", "Microsoft.Azure.Extensions", "CustomScript"); + + // Act + var mgmtResult = psExtension.toMgmtVMExtension(); + var psResult = PSVMExtension.fromMgmtVMExtension(mgmtExtension); + + // Assert - Verify proper instance creation + Assert.NotNull(mgmtResult); + Assert.NotNull(psResult); + Assert.IsType(mgmtResult); + Assert.IsType(psResult); + + // Verify new instances are created + Assert.NotSame(mgmtExtension, mgmtResult); + Assert.NotSame(psExtension, psResult); + } + + [Fact] + public void VMExtensionConversions_DefaultValues_HandleCorrectly() + { + // Test conversion with minimal configuration + + // Arrange + var minimalPsExtension = new PSVMExtension("MinimalExtension", "TestPublisher", "TestType"); + var minimalMgmtExtension = new VMExtension("MinimalExtension", "TestPublisher", "TestType"); + + // Act + var mgmtResult = minimalPsExtension.toMgmtVMExtension(); + var psResult = PSVMExtension.fromMgmtVMExtension(minimalMgmtExtension); + + // Assert + Assert.NotNull(mgmtResult); + Assert.NotNull(psResult); + Assert.Equal("MinimalExtension", mgmtResult.Name); + Assert.Equal("TestPublisher", mgmtResult.Publisher); + Assert.Equal("TestType", mgmtResult.Type); + Assert.Equal("MinimalExtension", psResult.Name); + Assert.Equal("TestPublisher", psResult.Publisher); + Assert.Equal("TestType", psResult.Type); + } + + #endregion + + #region Performance and Edge Case Tests + + [Fact] + public void VMExtensionConversions_PerformanceTest_ExecutesQuickly() + { + // This test ensures the conversions are efficient + + // Arrange + var psExtension = new PSVMExtension("TestExtension", "Microsoft.Azure.Extensions", "CustomScript"); + var mgmtExtension = new VMExtension("TestExtension", "Microsoft.Azure.Extensions", "CustomScript"); + + // Act & Assert - Multiple conversions should complete without delay + for (int i = 0; i < 100; i++) + { + var mgmtResult = psExtension.toMgmtVMExtension(); + var psResult = PSVMExtension.fromMgmtVMExtension(mgmtExtension); + + Assert.NotNull(mgmtResult); + Assert.NotNull(psResult); + } + } + + [Fact] + public void VMExtensionConversions_TypeSafety_VerifyCorrectTypes() + { + // Test that conversions return the correct types + + // Arrange + var psExtension = new PSVMExtension("TestExtension", "Microsoft.Azure.Extensions", "CustomScript"); + var mgmtExtension = new VMExtension("TestExtension", "Microsoft.Azure.Extensions", "CustomScript"); + + // Act + var mgmtResult = psExtension.toMgmtVMExtension(); + var psResult = PSVMExtension.fromMgmtVMExtension(mgmtExtension); + + // Assert - Verify correct types are returned + Assert.IsType(mgmtResult); + Assert.IsType(psResult); + } + + [Fact] + public void VMExtensionConversions_LargeProvisionAfterExtensions_HandlesCorrectly() + { + // Test with a large list of provision after extensions + + // Arrange + var largeProvisionList = Enumerable.Range(1, 50).Select(i => $"Extension{i}").ToList(); + var psExtension = new PSVMExtension("TestExtension", "Microsoft.Azure.Extensions", "CustomScript") + { + ProvisionAfterExtensions = largeProvisionList + }; + + // Act + var mgmtResult = psExtension.toMgmtVMExtension(); + var psResult = PSVMExtension.fromMgmtVMExtension(mgmtResult); + + // Assert + Assert.NotNull(mgmtResult); + Assert.NotNull(psResult); + Assert.Equal(largeProvisionList.Count, mgmtResult.ProvisionAfterExtensions.Count); + Assert.Equal(largeProvisionList.Count, psResult.ProvisionAfterExtensions.Count); + Assert.Equal(largeProvisionList, mgmtResult.ProvisionAfterExtensions); + Assert.Equal(largeProvisionList, psResult.ProvisionAfterExtensions); + } + + [Fact] + public void VMExtensionConversions_ComplexNestedSettings_PreservesStructure() + { + // Test with complex nested settings object + + // Arrange + var complexSettings = new + { + level1 = new + { + level2 = new + { + stringValue = "test", + intValue = 42, + boolValue = true, + arrayValue = new[] { "item1", "item2", "item3" }, + nullValue = (string)null + } + }, + topLevelArray = new[] { 1, 2, 3, 4, 5 } + }; + + var psExtension = new PSVMExtension("TestExtension", "Microsoft.Azure.Extensions", "CustomScript") + { + Settings = complexSettings + }; + + // Act + var mgmtResult = psExtension.toMgmtVMExtension(); + var psResult = PSVMExtension.fromMgmtVMExtension(mgmtResult); + + // Assert + Assert.NotNull(mgmtResult); + Assert.NotNull(psResult); + Assert.Same(complexSettings, mgmtResult.Settings); + Assert.Same(complexSettings, psResult.Settings); + } + + #endregion + + #region Constructor and Internal Object Tests + + [Fact] + public void PSVMExtension_Constructor_InitializesCorrectly() + { + // Test that the PS constructor properly initializes the internal object + + // Arrange & Act + var psExtension = new PSVMExtension("TestName", "TestPublisher", "TestType"); + + // Assert + Assert.Equal("TestName", psExtension.Name); + Assert.Equal("TestPublisher", psExtension.Publisher); + Assert.Equal("TestType", psExtension.Type); + Assert.Null(psExtension.TypeHandlerVersion); + Assert.Null(psExtension.AutoUpgradeMinorVersion); + Assert.Null(psExtension.EnableAutomaticUpgrade); + Assert.Null(psExtension.Settings); + Assert.Null(psExtension.ProtectedSettings); + Assert.Null(psExtension.ProvisionAfterExtensions); + } + + [Fact] + public void PSVMExtension_InternalConstructor_ThrowsOnNullOmObject() + { + // Test that the internal constructor validates the omObject parameter + + // Act & Assert + Assert.Throws(() => + new PSVMExtension((Microsoft.Azure.Batch.VMExtension)null)); + } + + [Fact] + public void PSVMExtension_PropertySetters_WorkCorrectly() + { + // Test that property setters work correctly + + // Arrange + var psExtension = new PSVMExtension("TestName", "TestPublisher", "TestType"); + var testSettings = new { test = "value" }; + var testProtectedSettings = new { secret = "password" }; + var testProvisionAfter = new List { "Ext1", "Ext2" }; + + // Act + psExtension.TypeHandlerVersion = "2.0"; + psExtension.AutoUpgradeMinorVersion = true; + psExtension.EnableAutomaticUpgrade = false; + psExtension.Settings = testSettings; + psExtension.ProtectedSettings = testProtectedSettings; + psExtension.ProvisionAfterExtensions = testProvisionAfter; + + // Assert + Assert.Equal("2.0", psExtension.TypeHandlerVersion); + Assert.Equal(true, psExtension.AutoUpgradeMinorVersion); + Assert.Equal(false, psExtension.EnableAutomaticUpgrade); + Assert.Same(testSettings, psExtension.Settings); + Assert.Same(testProtectedSettings, psExtension.ProtectedSettings); + Assert.Equal(testProvisionAfter, psExtension.ProvisionAfterExtensions); + } + + #endregion + + #region Extension Scenario Tests + + [Fact] + public void VMExtensionConversions_CommonExtensionTypes_VerifySupport() + { + // Test support for common Azure VM extension types + + var commonExtensions = new[] + { + // Windows Custom Script Extension + new PSVMExtension("CustomScript", "Microsoft.Compute", "CustomScriptExtension") + { + TypeHandlerVersion = "1.10", + AutoUpgradeMinorVersion = true + }, + // Linux Custom Script Extension + new PSVMExtension("CustomScriptForLinux", "Microsoft.Azure.Extensions", "CustomScript") + { + TypeHandlerVersion = "2.0", + AutoUpgradeMinorVersion = true + }, + // Azure Monitor Agent + new PSVMExtension("AzureMonitorAgent", "Microsoft.Azure.Monitor", "AzureMonitorWindowsAgent") + { + TypeHandlerVersion = "1.0", + EnableAutomaticUpgrade = true + }, + // Network Watcher Extension + new PSVMExtension("NetworkWatcher", "Microsoft.Azure.NetworkWatcher", "NetworkWatcherAgentWindows") + { + TypeHandlerVersion = "1.4", + AutoUpgradeMinorVersion = false + } + }; + + foreach (var extension in commonExtensions) + { + // Act + var mgmtExtension = extension.toMgmtVMExtension(); + var roundTripExtension = PSVMExtension.fromMgmtVMExtension(mgmtExtension); + + // Assert + Assert.NotNull(mgmtExtension); + Assert.NotNull(roundTripExtension); + Assert.Equal(extension.Name, mgmtExtension.Name); + Assert.Equal(extension.Publisher, mgmtExtension.Publisher); + Assert.Equal(extension.Type, mgmtExtension.Type); + Assert.Equal(extension.Name, roundTripExtension.Name); + Assert.Equal(extension.Publisher, roundTripExtension.Publisher); + Assert.Equal(extension.Type, roundTripExtension.Type); + } + } + + [Fact] + public void VMExtensionConversions_ExtensionChaining_VerifyProvisionAfterSupport() + { + // Test extension dependency chaining through ProvisionAfterExtensions + + // Arrange - Create a chain of dependent extensions + var baseExtension = new PSVMExtension("BaseExtension", "Microsoft.Compute", "CustomScriptExtension"); + var dependentExtension = new PSVMExtension("DependentExtension", "Microsoft.Azure.Extensions", "CustomScript") + { + ProvisionAfterExtensions = new List { "BaseExtension" } + }; + var finalExtension = new PSVMExtension("FinalExtension", "TestPublisher", "TestType") + { + ProvisionAfterExtensions = new List { "BaseExtension", "DependentExtension" } + }; + + // Act & Assert for each extension in the chain + var extensions = new[] { baseExtension, dependentExtension, finalExtension }; + foreach (var extension in extensions) + { + var mgmtExtension = extension.toMgmtVMExtension(); + var roundTripExtension = PSVMExtension.fromMgmtVMExtension(mgmtExtension); + + Assert.NotNull(mgmtExtension); + Assert.NotNull(roundTripExtension); + Assert.Equal(extension.ProvisionAfterExtensions, mgmtExtension.ProvisionAfterExtensions); + Assert.Equal(extension.ProvisionAfterExtensions, roundTripExtension.ProvisionAfterExtensions); + } + } + + #endregion + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Test/Models/PSVirtualMachineConfigurationTests.cs b/src/Batch/Batch.Test/Models/PSVirtualMachineConfigurationTests.cs new file mode 100644 index 000000000000..6e85d0a8ae15 --- /dev/null +++ b/src/Batch/Batch.Test/Models/PSVirtualMachineConfigurationTests.cs @@ -0,0 +1,626 @@ +// ----------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ----------------------------------------------------------------------------- + +using Microsoft.Azure.Commands.Batch.Models; +using Microsoft.Azure.Management.Batch.Models; +using System.Collections.Generic; +using System.Linq; +using Xunit; + +namespace Microsoft.Azure.Commands.Batch.Test.ModelsConversions +{ + public class PSVirtualMachineConfigurationTests + { + #region toMgmtVirtualMachineConfiguration Tests + + [Fact] + public void ToMgmtVirtualMachineConfiguration_WithMinimalConfiguration_ReturnsCorrectMapping() + { + // Arrange - Minimal required configuration for Batch pool VMs + var imageRef = new PSImageReference("Canonical", "0001-com-ubuntu-server-focal", "20_04-lts-gen2"); + var nodeAgentSkuId = "batch.node.ubuntu 20.04"; + var psVmConfig = new PSVirtualMachineConfiguration(imageRef, nodeAgentSkuId); + + // Act + var result = psVmConfig.toMgmtVirtualMachineConfiguration(); + + // Assert + Assert.NotNull(result); + Assert.NotNull(result.ImageReference); + Assert.Equal(nodeAgentSkuId, result.NodeAgentSkuId); + Assert.Null(result.WindowsConfiguration); + Assert.Null(result.DataDisks); + Assert.Null(result.LicenseType); + Assert.Null(result.ContainerConfiguration); + Assert.Null(result.DiskEncryptionConfiguration); + Assert.Null(result.NodePlacementConfiguration); + Assert.Null(result.Extensions); + Assert.Null(result.OSDisk); + Assert.Null(result.SecurityProfile); + Assert.Null(result.ServiceArtifactReference); + } + + [Fact] + public void ToMgmtVirtualMachineConfiguration_WithFullConfiguration_ReturnsCorrectMapping() + { + // Arrange - Full configuration with all optional properties + var imageRef = new PSImageReference("MicrosoftWindowsServer", "WindowsServer", "2019-datacenter"); + var nodeAgentSkuId = "batch.node.windows amd64"; + var psVmConfig = new PSVirtualMachineConfiguration(imageRef, nodeAgentSkuId) + { + WindowsConfiguration = new PSWindowsConfiguration(enableAutomaticUpdates: true), + DataDisks = new List + { + new PSDataDisk(0, 100, Microsoft.Azure.Batch.Common.CachingType.ReadWrite, Microsoft.Azure.Batch.Common.StorageAccountType.StandardSSDLRS) + }, + LicenseType = "Windows_Server", + ContainerConfiguration = new PSContainerConfiguration(), + DiskEncryptionConfiguration = new PSDiskEncryptionConfiguration(new List { Microsoft.Azure.Batch.Common.DiskEncryptionTarget.OsDisk }), + NodePlacementConfiguration = new PSNodePlacementConfiguration(Microsoft.Azure.Batch.Common.NodePlacementPolicyType.Regional), + Extensions = new List + { + new PSVMExtension("TestExtension", "Microsoft.Azure.Extensions", "CustomScript") + }, + OSDisk = new PSOSDisk(), + SecurityProfile = new PSSecurityProfile(), + ServiceArtifactReference = new PSServiceArtifactReference("/subscriptions/test/resourceGroups/test/providers/Microsoft.Compute/galleries/test/serviceArtifacts/test/vmArtifactsProfiles/test") + }; + + // Act + var result = psVmConfig.toMgmtVirtualMachineConfiguration(); + + // Assert + Assert.NotNull(result); + Assert.NotNull(result.ImageReference); + Assert.Equal(nodeAgentSkuId, result.NodeAgentSkuId); + Assert.NotNull(result.WindowsConfiguration); + Assert.NotNull(result.DataDisks); + Assert.Single(result.DataDisks); + Assert.Equal("Windows_Server", result.LicenseType); + Assert.NotNull(result.ContainerConfiguration); + Assert.NotNull(result.DiskEncryptionConfiguration); + Assert.NotNull(result.NodePlacementConfiguration); + Assert.NotNull(result.Extensions); + Assert.Single(result.Extensions); + Assert.NotNull(result.OSDisk); + Assert.NotNull(result.SecurityProfile); + Assert.NotNull(result.ServiceArtifactReference); + } + + [Fact] + public void ToMgmtVirtualMachineConfiguration_WithNullOptionalProperties_HandlesCorrectly() + { + // Arrange - Configuration with explicitly null optional properties + var imageRef = new PSImageReference("Canonical", "0001-com-ubuntu-server-focal", "20_04-lts-gen2"); + var nodeAgentSkuId = "batch.node.ubuntu 20.04"; + var psVmConfig = new PSVirtualMachineConfiguration(imageRef, nodeAgentSkuId) + { + WindowsConfiguration = null, + DataDisks = null, + LicenseType = null, + ContainerConfiguration = null, + DiskEncryptionConfiguration = null, + NodePlacementConfiguration = null, + Extensions = null, + OSDisk = null, + SecurityProfile = null, + ServiceArtifactReference = null + }; + + // Act + var result = psVmConfig.toMgmtVirtualMachineConfiguration(); + + // Assert + Assert.NotNull(result); + Assert.NotNull(result.ImageReference); + Assert.Equal(nodeAgentSkuId, result.NodeAgentSkuId); + Assert.Null(result.WindowsConfiguration); + Assert.Null(result.DataDisks); + Assert.Null(result.LicenseType); + Assert.Null(result.ContainerConfiguration); + Assert.Null(result.DiskEncryptionConfiguration); + Assert.Null(result.NodePlacementConfiguration); + Assert.Null(result.Extensions); + Assert.Null(result.OSDisk); + Assert.Null(result.SecurityProfile); + Assert.Null(result.ServiceArtifactReference); + } + + [Fact] + public void ToMgmtVirtualMachineConfiguration_WithEmptyCollections_HandlesCorrectly() + { + // Arrange - Configuration with empty collections + var imageRef = new PSImageReference("Canonical", "0001-com-ubuntu-server-focal", "20_04-lts-gen2"); + var nodeAgentSkuId = "batch.node.ubuntu 20.04"; + var psVmConfig = new PSVirtualMachineConfiguration(imageRef, nodeAgentSkuId) + { + DataDisks = new List(), + Extensions = new List() + }; + + // Act + var result = psVmConfig.toMgmtVirtualMachineConfiguration(); + + // Assert + Assert.NotNull(result); + Assert.NotNull(result.DataDisks); + Assert.Empty(result.DataDisks); + Assert.NotNull(result.Extensions); + Assert.Empty(result.Extensions); + } + + #endregion + + #region fromMgmtPSVirtualMachineConfiguration Tests + + [Fact] + public void FromMgmtPSVirtualMachineConfiguration_WithNull_ReturnsNull() + { + // Act + var result = PSVirtualMachineConfiguration.fromMgmtPSVirtualMachineConfiguration(null); + + // Assert + Assert.Null(result); + } + + [Fact] + public void FromMgmtPSVirtualMachineConfiguration_WithMinimalConfiguration_ReturnsCorrectMapping() + { + // Arrange - Minimal required configuration + var imageRef = new ImageReference("Canonical", "0001-com-ubuntu-server-focal", "20_04-lts-gen2"); + var nodeAgentSkuId = "batch.node.ubuntu 20.04"; + var mgmtVmConfig = new VirtualMachineConfiguration(imageRef, nodeAgentSkuId); + + // Act + var result = PSVirtualMachineConfiguration.fromMgmtPSVirtualMachineConfiguration(mgmtVmConfig); + + // Assert + Assert.NotNull(result); + Assert.NotNull(result.ImageReference); + Assert.Equal(nodeAgentSkuId, result.NodeAgentSkuId); + Assert.Null(result.WindowsConfiguration); + Assert.Null(result.DataDisks); + Assert.Null(result.LicenseType); + Assert.Null(result.ContainerConfiguration); + Assert.Null(result.DiskEncryptionConfiguration); + Assert.Null(result.NodePlacementConfiguration); + Assert.Null(result.Extensions); + Assert.Null(result.OSDisk); + Assert.Null(result.SecurityProfile); + Assert.Null(result.ServiceArtifactReference); + } + + [Fact] + public void FromMgmtPSVirtualMachineConfiguration_WithFullConfiguration_ReturnsCorrectMapping() + { + // Arrange - Full configuration with all optional properties + var imageRef = new ImageReference("MicrosoftWindowsServer", "WindowsServer", "2019-datacenter"); + var nodeAgentSkuId = "batch.node.windows amd64"; + var mgmtVmConfig = new VirtualMachineConfiguration( + imageReference: imageRef, + nodeAgentSkuId: nodeAgentSkuId, + windowsConfiguration: new WindowsConfiguration(enableAutomaticUpdates: true), + dataDisks: new List + { + new DataDisk(0, 100) + }, + licenseType: "Windows_Server", + containerConfiguration: new ContainerConfiguration(), + diskEncryptionConfiguration: new DiskEncryptionConfiguration(), + nodePlacementConfiguration: new NodePlacementConfiguration(NodePlacementPolicyType.Regional), + extensions: new List + { + new VMExtension("TestExtension", "Microsoft.Azure.Extensions", "CustomScript") + }, + osDisk: new OSDisk(), + securityProfile: new SecurityProfile(), + serviceArtifactReference: new ServiceArtifactReference("/subscriptions/test/resourceGroups/test/providers/Microsoft.Compute/galleries/test/serviceArtifacts/test/vmArtifactsProfiles/test") + ); + + // Act + var result = PSVirtualMachineConfiguration.fromMgmtPSVirtualMachineConfiguration(mgmtVmConfig); + + // Assert + Assert.NotNull(result); + Assert.NotNull(result.ImageReference); + Assert.Equal(nodeAgentSkuId, result.NodeAgentSkuId); + Assert.NotNull(result.WindowsConfiguration); + Assert.NotNull(result.DataDisks); + Assert.Single(result.DataDisks); + Assert.Equal("Windows_Server", result.LicenseType); + Assert.NotNull(result.ContainerConfiguration); + Assert.NotNull(result.DiskEncryptionConfiguration); + Assert.NotNull(result.NodePlacementConfiguration); + Assert.NotNull(result.Extensions); + Assert.Single(result.Extensions); + Assert.NotNull(result.OSDisk); + Assert.NotNull(result.SecurityProfile); + Assert.NotNull(result.ServiceArtifactReference); + } + + [Fact] + public void FromMgmtPSVirtualMachineConfiguration_WithNullOptionalProperties_HandlesCorrectly() + { + // Arrange - Configuration with null optional properties + var imageRef = new ImageReference("Canonical", "0001-com-ubuntu-server-focal", "20_04-lts-gen2"); + var nodeAgentSkuId = "batch.node.ubuntu 20.04"; + var mgmtVmConfig = new VirtualMachineConfiguration( + imageReference: imageRef, + nodeAgentSkuId: nodeAgentSkuId, + windowsConfiguration: null, + dataDisks: null, + licenseType: null, + containerConfiguration: null, + diskEncryptionConfiguration: null, + nodePlacementConfiguration: null, + extensions: null, + osDisk: null, + securityProfile: null, + serviceArtifactReference: null + ); + + // Act + var result = PSVirtualMachineConfiguration.fromMgmtPSVirtualMachineConfiguration(mgmtVmConfig); + + // Assert + Assert.NotNull(result); + Assert.NotNull(result.ImageReference); + Assert.Equal(nodeAgentSkuId, result.NodeAgentSkuId); + Assert.Null(result.WindowsConfiguration); + Assert.Null(result.DataDisks); + Assert.Null(result.LicenseType); + Assert.Null(result.ContainerConfiguration); + Assert.Null(result.DiskEncryptionConfiguration); + Assert.Null(result.NodePlacementConfiguration); + Assert.Null(result.Extensions); + Assert.Null(result.OSDisk); + Assert.Null(result.SecurityProfile); + Assert.Null(result.ServiceArtifactReference); + } + + [Fact] + public void FromMgmtPSVirtualMachineConfiguration_WithEmptyCollections_HandlesCorrectly() + { + // Arrange - Configuration with empty collections + var imageRef = new ImageReference("Canonical", "0001-com-ubuntu-server-focal", "20_04-lts-gen2"); + var nodeAgentSkuId = "batch.node.ubuntu 20.04"; + var mgmtVmConfig = new VirtualMachineConfiguration( + imageReference: imageRef, + nodeAgentSkuId: nodeAgentSkuId, + dataDisks: new List(), + extensions: new List() + ); + + // Act + var result = PSVirtualMachineConfiguration.fromMgmtPSVirtualMachineConfiguration(mgmtVmConfig); + + // Assert + Assert.NotNull(result); + Assert.NotNull(result.DataDisks); + Assert.Empty(result.DataDisks); + Assert.NotNull(result.Extensions); + Assert.Empty(result.Extensions); + } + + #endregion + + #region Round-trip Conversion Tests + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesMinimalConfiguration() + { + // Arrange - Minimal configuration for round-trip test + var imageRef = new PSImageReference("Canonical", "0001-com-ubuntu-server-focal", "20_04-lts-gen2"); + var nodeAgentSkuId = "batch.node.ubuntu 20.04"; + var originalPsVmConfig = new PSVirtualMachineConfiguration(imageRef, nodeAgentSkuId); + + // Act - Convert PS -> Management -> PS + var mgmtVmConfig = originalPsVmConfig.toMgmtVirtualMachineConfiguration(); + var roundTripPsVmConfig = PSVirtualMachineConfiguration.fromMgmtPSVirtualMachineConfiguration(mgmtVmConfig); + + // Assert - Should get back equivalent values + Assert.NotNull(roundTripPsVmConfig); + Assert.Equal(originalPsVmConfig.NodeAgentSkuId, roundTripPsVmConfig.NodeAgentSkuId); + Assert.NotNull(roundTripPsVmConfig.ImageReference); + } + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesFullConfiguration() + { + // Arrange - Full configuration for round-trip test + var imageRef = new PSImageReference("MicrosoftWindowsServer", "WindowsServer", "2019-datacenter"); + var nodeAgentSkuId = "batch.node.windows amd64"; + var originalPsVmConfig = new PSVirtualMachineConfiguration(imageRef, nodeAgentSkuId) + { + WindowsConfiguration = new PSWindowsConfiguration(enableAutomaticUpdates: true), + DataDisks = new List + { + new PSDataDisk(0, 100, Microsoft.Azure.Batch.Common.CachingType.ReadWrite, Microsoft.Azure.Batch.Common.StorageAccountType.StandardSSDLRS) + }, + LicenseType = "Windows_Server", + ContainerConfiguration = new PSContainerConfiguration(), + DiskEncryptionConfiguration = new PSDiskEncryptionConfiguration(new List { Microsoft.Azure.Batch.Common.DiskEncryptionTarget.OsDisk }), + NodePlacementConfiguration = new PSNodePlacementConfiguration(Microsoft.Azure.Batch.Common.NodePlacementPolicyType.Regional), + Extensions = new List + { + new PSVMExtension("TestExtension", "Microsoft.Azure.Extensions", "CustomScript") + }, + OSDisk = new PSOSDisk(), + SecurityProfile = new PSSecurityProfile(), + ServiceArtifactReference = new PSServiceArtifactReference("/subscriptions/test/resourceGroups/test/providers/Microsoft.Compute/galleries/test/serviceArtifacts/test/vmArtifactsProfiles/test") + }; + + // Act - Convert PS -> Management -> PS + var mgmtVmConfig = originalPsVmConfig.toMgmtVirtualMachineConfiguration(); + var roundTripPsVmConfig = PSVirtualMachineConfiguration.fromMgmtPSVirtualMachineConfiguration(mgmtVmConfig); + + // Assert - Should preserve all properties + Assert.NotNull(roundTripPsVmConfig); + Assert.Equal(originalPsVmConfig.NodeAgentSkuId, roundTripPsVmConfig.NodeAgentSkuId); + Assert.NotNull(roundTripPsVmConfig.ImageReference); + Assert.NotNull(roundTripPsVmConfig.WindowsConfiguration); + Assert.NotNull(roundTripPsVmConfig.DataDisks); + Assert.Single(roundTripPsVmConfig.DataDisks); + Assert.Equal(originalPsVmConfig.LicenseType, roundTripPsVmConfig.LicenseType); + Assert.NotNull(roundTripPsVmConfig.ContainerConfiguration); + Assert.NotNull(roundTripPsVmConfig.DiskEncryptionConfiguration); + Assert.NotNull(roundTripPsVmConfig.NodePlacementConfiguration); + Assert.NotNull(roundTripPsVmConfig.Extensions); + Assert.Single(roundTripPsVmConfig.Extensions); + Assert.NotNull(roundTripPsVmConfig.OSDisk); + Assert.NotNull(roundTripPsVmConfig.SecurityProfile); + Assert.NotNull(roundTripPsVmConfig.ServiceArtifactReference); + } + + [Fact] + public void RoundTripConversion_FromMgmtAndToMgmt_PreservesValues() + { + // This test verifies that converting Management -> PS -> Management preserves the original value + + // Arrange - Management configuration + var imageRef = new ImageReference("Canonical", "0001-com-ubuntu-server-focal", "20_04-lts-gen2"); + var nodeAgentSkuId = "batch.node.ubuntu 20.04"; + var originalMgmtConfig = new VirtualMachineConfiguration(imageRef, nodeAgentSkuId) + { + LicenseType = "Windows_Client" + }; + + // Act - Convert Management -> PS -> Management + var psConfig = PSVirtualMachineConfiguration.fromMgmtPSVirtualMachineConfiguration(originalMgmtConfig); + var roundTripMgmtConfig = psConfig.toMgmtVirtualMachineConfiguration(); + + // Assert - Should get back the original values + Assert.NotNull(roundTripMgmtConfig); + Assert.Equal(originalMgmtConfig.NodeAgentSkuId, roundTripMgmtConfig.NodeAgentSkuId); + Assert.Equal(originalMgmtConfig.LicenseType, roundTripMgmtConfig.LicenseType); + Assert.NotNull(roundTripMgmtConfig.ImageReference); + } + + #endregion + + #region Batch Pool Context Tests + + [Fact] + public void VirtualMachineConfigurationConversions_BatchPoolContext_VerifyCorrectUsage() + { + // This test validates the conversions work correctly in the context of Batch pool VM configuration + // VirtualMachineConfiguration is used to configure compute nodes in Azure Batch pools + + // Arrange - Test Linux configuration for CPU-intensive workloads + var linuxScenario = new PSVirtualMachineConfiguration( + new PSImageReference("Canonical", "0001-com-ubuntu-server-focal", "20_04-lts-gen2"), + "batch.node.ubuntu 20.04" + ) + { + ContainerConfiguration = new PSContainerConfiguration(), + DataDisks = new List + { + new PSDataDisk(0, 500, Microsoft.Azure.Batch.Common.CachingType.ReadWrite, Microsoft.Azure.Batch.Common.StorageAccountType.PremiumLrs) + } + }; + + // Act & Assert - Linux should convert correctly for Batch compute nodes + var mgmtLinuxConfig = linuxScenario.toMgmtVirtualMachineConfiguration(); + Assert.NotNull(mgmtLinuxConfig); + Assert.Equal("batch.node.ubuntu 20.04", mgmtLinuxConfig.NodeAgentSkuId); + Assert.NotNull(mgmtLinuxConfig.ContainerConfiguration); + Assert.Single(mgmtLinuxConfig.DataDisks); + + // Arrange - Test Windows configuration for GPU workloads + var windowsScenario = new PSVirtualMachineConfiguration( + new PSImageReference("MicrosoftWindowsServer", "WindowsServer", "2019-datacenter"), + "batch.node.windows amd64" + ) + { + WindowsConfiguration = new PSWindowsConfiguration(enableAutomaticUpdates: false), + LicenseType = "Windows_Server", + Extensions = new List + { + new PSVMExtension("NvidiaGpuDriverWindows", "Microsoft.HpcCompute", "NvidiaGpuDriverWindows") + } + }; + + // Act & Assert - Windows should convert correctly for GPU-enabled Batch nodes + var mgmtWindowsConfig = windowsScenario.toMgmtVirtualMachineConfiguration(); + Assert.NotNull(mgmtWindowsConfig); + Assert.Equal("batch.node.windows amd64", mgmtWindowsConfig.NodeAgentSkuId); + Assert.NotNull(mgmtWindowsConfig.WindowsConfiguration); + Assert.Equal("Windows_Server", mgmtWindowsConfig.LicenseType); + Assert.Single(mgmtWindowsConfig.Extensions); + + // Verify round-trip conversion maintains Batch pool semantics + var backToLinuxPs = PSVirtualMachineConfiguration.fromMgmtPSVirtualMachineConfiguration(mgmtLinuxConfig); + var backToWindowsPs = PSVirtualMachineConfiguration.fromMgmtPSVirtualMachineConfiguration(mgmtWindowsConfig); + + Assert.Equal("batch.node.ubuntu 20.04", backToLinuxPs.NodeAgentSkuId); + Assert.Equal("batch.node.windows amd64", backToWindowsPs.NodeAgentSkuId); + } + + [Fact] + public void VirtualMachineConfigurationConversions_SecurityProfile_VerifyEncryptionSupport() + { + // This test validates security profile configuration for encrypted Batch nodes + + // Arrange - Configuration with security and encryption settings + var secureVmConfig = new PSVirtualMachineConfiguration( + new PSImageReference("MicrosoftWindowsServer", "WindowsServer", "2019-datacenter"), + "batch.node.windows amd64" + ) + { + SecurityProfile = new PSSecurityProfile + { + SecurityType = Microsoft.Azure.Batch.Common.SecurityTypes.TrustedLaunch + }, + DiskEncryptionConfiguration = new PSDiskEncryptionConfiguration( + new List + { + Microsoft.Azure.Batch.Common.DiskEncryptionTarget.OsDisk, + Microsoft.Azure.Batch.Common.DiskEncryptionTarget.TemporaryDisk + } + ) + }; + + // Act + var mgmtConfig = secureVmConfig.toMgmtVirtualMachineConfiguration(); + var backToPs = PSVirtualMachineConfiguration.fromMgmtPSVirtualMachineConfiguration(mgmtConfig); + + // Assert - Security configuration should be preserved + Assert.NotNull(mgmtConfig.SecurityProfile); + Assert.NotNull(mgmtConfig.DiskEncryptionConfiguration); + Assert.NotNull(backToPs.SecurityProfile); + Assert.NotNull(backToPs.DiskEncryptionConfiguration); + } + + #endregion + + #region Type Safety and Instance Creation Tests + + [Fact] + public void VirtualMachineConfigurationConversions_TypeSafety_VerifyCorrectTypes() + { + // Test that conversions return the correct types + + // Arrange + var imageRef = new PSImageReference("Canonical", "0001-com-ubuntu-server-focal", "20_04-lts-gen2"); + var psVmConfig = new PSVirtualMachineConfiguration(imageRef, "batch.node.ubuntu 20.04"); + var mgmtVmConfig = new VirtualMachineConfiguration( + new ImageReference("Canonical", "0001-com-ubuntu-server-focal", "20_04-lts-gen2"), + "batch.node.ubuntu 20.04" + ); + + // Act + var mgmtResult = psVmConfig.toMgmtVirtualMachineConfiguration(); + var psResult = PSVirtualMachineConfiguration.fromMgmtPSVirtualMachineConfiguration(mgmtVmConfig); + + // Assert - Verify correct types are returned + Assert.IsType(mgmtResult); + Assert.IsType(psResult); + } + + [Fact] + public void VirtualMachineConfigurationConversions_InstanceCreation_VerifyBehavior() + { + // This test verifies that the conversion methods create appropriate instances + + // Arrange + var imageRef = new PSImageReference("Canonical", "0001-com-ubuntu-server-focal", "20_04-lts-gen2"); + var psVmConfig = new PSVirtualMachineConfiguration(imageRef, "batch.node.ubuntu 20.04"); + var mgmtVmConfig = new VirtualMachineConfiguration( + new ImageReference("Canonical", "0001-com-ubuntu-server-focal", "20_04-lts-gen2"), + "batch.node.ubuntu 20.04" + ); + + // Act + var mgmtResult = psVmConfig.toMgmtVirtualMachineConfiguration(); + var psResult = PSVirtualMachineConfiguration.fromMgmtPSVirtualMachineConfiguration(mgmtVmConfig); + + // Assert - Verify proper instance creation + Assert.NotNull(mgmtResult); + Assert.NotNull(psResult); + Assert.IsType(mgmtResult); + Assert.IsType(psResult); + + // Verify new instances are created + Assert.NotSame(mgmtVmConfig, mgmtResult); + Assert.NotSame(psVmConfig, psResult); + } + + #endregion + + #region Performance and Edge Case Tests + + [Fact] + public void VirtualMachineConfigurationConversions_PerformanceTest_ExecutesQuickly() + { + // This test ensures the conversions are efficient + + // Arrange + var imageRef = new PSImageReference("Canonical", "0001-com-ubuntu-server-focal", "20_04-lts-gen2"); + var psVmConfig = new PSVirtualMachineConfiguration(imageRef, "batch.node.ubuntu 20.04"); + var mgmtVmConfig = new VirtualMachineConfiguration( + new ImageReference("Canonical", "0001-com-ubuntu-server-focal", "20_04-lts-gen2"), + "batch.node.ubuntu 20.04" + ); + + // Act & Assert - Multiple conversions should complete without delay + for (int i = 0; i < 100; i++) + { + var mgmtResult = psVmConfig.toMgmtVirtualMachineConfiguration(); + var psResult = PSVirtualMachineConfiguration.fromMgmtPSVirtualMachineConfiguration(mgmtVmConfig); + + Assert.NotNull(mgmtResult); + Assert.NotNull(psResult); + Assert.Equal("batch.node.ubuntu 20.04", mgmtResult.NodeAgentSkuId); + Assert.Equal("batch.node.ubuntu 20.04", psResult.NodeAgentSkuId); + } + } + + [Fact] + public void VirtualMachineConfigurationConversions_CollectionsWithNullElements_HandlesGracefully() + { + // Test that collections containing null elements are handled correctly + + // Arrange - Configuration with collections containing null elements + var imageRef = new PSImageReference("Canonical", "0001-com-ubuntu-server-focal", "20_04-lts-gen2"); + var psVmConfig = new PSVirtualMachineConfiguration(imageRef, "batch.node.ubuntu 20.04") + { + DataDisks = new List + { + new PSDataDisk(0, 100), + null, // Null element + new PSDataDisk(1, 200) + }, + Extensions = new List + { + new PSVMExtension("Extension1", "Publisher1", "Type1"), + null, // Null element + new PSVMExtension("Extension2", "Publisher2", "Type2") + } + }; + + // Act + var mgmtResult = psVmConfig.toMgmtVirtualMachineConfiguration(); + + // Assert - Should handle null elements gracefully + Assert.NotNull(mgmtResult); + Assert.NotNull(mgmtResult.DataDisks); + Assert.NotNull(mgmtResult.Extensions); + // The LINQ Select operations should preserve null elements + Assert.Equal(3, mgmtResult.DataDisks.Count); + Assert.Equal(3, mgmtResult.Extensions.Count); + } + + #endregion + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Test/Models/PSWindowsUserConfigurationTests.cs b/src/Batch/Batch.Test/Models/PSWindowsUserConfigurationTests.cs new file mode 100644 index 000000000000..60c6f47d1dfd --- /dev/null +++ b/src/Batch/Batch.Test/Models/PSWindowsUserConfigurationTests.cs @@ -0,0 +1,786 @@ +// ----------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ----------------------------------------------------------------------------- + +using Microsoft.Azure.Commands.Batch.Models; +using Microsoft.Azure.Management.Batch.Models; +using Microsoft.WindowsAzure.Commands.ScenarioTest; +using Xunit; + +namespace Microsoft.Azure.Commands.Batch.Test.ModelsConversions +{ + public class PSWindowsUserConfigurationTests + { + #region ToWindowsUserConfiguration Tests + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void ToWindowsUserConfiguration_WithBatchLoginMode_ConvertsCorrectly() + { + // Arrange + var psConfig = new PSWindowsUserConfiguration( + loginMode: Microsoft.Azure.Batch.Common.LoginMode.Batch); + + // Act + var mgmtConfig = psConfig.ToWindowsUserConfiguration(); + + // Assert + Assert.NotNull(mgmtConfig); + Assert.NotNull(mgmtConfig.LoginMode); + Assert.Equal(LoginMode.Batch, mgmtConfig.LoginMode.Value); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void ToWindowsUserConfiguration_WithInteractiveLoginMode_ConvertsCorrectly() + { + // Arrange + var psConfig = new PSWindowsUserConfiguration( + loginMode: Microsoft.Azure.Batch.Common.LoginMode.Interactive); + + // Act + var mgmtConfig = psConfig.ToWindowsUserConfiguration(); + + // Assert + Assert.NotNull(mgmtConfig); + Assert.NotNull(mgmtConfig.LoginMode); + Assert.Equal(LoginMode.Interactive, mgmtConfig.LoginMode.Value); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void ToWindowsUserConfiguration_WithNullLoginMode_ConvertsCorrectly() + { + // Arrange + var psConfig = new PSWindowsUserConfiguration(loginMode: null); + + // Act + var mgmtConfig = psConfig.ToWindowsUserConfiguration(); + + // Assert + Assert.NotNull(mgmtConfig); + Assert.Null(mgmtConfig.LoginMode); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void ToWindowsUserConfiguration_WithDefaultConstructor_ConvertsCorrectly() + { + // Arrange + var psConfig = new PSWindowsUserConfiguration(); + + // Act + var mgmtConfig = psConfig.ToWindowsUserConfiguration(); + + // Assert + Assert.NotNull(mgmtConfig); + Assert.Null(mgmtConfig.LoginMode); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void ToWindowsUserConfiguration_AlwaysCreatesNewInstance() + { + // Arrange + var psConfig = new PSWindowsUserConfiguration( + loginMode: Microsoft.Azure.Batch.Common.LoginMode.Batch); + + // Act + var mgmtConfig1 = psConfig.ToWindowsUserConfiguration(); + var mgmtConfig2 = psConfig.ToWindowsUserConfiguration(); + + // Assert + Assert.NotNull(mgmtConfig1); + Assert.NotNull(mgmtConfig2); + Assert.NotSame(mgmtConfig1, mgmtConfig2); + Assert.Equal(mgmtConfig1.LoginMode, mgmtConfig2.LoginMode); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void ToWindowsUserConfiguration_VerifyReturnType() + { + // Arrange + var psConfig = new PSWindowsUserConfiguration( + loginMode: Microsoft.Azure.Batch.Common.LoginMode.Interactive); + + // Act + var mgmtConfig = psConfig.ToWindowsUserConfiguration(); + + // Assert + Assert.NotNull(mgmtConfig); + Assert.IsType(mgmtConfig); + Assert.IsAssignableFrom(mgmtConfig); + } + + [Theory] + [Trait(Category.AcceptanceType, Category.CheckIn)] + [InlineData(Microsoft.Azure.Batch.Common.LoginMode.Batch, LoginMode.Batch)] + [InlineData(Microsoft.Azure.Batch.Common.LoginMode.Interactive, LoginMode.Interactive)] + public void ToWindowsUserConfiguration_AllValidLoginModes_ConvertsCorrectly( + Microsoft.Azure.Batch.Common.LoginMode psLoginMode, + LoginMode expectedMgmtLoginMode) + { + // Arrange + var psConfig = new PSWindowsUserConfiguration(loginMode: psLoginMode); + + // Act + var mgmtConfig = psConfig.ToWindowsUserConfiguration(); + + // Assert + Assert.NotNull(mgmtConfig); + Assert.NotNull(mgmtConfig.LoginMode); + Assert.Equal(expectedMgmtLoginMode, mgmtConfig.LoginMode.Value); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void ToWindowsUserConfiguration_LoginModeSemantics_VerifyCorrectMapping() + { + // This test ensures that the login mode semantics are preserved during conversion + + // Arrange & Test Batch mode - LOGON32_LOGON_BATCH for long-running processes + var psBatchConfig = new PSWindowsUserConfiguration( + loginMode: Microsoft.Azure.Batch.Common.LoginMode.Batch); + var mgmtBatchConfig = psBatchConfig.ToWindowsUserConfiguration(); + + Assert.NotNull(mgmtBatchConfig.LoginMode); + Assert.Equal(LoginMode.Batch, mgmtBatchConfig.LoginMode.Value); + + // Arrange & Test Interactive mode - LOGON32_LOGON_INTERACTIVE for applications requiring interactive permissions + var psInteractiveConfig = new PSWindowsUserConfiguration( + loginMode: Microsoft.Azure.Batch.Common.LoginMode.Interactive); + var mgmtInteractiveConfig = psInteractiveConfig.ToWindowsUserConfiguration(); + + Assert.NotNull(mgmtInteractiveConfig.LoginMode); + Assert.Equal(LoginMode.Interactive, mgmtInteractiveConfig.LoginMode.Value); + } + + #endregion + + #region FromWindowsUserConfiguration Tests + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void FromWindowsUserConfiguration_WithNull_ReturnsNull() + { + // Act + var result = PSWindowsUserConfiguration.FromWindowsUserConfiguration(null); + + // Assert + Assert.Null(result); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void FromWindowsUserConfiguration_WithBatchLoginMode_ConvertsCorrectly() + { + // Arrange + var mgmtConfig = new WindowsUserConfiguration( + loginMode: LoginMode.Batch); + + // Act + var psConfig = PSWindowsUserConfiguration.FromWindowsUserConfiguration(mgmtConfig); + + // Assert + Assert.NotNull(psConfig); + Assert.NotNull(psConfig.LoginMode); + Assert.Equal(Microsoft.Azure.Batch.Common.LoginMode.Batch, psConfig.LoginMode.Value); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void FromWindowsUserConfiguration_WithInteractiveLoginMode_ConvertsCorrectly() + { + // Arrange + var mgmtConfig = new WindowsUserConfiguration( + loginMode: LoginMode.Interactive); + + // Act + var psConfig = PSWindowsUserConfiguration.FromWindowsUserConfiguration(mgmtConfig); + + // Assert + Assert.NotNull(psConfig); + Assert.NotNull(psConfig.LoginMode); + Assert.Equal(Microsoft.Azure.Batch.Common.LoginMode.Interactive, psConfig.LoginMode.Value); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void FromWindowsUserConfiguration_WithNullLoginMode_ConvertsCorrectly() + { + // Arrange + var mgmtConfig = new WindowsUserConfiguration(loginMode: null); + + // Act + var psConfig = PSWindowsUserConfiguration.FromWindowsUserConfiguration(mgmtConfig); + + // Assert + Assert.NotNull(psConfig); + Assert.Null(psConfig.LoginMode); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void FromWindowsUserConfiguration_WithDefaultConstructor_ConvertsCorrectly() + { + // Arrange + var mgmtConfig = new WindowsUserConfiguration(); + + // Act + var psConfig = PSWindowsUserConfiguration.FromWindowsUserConfiguration(mgmtConfig); + + // Assert + Assert.NotNull(psConfig); + Assert.Null(psConfig.LoginMode); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void FromWindowsUserConfiguration_StaticMethod_DoesNotRequireInstance() + { + // Arrange + var mgmtConfig = new WindowsUserConfiguration( + loginMode: LoginMode.Batch); + + // Act - Call static method directly on class + var psConfig = PSWindowsUserConfiguration.FromWindowsUserConfiguration(mgmtConfig); + + // Assert + Assert.NotNull(psConfig); + Assert.NotNull(psConfig.LoginMode); + Assert.Equal(Microsoft.Azure.Batch.Common.LoginMode.Batch, psConfig.LoginMode.Value); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void FromWindowsUserConfiguration_AlwaysCreatesNewInstance() + { + // Arrange + var mgmtConfig = new WindowsUserConfiguration( + loginMode: LoginMode.Interactive); + + // Act + var psConfig1 = PSWindowsUserConfiguration.FromWindowsUserConfiguration(mgmtConfig); + var psConfig2 = PSWindowsUserConfiguration.FromWindowsUserConfiguration(mgmtConfig); + + // Assert + Assert.NotNull(psConfig1); + Assert.NotNull(psConfig2); + Assert.NotSame(psConfig1, psConfig2); + Assert.Equal(psConfig1.LoginMode, psConfig2.LoginMode); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void FromWindowsUserConfiguration_VerifyReturnType() + { + // Arrange + var mgmtConfig = new WindowsUserConfiguration( + loginMode: LoginMode.Batch); + + // Act + var psConfig = PSWindowsUserConfiguration.FromWindowsUserConfiguration(mgmtConfig); + + // Assert + Assert.NotNull(psConfig); + Assert.IsType(psConfig); + Assert.IsAssignableFrom(psConfig); + } + + [Theory] + [Trait(Category.AcceptanceType, Category.CheckIn)] + [InlineData(LoginMode.Batch, Microsoft.Azure.Batch.Common.LoginMode.Batch)] + [InlineData(LoginMode.Interactive, Microsoft.Azure.Batch.Common.LoginMode.Interactive)] + public void FromWindowsUserConfiguration_AllValidLoginModes_ConvertsCorrectly( + LoginMode mgmtLoginMode, + Microsoft.Azure.Batch.Common.LoginMode expectedPsLoginMode) + { + // Arrange + var mgmtConfig = new WindowsUserConfiguration(loginMode: mgmtLoginMode); + + // Act + var psConfig = PSWindowsUserConfiguration.FromWindowsUserConfiguration(mgmtConfig); + + // Assert + Assert.NotNull(psConfig); + Assert.NotNull(psConfig.LoginMode); + Assert.Equal(expectedPsLoginMode, psConfig.LoginMode.Value); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void FromWindowsUserConfiguration_LoginModeSemantics_VerifyCorrectMapping() + { + // This test ensures that the login mode semantics are preserved during conversion + + // Arrange & Test Batch mode - LOGON32_LOGON_BATCH for long-running processes + var mgmtBatchConfig = new WindowsUserConfiguration(loginMode: LoginMode.Batch); + var psBatchConfig = PSWindowsUserConfiguration.FromWindowsUserConfiguration(mgmtBatchConfig); + + Assert.NotNull(psBatchConfig.LoginMode); + Assert.Equal(Microsoft.Azure.Batch.Common.LoginMode.Batch, psBatchConfig.LoginMode.Value); + + // Arrange & Test Interactive mode - LOGON32_LOGON_INTERACTIVE for applications requiring interactive permissions + var mgmtInteractiveConfig = new WindowsUserConfiguration(loginMode: LoginMode.Interactive); + var psInteractiveConfig = PSWindowsUserConfiguration.FromWindowsUserConfiguration(mgmtInteractiveConfig); + + Assert.NotNull(psInteractiveConfig.LoginMode); + Assert.Equal(Microsoft.Azure.Batch.Common.LoginMode.Interactive, psInteractiveConfig.LoginMode.Value); + } + + #endregion + + #region Round-trip Conversion Tests + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesBatchLoginMode() + { + // Arrange + var originalPsConfig = new PSWindowsUserConfiguration( + loginMode: Microsoft.Azure.Batch.Common.LoginMode.Batch); + + // Act + var mgmtConfig = originalPsConfig.ToWindowsUserConfiguration(); + var roundTripPsConfig = PSWindowsUserConfiguration.FromWindowsUserConfiguration(mgmtConfig); + + // Assert + Assert.NotNull(roundTripPsConfig); + Assert.Equal(originalPsConfig.LoginMode, roundTripPsConfig.LoginMode); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesInteractiveLoginMode() + { + // Arrange + var originalPsConfig = new PSWindowsUserConfiguration( + loginMode: Microsoft.Azure.Batch.Common.LoginMode.Interactive); + + // Act + var mgmtConfig = originalPsConfig.ToWindowsUserConfiguration(); + var roundTripPsConfig = PSWindowsUserConfiguration.FromWindowsUserConfiguration(mgmtConfig); + + // Assert + Assert.NotNull(roundTripPsConfig); + Assert.Equal(originalPsConfig.LoginMode, roundTripPsConfig.LoginMode); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesNullLoginMode() + { + // Arrange + var originalPsConfig = new PSWindowsUserConfiguration(loginMode: null); + + // Act + var mgmtConfig = originalPsConfig.ToWindowsUserConfiguration(); + var roundTripPsConfig = PSWindowsUserConfiguration.FromWindowsUserConfiguration(mgmtConfig); + + // Assert + Assert.NotNull(roundTripPsConfig); + Assert.Null(roundTripPsConfig.LoginMode); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void RoundTripConversion_FromMgmtAndToMgmt_PreservesAllProperties() + { + // Arrange + var originalMgmtConfig = new WindowsUserConfiguration( + loginMode: LoginMode.Interactive); + + // Act + var psConfig = PSWindowsUserConfiguration.FromWindowsUserConfiguration(originalMgmtConfig); + var roundTripMgmtConfig = psConfig.ToWindowsUserConfiguration(); + + // Assert + Assert.NotNull(roundTripMgmtConfig); + Assert.Equal(originalMgmtConfig.LoginMode, roundTripMgmtConfig.LoginMode); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void RoundTripConversion_FromMgmtAndToMgmt_PreservesNullProperties() + { + // Arrange + var originalMgmtConfig = new WindowsUserConfiguration(loginMode: null); + + // Act + var psConfig = PSWindowsUserConfiguration.FromWindowsUserConfiguration(originalMgmtConfig); + var roundTripMgmtConfig = psConfig.ToWindowsUserConfiguration(); + + // Assert + Assert.NotNull(roundTripMgmtConfig); + Assert.Null(roundTripMgmtConfig.LoginMode); + } + + [Theory] + [Trait(Category.AcceptanceType, Category.CheckIn)] + [InlineData(Microsoft.Azure.Batch.Common.LoginMode.Batch)] + [InlineData(Microsoft.Azure.Batch.Common.LoginMode.Interactive)] + public void RoundTripConversion_AllValidValues_PreservesOriginalValue( + Microsoft.Azure.Batch.Common.LoginMode originalLoginMode) + { + // Arrange + var originalPsConfig = new PSWindowsUserConfiguration(loginMode: originalLoginMode); + + // Act + var mgmtConfig = originalPsConfig.ToWindowsUserConfiguration(); + var roundTripPsConfig = PSWindowsUserConfiguration.FromWindowsUserConfiguration(mgmtConfig); + + // Assert + Assert.NotNull(roundTripPsConfig); + Assert.Equal(originalLoginMode, roundTripPsConfig.LoginMode); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void RoundTripConversion_MultipleScenarios_PreservesSemantics() + { + // Arrange - Test various realistic Windows user configurations + var testScenarios = new[] + { + new { + LoginMode = (Microsoft.Azure.Batch.Common.LoginMode?)Microsoft.Azure.Batch.Common.LoginMode.Batch, + Description = "Batch login mode for long-running parallel processes" + }, + new { + LoginMode = (Microsoft.Azure.Batch.Common.LoginMode?)Microsoft.Azure.Batch.Common.LoginMode.Interactive, + Description = "Interactive login mode for applications requiring interactive permissions" + }, + new { + LoginMode = (Microsoft.Azure.Batch.Common.LoginMode?)null, + Description = "Default login mode (system default)" + } + }; + + foreach (var scenario in testScenarios) + { + // Act - Round trip conversion starting from PS + var psConfig = new PSWindowsUserConfiguration(scenario.LoginMode); + var mgmtFromPs = psConfig.ToWindowsUserConfiguration(); + var backToPs = PSWindowsUserConfiguration.FromWindowsUserConfiguration(mgmtFromPs); + + // Assert PS -> Mgmt -> PS + Assert.Equal(scenario.LoginMode, backToPs.LoginMode); + + // Act - Round trip conversion starting from Mgmt + LoginMode? mgmtLoginMode = scenario.LoginMode.HasValue + ? (scenario.LoginMode.Value == Microsoft.Azure.Batch.Common.LoginMode.Batch + ? LoginMode.Batch + : LoginMode.Interactive) + : (LoginMode?)null; + + var mgmtConfig = new WindowsUserConfiguration(mgmtLoginMode); + var psFromMgmt = PSWindowsUserConfiguration.FromWindowsUserConfiguration(mgmtConfig); + var backToMgmt = psFromMgmt.ToWindowsUserConfiguration(); + + // Assert Mgmt -> PS -> Mgmt + Assert.Equal(mgmtLoginMode, backToMgmt.LoginMode); + } + } + + #endregion + + #region Integration Tests + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void WindowsUserConfigurationConversions_BothDirections_MaintainSemanticEquivalence() + { + // This test ensures that the semantic meaning is preserved across conversions for Azure Batch Windows user configuration + + // Test Batch login mode semantics - LOGON32_LOGON_BATCH for parallel processing + var psBatchUser = new PSWindowsUserConfiguration( + loginMode: Microsoft.Azure.Batch.Common.LoginMode.Batch); + var mgmtBatchUser = psBatchUser.ToWindowsUserConfiguration(); + var backToPs = PSWindowsUserConfiguration.FromWindowsUserConfiguration(mgmtBatchUser); + + Assert.NotNull(mgmtBatchUser); + Assert.NotNull(mgmtBatchUser.LoginMode); + Assert.Equal(LoginMode.Batch, mgmtBatchUser.LoginMode.Value); + Assert.NotNull(backToPs); + Assert.Equal(Microsoft.Azure.Batch.Common.LoginMode.Batch, backToPs.LoginMode.Value); + + // Test Interactive login mode semantics - LOGON32_LOGON_INTERACTIVE for GUI applications + var psInteractiveUser = new PSWindowsUserConfiguration( + loginMode: Microsoft.Azure.Batch.Common.LoginMode.Interactive); + var mgmtInteractiveUser = psInteractiveUser.ToWindowsUserConfiguration(); + var backToPsInteractive = PSWindowsUserConfiguration.FromWindowsUserConfiguration(mgmtInteractiveUser); + + Assert.NotNull(mgmtInteractiveUser); + Assert.NotNull(mgmtInteractiveUser.LoginMode); + Assert.Equal(LoginMode.Interactive, mgmtInteractiveUser.LoginMode.Value); + Assert.NotNull(backToPsInteractive); + Assert.Equal(Microsoft.Azure.Batch.Common.LoginMode.Interactive, backToPsInteractive.LoginMode.Value); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void WindowsUserConfigurationConversions_NullHandling_WorksCorrectly() + { + // Test null handling in conversions + + // Act + var resultFromNull = PSWindowsUserConfiguration.FromWindowsUserConfiguration(null); + + // Assert + Assert.Null(resultFromNull); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void WindowsUserConfigurationConversions_BatchWindowsUserContext_VerifyCorrectUsage() + { + // This test validates the conversions work correctly in the context of Batch Windows user account configuration + // WindowsUserConfiguration is used to configure Windows-specific user account properties in Azure Batch + + // Arrange - Test with realistic Batch Windows user scenarios + var windowsUserScenarios = new PSWindowsUserConfiguration[] + { + // Batch processing user for long-running parallel workloads + new PSWindowsUserConfiguration { + LoginMode = Microsoft.Azure.Batch.Common.LoginMode.Batch + //Description = "Batch login mode recommended for long-running parallel processes" + }, + // Interactive user for applications requiring GUI or interactive permissions + new PSWindowsUserConfiguration { + LoginMode = Microsoft.Azure.Batch.Common.LoginMode.Interactive + //Description = "Interactive login mode for applications requiring interactive permissions" + }, + // Default configuration letting system choose appropriate mode + new PSWindowsUserConfiguration { + LoginMode = (Microsoft.Azure.Batch.Common.LoginMode?)null + //Description = "Default system-chosen login mode" + } + }; + + foreach (var scenario in windowsUserScenarios) + { + // Act + var psWindowsUserConfig = new PSWindowsUserConfiguration(scenario.LoginMode); + var mgmtWindowsUserConfig = psWindowsUserConfig.ToWindowsUserConfiguration(); + + // Assert - Should convert correctly for Batch Windows user account configuration + Assert.NotNull(mgmtWindowsUserConfig); + + if (scenario.LoginMode.HasValue) + { + Assert.NotNull(mgmtWindowsUserConfig.LoginMode); + var expectedMgmtMode = scenario.LoginMode.Value == Microsoft.Azure.Batch.Common.LoginMode.Batch + ? LoginMode.Batch + : LoginMode.Interactive; + Assert.Equal(expectedMgmtMode, mgmtWindowsUserConfig.LoginMode.Value); + } + else + { + Assert.Null(mgmtWindowsUserConfig.LoginMode); + } + + // Verify round-trip conversion maintains Batch Windows user semantics + var backToPs = PSWindowsUserConfiguration.FromWindowsUserConfiguration(mgmtWindowsUserConfig); + Assert.NotNull(backToPs); + Assert.Equal(scenario.LoginMode, backToPs.LoginMode); + } + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void WindowsUserConfigurationConversions_Win32LoginTypeSemantics_VerifyMapping() + { + // Test that the login mode mapping preserves Win32 logon type semantics + + // LOGON32_LOGON_BATCH semantics - optimized for batch processing + var batchScenarios = new[] + { + "Long-running computational tasks", + "Parallel data processing jobs", + "Background service operations", + "Resource-intensive batch workloads" + }; + + foreach (var batchScenario in batchScenarios) + { + var psConfig = new PSWindowsUserConfiguration(Microsoft.Azure.Batch.Common.LoginMode.Batch); + var mgmtConfig = psConfig.ToWindowsUserConfiguration(); + + Assert.Equal(LoginMode.Batch, mgmtConfig.LoginMode.Value); + // Batch mode should be used for scenarios like the current batchScenario + } + + // LOGON32_LOGON_INTERACTIVE semantics - for GUI and interactive applications + var interactiveScenarios = new[] + { + "Applications requiring GUI components", + "Interactive desktop applications", + "Applications needing interactive permissions", + "Tools requiring user interaction capabilities" + }; + + foreach (var interactiveScenario in interactiveScenarios) + { + var psConfig = new PSWindowsUserConfiguration(Microsoft.Azure.Batch.Common.LoginMode.Interactive); + var mgmtConfig = psConfig.ToWindowsUserConfiguration(); + + Assert.Equal(LoginMode.Interactive, mgmtConfig.LoginMode.Value); + // Interactive mode should be used for scenarios like the current interactiveScenario + } + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void WindowsUserConfigurationConversions_InstanceCreation_VerifyBehavior() + { + // This test verifies that the conversion methods create appropriate instances + + // Arrange + var psConfig = new PSWindowsUserConfiguration(Microsoft.Azure.Batch.Common.LoginMode.Interactive); + var mgmtConfig = new WindowsUserConfiguration(LoginMode.Batch); + + // Act + var mgmtResult = psConfig.ToWindowsUserConfiguration(); + var psResult = PSWindowsUserConfiguration.FromWindowsUserConfiguration(mgmtConfig); + + // Assert - Verify proper instance creation + Assert.NotNull(mgmtResult); + Assert.NotNull(psResult); + Assert.IsType(mgmtResult); + Assert.IsType(psResult); + + // Verify new instances are created + Assert.NotSame(mgmtConfig, mgmtResult); + Assert.NotSame(psConfig, psResult); + } + + #endregion + + #region Performance Tests + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void WindowsUserConfigurationConversions_PerformanceTest_ExecutesQuickly() + { + // This test ensures the conversions are efficient with multiple operations + + // Arrange + var psConfigs = new PSWindowsUserConfiguration[100]; + var mgmtConfigs = new WindowsUserConfiguration[100]; + + for (int i = 0; i < 100; i++) + { + var loginMode = i % 3 == 0 ? (Microsoft.Azure.Batch.Common.LoginMode?)null + : (i % 2 == 0 ? Microsoft.Azure.Batch.Common.LoginMode.Batch + : Microsoft.Azure.Batch.Common.LoginMode.Interactive); + psConfigs[i] = new PSWindowsUserConfiguration(loginMode); + + var mgmtLoginMode = i % 3 == 0 ? (LoginMode?)null + : (i % 2 == 0 ? LoginMode.Batch : LoginMode.Interactive); + mgmtConfigs[i] = new WindowsUserConfiguration(mgmtLoginMode); + } + + // Act & Assert - Multiple conversions should complete without delay + for (int i = 0; i < 10; i++) + { + foreach (var psConfig in psConfigs) + { + var mgmtResult = psConfig.ToWindowsUserConfiguration(); + Assert.NotNull(mgmtResult); + } + + foreach (var mgmtConfig in mgmtConfigs) + { + var psResult = PSWindowsUserConfiguration.FromWindowsUserConfiguration(mgmtConfig); + Assert.NotNull(psResult); + } + } + } + + #endregion + + #region Real-world Scenario Tests + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void WindowsUserConfigurationConversions_BatchWorkloadScenarios_VerifySemantics() + { + // This test validates the conversions work correctly in realistic Azure Batch Windows workload scenarios + + // Arrange - Test scenarios matching actual Azure Batch Windows usage patterns + var workloadScenarios = new PSWindowsUserConfiguration[] + { + // High-performance computing workloads + new PSWindowsUserConfiguration{ + LoginMode = Microsoft.Azure.Batch.Common.LoginMode.Batch + //WorkloadType = "High-performance computing (HPC) with parallel processing", + //Context = "Scientific simulations, financial modeling, image processing" + }, + // Desktop application workloads requiring GUI + new PSWindowsUserConfiguration{ + LoginMode = Microsoft.Azure.Batch.Common.LoginMode.Interactive + //WorkloadType = "Windows desktop applications requiring interactive permissions", + //Context = "Legacy Windows applications, GUI tools, applications with interactive components" + }, + // System default configuration + new PSWindowsUserConfiguration{ + LoginMode = (Microsoft.Azure.Batch.Common.LoginMode?)null + //WorkloadType = "Standard batch processing with system defaults", + //Context = "General-purpose batch jobs where login mode is not critical" + } + }; + + foreach (var scenario in workloadScenarios) + { + // Act - Test conversion in the context of Azure Batch Windows workloads + var psConfig = new PSWindowsUserConfiguration(scenario.LoginMode); + var mgmtConfig = psConfig.ToWindowsUserConfiguration(); + var roundTripPs = PSWindowsUserConfiguration.FromWindowsUserConfiguration(mgmtConfig); + + // Assert - Verify workload semantics are preserved + Assert.NotNull(mgmtConfig); + Assert.NotNull(roundTripPs); + + if (scenario.LoginMode.HasValue) + { + var expectedMgmtMode = scenario.LoginMode.Value == Microsoft.Azure.Batch.Common.LoginMode.Batch + ? LoginMode.Batch + : LoginMode.Interactive; + + Assert.Equal(expectedMgmtMode, mgmtConfig.LoginMode.Value); + Assert.Equal(scenario.LoginMode.Value, roundTripPs.LoginMode.Value); + + // Verify that login mode semantics match workload requirements + if (scenario.LoginMode.Value == Microsoft.Azure.Batch.Common.LoginMode.Batch) + { + Assert.Equal(LoginMode.Batch, mgmtConfig.LoginMode.Value); + // Batch mode should be used for HPC and parallel processing workloads + } + else + { + Assert.Equal(LoginMode.Interactive, mgmtConfig.LoginMode.Value); + // Interactive mode should be used for GUI applications and interactive tools + } + } + else + { + Assert.Null(mgmtConfig.LoginMode); + Assert.Null(roundTripPs.LoginMode); + // Null mode allows system to choose appropriate default + } + } + } + + #endregion + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.PoolTests/TestPoolCRUD.json b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.PoolTests/TestPoolCRUD.json index 719392df1e0e..2dbe99a9a82d 100644 --- a/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.PoolTests/TestPoolCRUD.json +++ b/src/Batch/Batch.Test/SessionRecords/Microsoft.Azure.Commands.Batch.Test.ScenarioTests.PoolTests/TestPoolCRUD.json @@ -1,52 +1,208 @@ { "Entries": [ { - "RequestUri": "/pools?api-version=2024-07-01.20.0", - "EncodedRequestUri": "L3Bvb2xzP2FwaS12ZXJzaW9uPTIwMjQtMDctMDEuMjAuMA==", - "RequestMethod": "POST", + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/pools/pool1?api-version=2024-07-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvcG9vbHMvcG9vbDE/YXBpLXZlcnNpb249MjAyNC0wNy0wMQ==", + "RequestMethod": "PUT", "RequestHeaders": { "Accept-Language": [ "en-US" ], - "client-request-id": [ - "c7e34d74-01c2-422c-99da-1ae94f941f8e" + "x-ms-client-request-id": [ + "66f0edbe-89f9-4fbf-ac2b-12724cb18c36" ], - "ocp-date": [ - "Wed, 17 Sep 2025 22:43:20 GMT" + "User-Agent": [ + "FxVersion/8.0.2125.47513", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.26100", + "Microsoft.Azure.Management.Batch.BatchManagementClient/3.7.1" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "671" + ] + }, + "RequestBody": "{\r\n \"properties\": {\r\n \"deploymentConfiguration\": {\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoft-azure-batch\",\r\n \"offer\": \"ubuntu-server-container\",\r\n \"sku\": \"20-04-lts\"\r\n },\r\n \"nodeAgentSkuId\": \"batch.node.ubuntu 20.04\",\r\n \"containerConfiguration\": {\r\n \"type\": \"dockerCompatible\",\r\n \"containerImageNames\": [\r\n \"test1\"\r\n ]\r\n }\r\n }\r\n },\r\n \"scaleSettings\": {\r\n \"fixedScale\": {\r\n \"targetDedicatedNodes\": 0\r\n }\r\n },\r\n \"vmSize\": \"standard_d1_v2\",\r\n \"interNodeCommunication\": \"Disabled\"\r\n }\r\n}", + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "ETag": [ + "W/\"0x8DE0C1A51C6ED9B\"" + ], + "x-ms-request-id": [ + "d78e147f-dd57-4b23-9c4b-d909cd724544" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "x-ms-operation-identifier": [ + "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=ac839cc2-33ee-4879-a5b5-2895202ccb29/eastus/4d11ac63-117f-4856-bca1-9c0a8befd54e" + ], + "x-ms-ratelimit-remaining-subscription-writes": [ + "799" + ], + "x-ms-ratelimit-remaining-subscription-global-writes": [ + "11999" + ], + "x-ms-correlation-request-id": [ + "a5ffc1df-aca9-41a1-b92e-5caaa36ee6b8" + ], + "x-ms-routing-request-id": [ + "EASTUS:20251015T184031Z:a5ffc1df-aca9-41a1-b92e-5caaa36ee6b8" + ], + "X-Cache": [ + "CONFIG_NOCACHE" + ], + "X-MSEdge-Ref": [ + "Ref A: A65AE1D1F8F64350987670D6B9E037B3 Ref B: CO6AA3150218047 Ref C: 2025-10-15T18:40:30Z" + ], + "Date": [ + "Wed, 15 Oct 2025 18:40:31 GMT" + ], + "Content-Length": [ + "1311" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ], + "Last-Modified": [ + "Wed, 15 Oct 2025 18:40:31 GMT" + ] + }, + "ResponseBody": "{\r\n \"id\": \"/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/pools/pool1\",\r\n \"name\": \"pool1\",\r\n \"type\": \"Microsoft.Batch/batchAccounts/pools\",\r\n \"etag\": \"W/\\\"0x8DE0C1A51C6ED9B\\\"\",\r\n \"properties\": {\r\n \"lastModified\": \"2025-10-15T18:40:31.3863579Z\",\r\n \"creationTime\": \"2025-10-15T18:40:31.3863568Z\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"provisioningStateTransitionTime\": \"2025-10-15T18:40:31.3863568Z\",\r\n \"allocationState\": \"Resizing\",\r\n \"allocationStateTransitionTime\": \"2025-10-15T18:40:31.386358Z\",\r\n \"vmSize\": \"STANDARD_D1_V2\",\r\n \"interNodeCommunication\": \"Disabled\",\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"deploymentConfiguration\": {\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoft-azure-batch\",\r\n \"offer\": \"ubuntu-server-container\",\r\n \"sku\": \"20-04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSkuId\": \"batch.node.ubuntu 20.04\",\r\n \"containerConfiguration\": {\r\n \"type\": \"DockerCompatible\",\r\n \"containerImageNames\": [\r\n \"test1\"\r\n ]\r\n }\r\n }\r\n },\r\n \"scaleSettings\": {\r\n \"fixedScale\": {\r\n \"targetDedicatedNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"resizeTimeout\": \"PT15M\"\r\n }\r\n },\r\n \"resizeOperationStatus\": {\r\n \"targetDedicatedNodes\": 0,\r\n \"nodeDeallocationOption\": \"Requeue\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"startTime\": \"2025-10-15T18:40:31.3863553Z\"\r\n },\r\n \"currentDedicatedNodes\": 0,\r\n \"currentLowPriorityNodes\": 0\r\n }\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/pools/pool2?api-version=2024-07-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvcG9vbHMvcG9vbDI/YXBpLXZlcnNpb249MjAyNC0wNy0wMQ==", + "RequestMethod": "PUT", + "RequestHeaders": { + "Accept-Language": [ + "en-US" ], "x-ms-client-request-id": [ - "49eb50dd-9b6e-45e6-a0d6-61cb6965d7ea" + "fcc26dfe-37f5-42e6-b014-58a853745df2" ], "User-Agent": [ - "FxVersion/8.0.2025.41914", + "FxVersion/8.0.2125.47513", "OSName/Windows", "OSVersion/Microsoft.Windows.10.0.26100", - "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.300.124.47002", - "AzurePowershell/Az1.0.0" + "Microsoft.Azure.Management.Batch.BatchManagementClient/3.7.1" ], "Content-Type": [ - "application/json; odata=minimalmetadata; charset=utf-8" + "application/json; charset=utf-8" ], "Content-Length": [ - "541" + "671" ] }, - "RequestBody": "{\r\n \"id\": \"pool1\",\r\n \"vmSize\": \"standard_d1_v2\",\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoft-azure-batch\",\r\n \"offer\": \"ubuntu-server-container\",\r\n \"sku\": \"20-04-lts\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"containerConfiguration\": {\r\n \"type\": \"dockerCompatible\",\r\n \"containerImageNames\": [\r\n \"test1\"\r\n ]\r\n }\r\n },\r\n \"targetDedicatedNodes\": 0,\r\n \"enableInterNodeCommunication\": false,\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", + "RequestBody": "{\r\n \"properties\": {\r\n \"deploymentConfiguration\": {\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoft-azure-batch\",\r\n \"offer\": \"ubuntu-server-container\",\r\n \"sku\": \"20-04-lts\"\r\n },\r\n \"nodeAgentSkuId\": \"batch.node.ubuntu 20.04\",\r\n \"containerConfiguration\": {\r\n \"type\": \"dockerCompatible\",\r\n \"containerImageNames\": [\r\n \"test2\"\r\n ]\r\n }\r\n }\r\n },\r\n \"scaleSettings\": {\r\n \"fixedScale\": {\r\n \"targetDedicatedNodes\": 0\r\n }\r\n },\r\n \"vmSize\": \"standard_d1_v2\",\r\n \"interNodeCommunication\": \"Disabled\"\r\n }\r\n}", "ResponseHeaders": { - "Transfer-Encoding": [ - "chunked" + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" ], "ETag": [ - "0x8DDF63B9A729853" + "W/\"0x8DE0C1A5D5A8BC6\"" + ], + "x-ms-request-id": [ + "38b680aa-c808-4c58-a95b-88ffe50936bc" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "x-ms-operation-identifier": [ + "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=ac839cc2-33ee-4879-a5b5-2895202ccb29/eastus2/f090d43f-eedf-4c1e-81b8-4dc05a542c6f" + ], + "x-ms-ratelimit-remaining-subscription-writes": [ + "799" + ], + "x-ms-ratelimit-remaining-subscription-global-writes": [ + "11999" + ], + "x-ms-correlation-request-id": [ + "45f8cc43-fee5-4634-8bc7-762d820ff4e1" + ], + "x-ms-routing-request-id": [ + "EASTUS2:20251015T184051Z:45f8cc43-fee5-4634-8bc7-762d820ff4e1" + ], + "X-Cache": [ + "CONFIG_NOCACHE" + ], + "X-MSEdge-Ref": [ + "Ref A: 48F3D7B1FC2A40D09735D0ABC5FEB87B Ref B: CO6AA3150218047 Ref C: 2025-10-15T18:40:50Z" + ], + "Date": [ + "Wed, 15 Oct 2025 18:40:50 GMT" + ], + "Content-Length": [ + "1312" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ], + "Last-Modified": [ + "Wed, 15 Oct 2025 18:40:50 GMT" + ] + }, + "ResponseBody": "{\r\n \"id\": \"/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/pools/pool2\",\r\n \"name\": \"pool2\",\r\n \"type\": \"Microsoft.Batch/batchAccounts/pools\",\r\n \"etag\": \"W/\\\"0x8DE0C1A5D5A8BC6\\\"\",\r\n \"properties\": {\r\n \"lastModified\": \"2025-10-15T18:40:50.8087238Z\",\r\n \"creationTime\": \"2025-10-15T18:40:50.8087227Z\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"provisioningStateTransitionTime\": \"2025-10-15T18:40:50.8087227Z\",\r\n \"allocationState\": \"Resizing\",\r\n \"allocationStateTransitionTime\": \"2025-10-15T18:40:50.8087238Z\",\r\n \"vmSize\": \"STANDARD_D1_V2\",\r\n \"interNodeCommunication\": \"Disabled\",\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"deploymentConfiguration\": {\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoft-azure-batch\",\r\n \"offer\": \"ubuntu-server-container\",\r\n \"sku\": \"20-04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSkuId\": \"batch.node.ubuntu 20.04\",\r\n \"containerConfiguration\": {\r\n \"type\": \"DockerCompatible\",\r\n \"containerImageNames\": [\r\n \"test2\"\r\n ]\r\n }\r\n }\r\n },\r\n \"scaleSettings\": {\r\n \"fixedScale\": {\r\n \"targetDedicatedNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"resizeTimeout\": \"PT15M\"\r\n }\r\n },\r\n \"resizeOperationStatus\": {\r\n \"targetDedicatedNodes\": 0,\r\n \"nodeDeallocationOption\": \"Requeue\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"startTime\": \"2025-10-15T18:40:50.8087214Z\"\r\n },\r\n \"currentDedicatedNodes\": 0,\r\n \"currentLowPriorityNodes\": 0\r\n }\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/pools?api-version=2024-07-01.20.0&$filter=id%20eq%20%27pool1%27%20or%20id%20eq%20%27pool2%27", + "EncodedRequestUri": "L3Bvb2xzP2FwaS12ZXJzaW9uPTIwMjQtMDctMDEuMjAuMCYkZmlsdGVyPWlkJTIwZXElMjAlMjdwb29sMSUyNyUyMG9yJTIwaWQlMjBlcSUyMCUyN3Bvb2wyJTI3", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept-Language": [ + "en-US" + ], + "client-request-id": [ + "8587e296-5be8-4cbc-933b-f2717d8c1b5b" ], - "Location": [ - "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/pool1" + "ocp-date": [ + "Wed, 15 Oct 2025 18:41:30 GMT" + ], + "x-ms-client-request-id": [ + "7a04c35c-9dd9-45cb-ae5c-6d3be8b93cd6" + ], + "User-Agent": [ + "FxVersion/8.0.2125.47513", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.26100", + "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.300.124.47002", + "AzurePowershell/Az1.0.0" + ] + }, + "RequestBody": "", + "ResponseHeaders": { + "Transfer-Encoding": [ + "chunked" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "b346d6f4-9f59-4d66-aa3c-470009cbab6f" + "2e187ce8-7945-44d5-b2f2-9ff36900f597" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -57,66 +213,51 @@ "DataServiceVersion": [ "3.0" ], - "DataServiceId": [ - "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/pool1" - ], "Date": [ - "Wed, 17 Sep 2025 22:43:20 GMT" + "Wed, 15 Oct 2025 18:41:33 GMT" ], - "Last-Modified": [ - "Wed, 17 Sep 2025 22:43:21 GMT" + "Content-Type": [ + "application/json; odata=minimalmetadata" ] }, - "ResponseBody": "", - "StatusCode": 201 + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#pools\",\r\n \"value\": [\r\n {\r\n \"id\": \"pool1\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/pool1\",\r\n \"eTag\": \"0x8DE0C1A51C6ED9B\",\r\n \"lastModified\": \"2025-10-15T18:40:31.3863579Z\",\r\n \"creationTime\": \"2025-10-15T18:40:31.3863568Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-10-15T18:40:31.3863568Z\",\r\n \"allocationState\": \"steady\",\r\n \"allocationStateTransitionTime\": \"2025-10-15T18:40:33.211474Z\",\r\n \"vmSize\": \"standard_d1_v2\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 0,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": false,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoft-azure-batch\",\r\n \"offer\": \"ubuntu-server-container\",\r\n \"sku\": \"20-04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"containerConfiguration\": {\r\n \"type\": \"dockerCompatible\",\r\n \"containerImageNames\": [\r\n \"test1\"\r\n ]\r\n }\r\n }\r\n },\r\n {\r\n \"id\": \"pool2\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/pool2\",\r\n \"eTag\": \"0x8DE0C1A5D5A8BC6\",\r\n \"lastModified\": \"2025-10-15T18:40:50.8087238Z\",\r\n \"creationTime\": \"2025-10-15T18:40:50.8087227Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-10-15T18:40:50.8087227Z\",\r\n \"allocationState\": \"steady\",\r\n \"allocationStateTransitionTime\": \"2025-10-15T18:40:52.5531524Z\",\r\n \"vmSize\": \"standard_d1_v2\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 0,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": false,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoft-azure-batch\",\r\n \"offer\": \"ubuntu-server-container\",\r\n \"sku\": \"20-04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"containerConfiguration\": {\r\n \"type\": \"dockerCompatible\",\r\n \"containerImageNames\": [\r\n \"test2\"\r\n ]\r\n }\r\n }\r\n }\r\n ]\r\n}", + "StatusCode": 200 }, { - "RequestUri": "/pools?api-version=2024-07-01.20.0", - "EncodedRequestUri": "L3Bvb2xzP2FwaS12ZXJzaW9uPTIwMjQtMDctMDEuMjAuMA==", - "RequestMethod": "POST", + "RequestUri": "/pools?api-version=2024-07-01.20.0&$filter=id%20eq%20%27pool1%27%20or%20id%20eq%20%27pool2%27", + "EncodedRequestUri": "L3Bvb2xzP2FwaS12ZXJzaW9uPTIwMjQtMDctMDEuMjAuMCYkZmlsdGVyPWlkJTIwZXElMjAlMjdwb29sMSUyNyUyMG9yJTIwaWQlMjBlcSUyMCUyN3Bvb2wyJTI3", + "RequestMethod": "GET", "RequestHeaders": { "Accept-Language": [ "en-US" ], "client-request-id": [ - "d5beef3b-f725-4c04-ae6e-0dbaa4287eb8" + "baf89267-0e87-4d36-8068-fe8e9c21b4f6" ], "ocp-date": [ - "Wed, 17 Sep 2025 22:43:55 GMT" + "Wed, 15 Oct 2025 18:41:34 GMT" ], "x-ms-client-request-id": [ - "21edd159-8035-4a73-b576-c8dd1bee103e" + "7a04c35c-9dd9-45cb-ae5c-6d3be8b93cd6" ], "User-Agent": [ - "FxVersion/8.0.2025.41914", + "FxVersion/8.0.2125.47513", "OSName/Windows", "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.300.124.47002", "AzurePowershell/Az1.0.0" - ], - "Content-Type": [ - "application/json; odata=minimalmetadata; charset=utf-8" - ], - "Content-Length": [ - "541" ] }, - "RequestBody": "{\r\n \"id\": \"pool2\",\r\n \"vmSize\": \"standard_d1_v2\",\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoft-azure-batch\",\r\n \"offer\": \"ubuntu-server-container\",\r\n \"sku\": \"20-04-lts\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"containerConfiguration\": {\r\n \"type\": \"dockerCompatible\",\r\n \"containerImageNames\": [\r\n \"test2\"\r\n ]\r\n }\r\n },\r\n \"targetDedicatedNodes\": 0,\r\n \"enableInterNodeCommunication\": false,\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", + "RequestBody": "", "ResponseHeaders": { "Transfer-Encoding": [ "chunked" ], - "ETag": [ - "0x8DDF63BAF12CAE1" - ], - "Location": [ - "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/pool2" - ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "da94d3a8-6aa3-456d-afc1-36f884f06081" + "e411134e-0616-4bf1-b0a6-16dda86afae0" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -127,18 +268,15 @@ "DataServiceVersion": [ "3.0" ], - "DataServiceId": [ - "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/pool2" - ], "Date": [ - "Wed, 17 Sep 2025 22:43:55 GMT" + "Wed, 15 Oct 2025 18:41:34 GMT" ], - "Last-Modified": [ - "Wed, 17 Sep 2025 22:43:55 GMT" + "Content-Type": [ + "application/json; odata=minimalmetadata" ] }, - "ResponseBody": "", - "StatusCode": 201 + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#pools\",\r\n \"value\": [\r\n {\r\n \"id\": \"pool1\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/pool1\",\r\n \"eTag\": \"0x8DE0C1A51C6ED9B\",\r\n \"lastModified\": \"2025-10-15T18:40:31.3863579Z\",\r\n \"creationTime\": \"2025-10-15T18:40:31.3863568Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-10-15T18:40:31.3863568Z\",\r\n \"allocationState\": \"steady\",\r\n \"allocationStateTransitionTime\": \"2025-10-15T18:40:33.211474Z\",\r\n \"vmSize\": \"standard_d1_v2\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 0,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": false,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoft-azure-batch\",\r\n \"offer\": \"ubuntu-server-container\",\r\n \"sku\": \"20-04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"containerConfiguration\": {\r\n \"type\": \"dockerCompatible\",\r\n \"containerImageNames\": [\r\n \"test1\"\r\n ]\r\n }\r\n }\r\n },\r\n {\r\n \"id\": \"pool2\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/pool2\",\r\n \"eTag\": \"0x8DE0C1A5D5A8BC6\",\r\n \"lastModified\": \"2025-10-15T18:40:50.8087238Z\",\r\n \"creationTime\": \"2025-10-15T18:40:50.8087227Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-10-15T18:40:50.8087227Z\",\r\n \"allocationState\": \"steady\",\r\n \"allocationStateTransitionTime\": \"2025-10-15T18:40:52.5531524Z\",\r\n \"vmSize\": \"standard_d1_v2\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 0,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": false,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoft-azure-batch\",\r\n \"offer\": \"ubuntu-server-container\",\r\n \"sku\": \"20-04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"containerConfiguration\": {\r\n \"type\": \"dockerCompatible\",\r\n \"containerImageNames\": [\r\n \"test2\"\r\n ]\r\n }\r\n }\r\n }\r\n ]\r\n}", + "StatusCode": 200 }, { "RequestUri": "/pools?api-version=2024-07-01.20.0&$filter=id%20eq%20%27pool1%27%20or%20id%20eq%20%27pool2%27", @@ -149,16 +287,16 @@ "en-US" ], "client-request-id": [ - "6dc9db21-f79e-4ad4-9fc6-e3ec655c7f28" + "be83446f-3082-4ee4-9308-68f4282536fb" ], "ocp-date": [ - "Wed, 17 Sep 2025 22:43:56 GMT" + "Wed, 15 Oct 2025 18:42:58 GMT" ], "x-ms-client-request-id": [ - "b27a916e-11c9-41a4-904c-c2d83b496697" + "7a04c35c-9dd9-45cb-ae5c-6d3be8b93cd6" ], "User-Agent": [ - "FxVersion/8.0.2025.41914", + "FxVersion/8.0.2125.47513", "OSName/Windows", "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.300.124.47002", @@ -174,7 +312,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "054b05f4-9e45-41b7-a1a6-68c79665b1fd" + "b2c60284-7375-4cf5-b1fa-6bdaa5ed2499" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -186,13 +324,157 @@ "3.0" ], "Date": [ - "Wed, 17 Sep 2025 22:43:55 GMT" + "Wed, 15 Oct 2025 18:42:58 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#pools\",\r\n \"value\": [\r\n {\r\n \"id\": \"pool1\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/pool1\",\r\n \"eTag\": \"0x8DDF63B9A729853\",\r\n \"lastModified\": \"2025-09-17T22:43:21.1183187Z\",\r\n \"creationTime\": \"2025-09-17T22:43:21.1183172Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-17T22:43:21.1183172Z\",\r\n \"allocationState\": \"steady\",\r\n \"allocationStateTransitionTime\": \"2025-09-17T22:43:23.0608155Z\",\r\n \"vmSize\": \"standard_d1_v2\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 0,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": false,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoft-azure-batch\",\r\n \"offer\": \"ubuntu-server-container\",\r\n \"sku\": \"20-04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"containerConfiguration\": {\r\n \"type\": \"dockerCompatible\",\r\n \"containerImageNames\": [\r\n \"test1\"\r\n ]\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n },\r\n {\r\n \"id\": \"pool2\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/pool2\",\r\n \"eTag\": \"0x8DDF63BAF12CAE1\",\r\n \"lastModified\": \"2025-09-17T22:43:55.7226209Z\",\r\n \"creationTime\": \"2025-09-17T22:43:55.7226196Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-17T22:43:55.7226196Z\",\r\n \"allocationState\": \"resizing\",\r\n \"allocationStateTransitionTime\": \"2025-09-17T22:43:55.722621Z\",\r\n \"vmSize\": \"standard_d1_v2\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 0,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": false,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoft-azure-batch\",\r\n \"offer\": \"ubuntu-server-container\",\r\n \"sku\": \"20-04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"containerConfiguration\": {\r\n \"type\": \"dockerCompatible\",\r\n \"containerImageNames\": [\r\n \"test2\"\r\n ]\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n }\r\n ]\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#pools\",\r\n \"value\": [\r\n {\r\n \"id\": \"pool1\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/pool1\",\r\n \"eTag\": \"0x8DE0C1A51C6ED9B\",\r\n \"lastModified\": \"2025-10-15T18:40:31.3863579Z\",\r\n \"creationTime\": \"2025-10-15T18:40:31.3863568Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-10-15T18:40:31.3863568Z\",\r\n \"allocationState\": \"steady\",\r\n \"allocationStateTransitionTime\": \"2025-10-15T18:40:33.211474Z\",\r\n \"vmSize\": \"standard_d1_v2\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 0,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": false,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoft-azure-batch\",\r\n \"offer\": \"ubuntu-server-container\",\r\n \"sku\": \"20-04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"containerConfiguration\": {\r\n \"type\": \"dockerCompatible\",\r\n \"containerImageNames\": [\r\n \"test1\"\r\n ]\r\n }\r\n }\r\n },\r\n {\r\n \"id\": \"pool2\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/pool2\",\r\n \"eTag\": \"0x8DE0C1A5D5A8BC6\",\r\n \"lastModified\": \"2025-10-15T18:40:50.8087238Z\",\r\n \"creationTime\": \"2025-10-15T18:40:50.8087227Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-10-15T18:40:50.8087227Z\",\r\n \"allocationState\": \"steady\",\r\n \"allocationStateTransitionTime\": \"2025-10-15T18:40:52.5531524Z\",\r\n \"vmSize\": \"standard_d1_v2\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 0,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": false,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoft-azure-batch\",\r\n \"offer\": \"ubuntu-server-container\",\r\n \"sku\": \"20-04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"containerConfiguration\": {\r\n \"type\": \"dockerCompatible\",\r\n \"containerImageNames\": [\r\n \"test2\"\r\n ]\r\n }\r\n }\r\n }\r\n ]\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/pools?api-version=2024-07-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvcG9vbHM/YXBpLXZlcnNpb249MjAyNC0wNy0wMQ==", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept-Language": [ + "en-US" + ], + "x-ms-client-request-id": [ + "7a04c35c-9dd9-45cb-ae5c-6d3be8b93cd6" + ], + "User-Agent": [ + "FxVersion/8.0.2125.47513", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.26100", + "Microsoft.Azure.Management.Batch.BatchManagementClient/3.7.1" + ] + }, + "RequestBody": "", + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "cb8d9ebe-3a96-412c-832e-6eeadac0f885" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "x-ms-operation-identifier": [ + "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=ac839cc2-33ee-4879-a5b5-2895202ccb29/westus2/ac3893de-d005-48b7-9b77-7835d1653be7" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "1099" + ], + "x-ms-ratelimit-remaining-subscription-global-reads": [ + "16499" + ], + "x-ms-correlation-request-id": [ + "5373c70a-0e3a-4f11-9f4c-abfabc0e3819" + ], + "x-ms-routing-request-id": [ + "WESTUS2:20251015T184202Z:5373c70a-0e3a-4f11-9f4c-abfabc0e3819" + ], + "X-Cache": [ + "CONFIG_NOCACHE" + ], + "X-MSEdge-Ref": [ + "Ref A: DBDA30091E5A4436B48FF326B68DCFD7 Ref B: CO6AA3150219053 Ref C: 2025-10-15T18:42:01Z" + ], + "Date": [ + "Wed, 15 Oct 2025 18:42:01 GMT" + ], + "Content-Length": [ + "2632" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"value\": [\r\n {\r\n \"id\": \"/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/pools/pool1\",\r\n \"name\": \"pool1\",\r\n \"type\": \"Microsoft.Batch/batchAccounts/pools\",\r\n \"etag\": \"W/\\\"0x8DE0C1A51C6ED9B\\\"\",\r\n \"properties\": {\r\n \"lastModified\": \"2025-10-15T18:40:31.3863579Z\",\r\n \"creationTime\": \"2025-10-15T18:40:31.3863568Z\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"provisioningStateTransitionTime\": \"2025-10-15T18:40:31.3863568Z\",\r\n \"allocationState\": \"Steady\",\r\n \"allocationStateTransitionTime\": \"2025-10-15T18:40:33.211474Z\",\r\n \"vmSize\": \"STANDARD_D1_V2\",\r\n \"interNodeCommunication\": \"Disabled\",\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"deploymentConfiguration\": {\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoft-azure-batch\",\r\n \"offer\": \"ubuntu-server-container\",\r\n \"sku\": \"20-04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSkuId\": \"batch.node.ubuntu 20.04\",\r\n \"containerConfiguration\": {\r\n \"type\": \"DockerCompatible\",\r\n \"containerImageNames\": [\r\n \"test1\"\r\n ]\r\n }\r\n }\r\n },\r\n \"scaleSettings\": {\r\n \"fixedScale\": {\r\n \"targetDedicatedNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"resizeTimeout\": \"PT15M\"\r\n }\r\n },\r\n \"resizeOperationStatus\": {\r\n \"targetDedicatedNodes\": 0,\r\n \"nodeDeallocationOption\": \"Requeue\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"startTime\": \"2025-10-15T18:40:31.3863553Z\"\r\n },\r\n \"currentDedicatedNodes\": 0,\r\n \"currentLowPriorityNodes\": 0\r\n }\r\n },\r\n {\r\n \"id\": \"/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/pools/pool2\",\r\n \"name\": \"pool2\",\r\n \"type\": \"Microsoft.Batch/batchAccounts/pools\",\r\n \"etag\": \"W/\\\"0x8DE0C1A5D5A8BC6\\\"\",\r\n \"properties\": {\r\n \"lastModified\": \"2025-10-15T18:40:50.8087238Z\",\r\n \"creationTime\": \"2025-10-15T18:40:50.8087227Z\",\r\n \"provisioningState\": \"Succeeded\",\r\n \"provisioningStateTransitionTime\": \"2025-10-15T18:40:50.8087227Z\",\r\n \"allocationState\": \"Steady\",\r\n \"allocationStateTransitionTime\": \"2025-10-15T18:40:52.5531524Z\",\r\n \"vmSize\": \"STANDARD_D1_V2\",\r\n \"interNodeCommunication\": \"Disabled\",\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"deploymentConfiguration\": {\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoft-azure-batch\",\r\n \"offer\": \"ubuntu-server-container\",\r\n \"sku\": \"20-04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSkuId\": \"batch.node.ubuntu 20.04\",\r\n \"containerConfiguration\": {\r\n \"type\": \"DockerCompatible\",\r\n \"containerImageNames\": [\r\n \"test2\"\r\n ]\r\n }\r\n }\r\n },\r\n \"scaleSettings\": {\r\n \"fixedScale\": {\r\n \"targetDedicatedNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"resizeTimeout\": \"PT15M\"\r\n }\r\n },\r\n \"resizeOperationStatus\": {\r\n \"targetDedicatedNodes\": 0,\r\n \"nodeDeallocationOption\": \"Requeue\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"startTime\": \"2025-10-15T18:40:50.8087214Z\"\r\n },\r\n \"currentDedicatedNodes\": 0,\r\n \"currentLowPriorityNodes\": 0\r\n }\r\n }\r\n ]\r\n}", + "StatusCode": 200 + }, + { + "RequestUri": "/subscriptions/94bd7ded-68b4-4ffa-82a5-37ac72caa2ec/resourceGroups/automation/providers/Microsoft.Batch/batchAccounts/dotnotsdkbatchaccount2/pools?api-version=2024-07-01", + "EncodedRequestUri": "L3N1YnNjcmlwdGlvbnMvOTRiZDdkZWQtNjhiNC00ZmZhLTgyYTUtMzdhYzcyY2FhMmVjL3Jlc291cmNlR3JvdXBzL2F1dG9tYXRpb24vcHJvdmlkZXJzL01pY3Jvc29mdC5CYXRjaC9iYXRjaEFjY291bnRzL2RvdG5vdHNka2JhdGNoYWNjb3VudDIvcG9vbHM/YXBpLXZlcnNpb249MjAyNC0wNy0wMQ==", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept-Language": [ + "en-US" + ], + "x-ms-client-request-id": [ + "21317313-94f4-4e3e-9ac9-46e51b1c9a12" + ], + "User-Agent": [ + "FxVersion/8.0.2125.47513", + "OSName/Windows", + "OSVersion/Microsoft.Windows.10.0.26100", + "Microsoft.Azure.Management.Batch.BatchManagementClient/3.7.1" + ] + }, + "RequestBody": "", + "ResponseHeaders": { + "Cache-Control": [ + "no-cache" + ], + "Pragma": [ + "no-cache" + ], + "x-ms-request-id": [ + "b63ba5d3-fa14-4187-a64c-e0443824fda0" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "x-ms-operation-identifier": [ + "tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47,objectId=ac839cc2-33ee-4879-a5b5-2895202ccb29/eastus2/11040621-d2a6-4620-a7de-8fd2ea69c569" + ], + "x-ms-ratelimit-remaining-subscription-reads": [ + "1099" + ], + "x-ms-ratelimit-remaining-subscription-global-reads": [ + "16499" + ], + "x-ms-correlation-request-id": [ + "32f4a2b3-eba2-4af1-b6fb-ee2cc81a1188" + ], + "x-ms-routing-request-id": [ + "EASTUS2:20251015T184348Z:32f4a2b3-eba2-4af1-b6fb-ee2cc81a1188" + ], + "X-Cache": [ + "CONFIG_NOCACHE" + ], + "X-MSEdge-Ref": [ + "Ref A: 3EE87C052CD548FE9CF732DB2C8650BF Ref B: CO6AA3150219019 Ref C: 2025-10-15T18:43:48Z" + ], + "Date": [ + "Wed, 15 Oct 2025 18:43:47 GMT" + ], + "Content-Length": [ + "12" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ] + }, + "ResponseBody": "{\r\n \"value\": []\r\n}", "StatusCode": 200 }, { @@ -204,16 +486,16 @@ "en-US" ], "client-request-id": [ - "296bc7e9-7d42-440b-b9f6-7883fc62007f" + "3571bfa3-c528-4016-a0e7-43043f98896e" ], "ocp-date": [ - "Wed, 17 Sep 2025 22:43:57 GMT" + "Wed, 15 Oct 2025 18:42:58 GMT" ], "x-ms-client-request-id": [ - "298d7a91-3181-455e-85e7-496cc24281a3" + "3b1951e7-2b0f-4934-b2dd-da5e8fac46e5" ], "User-Agent": [ - "FxVersion/8.0.2025.41914", + "FxVersion/8.0.2125.47513", "OSName/Windows", "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.300.124.47002", @@ -223,19 +505,19 @@ "application/json; odata=minimalmetadata; charset=utf-8" ], "Content-Length": [ - "215" + "170" ] }, - "RequestBody": "{\r\n \"startTask\": {\r\n \"commandLine\": \"/bin/bash -c 'echo start task'\"\r\n },\r\n \"certificateReferences\": [],\r\n \"applicationPackageReferences\": [],\r\n \"metadata\": [],\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", + "RequestBody": "{\r\n \"startTask\": {\r\n \"commandLine\": \"/bin/bash -c 'echo start task'\"\r\n },\r\n \"certificateReferences\": [],\r\n \"applicationPackageReferences\": [],\r\n \"metadata\": []\r\n}", "ResponseHeaders": { "ETag": [ - "0x8DDF63BB049DEAA" + "0x8DE0C1AA9DE4E32" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "f11acb3e-7aed-406b-b234-cce14fe35af3" + "0ba1340c-442f-4be4-a382-68bead18f8b2" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -250,13 +532,13 @@ "https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/pool2/updateproperties" ], "Date": [ - "Wed, 17 Sep 2025 22:43:56 GMT" + "Wed, 15 Oct 2025 18:42:59 GMT" ], "Content-Length": [ "0" ], "Last-Modified": [ - "Wed, 17 Sep 2025 22:43:57 GMT" + "Wed, 15 Oct 2025 18:42:59 GMT" ] }, "ResponseBody": "", @@ -271,16 +553,16 @@ "en-US" ], "client-request-id": [ - "9d867503-1e63-4b91-9101-f201c4970b89" + "7aa7d7a0-0367-4e82-a3f9-e0185a7b4f47" ], "ocp-date": [ - "Wed, 17 Sep 2025 22:43:57 GMT" + "Wed, 15 Oct 2025 18:43:35 GMT" ], "x-ms-client-request-id": [ - "5943bef6-3de9-4f52-a35b-3f864f82b1c3" + "411180a5-5560-4c50-ac45-36c780e9cd61" ], "User-Agent": [ - "FxVersion/8.0.2025.41914", + "FxVersion/8.0.2125.47513", "OSName/Windows", "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.300.124.47002", @@ -293,13 +575,13 @@ "chunked" ], "ETag": [ - "0x8DDF63BB049DEAA" + "0x8DE0C1AA9DE4E32" ], "Server": [ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "a97db422-a940-44d1-9bf5-bf2ae7685ecf" + "f78a2a95-3a5f-46d5-a7a8-8eec94a0903b" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -311,16 +593,16 @@ "3.0" ], "Date": [ - "Wed, 17 Sep 2025 22:43:57 GMT" + "Wed, 15 Oct 2025 18:43:34 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ], "Last-Modified": [ - "Wed, 17 Sep 2025 22:43:57 GMT" + "Wed, 15 Oct 2025 18:42:59 GMT" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"pool2\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/pool2\",\r\n \"eTag\": \"0x8DDF63BB049DEAA\",\r\n \"lastModified\": \"2025-09-17T22:43:57.761297Z\",\r\n \"creationTime\": \"2025-09-17T22:43:55.7226196Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-17T22:43:55.7226196Z\",\r\n \"allocationState\": \"steady\",\r\n \"allocationStateTransitionTime\": \"2025-09-17T22:43:57.7415352Z\",\r\n \"vmSize\": \"standard_d1_v2\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 0,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": false,\r\n \"startTask\": {\r\n \"commandLine\": \"/bin/bash -c 'echo start task'\",\r\n \"userIdentity\": {\r\n \"autoUser\": {\r\n \"scope\": \"pool\",\r\n \"elevationLevel\": \"nonadmin\"\r\n }\r\n },\r\n \"maxTaskRetryCount\": 0,\r\n \"waitForSuccess\": true\r\n },\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoft-azure-batch\",\r\n \"offer\": \"ubuntu-server-container\",\r\n \"sku\": \"20-04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"containerConfiguration\": {\r\n \"type\": \"dockerCompatible\",\r\n \"containerImageNames\": [\r\n \"test2\"\r\n ]\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#pools/@Element\",\r\n \"id\": \"pool2\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/pool2\",\r\n \"eTag\": \"0x8DE0C1AA9DE4E32\",\r\n \"lastModified\": \"2025-10-15T18:42:59.1790642Z\",\r\n \"creationTime\": \"2025-10-15T18:40:50.8087227Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-10-15T18:40:50.8087227Z\",\r\n \"allocationState\": \"steady\",\r\n \"allocationStateTransitionTime\": \"2025-10-15T18:40:52.5531524Z\",\r\n \"vmSize\": \"standard_d1_v2\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 0,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": false,\r\n \"startTask\": {\r\n \"commandLine\": \"/bin/bash -c 'echo start task'\",\r\n \"userIdentity\": {\r\n \"autoUser\": {\r\n \"scope\": \"pool\",\r\n \"elevationLevel\": \"nonadmin\"\r\n }\r\n },\r\n \"maxTaskRetryCount\": 0,\r\n \"waitForSuccess\": true\r\n },\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Spread\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoft-azure-batch\",\r\n \"offer\": \"ubuntu-server-container\",\r\n \"sku\": \"20-04-lts\",\r\n \"version\": \"latest\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.ubuntu 20.04\",\r\n \"containerConfiguration\": {\r\n \"type\": \"dockerCompatible\",\r\n \"containerImageNames\": [\r\n \"test2\"\r\n ]\r\n }\r\n },\r\n \"targetNodeCommunicationMode\": \"default\"\r\n}", "StatusCode": 200 }, { @@ -332,16 +614,16 @@ "en-US" ], "client-request-id": [ - "dbaca72b-4cec-4589-bc11-422fcca84289" + "30ecf295-8050-4024-bd94-71decce0b83a" ], "ocp-date": [ - "Wed, 17 Sep 2025 22:43:57 GMT" + "Wed, 15 Oct 2025 18:43:38 GMT" ], "x-ms-client-request-id": [ - "00a13aa2-312a-4990-84b7-ea93bcf8903e" + "19cf21fb-8694-4fb3-b083-dd74414707be" ], "User-Agent": [ - "FxVersion/8.0.2025.41914", + "FxVersion/8.0.2125.47513", "OSName/Windows", "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.300.124.47002", @@ -360,7 +642,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "9185d5fa-cd9a-45a6-a6b0-c4e4b3cbc434" + "062db32d-e6b7-4d63-a9cf-599b4f7438fb" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -372,7 +654,7 @@ "3.0" ], "Date": [ - "Wed, 17 Sep 2025 22:43:57 GMT" + "Wed, 15 Oct 2025 18:43:38 GMT" ] }, "ResponseBody": "", @@ -387,16 +669,16 @@ "en-US" ], "client-request-id": [ - "7ad20031-0036-4698-9006-596dbbdf4387" + "753790df-87dd-4a28-8986-e5e696161367" ], "ocp-date": [ - "Wed, 17 Sep 2025 22:43:58 GMT" + "Wed, 15 Oct 2025 18:43:38 GMT" ], "x-ms-client-request-id": [ - "fec727ec-4d44-4fe2-94e4-59ae20ee8667" + "3545e728-c475-413e-b3fe-ce4bb44cf961" ], "User-Agent": [ - "FxVersion/8.0.2025.41914", + "FxVersion/8.0.2125.47513", "OSName/Windows", "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.300.124.47002", @@ -415,7 +697,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "1a718d45-97fc-45fe-8a0b-97d3538cb58d" + "c7891d34-7f42-495f-8851-73b5162609da" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -427,7 +709,7 @@ "3.0" ], "Date": [ - "Wed, 17 Sep 2025 22:43:57 GMT" + "Wed, 15 Oct 2025 18:43:38 GMT" ] }, "ResponseBody": "", @@ -442,16 +724,16 @@ "en-US" ], "client-request-id": [ - "7f816b84-965d-48f7-989f-9ed5b32ea475" + "2abf8f81-6b64-48df-8ec3-ab3638ee0892" ], "ocp-date": [ - "Wed, 17 Sep 2025 22:43:58 GMT" + "Wed, 15 Oct 2025 18:44:10 GMT" ], "x-ms-client-request-id": [ - "32478abb-2756-4258-8323-f49fb88ace44" + "21317313-94f4-4e3e-9ac9-46e51b1c9a12" ], "User-Agent": [ - "FxVersion/8.0.2025.41914", + "FxVersion/8.0.2125.47513", "OSName/Windows", "OSVersion/Microsoft.Windows.10.0.26100", "Microsoft.Azure.Batch.Protocol.BatchServiceClient/16.300.124.47002", @@ -467,7 +749,7 @@ "Microsoft-HTTPAPI/2.0" ], "request-id": [ - "3ead2f0e-0b2d-41d9-ba14-9f11656a818b" + "97e6779f-d19e-4bb3-afec-8626aa771529" ], "Strict-Transport-Security": [ "max-age=31536000; includeSubDomains" @@ -479,13 +761,13 @@ "3.0" ], "Date": [ - "Wed, 17 Sep 2025 22:43:57 GMT" + "Wed, 15 Oct 2025 18:44:10 GMT" ], "Content-Type": [ "application/json; odata=minimalmetadata" ] }, - "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#pools\",\r\n \"value\": [\r\n {\r\n \"id\": \"testpool\",\r\n \"url\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/pools/testpool\",\r\n \"eTag\": \"0x8DDF260CC81BB18\",\r\n \"lastModified\": \"2025-09-13T00:59:31.8314776Z\",\r\n \"creationTime\": \"2025-09-13T00:59:31.8314761Z\",\r\n \"state\": \"active\",\r\n \"stateTransitionTime\": \"2025-09-13T00:59:31.8314761Z\",\r\n \"allocationState\": \"steady\",\r\n \"allocationStateTransitionTime\": \"2025-09-13T00:59:33.1548197Z\",\r\n \"vmSize\": \"standard_d2s_v3\",\r\n \"resizeTimeout\": \"PT15M\",\r\n \"currentDedicatedNodes\": 0,\r\n \"targetDedicatedNodes\": 0,\r\n \"currentLowPriorityNodes\": 0,\r\n \"targetLowPriorityNodes\": 0,\r\n \"enableAutoScale\": false,\r\n \"enableInterNodeCommunication\": false,\r\n \"certificateReferences\": [],\r\n \"taskSlotsPerNode\": 1,\r\n \"taskSchedulingPolicy\": {\r\n \"nodeFillType\": \"Pack\"\r\n },\r\n \"virtualMachineConfiguration\": {\r\n \"imageReference\": {\r\n \"publisher\": \"microsoftwindowsserver\",\r\n \"offer\": \"windowsserver\",\r\n \"sku\": \"2019-datacenter-gensecond\",\r\n \"version\": \"latest\"\r\n },\r\n \"osDisk\": {\r\n \"ephemeralOSDiskSettings\": {},\r\n \"managedDisk\": {\r\n \"storageAccountType\": \"premium_lrs\"\r\n },\r\n \"caching\": \"None\"\r\n },\r\n \"nodeAgentSKUId\": \"batch.node.windows amd64\",\r\n \"windowsConfiguration\": {\r\n \"enableAutomaticUpdates\": false\r\n },\r\n \"nodePlacementConfiguration\": {\r\n \"policy\": \"Regional\"\r\n }\r\n },\r\n \"networkConfiguration\": {\r\n \"dynamicVNetAssignmentScope\": \"none\",\r\n \"publicIPAddressConfiguration\": {\r\n \"provision\": \"BatchManaged\"\r\n },\r\n \"enableAcceleratedNetworking\": false\r\n },\r\n \"targetNodeCommunicationMode\": \"default\",\r\n \"upgradePolicy\": {\r\n \"mode\": \"manual\",\r\n \"automaticOSUpgradePolicy\": {\r\n \"disableAutomaticRollback\": false,\r\n \"enableAutomaticOSUpgrade\": false,\r\n \"useRollingUpgradePolicy\": false,\r\n \"osRollingUpgradeDeferral\": false\r\n },\r\n \"rollingUpgradePolicy\": {\r\n \"maxBatchInstancePercent\": 20,\r\n \"maxUnhealthyInstancePercent\": 20,\r\n \"maxUnhealthyUpgradedInstancePercent\": 20,\r\n \"pauseTimeBetweenBatches\": \"P0D\",\r\n \"rollbackFailedInstancesOnPolicyBreach\": false\r\n }\r\n }\r\n }\r\n ]\r\n}", + "ResponseBody": "{\r\n \"odata.metadata\": \"https://dotnotsdkbatchaccount2.eastus2.batch.azure.com/$metadata#pools\",\r\n \"value\": []\r\n}", "StatusCode": 200 } ], diff --git a/src/Batch/Batch.Test/Utils/UtilsAllocationStateTests.cs b/src/Batch/Batch.Test/Utils/UtilsAllocationStateTests.cs new file mode 100644 index 000000000000..76721b41b4a0 --- /dev/null +++ b/src/Batch/Batch.Test/Utils/UtilsAllocationStateTests.cs @@ -0,0 +1,415 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- + +using Microsoft.Azure.Commands.Batch.Utils; +using Microsoft.Azure.Management.Batch.Models; +using Microsoft.WindowsAzure.Commands.ScenarioTest; +using Xunit; + +namespace Microsoft.Azure.Commands.Batch.Test.ModelsConversions +{ + public class UtilsAllocationStateTests + { + #region ToPSAllocationState Tests + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void ToPSAllocationState_Steady_ReturnsSteady() + { + // Arrange + var mgmtAllocationState = AllocationState.Steady; + + // Act + var result = Utils.Utils.ToPSAllocationState(mgmtAllocationState); + + // Assert + Assert.Equal(Microsoft.Azure.Batch.Common.AllocationState.Steady, result); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void ToPSAllocationState_Resizing_ReturnsResizing() + { + // Arrange + var mgmtAllocationState = AllocationState.Resizing; + + // Act + var result = Utils.Utils.ToPSAllocationState(mgmtAllocationState); + + // Assert + Assert.Equal(Microsoft.Azure.Batch.Common.AllocationState.Resizing, result); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void ToPSAllocationState_Stopping_ReturnsStopping() + { + // Arrange + var mgmtAllocationState = AllocationState.Stopping; + + // Act + var result = Utils.Utils.ToPSAllocationState(mgmtAllocationState); + + // Assert + Assert.Equal(Microsoft.Azure.Batch.Common.AllocationState.Stopping, result); + } + + [Theory] + [Trait(Category.AcceptanceType, Category.CheckIn)] + [InlineData(AllocationState.Steady, Microsoft.Azure.Batch.Common.AllocationState.Steady)] + [InlineData(AllocationState.Resizing, Microsoft.Azure.Batch.Common.AllocationState.Resizing)] + [InlineData(AllocationState.Stopping, Microsoft.Azure.Batch.Common.AllocationState.Stopping)] + public void ToPSAllocationState_AllValidValues_ReturnsCorrectMapping( + AllocationState input, + Microsoft.Azure.Batch.Common.AllocationState expected) + { + // Act + var result = Utils.Utils.ToPSAllocationState(input); + + // Assert + Assert.Equal(expected, result); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void ToPSAllocationState_NullValue_ReturnsNull() + { + // Arrange + AllocationState? mgmtAllocationState = null; + + // Act + var result = Utils.Utils.ToPSAllocationState(mgmtAllocationState); + + // Assert + Assert.Null(result); + } + + #endregion + + #region FromPSAllocationState Tests + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void FromPSAllocationState_Steady_ReturnsSteady() + { + // Arrange + var psAllocationState = Microsoft.Azure.Batch.Common.AllocationState.Steady; + + // Act + var result = Utils.Utils.FromPSAllocationState(psAllocationState); + + // Assert + Assert.Equal(AllocationState.Steady, result); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void FromPSAllocationState_Resizing_ReturnsResizing() + { + // Arrange + var psAllocationState = Microsoft.Azure.Batch.Common.AllocationState.Resizing; + + // Act + var result = Utils.Utils.FromPSAllocationState(psAllocationState); + + // Assert + Assert.Equal(AllocationState.Resizing, result); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void FromPSAllocationState_Stopping_ReturnsStopping() + { + // Arrange + var psAllocationState = Microsoft.Azure.Batch.Common.AllocationState.Stopping; + + // Act + var result = Utils.Utils.FromPSAllocationState(psAllocationState); + + // Assert + Assert.Equal(AllocationState.Stopping, result); + } + + [Theory] + [Trait(Category.AcceptanceType, Category.CheckIn)] + [InlineData(Microsoft.Azure.Batch.Common.AllocationState.Steady, AllocationState.Steady)] + [InlineData(Microsoft.Azure.Batch.Common.AllocationState.Resizing, AllocationState.Resizing)] + [InlineData(Microsoft.Azure.Batch.Common.AllocationState.Stopping, AllocationState.Stopping)] + public void FromPSAllocationState_AllValidValues_ReturnsCorrectMapping( + Microsoft.Azure.Batch.Common.AllocationState input, + AllocationState expected) + { + // Act + var result = Utils.Utils.FromPSAllocationState(input); + + // Assert + Assert.Equal(expected, result); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void FromPSAllocationState_NullValue_ReturnsNull() + { + // Arrange + Microsoft.Azure.Batch.Common.AllocationState? psAllocationState = null; + + // Act + var result = Utils.Utils.FromPSAllocationState(psAllocationState); + + // Assert + Assert.Null(result); + } + + #endregion + + #region Round-trip Conversion Tests + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void AllocationStateConversions_RoundTripFromPS_MaintainsValues() + { + // Test round-trip conversion from PowerShell types to Management types and back + + // Arrange + var psValues = new[] + { + Microsoft.Azure.Batch.Common.AllocationState.Steady, + Microsoft.Azure.Batch.Common.AllocationState.Resizing, + Microsoft.Azure.Batch.Common.AllocationState.Stopping + }; + + foreach (var psValue in psValues) + { + // Act + var mgmtValue = Utils.Utils.FromPSAllocationState(psValue); + var backToPs = Utils.Utils.ToPSAllocationState(mgmtValue); + + // Assert + Assert.Equal(psValue, backToPs); + } + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void AllocationStateConversions_RoundTripFromMgmt_MaintainsValues() + { + // Test round-trip conversion from Management types to PowerShell types and back + + // Arrange + var mgmtValues = new[] + { + AllocationState.Steady, + AllocationState.Resizing, + AllocationState.Stopping + }; + + foreach (var mgmtValue in mgmtValues) + { + // Act + var psValue = Utils.Utils.ToPSAllocationState(mgmtValue); + var backToMgmt = Utils.Utils.FromPSAllocationState(psValue); + + // Assert + Assert.Equal(mgmtValue, backToMgmt); + } + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void AllocationStateConversions_RoundTripWithNulls_MaintainsNullValues() + { + // Test round-trip conversion with null values + + // Act + var mgmtFromNull = Utils.Utils.FromPSAllocationState(null); + var psFromNull = Utils.Utils.ToPSAllocationState(null); + var backToMgmtFromNull = Utils.Utils.FromPSAllocationState(psFromNull); + var backToPsFromNull = Utils.Utils.ToPSAllocationState(mgmtFromNull); + + // Assert + Assert.Null(mgmtFromNull); + Assert.Null(psFromNull); + Assert.Null(backToMgmtFromNull); + Assert.Null(backToPsFromNull); + } + + #endregion + + #region Batch Pool Context Tests + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void AllocationStateConversions_BatchPoolContext_VerifyCorrectUsage() + { + // This test validates the conversions work correctly in the context of Azure Batch pool allocation states + // AllocationState is used to indicate whether a pool is steady, resizing, or stopping + + // Arrange - Test Steady state for pools not being resized + var psSteady = Microsoft.Azure.Batch.Common.AllocationState.Steady; + var mgmtSteady = Utils.Utils.FromPSAllocationState(psSteady); + + // Act & Assert - Steady should convert correctly for stable pools + Assert.Equal(AllocationState.Steady, mgmtSteady); + + // Arrange - Test Resizing state for pools being scaled + var psResizing = Microsoft.Azure.Batch.Common.AllocationState.Resizing; + var mgmtResizing = Utils.Utils.FromPSAllocationState(psResizing); + + // Act & Assert - Resizing should convert correctly for scaling pools + Assert.Equal(AllocationState.Resizing, mgmtResizing); + + // Arrange - Test Stopping state for pools with resize operations being cancelled + var psStopping = Microsoft.Azure.Batch.Common.AllocationState.Stopping; + var mgmtStopping = Utils.Utils.FromPSAllocationState(psStopping); + + // Act & Assert - Stopping should convert correctly for resize cancellation + Assert.Equal(AllocationState.Stopping, mgmtStopping); + + // Verify round-trip conversion maintains Batch pool allocation semantics + var backToSteady = Utils.Utils.ToPSAllocationState(mgmtSteady); + var backToResizing = Utils.Utils.ToPSAllocationState(mgmtResizing); + var backToStopping = Utils.Utils.ToPSAllocationState(mgmtStopping); + + Assert.Equal(psSteady, backToSteady); + Assert.Equal(psResizing, backToResizing); + Assert.Equal(psStopping, backToStopping); + } + + #endregion + + #region Performance Tests + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void AllocationStateConversions_PerformanceTest_ExecutesQuickly() + { + // This test ensures the conversions are efficient with multiple operations + + // Arrange + var psAllocationStates = new Microsoft.Azure.Batch.Common.AllocationState[] + { + Microsoft.Azure.Batch.Common.AllocationState.Steady, + Microsoft.Azure.Batch.Common.AllocationState.Resizing, + Microsoft.Azure.Batch.Common.AllocationState.Stopping + }; + + var mgmtAllocationStates = new AllocationState[] + { + AllocationState.Steady, + AllocationState.Resizing, + AllocationState.Stopping + }; + + // Act & Assert - Multiple conversions should complete without delay + for (int i = 0; i < 1000; i++) + { + foreach (var psState in psAllocationStates) + { + var mgmtResult = Utils.Utils.FromPSAllocationState(psState); + Assert.NotNull(mgmtResult); + } + + foreach (var mgmtState in mgmtAllocationStates) + { + var psResult = Utils.Utils.ToPSAllocationState(mgmtState); + Assert.NotNull(psResult); + } + } + } + + #endregion + + #region Real-world Scenario Tests + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void AllocationStateConversions_BatchWorkloadScenarios_VerifySemantics() + { + // This test validates the conversions work correctly in realistic Azure Batch pool scenarios + + // Arrange - Test scenarios matching actual Azure Batch pool lifecycle + var poolScenarios = new[] + { + new + { + PSState = Microsoft.Azure.Batch.Common.AllocationState.Steady, + MgmtState = AllocationState.Steady, + Description = "Pool with fixed number of nodes, no resize operations" + }, + new + { + PSState = Microsoft.Azure.Batch.Common.AllocationState.Resizing, + MgmtState = AllocationState.Resizing, + Description = "Pool actively scaling up or down to meet demand" + }, + new + { + PSState = Microsoft.Azure.Batch.Common.AllocationState.Stopping, + MgmtState = AllocationState.Stopping, + Description = "Pool resize operation being cancelled by user request" + } + }; + + foreach (var scenario in poolScenarios) + { + // Act - Convert from PS to Management + var mgmtResult = Utils.Utils.FromPSAllocationState(scenario.PSState); + var psResult = Utils.Utils.ToPSAllocationState(scenario.MgmtState); + + // Assert - Verify correct conversion for pool allocation semantics + Assert.Equal(scenario.MgmtState, mgmtResult); + Assert.Equal(scenario.PSState, psResult); + + // Verify round-trip conversion maintains pool allocation semantics + var backToPs = Utils.Utils.ToPSAllocationState(mgmtResult); + var backToMgmt = Utils.Utils.FromPSAllocationState(psResult); + + Assert.Equal(scenario.PSState, backToPs); + Assert.Equal(scenario.MgmtState, backToMgmt); + } + } + + #endregion + + #region Type Safety Tests + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void AllocationStateConversions_TypeSafety_VerifyReturnTypes() + { + // This test ensures the conversion methods return the correct types + + // Arrange + var psAllocationState = Microsoft.Azure.Batch.Common.AllocationState.Steady; + var mgmtAllocationState = AllocationState.Resizing; + + // Act + var mgmtResult = Utils.Utils.FromPSAllocationState(psAllocationState); + var psResult = Utils.Utils.ToPSAllocationState(mgmtAllocationState); + + // Assert - Verify return types + Assert.IsType(mgmtResult.Value); + Assert.IsType(psResult.Value); + + // Verify nullable handling + var nullMgmtResult = Utils.Utils.FromPSAllocationState(null); + var nullPsResult = Utils.Utils.ToPSAllocationState(null); + + Assert.True(nullMgmtResult == null); + Assert.True(nullPsResult == null); + } + + #endregion + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Test/Utils/UtilsCapitalizedElevationLevelTests.cs b/src/Batch/Batch.Test/Utils/UtilsCapitalizedElevationLevelTests.cs new file mode 100644 index 000000000000..ce1181585439 --- /dev/null +++ b/src/Batch/Batch.Test/Utils/UtilsCapitalizedElevationLevelTests.cs @@ -0,0 +1,781 @@ +// ----------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ----------------------------------------------------------------------------- + +using Microsoft.Azure.Commands.Batch.Utils; +using Microsoft.Azure.Management.Batch.Models; +using Microsoft.WindowsAzure.Commands.ScenarioTest; +using System; +using System.Linq; +using Xunit; + +namespace Microsoft.Azure.Commands.Batch.Test.ModelsConversions +{ + public class UtilsCapitalizedElevationLevelTests + { + #region ToMgmtElevationLevel Tests + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void ToMgmtElevationLevel_NonAdmin_ReturnsNonAdmin() + { + // Arrange + var psElevationLevel = Microsoft.Azure.Batch.Common.ElevationLevel.NonAdmin; + + // Act + var result = Utils.Utils.ToMgmtElevationLevel(psElevationLevel); + + // Assert + Assert.NotNull(result); + Assert.Equal(ElevationLevel.NonAdmin, result.Value); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void ToMgmtElevationLevel_Admin_ReturnsAdmin() + { + // Arrange + var psElevationLevel = Microsoft.Azure.Batch.Common.ElevationLevel.Admin; + + // Act + var result = Utils.Utils.ToMgmtElevationLevel(psElevationLevel); + + // Assert + Assert.NotNull(result); + Assert.Equal(ElevationLevel.Admin, result.Value); + } + + [Theory] + [Trait(Category.AcceptanceType, Category.CheckIn)] + [InlineData(Microsoft.Azure.Batch.Common.ElevationLevel.NonAdmin, ElevationLevel.NonAdmin)] + [InlineData(Microsoft.Azure.Batch.Common.ElevationLevel.Admin, ElevationLevel.Admin)] + public void ToMgmtElevationLevel_AllValidValues_ReturnsCorrectMapping( + Microsoft.Azure.Batch.Common.ElevationLevel input, + ElevationLevel expected) + { + // Act + var result = Utils.Utils.ToMgmtElevationLevel(input); + + // Assert + Assert.NotNull(result); + Assert.Equal(expected, result.Value); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void ToMgmtElevationLevel_NullValue_ReturnsNull() + { + // Arrange + Microsoft.Azure.Batch.Common.ElevationLevel? nullElevationLevel = null; + + // Act + var result = Utils.Utils.ToMgmtElevationLevel(nullElevationLevel); + + // Assert + Assert.Null(result); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void ToMgmtElevationLevel_DefaultValue_HandlesCorrectly() + { + // Arrange + var defaultValue = default(Microsoft.Azure.Batch.Common.ElevationLevel); + + // Act + var result = Utils.Utils.ToMgmtElevationLevel(defaultValue); + + // Assert + Assert.NotNull(result); + // Default ElevationLevel is typically NonAdmin (0) + Assert.Equal(ElevationLevel.NonAdmin, result.Value); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void ToMgmtElevationLevel_EnumValueConsistency_EnsuresCorrectEnumMapping() + { + // This test ensures that the mapping logic correctly handles all defined enum values + // and verifies that the conversion maintains the semantic meaning of each elevation level + + // Arrange & Act & Assert + // NonAdmin: Standard user privileges without administrative access + var nonAdminResult = Utils.Utils.ToMgmtElevationLevel(Microsoft.Azure.Batch.Common.ElevationLevel.NonAdmin); + Assert.NotNull(nonAdminResult); + Assert.Equal(ElevationLevel.NonAdmin, nonAdminResult.Value); + + // Admin: Administrative privileges for elevated operations + var adminResult = Utils.Utils.ToMgmtElevationLevel(Microsoft.Azure.Batch.Common.ElevationLevel.Admin); + Assert.NotNull(adminResult); + Assert.Equal(ElevationLevel.Admin, adminResult.Value); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void ToMgmtElevationLevel_StaticMethod_DoesNotRequireInstance() + { + // This test verifies that the method is properly static and can be called without instantiation + + // Arrange + var psElevationLevel = Microsoft.Azure.Batch.Common.ElevationLevel.Admin; + + // Act - Call static method directly on class + var result = Utils.Utils.ToMgmtElevationLevel(psElevationLevel); + + // Assert + Assert.NotNull(result); + Assert.Equal(ElevationLevel.Admin, result.Value); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void ToMgmtElevationLevel_PerformanceTest_ExecutesQuickly() + { + // This test ensures the enum conversion is efficient for all values + + // Arrange + var enumValues = new[] + { + Microsoft.Azure.Batch.Common.ElevationLevel.NonAdmin, + Microsoft.Azure.Batch.Common.ElevationLevel.Admin + }; + + // Act & Assert - Each conversion should complete without delay + foreach (var value in enumValues) + { + var result = Utils.Utils.ToMgmtElevationLevel(value); + Assert.NotNull(result); + Assert.True(Enum.IsDefined(typeof(ElevationLevel), result.Value)); + } + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void ToMgmtElevationLevel_CastingBehavior_VerifyDirectCast() + { + // This test verifies that the conversion uses direct casting as implemented + + // Arrange + var psNonAdmin = Microsoft.Azure.Batch.Common.ElevationLevel.NonAdmin; + var psAdmin = Microsoft.Azure.Batch.Common.ElevationLevel.Admin; + + // Act + var mgmtNonAdmin = Utils.Utils.ToMgmtElevationLevel(psNonAdmin); + var mgmtAdmin = Utils.Utils.ToMgmtElevationLevel(psAdmin); + + // Assert + Assert.NotNull(mgmtNonAdmin); + Assert.NotNull(mgmtAdmin); + + // Verify that the underlying values match (direct cast behavior) + Assert.Equal((int)psNonAdmin, (int)mgmtNonAdmin.Value); + Assert.Equal((int)psAdmin, (int)mgmtAdmin.Value); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void ToMgmtElevationLevel_AlwaysReturnsNewNullableValue() + { + // This test verifies that the method always returns a new nullable value + + // Arrange + var psElevationLevel = Microsoft.Azure.Batch.Common.ElevationLevel.Admin; + + // Act + var result1 = Utils.Utils.ToMgmtElevationLevel(psElevationLevel); + var result2 = Utils.Utils.ToMgmtElevationLevel(psElevationLevel); + + // Assert + Assert.NotNull(result1); + Assert.NotNull(result2); + Assert.Equal(result1.Value, result2.Value); + } + + #endregion + + #region FromMgmtElevationLevel Tests + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void FromMgmtElevationLevel_NonAdmin_ReturnsNonAdmin() + { + // Arrange + var mgmtElevationLevel = ElevationLevel.NonAdmin; + + // Act + var result = Utils.Utils.FromMgmtElevationLevel(mgmtElevationLevel); + + // Assert + Assert.NotNull(result); + Assert.Equal(Microsoft.Azure.Batch.Common.ElevationLevel.NonAdmin, result.Value); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void FromMgmtElevationLevel_Admin_ReturnsAdmin() + { + // Arrange + var mgmtElevationLevel = ElevationLevel.Admin; + + // Act + var result = Utils.Utils.FromMgmtElevationLevel(mgmtElevationLevel); + + // Assert + Assert.NotNull(result); + Assert.Equal(Microsoft.Azure.Batch.Common.ElevationLevel.Admin, result.Value); + } + + [Theory] + [Trait(Category.AcceptanceType, Category.CheckIn)] + [InlineData(ElevationLevel.NonAdmin, Microsoft.Azure.Batch.Common.ElevationLevel.NonAdmin)] + [InlineData(ElevationLevel.Admin, Microsoft.Azure.Batch.Common.ElevationLevel.Admin)] + public void FromMgmtElevationLevel_AllValidValues_ReturnsCorrectMapping( + ElevationLevel input, + Microsoft.Azure.Batch.Common.ElevationLevel expected) + { + // Act + var result = Utils.Utils.FromMgmtElevationLevel(input); + + // Assert + Assert.NotNull(result); + Assert.Equal(expected, result.Value); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void FromMgmtElevationLevel_NullValue_ReturnsNull() + { + // Arrange + ElevationLevel? nullElevationLevel = null; + + // Act + var result = Utils.Utils.FromMgmtElevationLevel(nullElevationLevel); + + // Assert + Assert.Null(result); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void FromMgmtElevationLevel_DefaultValue_HandlesCorrectly() + { + // Arrange + var defaultValue = default(ElevationLevel); + + // Act + var result = Utils.Utils.FromMgmtElevationLevel(defaultValue); + + // Assert + Assert.NotNull(result); + // Default ElevationLevel is typically NonAdmin (0) + Assert.Equal(Microsoft.Azure.Batch.Common.ElevationLevel.NonAdmin, result.Value); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void FromMgmtElevationLevel_EnumValueConsistency_EnsuresCorrectEnumMapping() + { + // This test ensures that the mapping logic correctly handles all defined enum values + // and verifies that the conversion maintains the semantic meaning of each elevation level + + // Arrange & Act & Assert + // NonAdmin: Standard user privileges without administrative access + var nonAdminResult = Utils.Utils.FromMgmtElevationLevel(ElevationLevel.NonAdmin); + Assert.NotNull(nonAdminResult); + Assert.Equal(Microsoft.Azure.Batch.Common.ElevationLevel.NonAdmin, nonAdminResult.Value); + + // Admin: Administrative privileges for elevated operations + var adminResult = Utils.Utils.FromMgmtElevationLevel(ElevationLevel.Admin); + Assert.NotNull(adminResult); + Assert.Equal(Microsoft.Azure.Batch.Common.ElevationLevel.Admin, adminResult.Value); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void FromMgmtElevationLevel_StaticMethod_DoesNotRequireInstance() + { + // This test verifies that the method is properly static and can be called without instantiation + + // Arrange + var mgmtElevationLevel = ElevationLevel.NonAdmin; + + // Act - Call static method directly on class + var result = Utils.Utils.FromMgmtElevationLevel(mgmtElevationLevel); + + // Assert + Assert.NotNull(result); + Assert.Equal(Microsoft.Azure.Batch.Common.ElevationLevel.NonAdmin, result.Value); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void FromMgmtElevationLevel_PerformanceTest_ExecutesQuickly() + { + // This test ensures the enum conversion is efficient for all values + + // Arrange + var enumValues = new ElevationLevel?[] + { + ElevationLevel.NonAdmin, + ElevationLevel.Admin, + null + }; + + // Act & Assert - Each conversion should complete without delay + foreach (var value in enumValues) + { + var result = Utils.Utils.FromMgmtElevationLevel(value); + if (value.HasValue) + { + Assert.NotNull(result); + Assert.True(Enum.IsDefined(typeof(Microsoft.Azure.Batch.Common.ElevationLevel), result.Value)); + } + else + { + Assert.Null(result); + } + } + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void FromMgmtElevationLevel_AcceptsNullableType() + { + // This test verifies that the method accepts a nullable ElevationLevel + + // Arrange + ElevationLevel? nullableValue = ElevationLevel.Admin; + + // Act + var result = Utils.Utils.FromMgmtElevationLevel(nullableValue); + + // Assert + Assert.NotNull(result); + Assert.Equal(Microsoft.Azure.Batch.Common.ElevationLevel.Admin, result.Value); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void FromMgmtElevationLevel_CastingBehavior_VerifyDirectCast() + { + // This test verifies that the conversion uses direct casting as implemented + + // Arrange + var mgmtNonAdmin = ElevationLevel.NonAdmin; + var mgmtAdmin = ElevationLevel.Admin; + + // Act + var psNonAdmin = Utils.Utils.FromMgmtElevationLevel(mgmtNonAdmin); + var psAdmin = Utils.Utils.FromMgmtElevationLevel(mgmtAdmin); + + // Assert + Assert.NotNull(psNonAdmin); + Assert.NotNull(psAdmin); + + // Verify that the underlying values match (direct cast behavior) + Assert.Equal((int)mgmtNonAdmin, (int)psNonAdmin.Value); + Assert.Equal((int)mgmtAdmin, (int)psAdmin.Value); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void FromMgmtElevationLevel_AlwaysReturnsNewNullableValue() + { + // This test verifies that the method always returns a new nullable value + + // Arrange + var mgmtElevationLevel = ElevationLevel.Admin; + + // Act + var result1 = Utils.Utils.FromMgmtElevationLevel(mgmtElevationLevel); + var result2 = Utils.Utils.FromMgmtElevationLevel(mgmtElevationLevel); + + // Assert + Assert.NotNull(result1); + Assert.NotNull(result2); + Assert.Equal(result1.Value, result2.Value); + } + + #endregion + + #region Round-trip Conversion Tests + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesNonAdminValue() + { + // Arrange + var originalPsElevationLevel = Microsoft.Azure.Batch.Common.ElevationLevel.NonAdmin; + + // Act + var mgmtElevationLevel = Utils.Utils.ToMgmtElevationLevel(originalPsElevationLevel); + var roundTripPsElevationLevel = Utils.Utils.FromMgmtElevationLevel(mgmtElevationLevel); + + // Assert + Assert.NotNull(roundTripPsElevationLevel); + Assert.Equal(originalPsElevationLevel, roundTripPsElevationLevel.Value); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesAdminValue() + { + // Arrange + var originalPsElevationLevel = Microsoft.Azure.Batch.Common.ElevationLevel.Admin; + + // Act + var mgmtElevationLevel = Utils.Utils.ToMgmtElevationLevel(originalPsElevationLevel); + var roundTripPsElevationLevel = Utils.Utils.FromMgmtElevationLevel(mgmtElevationLevel); + + // Assert + Assert.NotNull(roundTripPsElevationLevel); + Assert.Equal(originalPsElevationLevel, roundTripPsElevationLevel.Value); + } + + [Theory] + [Trait(Category.AcceptanceType, Category.CheckIn)] + [InlineData(Microsoft.Azure.Batch.Common.ElevationLevel.NonAdmin)] + [InlineData(Microsoft.Azure.Batch.Common.ElevationLevel.Admin)] + public void RoundTripConversion_AllValidValues_PreservesOriginalValue( + Microsoft.Azure.Batch.Common.ElevationLevel originalElevationLevel) + { + // Act + var mgmtElevationLevel = Utils.Utils.ToMgmtElevationLevel(originalElevationLevel); + var roundTripElevationLevel = Utils.Utils.FromMgmtElevationLevel(mgmtElevationLevel); + + // Assert + Assert.NotNull(roundTripElevationLevel); + Assert.Equal(originalElevationLevel, roundTripElevationLevel.Value); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void RoundTripConversion_FromMgmtAndToMgmt_PreservesValues() + { + // Arrange + var originalMgmtValues = new[] + { + ElevationLevel.NonAdmin, + ElevationLevel.Admin + }; + + foreach (var originalValue in originalMgmtValues) + { + // Act + var psValue = Utils.Utils.FromMgmtElevationLevel(originalValue); + var roundTripValue = Utils.Utils.ToMgmtElevationLevel(psValue); + + // Assert + Assert.NotNull(roundTripValue); + Assert.Equal(originalValue, roundTripValue.Value); + } + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void RoundTripConversion_NullHandling_WorksCorrectly() + { + // This test verifies null handling in round-trip conversions + + // Arrange + Microsoft.Azure.Batch.Common.ElevationLevel? nullPsValue = null; + ElevationLevel? nullMgmtValue = null; + + // Act + var mgmtFromNullPs = Utils.Utils.ToMgmtElevationLevel(nullPsValue); + var psFromNullMgmt = Utils.Utils.FromMgmtElevationLevel(nullMgmtValue); + + // Assert + Assert.Null(mgmtFromNullPs); + Assert.Null(psFromNullMgmt); + } + + #endregion + + #region Comparison with Lowercase Methods Tests + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void CapitalizedMethods_ConsistentWithLowercaseMethods_ProduceSameResults() + { + // This test verifies that the capitalized methods produce the same results as the lowercase ones + // This is important for consistency across the codebase + + // Arrange + var testValues = new[] + { + Microsoft.Azure.Batch.Common.ElevationLevel.NonAdmin, + Microsoft.Azure.Batch.Common.ElevationLevel.Admin + }; + + foreach (var psValue in testValues) + { + // Act - Compare ToMgmtElevationLevel vs toMgmtElevationLevel + var capitalizedResult = Utils.Utils.ToMgmtElevationLevel(psValue); + var lowercaseResult = Utils.Utils.toMgmtElevationLevel(psValue); + + // Assert + Assert.Equal(capitalizedResult, lowercaseResult); + if (capitalizedResult.HasValue && lowercaseResult.HasValue) + { + Assert.Equal(capitalizedResult.Value, lowercaseResult.Value); + } + } + + // Test management to PowerShell conversion consistency + var mgmtTestValues = new[] + { + ElevationLevel.NonAdmin, + ElevationLevel.Admin + }; + + foreach (var mgmtValue in mgmtTestValues) + { + // Act - Compare FromMgmtElevationLevel vs fromMgmtElevationLevel + var capitalizedResult = Utils.Utils.FromMgmtElevationLevel(mgmtValue); + var lowercaseResult = Utils.Utils.fromMgmtElevationLevel(mgmtValue); + + // Assert + Assert.Equal(capitalizedResult, lowercaseResult); + if (capitalizedResult.HasValue && lowercaseResult.HasValue) + { + Assert.Equal(capitalizedResult.Value, lowercaseResult.Value); + } + } + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void CapitalizedMethods_NullHandling_ConsistentWithLowercaseMethods() + { + // Test null handling consistency between capitalized and lowercase methods + + // Arrange + Microsoft.Azure.Batch.Common.ElevationLevel? nullPsValue = null; + ElevationLevel? nullMgmtValue = null; + + // Act + var capitalizedPsToMgmt = Utils.Utils.ToMgmtElevationLevel(nullPsValue); + var lowercasePsToMgmt = Utils.Utils.toMgmtElevationLevel(nullPsValue); + + var capitalizedMgmtToPs = Utils.Utils.FromMgmtElevationLevel(nullMgmtValue); + var lowercaseMgmtToPs = Utils.Utils.fromMgmtElevationLevel(nullMgmtValue); + + // Assert + Assert.Equal(capitalizedPsToMgmt, lowercasePsToMgmt); + Assert.Equal(capitalizedMgmtToPs, lowercaseMgmtToPs); + Assert.Null(capitalizedPsToMgmt); + Assert.Null(lowercasePsToMgmt); + Assert.Null(capitalizedMgmtToPs); + Assert.Null(lowercaseMgmtToPs); + } + + #endregion + + #region Enum Value Verification Tests + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void ElevationLevel_VerifyEnumMemberCount_EnsuresAllValuesHandled() + { + // This test helps ensure that if new enum values are added, the conversion methods are updated + + // Arrange + var psElevationLevelValues = Enum.GetValues(typeof(Microsoft.Azure.Batch.Common.ElevationLevel)); + var mgmtElevationLevelValues = Enum.GetValues(typeof(ElevationLevel)); + + // Act & Assert + // Verify that both enums have the same number of values (assuming 1:1 mapping) + Assert.Equal(psElevationLevelValues.Length, mgmtElevationLevelValues.Length); + + // Verify that each PS enum value can be converted successfully using capitalized methods + foreach (Microsoft.Azure.Batch.Common.ElevationLevel psValue in psElevationLevelValues) + { + var result = Utils.Utils.ToMgmtElevationLevel(psValue); + Assert.NotNull(result); + Assert.True(Enum.IsDefined(typeof(ElevationLevel), result.Value)); + } + + // Verify that each management enum value can be converted successfully using capitalized methods + foreach (ElevationLevel mgmtValue in mgmtElevationLevelValues) + { + var result = Utils.Utils.FromMgmtElevationLevel(mgmtValue); + Assert.NotNull(result); + Assert.True(Enum.IsDefined(typeof(Microsoft.Azure.Batch.Common.ElevationLevel), result.Value)); + } + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void ElevationLevel_BijectiveMapping_EnsuresUniqueConversion() + { + // This test verifies that the mapping is bijective (one-to-one) using the capitalized methods + + // Arrange + var psValues = new[] + { + Microsoft.Azure.Batch.Common.ElevationLevel.NonAdmin, + Microsoft.Azure.Batch.Common.ElevationLevel.Admin + }; + + var mgmtValues = new[] + { + ElevationLevel.NonAdmin, + ElevationLevel.Admin + }; + + // Act - Convert PS to Management using capitalized method + var convertedMgmtValues = new ElevationLevel?[psValues.Length]; + for (int i = 0; i < psValues.Length; i++) + { + convertedMgmtValues[i] = Utils.Utils.ToMgmtElevationLevel(psValues[i]); + } + + // Act - Convert Management to PS using capitalized method + var convertedPsValues = new Microsoft.Azure.Batch.Common.ElevationLevel?[mgmtValues.Length]; + for (int i = 0; i < mgmtValues.Length; i++) + { + convertedPsValues[i] = Utils.Utils.FromMgmtElevationLevel(mgmtValues[i]); + } + + // Assert - Each management enum value should be unique (no duplicates) + var distinctMgmtValues = convertedMgmtValues.Where(v => v.HasValue).Select(v => v.Value).Distinct().ToArray(); + Assert.Equal(convertedMgmtValues.Count(v => v.HasValue), distinctMgmtValues.Length); + + // Assert - Each PS enum value should be unique (no duplicates) + var distinctPsValues = convertedPsValues.Where(v => v.HasValue).Select(v => v.Value).Distinct().ToArray(); + Assert.Equal(convertedPsValues.Count(v => v.HasValue), distinctPsValues.Length); + } + + #endregion + + #region Integration Tests + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void ElevationLevelConversions_BothDirections_MaintainSemanticEquivalence() + { + // This test ensures that the semantic meaning is preserved across conversions using capitalized methods + + // Test NonAdmin semantics - Standard user privileges + var psNonAdmin = Microsoft.Azure.Batch.Common.ElevationLevel.NonAdmin; + var mgmtNonAdmin = Utils.Utils.ToMgmtElevationLevel(psNonAdmin); + var backToPs = Utils.Utils.FromMgmtElevationLevel(mgmtNonAdmin); + + Assert.NotNull(mgmtNonAdmin); + Assert.Equal(ElevationLevel.NonAdmin, mgmtNonAdmin.Value); + Assert.NotNull(backToPs); + Assert.Equal(psNonAdmin, backToPs.Value); + + // Test Admin semantics - Administrative privileges + var psAdmin = Microsoft.Azure.Batch.Common.ElevationLevel.Admin; + var mgmtAdmin = Utils.Utils.ToMgmtElevationLevel(psAdmin); + var backToPsAdmin = Utils.Utils.FromMgmtElevationLevel(mgmtAdmin); + + Assert.NotNull(mgmtAdmin); + Assert.Equal(ElevationLevel.Admin, mgmtAdmin.Value); + Assert.NotNull(backToPsAdmin); + Assert.Equal(psAdmin, backToPsAdmin.Value); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void ElevationLevelConversions_NullabilityHandling_VerifyBehavior() + { + // This test verifies the nullable handling in these conversion methods using capitalized methods + + // ToMgmtElevationLevel returns null for null input + Microsoft.Azure.Batch.Common.ElevationLevel? nullInput = null; + var result = Utils.Utils.ToMgmtElevationLevel(nullInput); + Assert.Null(result); + + // FromMgmtElevationLevel returns null for null input + ElevationLevel? nullMgmtInput = null; + var mgmtResult = Utils.Utils.FromMgmtElevationLevel(nullMgmtInput); + Assert.Null(mgmtResult); + + // Both methods handle nullable types correctly + ElevationLevel? nullableAdmin = ElevationLevel.Admin; + var nonNullResult = Utils.Utils.FromMgmtElevationLevel(nullableAdmin); + Assert.NotNull(nonNullResult); + Assert.Equal(Microsoft.Azure.Batch.Common.ElevationLevel.Admin, nonNullResult.Value); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void ElevationLevelConversions_BatchUserContext_VerifyCorrectUsage() + { + // This test validates the conversions work correctly in the context of Batch user accounts + // ElevationLevel is used to specify privilege level for user accounts in Azure Batch + + // Arrange - Test with realistic Batch user scenarios + var userAccountScenarios = new[] + { + // Standard user account without administrative privileges + new { + ElevationLevel = Microsoft.Azure.Batch.Common.ElevationLevel.NonAdmin, + Description = "Standard user account for running regular batch tasks" + }, + // Administrative user account for privileged operations + new { + ElevationLevel = Microsoft.Azure.Batch.Common.ElevationLevel.Admin, + Description = "Administrative user account for system operations and elevated tasks" + } + }; + + foreach (var scenario in userAccountScenarios) + { + // Act - Using capitalized methods + var mgmtElevationLevel = Utils.Utils.ToMgmtElevationLevel(scenario.ElevationLevel); + + // Assert - Should convert correctly for Batch user account configuration + Assert.NotNull(mgmtElevationLevel); + + var expectedMgmtLevel = scenario.ElevationLevel == Microsoft.Azure.Batch.Common.ElevationLevel.NonAdmin + ? ElevationLevel.NonAdmin + : ElevationLevel.Admin; + Assert.Equal(expectedMgmtLevel, mgmtElevationLevel.Value); + + // Verify round-trip conversion maintains user account semantics + var backToPs = Utils.Utils.FromMgmtElevationLevel(mgmtElevationLevel); + Assert.NotNull(backToPs); + Assert.Equal(scenario.ElevationLevel, backToPs.Value); + } + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void ElevationLevelConversions_DirectCastingBehavior_VerifyImplementation() + { + // This test verifies that the methods use direct casting as implemented + // This is important because it ensures the enum values have the same underlying representation + + // Test that conversion preserves underlying integer values using capitalized methods + foreach (Microsoft.Azure.Batch.Common.ElevationLevel psValue in Enum.GetValues(typeof(Microsoft.Azure.Batch.Common.ElevationLevel))) + { + var mgmtResult = Utils.Utils.ToMgmtElevationLevel(psValue); + Assert.NotNull(mgmtResult); + Assert.Equal((int)psValue, (int)mgmtResult.Value); + } + + foreach (ElevationLevel mgmtValue in Enum.GetValues(typeof(ElevationLevel))) + { + var psResult = Utils.Utils.FromMgmtElevationLevel(mgmtValue); + Assert.NotNull(psResult); + Assert.Equal((int)mgmtValue, (int)psResult.Value); + } + } + + #endregion + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Test/Utils/UtilsDiffDiskPlacementTests.cs b/src/Batch/Batch.Test/Utils/UtilsDiffDiskPlacementTests.cs new file mode 100644 index 000000000000..aa05bf4c8c09 --- /dev/null +++ b/src/Batch/Batch.Test/Utils/UtilsDiffDiskPlacementTests.cs @@ -0,0 +1,459 @@ +// ----------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ----------------------------------------------------------------------------- + +using Microsoft.Azure.Management.Batch.Models; +using System; +using Xunit; + +namespace Microsoft.Azure.Commands.Batch.Test.ModelsConversions +{ + public class UtilsDiffDiskPlacementTests + { + #region ToMgmtPlacement Tests + + [Fact] + public void ToMgmtPlacement_WithCacheDisk_ReturnsCorrectMapping() + { + // Arrange + var psPlacement = Azure.Batch.Common.DiffDiskPlacement.CacheDisk; + + // Act + var result = Utils.Utils.ToMgmtPlacement(psPlacement); + + // Assert + Assert.Equal(DiffDiskPlacement.CacheDisk, result); + } + + [Theory] + [InlineData(Azure.Batch.Common.DiffDiskPlacement.CacheDisk, DiffDiskPlacement.CacheDisk)] + public void ToMgmtPlacement_AllValidPlacementTypes_ReturnsCorrectMapping( + Azure.Batch.Common.DiffDiskPlacement psPlacementType, + DiffDiskPlacement expectedMgmtPlacementType) + { + // Act + var result = Utils.Utils.ToMgmtPlacement(psPlacementType); + + // Assert + Assert.Equal(expectedMgmtPlacementType, result); + } + + [Fact] + public void ToMgmtPlacement_WithNullableCacheDisk_ReturnsCorrectMapping() + { + // Arrange + Azure.Batch.Common.DiffDiskPlacement? psPlacement = Azure.Batch.Common.DiffDiskPlacement.CacheDisk; + + // Act + var result = Utils.Utils.ToMgmtPlacement(psPlacement); + + // Assert + Assert.Equal(DiffDiskPlacement.CacheDisk, result); + } + + [Fact] + public void ToMgmtPlacement_WithNull_ReturnsNull() + { + // Arrange + Azure.Batch.Common.DiffDiskPlacement? psPlacement = null; + + // Act + var result = Utils.Utils.ToMgmtPlacement(psPlacement); + + // Assert + Assert.Null(result); + } + + [Fact] + public void ToMgmtPlacement_CacheDiskSemantics_PreservesDiskPlacementStrategy() + { + // Arrange - CacheDisk strategy places diff disk on cache disk + var psPlacement = Azure.Batch.Common.DiffDiskPlacement.CacheDisk; + + // Act + var result = Utils.Utils.ToMgmtPlacement(psPlacement); + + // Assert + Assert.Equal(DiffDiskPlacement.CacheDisk, result); + // CacheDisk semantics: Diff disk is placed on the cache disk for better performance + } + + #endregion + + #region FromMgmtPlacement Tests + + [Fact] + public void FromMgmtPlacement_WithCacheDisk_ReturnsCorrectMapping() + { + // Arrange + var mgmtPlacement = DiffDiskPlacement.CacheDisk; + + // Act + var result = Utils.Utils.FromMgmtPlacement(mgmtPlacement); + + // Assert + Assert.Equal(Azure.Batch.Common.DiffDiskPlacement.CacheDisk, result); + } + + [Theory] + [InlineData(DiffDiskPlacement.CacheDisk, Azure.Batch.Common.DiffDiskPlacement.CacheDisk)] + public void FromMgmtPlacement_AllValidPlacementTypes_ReturnsCorrectMapping( + DiffDiskPlacement mgmtPlacementType, + Azure.Batch.Common.DiffDiskPlacement expectedPsPlacementType) + { + // Act + var result = Utils.Utils.FromMgmtPlacement(mgmtPlacementType); + + // Assert + Assert.Equal(expectedPsPlacementType, result); + } + + [Fact] + public void FromMgmtPlacement_WithNullableCacheDisk_ReturnsCorrectMapping() + { + // Arrange + DiffDiskPlacement? mgmtPlacement = DiffDiskPlacement.CacheDisk; + + // Act + var result = Utils.Utils.FromMgmtPlacement(mgmtPlacement); + + // Assert + Assert.Equal(Azure.Batch.Common.DiffDiskPlacement.CacheDisk, result); + } + + [Fact] + public void FromMgmtPlacement_WithNull_ReturnsNull() + { + // Arrange + DiffDiskPlacement? mgmtPlacement = null; + + // Act + var result = Utils.Utils.FromMgmtPlacement(mgmtPlacement); + + // Assert + Assert.Null(result); + } + + [Fact] + public void FromMgmtPlacement_CacheDiskSemantics_PreservesDiskPlacementStrategy() + { + // Arrange + var mgmtPlacement = DiffDiskPlacement.CacheDisk; + + // Act + var result = Utils.Utils.FromMgmtPlacement(mgmtPlacement); + + // Assert + Assert.Equal(Azure.Batch.Common.DiffDiskPlacement.CacheDisk, result); + // CacheDisk semantics preserved: Diff disk placement on cache disk for performance + } + + #endregion + + #region Round-trip Conversion Tests + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesCacheDiskValue() + { + // Arrange + var originalPsPlacement = Azure.Batch.Common.DiffDiskPlacement.CacheDisk; + + // Act - Convert PS -> Management -> PS + var mgmtPlacement = Utils.Utils.ToMgmtPlacement(originalPsPlacement); + var roundTripPsPlacement = Utils.Utils.FromMgmtPlacement(mgmtPlacement); + + // Assert - Should get back the original value + Assert.Equal(originalPsPlacement, roundTripPsPlacement); + Assert.Equal(Azure.Batch.Common.DiffDiskPlacement.CacheDisk, roundTripPsPlacement); + } + + [Theory] + [InlineData(Azure.Batch.Common.DiffDiskPlacement.CacheDisk)] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesAllValidValues( + Azure.Batch.Common.DiffDiskPlacement originalValue) + { + // Act - Convert PS -> Management -> PS + var mgmtValue = Utils.Utils.ToMgmtPlacement(originalValue); + var roundTripValue = Utils.Utils.FromMgmtPlacement(mgmtValue); + + // Assert - Should get back the original value + Assert.Equal(originalValue, roundTripValue); + } + + [Fact] + public void RoundTripConversion_FromMgmtAndToMgmt_PreservesValues() + { + // This test verifies that converting Management -> PS -> Management preserves the original value + + // Arrange + var originalMgmtValues = new[] + { + DiffDiskPlacement.CacheDisk + }; + + foreach (var originalValue in originalMgmtValues) + { + // Act - Convert Management -> PS -> Management + var psValue = Utils.Utils.FromMgmtPlacement(originalValue); + var roundTripValue = Utils.Utils.ToMgmtPlacement(psValue); + + // Assert - Should get back the original value + Assert.Equal(originalValue, roundTripValue); + } + } + + [Fact] + public void RoundTripConversion_WithNullableValues_PreservesNulls() + { + // Arrange + Azure.Batch.Common.DiffDiskPlacement? nullPsPlacement = null; + DiffDiskPlacement? nullMgmtPlacement = null; + + // Act + var mgmtFromNullPs = Utils.Utils.ToMgmtPlacement(nullPsPlacement); + var psFromNullMgmt = Utils.Utils.FromMgmtPlacement(nullMgmtPlacement); + + // Assert + Assert.Null(mgmtFromNullPs); + Assert.Null(psFromNullMgmt); + } + + #endregion + + #region Integration Tests + + [Fact] + public void DiffDiskPlacementConversions_BothDirections_MaintainSemanticEquivalence() + { + // This test ensures that the semantic meaning is preserved across conversions + + // Test CacheDisk semantics - Diff disk placed on cache disk for performance + var psCacheDisk = Azure.Batch.Common.DiffDiskPlacement.CacheDisk; + var mgmtCacheDisk = Utils.Utils.ToMgmtPlacement(psCacheDisk); + var backToPs = Utils.Utils.FromMgmtPlacement(mgmtCacheDisk); + + Assert.Equal(DiffDiskPlacement.CacheDisk, mgmtCacheDisk); + Assert.Equal(psCacheDisk, backToPs); + } + + [Fact] + public void DiffDiskPlacementConversions_NullHandling_WorksCorrectly() + { + // Test null handling in conversions + + // Act + var resultFromNullPs = Utils.Utils.ToMgmtPlacement(null); + var resultFromNullMgmt = Utils.Utils.FromMgmtPlacement(null); + + // Assert + Assert.Null(resultFromNullPs); + Assert.Null(resultFromNullMgmt); + } + + [Fact] + public void DiffDiskPlacementConversions_VirtualMachineContext_VerifyCorrectUsage() + { + // This test validates the conversions work correctly in the context of Azure VM diff disk placement + // DiffDiskPlacement is used to determine where the diff disk is placed on Azure VMs + + // Arrange - Test CacheDisk strategy for performance-optimized workloads + var psCacheDisk = Azure.Batch.Common.DiffDiskPlacement.CacheDisk; + var mgmtCacheDisk = Utils.Utils.ToMgmtPlacement(psCacheDisk); + + // Act & Assert - CacheDisk should convert correctly for performance optimization + Assert.Equal(DiffDiskPlacement.CacheDisk, mgmtCacheDisk); + + // Verify round-trip conversion maintains VM disk placement semantics + var backToCacheDisk = Utils.Utils.FromMgmtPlacement(mgmtCacheDisk); + + Assert.Equal(Azure.Batch.Common.DiffDiskPlacement.CacheDisk, backToCacheDisk); + } + + [Fact] + public void DiffDiskPlacementConversions_DefaultValues_HandleCorrectly() + { + // Test conversion with default enum values + + // Arrange + var defaultPsPlacement = default(Azure.Batch.Common.DiffDiskPlacement); + var defaultMgmtPlacement = default(DiffDiskPlacement); + + // Act + var mgmtResult = Utils.Utils.ToMgmtPlacement(defaultPsPlacement); + var psResult = Utils.Utils.FromMgmtPlacement(defaultMgmtPlacement); + + // Assert + Assert.Equal((DiffDiskPlacement)defaultPsPlacement, mgmtResult); + Assert.Equal((Azure.Batch.Common.DiffDiskPlacement)defaultMgmtPlacement, psResult); + Assert.True(Enum.IsDefined(typeof(DiffDiskPlacement), mgmtResult)); + Assert.True(Enum.IsDefined(typeof(Azure.Batch.Common.DiffDiskPlacement), psResult)); + } + + #endregion + + #region Performance and Edge Case Tests + + [Fact] + public void DiffDiskPlacementConversions_PerformanceTest_ExecutesQuickly() + { + // This test ensures the conversions are efficient + + // Arrange + var psPlacement = Azure.Batch.Common.DiffDiskPlacement.CacheDisk; + var mgmtPlacement = DiffDiskPlacement.CacheDisk; + + // Act & Assert - Multiple conversions should complete without delay + for (int i = 0; i < 100; i++) + { + var mgmtResult = Utils.Utils.ToMgmtPlacement(psPlacement); + var psResult = Utils.Utils.FromMgmtPlacement(mgmtPlacement); + + Assert.Equal(DiffDiskPlacement.CacheDisk, mgmtResult); + Assert.Equal(Azure.Batch.Common.DiffDiskPlacement.CacheDisk, psResult); + } + } + + #endregion + + #region Disk Performance Strategy Tests + + [Fact] + public void DiffDiskPlacementConversions_CacheDiskStrategy_PerformanceOptimization() + { + // This test validates that CacheDisk placement semantics are preserved for performance optimization + + // Arrange - CacheDisk placement for high-performance workloads + var psCacheDisk = Azure.Batch.Common.DiffDiskPlacement.CacheDisk; + + // Act + var mgmtCacheDisk = Utils.Utils.ToMgmtPlacement(psCacheDisk); + var backToPs = Utils.Utils.FromMgmtPlacement(mgmtCacheDisk); + + // Assert - CacheDisk placement semantics preserved + Assert.Equal(DiffDiskPlacement.CacheDisk, mgmtCacheDisk); + Assert.Equal(Azure.Batch.Common.DiffDiskPlacement.CacheDisk, backToPs); + // CacheDisk placement ensures diff disk is placed on cache disk for maximum performance + } + + #endregion + + #region Type Safety and Casting Tests + + [Fact] + public void DiffDiskPlacementConversions_TypeSafety_VerifyCorrectTypes() + { + // Test that conversions return the correct types and handle casting properly + + // Arrange + var psPlacement = Azure.Batch.Common.DiffDiskPlacement.CacheDisk; + var mgmtPlacement = DiffDiskPlacement.CacheDisk; + + // Act + var mgmtResult = Utils.Utils.ToMgmtPlacement(psPlacement); + var psResult = Utils.Utils.FromMgmtPlacement(mgmtPlacement); + + // Assert - Verify correct types are returned + Assert.IsType(mgmtResult); + Assert.IsType(psResult); + Assert.Equal(DiffDiskPlacement.CacheDisk, mgmtResult); + Assert.Equal(Azure.Batch.Common.DiffDiskPlacement.CacheDisk, psResult); + } + + [Fact] + public void DiffDiskPlacementConversions_EnumValueEquivalence_VerifyDirectCasting() + { + // Test that the enum values are equivalent and casting works as expected + + // Arrange & Act - Test direct casting behavior + var psCacheDisk = Azure.Batch.Common.DiffDiskPlacement.CacheDisk; + + var mgmtCacheDiskDirect = (DiffDiskPlacement)psCacheDisk; + var mgmtCacheDiskUtils = Utils.Utils.ToMgmtPlacement(psCacheDisk); + + // Assert - Utils methods should behave the same as direct casting + Assert.Equal(mgmtCacheDiskDirect, mgmtCacheDiskUtils); + Assert.Equal(DiffDiskPlacement.CacheDisk, mgmtCacheDiskUtils); + } + + [Fact] + public void DiffDiskPlacementConversions_NullableCasting_WorksCorrectly() + { + // Test that nullable casting works as expected + + // Arrange + Azure.Batch.Common.DiffDiskPlacement? nullablePsCacheDisk = Azure.Batch.Common.DiffDiskPlacement.CacheDisk; + Azure.Batch.Common.DiffDiskPlacement? nullPs = null; + + // Act + var mgmtFromNullableCacheDisk = Utils.Utils.ToMgmtPlacement(nullablePsCacheDisk); + var mgmtFromNull = Utils.Utils.ToMgmtPlacement(nullPs); + + // Assert + Assert.Equal(DiffDiskPlacement.CacheDisk, mgmtFromNullableCacheDisk); + Assert.Null(mgmtFromNull); + } + + #endregion + + #region VM Configuration Context Tests + + [Fact] + public void DiffDiskPlacementConversions_VMDiskConfiguration_VerifyPlacementStrategy() + { + // This test validates the conversions work correctly in VM disk configuration scenarios + // DiffDiskPlacement determines where ephemeral disks are placed on Azure VMs + + // Arrange - Test CacheDisk placement strategy in VM context + var scenario = new + { + PSPlacement = Azure.Batch.Common.DiffDiskPlacement.CacheDisk, + MgmtPlacement = DiffDiskPlacement.CacheDisk, + Description = "Cache disk placement for high-performance I/O workloads" + }; + + // Act + var mgmtResult = Utils.Utils.ToMgmtPlacement(scenario.PSPlacement); + var psResult = Utils.Utils.FromMgmtPlacement(scenario.MgmtPlacement); + + // Assert + Assert.Equal(scenario.MgmtPlacement, mgmtResult); + Assert.Equal(scenario.PSPlacement, psResult); + + // Verify round-trip maintains VM disk placement strategy + var roundTripMgmt = Utils.Utils.ToMgmtPlacement(psResult); + var roundTripPs = Utils.Utils.FromMgmtPlacement(mgmtResult); + + Assert.Equal(scenario.MgmtPlacement, roundTripMgmt); + Assert.Equal(scenario.PSPlacement, roundTripPs); + } + + [Fact] + public void DiffDiskPlacementConversions_EphemeralDiskContext_PreservesPlacementSemantics() + { + // This test ensures that ephemeral disk placement semantics are correctly preserved + + // Arrange - CacheDisk placement optimizes for high IOPS workloads + var psCacheDiskPlacement = Azure.Batch.Common.DiffDiskPlacement.CacheDisk; + + // Act + var mgmtCacheDiskPlacement = Utils.Utils.ToMgmtPlacement(psCacheDiskPlacement); + var backToPsCacheDisk = Utils.Utils.FromMgmtPlacement(mgmtCacheDiskPlacement); + + // Assert - CacheDisk placement semantics preserved for high-performance scenarios + Assert.Equal(DiffDiskPlacement.CacheDisk, mgmtCacheDiskPlacement); + Assert.Equal(Azure.Batch.Common.DiffDiskPlacement.CacheDisk, backToPsCacheDisk); + } + + #endregion + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Test/Utils/UtilsDynamicVNetAssignmentScopeTests.cs b/src/Batch/Batch.Test/Utils/UtilsDynamicVNetAssignmentScopeTests.cs new file mode 100644 index 000000000000..093c6822ec06 --- /dev/null +++ b/src/Batch/Batch.Test/Utils/UtilsDynamicVNetAssignmentScopeTests.cs @@ -0,0 +1,704 @@ +// ----------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ----------------------------------------------------------------------------- + +using Microsoft.Azure.Commands.Batch.Utils; +using Microsoft.Azure.Management.Batch.Models; +using System; +using System.Linq; +using Xunit; + +namespace Microsoft.Azure.Commands.Batch.Test.ModelsConversions +{ + public class UtilsDynamicVNetAssignmentScopeTests + { + #region toMgmtDynamicVNetAssignmentScope Tests + + [Fact] + public void ToMgmtDynamicVNetAssignmentScope_None_ReturnsNone() + { + // Arrange + var psDynamicVNetAssignmentScope = Microsoft.Azure.Batch.Common.DynamicVNetAssignmentScope.None; + + // Act + var result = Utils.Utils.toMgmtDynamicVNetAssignmentScope(psDynamicVNetAssignmentScope); + + // Assert + Assert.NotNull(result); + Assert.Equal(DynamicVNetAssignmentScope.None, result.Value); + } + + [Fact] + public void ToMgmtDynamicVNetAssignmentScope_Job_ReturnsJob() + { + // Arrange + var psDynamicVNetAssignmentScope = Microsoft.Azure.Batch.Common.DynamicVNetAssignmentScope.Job; + + // Act + var result = Utils.Utils.toMgmtDynamicVNetAssignmentScope(psDynamicVNetAssignmentScope); + + // Assert + Assert.NotNull(result); + Assert.Equal(DynamicVNetAssignmentScope.Job, result.Value); + } + + [Theory] + [InlineData(Microsoft.Azure.Batch.Common.DynamicVNetAssignmentScope.None, DynamicVNetAssignmentScope.None)] + [InlineData(Microsoft.Azure.Batch.Common.DynamicVNetAssignmentScope.Job, DynamicVNetAssignmentScope.Job)] + public void ToMgmtDynamicVNetAssignmentScope_AllValidValues_ReturnsCorrectMapping( + Microsoft.Azure.Batch.Common.DynamicVNetAssignmentScope input, + DynamicVNetAssignmentScope expected) + { + // Act + var result = Utils.Utils.toMgmtDynamicVNetAssignmentScope(input); + + // Assert + Assert.NotNull(result); + Assert.Equal(expected, result.Value); + } + + [Fact] + public void ToMgmtDynamicVNetAssignmentScope_NullValue_ReturnsNull() + { + // Arrange + Microsoft.Azure.Batch.Common.DynamicVNetAssignmentScope? nullDynamicVNetAssignmentScope = null; + + // Act + var result = Utils.Utils.toMgmtDynamicVNetAssignmentScope(nullDynamicVNetAssignmentScope); + + // Assert + Assert.Null(result); + } + + [Fact] + public void ToMgmtDynamicVNetAssignmentScope_DefaultValue_HandlesCorrectly() + { + // Arrange + var defaultValue = default(Microsoft.Azure.Batch.Common.DynamicVNetAssignmentScope); + + // Act + var result = Utils.Utils.toMgmtDynamicVNetAssignmentScope(defaultValue); + + // Assert + Assert.NotNull(result); + // Default DynamicVNetAssignmentScope is typically None (0) + Assert.Equal(DynamicVNetAssignmentScope.None, result.Value); + } + + [Fact] + public void ToMgmtDynamicVNetAssignmentScope_EnumValueConsistency_EnsuresCorrectEnumMapping() + { + // This test ensures that the mapping logic correctly handles all defined enum values + // and verifies that the conversion maintains the semantic meaning of each dynamic VNet assignment scope + + // Arrange & Act & Assert + // None: No dynamic VNet assignment is enabled + var noneResult = Utils.Utils.toMgmtDynamicVNetAssignmentScope(Microsoft.Azure.Batch.Common.DynamicVNetAssignmentScope.None); + Assert.NotNull(noneResult); + Assert.Equal(DynamicVNetAssignmentScope.None, noneResult.Value); + + // Job: Dynamic VNet assignment is done per-job + var jobResult = Utils.Utils.toMgmtDynamicVNetAssignmentScope(Microsoft.Azure.Batch.Common.DynamicVNetAssignmentScope.Job); + Assert.NotNull(jobResult); + Assert.Equal(DynamicVNetAssignmentScope.Job, jobResult.Value); + } + + [Fact] + public void ToMgmtDynamicVNetAssignmentScope_StaticMethod_DoesNotRequireInstance() + { + // This test verifies that the method is properly static and can be called without instantiation + + // Arrange + var psDynamicVNetAssignmentScope = Microsoft.Azure.Batch.Common.DynamicVNetAssignmentScope.Job; + + // Act - Call static method directly on class + var result = Utils.Utils.toMgmtDynamicVNetAssignmentScope(psDynamicVNetAssignmentScope); + + // Assert + Assert.NotNull(result); + Assert.Equal(DynamicVNetAssignmentScope.Job, result.Value); + } + + [Fact] + public void ToMgmtDynamicVNetAssignmentScope_PerformanceTest_ExecutesQuickly() + { + // This test ensures the enum conversion is efficient for all values + + // Arrange + var enumValues = new[] + { + Microsoft.Azure.Batch.Common.DynamicVNetAssignmentScope.None, + Microsoft.Azure.Batch.Common.DynamicVNetAssignmentScope.Job + }; + + // Act & Assert - Each conversion should complete without delay + foreach (var value in enumValues) + { + var result = Utils.Utils.toMgmtDynamicVNetAssignmentScope(value); + Assert.NotNull(result); + Assert.True(Enum.IsDefined(typeof(DynamicVNetAssignmentScope), result.Value)); + } + } + + [Fact] + public void ToMgmtDynamicVNetAssignmentScope_CastingBehavior_VerifyDirectCast() + { + // This test verifies that the conversion uses direct casting as implemented + + // Arrange + var psNone = Microsoft.Azure.Batch.Common.DynamicVNetAssignmentScope.None; + var psJob = Microsoft.Azure.Batch.Common.DynamicVNetAssignmentScope.Job; + + // Act + var mgmtNone = Utils.Utils.toMgmtDynamicVNetAssignmentScope(psNone); + var mgmtJob = Utils.Utils.toMgmtDynamicVNetAssignmentScope(psJob); + + // Assert + Assert.NotNull(mgmtNone); + Assert.NotNull(mgmtJob); + + // Verify that the underlying values match (direct cast behavior) + Assert.Equal((int)psNone, (int)mgmtNone.Value); + Assert.Equal((int)psJob, (int)mgmtJob.Value); + } + + #endregion + + #region fromMgmtDynamicVNetAssignmentScope Tests + + [Fact] + public void FromMgmtDynamicVNetAssignmentScope_None_ReturnsNone() + { + // Arrange + var mgmtDynamicVNetAssignmentScope = DynamicVNetAssignmentScope.None; + + // Act + var result = Utils.Utils.fromMgmtDynamicVNetAssignmentScope(mgmtDynamicVNetAssignmentScope); + + // Assert + Assert.NotNull(result); + Assert.Equal(Microsoft.Azure.Batch.Common.DynamicVNetAssignmentScope.None, result.Value); + } + + [Fact] + public void FromMgmtDynamicVNetAssignmentScope_Job_ReturnsJob() + { + // Arrange + var mgmtDynamicVNetAssignmentScope = DynamicVNetAssignmentScope.Job; + + // Act + var result = Utils.Utils.fromMgmtDynamicVNetAssignmentScope(mgmtDynamicVNetAssignmentScope); + + // Assert + Assert.NotNull(result); + Assert.Equal(Microsoft.Azure.Batch.Common.DynamicVNetAssignmentScope.Job, result.Value); + } + + [Theory] + [InlineData(DynamicVNetAssignmentScope.None, Microsoft.Azure.Batch.Common.DynamicVNetAssignmentScope.None)] + [InlineData(DynamicVNetAssignmentScope.Job, Microsoft.Azure.Batch.Common.DynamicVNetAssignmentScope.Job)] + public void FromMgmtDynamicVNetAssignmentScope_AllValidValues_ReturnsCorrectMapping( + DynamicVNetAssignmentScope input, + Microsoft.Azure.Batch.Common.DynamicVNetAssignmentScope expected) + { + // Act + var result = Utils.Utils.fromMgmtDynamicVNetAssignmentScope(input); + + // Assert + Assert.NotNull(result); + Assert.Equal(expected, result.Value); + } + + [Fact] + public void FromMgmtDynamicVNetAssignmentScope_NullValue_ReturnsNull() + { + // Arrange + DynamicVNetAssignmentScope? nullDynamicVNetAssignmentScope = null; + + // Act + var result = Utils.Utils.fromMgmtDynamicVNetAssignmentScope(nullDynamicVNetAssignmentScope); + + // Assert + Assert.Null(result); + } + + [Fact] + public void FromMgmtDynamicVNetAssignmentScope_DefaultValue_HandlesCorrectly() + { + // Arrange + var defaultValue = default(DynamicVNetAssignmentScope); + + // Act + var result = Utils.Utils.fromMgmtDynamicVNetAssignmentScope(defaultValue); + + // Assert + Assert.NotNull(result); + // Default DynamicVNetAssignmentScope is typically None (0) + Assert.Equal(Microsoft.Azure.Batch.Common.DynamicVNetAssignmentScope.None, result.Value); + } + + [Fact] + public void FromMgmtDynamicVNetAssignmentScope_EnumValueConsistency_EnsuresCorrectEnumMapping() + { + // This test ensures that the mapping logic correctly handles all defined enum values + // and verifies that the conversion maintains the semantic meaning of each dynamic VNet assignment scope + + // Arrange & Act & Assert + // None: No dynamic VNet assignment is enabled + var noneResult = Utils.Utils.fromMgmtDynamicVNetAssignmentScope(DynamicVNetAssignmentScope.None); + Assert.NotNull(noneResult); + Assert.Equal(Microsoft.Azure.Batch.Common.DynamicVNetAssignmentScope.None, noneResult.Value); + + // Job: Dynamic VNet assignment is done per-job + var jobResult = Utils.Utils.fromMgmtDynamicVNetAssignmentScope(DynamicVNetAssignmentScope.Job); + Assert.NotNull(jobResult); + Assert.Equal(Microsoft.Azure.Batch.Common.DynamicVNetAssignmentScope.Job, jobResult.Value); + } + + [Fact] + public void FromMgmtDynamicVNetAssignmentScope_StaticMethod_DoesNotRequireInstance() + { + // This test verifies that the method is properly static and can be called without instantiation + + // Arrange + var mgmtDynamicVNetAssignmentScope = DynamicVNetAssignmentScope.None; + + // Act - Call static method directly on class + var result = Utils.Utils.fromMgmtDynamicVNetAssignmentScope(mgmtDynamicVNetAssignmentScope); + + // Assert + Assert.NotNull(result); + Assert.Equal(Microsoft.Azure.Batch.Common.DynamicVNetAssignmentScope.None, result.Value); + } + + [Fact] + public void FromMgmtDynamicVNetAssignmentScope_PerformanceTest_ExecutesQuickly() + { + // This test ensures the enum conversion is efficient for all values + + // Arrange + var enumValues = new[] + { + DynamicVNetAssignmentScope.None, + DynamicVNetAssignmentScope.Job + }; + + // Act & Assert - Each conversion should complete without delay + foreach (var value in enumValues) + { + var result = Utils.Utils.fromMgmtDynamicVNetAssignmentScope(value); + Assert.NotNull(result); + Assert.True(Enum.IsDefined(typeof(Microsoft.Azure.Batch.Common.DynamicVNetAssignmentScope), result.Value)); + } + } + + [Fact] + public void FromMgmtDynamicVNetAssignmentScope_AcceptsNullableType() + { + // This test verifies that the method accepts a nullable DynamicVNetAssignmentScope + + // Arrange + DynamicVNetAssignmentScope? nullableValue = DynamicVNetAssignmentScope.Job; + + // Act + var result = Utils.Utils.fromMgmtDynamicVNetAssignmentScope(nullableValue); + + // Assert + Assert.NotNull(result); + Assert.Equal(Microsoft.Azure.Batch.Common.DynamicVNetAssignmentScope.Job, result.Value); + } + + [Fact] + public void FromMgmtDynamicVNetAssignmentScope_CastingBehavior_VerifyDirectCast() + { + // This test verifies that the conversion uses direct casting as implemented + + // Arrange + var mgmtNone = DynamicVNetAssignmentScope.None; + var mgmtJob = DynamicVNetAssignmentScope.Job; + + // Act + var psNone = Utils.Utils.fromMgmtDynamicVNetAssignmentScope(mgmtNone); + var psJob = Utils.Utils.fromMgmtDynamicVNetAssignmentScope(mgmtJob); + + // Assert + Assert.NotNull(psNone); + Assert.NotNull(psJob); + + // Verify that the underlying values match (direct cast behavior) + Assert.Equal((int)mgmtNone, (int)psNone.Value); + Assert.Equal((int)mgmtJob, (int)psJob.Value); + } + + #endregion + + #region Round-trip Conversion Tests + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesNoneValue() + { + // Arrange + var originalPsDynamicVNetAssignmentScope = Microsoft.Azure.Batch.Common.DynamicVNetAssignmentScope.None; + + // Act + var mgmtDynamicVNetAssignmentScope = Utils.Utils.toMgmtDynamicVNetAssignmentScope(originalPsDynamicVNetAssignmentScope); + var roundTripPsDynamicVNetAssignmentScope = Utils.Utils.fromMgmtDynamicVNetAssignmentScope(mgmtDynamicVNetAssignmentScope); + + // Assert + Assert.NotNull(roundTripPsDynamicVNetAssignmentScope); + Assert.Equal(originalPsDynamicVNetAssignmentScope, roundTripPsDynamicVNetAssignmentScope.Value); + } + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesJobValue() + { + // Arrange + var originalPsDynamicVNetAssignmentScope = Microsoft.Azure.Batch.Common.DynamicVNetAssignmentScope.Job; + + // Act + var mgmtDynamicVNetAssignmentScope = Utils.Utils.toMgmtDynamicVNetAssignmentScope(originalPsDynamicVNetAssignmentScope); + var roundTripPsDynamicVNetAssignmentScope = Utils.Utils.fromMgmtDynamicVNetAssignmentScope(mgmtDynamicVNetAssignmentScope); + + // Assert + Assert.NotNull(roundTripPsDynamicVNetAssignmentScope); + Assert.Equal(originalPsDynamicVNetAssignmentScope, roundTripPsDynamicVNetAssignmentScope.Value); + } + + [Theory] + [InlineData(Microsoft.Azure.Batch.Common.DynamicVNetAssignmentScope.None)] + [InlineData(Microsoft.Azure.Batch.Common.DynamicVNetAssignmentScope.Job)] + public void RoundTripConversion_AllValidValues_PreservesOriginalValue( + Microsoft.Azure.Batch.Common.DynamicVNetAssignmentScope originalDynamicVNetAssignmentScope) + { + // Act + var mgmtDynamicVNetAssignmentScope = Utils.Utils.toMgmtDynamicVNetAssignmentScope(originalDynamicVNetAssignmentScope); + var roundTripDynamicVNetAssignmentScope = Utils.Utils.fromMgmtDynamicVNetAssignmentScope(mgmtDynamicVNetAssignmentScope); + + // Assert + Assert.NotNull(roundTripDynamicVNetAssignmentScope); + Assert.Equal(originalDynamicVNetAssignmentScope, roundTripDynamicVNetAssignmentScope.Value); + } + + [Fact] + public void RoundTripConversion_FromMgmtAndToMgmt_PreservesValues() + { + // Arrange + var originalMgmtValues = new[] + { + DynamicVNetAssignmentScope.None, + DynamicVNetAssignmentScope.Job + }; + + foreach (var originalValue in originalMgmtValues) + { + // Act + var psValue = Utils.Utils.fromMgmtDynamicVNetAssignmentScope(originalValue); + var roundTripValue = Utils.Utils.toMgmtDynamicVNetAssignmentScope(psValue); + + // Assert + Assert.NotNull(roundTripValue); + Assert.Equal(originalValue, roundTripValue.Value); + } + } + + [Fact] + public void RoundTripConversion_NullHandling_PreservesNull() + { + // Arrange + Microsoft.Azure.Batch.Common.DynamicVNetAssignmentScope? nullPs = null; + DynamicVNetAssignmentScope? nullMgmt = null; + + // Act + var mgmtFromNull = Utils.Utils.toMgmtDynamicVNetAssignmentScope(nullPs); + var psFromNull = Utils.Utils.fromMgmtDynamicVNetAssignmentScope(nullMgmt); + + // Assert + Assert.Null(mgmtFromNull); + Assert.Null(psFromNull); + } + + #endregion + + #region Enum Value Verification Tests + + [Fact] + public void DynamicVNetAssignmentScope_VerifyEnumMemberCount_EnsuresAllValuesHandled() + { + // This test helps ensure that if new enum values are added, the conversion methods are updated + + // Arrange + var psDynamicVNetAssignmentScopeValues = Enum.GetValues(typeof(Microsoft.Azure.Batch.Common.DynamicVNetAssignmentScope)); + var mgmtDynamicVNetAssignmentScopeValues = Enum.GetValues(typeof(DynamicVNetAssignmentScope)); + + // Act & Assert + // Verify that both enums have the same number of values (assuming 1:1 mapping) + Assert.Equal(psDynamicVNetAssignmentScopeValues.Length, mgmtDynamicVNetAssignmentScopeValues.Length); + + // Verify that each PS enum value can be converted successfully + foreach (Microsoft.Azure.Batch.Common.DynamicVNetAssignmentScope psValue in psDynamicVNetAssignmentScopeValues) + { + var result = Utils.Utils.toMgmtDynamicVNetAssignmentScope(psValue); + Assert.NotNull(result); + Assert.True(Enum.IsDefined(typeof(DynamicVNetAssignmentScope), result.Value)); + } + + // Verify that each management enum value can be converted successfully + foreach (DynamicVNetAssignmentScope mgmtValue in mgmtDynamicVNetAssignmentScopeValues) + { + var result = Utils.Utils.fromMgmtDynamicVNetAssignmentScope(mgmtValue); + Assert.NotNull(result); + Assert.True(Enum.IsDefined(typeof(Microsoft.Azure.Batch.Common.DynamicVNetAssignmentScope), result.Value)); + } + } + + [Fact] + public void DynamicVNetAssignmentScope_BijectiveMapping_EnsuresUniqueConversion() + { + // This test verifies that the mapping is bijective (one-to-one) + + // Arrange + var psValues = new[] + { + Microsoft.Azure.Batch.Common.DynamicVNetAssignmentScope.None, + Microsoft.Azure.Batch.Common.DynamicVNetAssignmentScope.Job + }; + + var mgmtValues = new[] + { + DynamicVNetAssignmentScope.None, + DynamicVNetAssignmentScope.Job + }; + + // Act - Convert PS to Management + var convertedMgmtValues = new DynamicVNetAssignmentScope?[psValues.Length]; + for (int i = 0; i < psValues.Length; i++) + { + convertedMgmtValues[i] = Utils.Utils.toMgmtDynamicVNetAssignmentScope(psValues[i]); + } + + // Act - Convert Management to PS + var convertedPsValues = new Microsoft.Azure.Batch.Common.DynamicVNetAssignmentScope?[mgmtValues.Length]; + for (int i = 0; i < mgmtValues.Length; i++) + { + convertedPsValues[i] = Utils.Utils.fromMgmtDynamicVNetAssignmentScope(mgmtValues[i]); + } + + // Assert - Each management enum value should be unique (no duplicates) + var distinctMgmtValues = convertedMgmtValues.Where(v => v.HasValue).Select(v => v.Value).Distinct().ToArray(); + Assert.Equal(convertedMgmtValues.Count(v => v.HasValue), distinctMgmtValues.Length); + + // Assert - Each PS enum value should be unique (no duplicates) + var distinctPsValues = convertedPsValues.Where(v => v.HasValue).Select(v => v.Value).Distinct().ToArray(); + Assert.Equal(convertedPsValues.Count(v => v.HasValue), distinctPsValues.Length); + } + + #endregion + + #region Integration Tests + + [Fact] + public void DynamicVNetAssignmentScopeConversions_BothDirections_MaintainSemanticEquivalence() + { + // This test ensures that the semantic meaning is preserved across conversions + + // Test None semantics - No dynamic VNet assignment is enabled + var psNone = Microsoft.Azure.Batch.Common.DynamicVNetAssignmentScope.None; + var mgmtNone = Utils.Utils.toMgmtDynamicVNetAssignmentScope(psNone); + var backToPs = Utils.Utils.fromMgmtDynamicVNetAssignmentScope(mgmtNone); + + Assert.NotNull(mgmtNone); + Assert.Equal(DynamicVNetAssignmentScope.None, mgmtNone.Value); + Assert.NotNull(backToPs); + Assert.Equal(psNone, backToPs.Value); + + // Test Job semantics - Dynamic VNet assignment is done per-job + var psJob = Microsoft.Azure.Batch.Common.DynamicVNetAssignmentScope.Job; + var mgmtJob = Utils.Utils.toMgmtDynamicVNetAssignmentScope(psJob); + var backToPsJob = Utils.Utils.fromMgmtDynamicVNetAssignmentScope(mgmtJob); + + Assert.NotNull(mgmtJob); + Assert.Equal(DynamicVNetAssignmentScope.Job, mgmtJob.Value); + Assert.NotNull(backToPsJob); + Assert.Equal(psJob, backToPsJob.Value); + } + + [Fact] + public void DynamicVNetAssignmentScopeConversions_NetworkConfigurationContext_VerifyCorrectUsage() + { + // This test validates the conversions work correctly in the context of network configuration + // DynamicVNetAssignmentScope is used to specify the scope of dynamic VNet assignment in Azure Batch + + // Arrange - Test with realistic Batch network configuration scenarios + var networkScenarios = new[] + { + // None - No dynamic VNet assignment enabled for static networking + new { + DynamicVNetAssignmentScope = Microsoft.Azure.Batch.Common.DynamicVNetAssignmentScope.None, + Description = "Static network configuration with no dynamic VNet assignment" + }, + // Job - Dynamic VNet assignment per-job for enhanced networking isolation + new { + DynamicVNetAssignmentScope = Microsoft.Azure.Batch.Common.DynamicVNetAssignmentScope.Job, + Description = "Dynamic VNet assignment per-job for networking isolation and security" + } + }; + + foreach (var scenario in networkScenarios) + { + // Act + var mgmtDynamicVNetAssignmentScope = Utils.Utils.toMgmtDynamicVNetAssignmentScope(scenario.DynamicVNetAssignmentScope); + + // Assert - Should convert correctly for Batch network configuration + Assert.NotNull(mgmtDynamicVNetAssignmentScope); + + var expectedMgmtScope = scenario.DynamicVNetAssignmentScope == Microsoft.Azure.Batch.Common.DynamicVNetAssignmentScope.None + ? DynamicVNetAssignmentScope.None + : DynamicVNetAssignmentScope.Job; + Assert.Equal(expectedMgmtScope, mgmtDynamicVNetAssignmentScope.Value); + + // Verify round-trip conversion maintains network configuration semantics + var backToPs = Utils.Utils.fromMgmtDynamicVNetAssignmentScope(mgmtDynamicVNetAssignmentScope); + Assert.NotNull(backToPs); + Assert.Equal(scenario.DynamicVNetAssignmentScope, backToPs.Value); + } + } + + [Fact] + public void DynamicVNetAssignmentScopeConversions_DirectCastingBehavior_VerifyImplementation() + { + // This test verifies that the methods use direct casting as implemented + // This is important because it ensures the enum values have the same underlying representation + + // Test that conversion preserves underlying integer values + foreach (Microsoft.Azure.Batch.Common.DynamicVNetAssignmentScope psValue in Enum.GetValues(typeof(Microsoft.Azure.Batch.Common.DynamicVNetAssignmentScope))) + { + var mgmtResult = Utils.Utils.toMgmtDynamicVNetAssignmentScope(psValue); + Assert.NotNull(mgmtResult); + Assert.Equal((int)psValue, (int)mgmtResult.Value); + } + + foreach (DynamicVNetAssignmentScope mgmtValue in Enum.GetValues(typeof(DynamicVNetAssignmentScope))) + { + var psResult = Utils.Utils.fromMgmtDynamicVNetAssignmentScope(mgmtValue); + Assert.NotNull(psResult); + Assert.Equal((int)mgmtValue, (int)psResult.Value); + } + } + + [Fact] + public void DynamicVNetAssignmentScopeConversions_BatchJobNetworkingContext_VerifySemantics() + { + // This test validates the semantic usage in the context of Batch job networking configuration + // DynamicVNetAssignmentScope determines how VNet assignment is managed for jobs + + // None scope semantics - Static VNet configuration with no dynamic assignment + var noneScope = Microsoft.Azure.Batch.Common.DynamicVNetAssignmentScope.None; + var mgmtNoneScope = Utils.Utils.toMgmtDynamicVNetAssignmentScope(noneScope); + + Assert.NotNull(mgmtNoneScope); + Assert.Equal(DynamicVNetAssignmentScope.None, mgmtNoneScope.Value); + + // This scope means no dynamic VNet assignment is enabled + // Network configuration is static and shared across all jobs + + // Job scope semantics - Dynamic VNet assignment per-job for network isolation + var jobScope = Microsoft.Azure.Batch.Common.DynamicVNetAssignmentScope.Job; + var mgmtJobScope = Utils.Utils.toMgmtDynamicVNetAssignmentScope(jobScope); + + Assert.NotNull(mgmtJobScope); + Assert.Equal(DynamicVNetAssignmentScope.Job, mgmtJobScope.Value); + + // This scope enables dynamic VNet assignment per-job + // Each job can get its own VNet configuration for enhanced isolation + // Requires approval before use and subnet ID must also be set + + // Verify semantic preservation through round-trip + var noneRoundTrip = Utils.Utils.fromMgmtDynamicVNetAssignmentScope(mgmtNoneScope); + var jobRoundTrip = Utils.Utils.fromMgmtDynamicVNetAssignmentScope(mgmtJobScope); + + Assert.NotNull(noneRoundTrip); + Assert.NotNull(jobRoundTrip); + Assert.Equal(noneScope, noneRoundTrip.Value); + Assert.Equal(jobScope, jobRoundTrip.Value); + } + + #endregion + + #region Edge Case Tests + + [Fact] + public void DynamicVNetAssignmentScopeConversions_TypeSafety_VerifyCorrectTypes() + { + // Test that conversions return the correct types and handle casting properly + + // Arrange + var psScope = Microsoft.Azure.Batch.Common.DynamicVNetAssignmentScope.Job; + var mgmtScope = DynamicVNetAssignmentScope.Job; + + // Act + var mgmtResult = Utils.Utils.toMgmtDynamicVNetAssignmentScope(psScope); + var psResult = Utils.Utils.fromMgmtDynamicVNetAssignmentScope(mgmtScope); + + // Assert - Verify correct types are returned + Assert.IsType(mgmtResult.Value); + Assert.IsType(psResult.Value); + Assert.Equal(DynamicVNetAssignmentScope.Job, mgmtResult.Value); + Assert.Equal(Microsoft.Azure.Batch.Common.DynamicVNetAssignmentScope.Job, psResult.Value); + } + + [Fact] + public void DynamicVNetAssignmentScopeConversions_EnumValueEquivalence_VerifyDirectCasting() + { + // Test that the enum values are equivalent and casting works as expected + + // Arrange & Act - Test direct casting behavior + var psJob = Microsoft.Azure.Batch.Common.DynamicVNetAssignmentScope.Job; + + var mgmtJobDirect = (DynamicVNetAssignmentScope)psJob; + var mgmtJobUtils = Utils.Utils.toMgmtDynamicVNetAssignmentScope(psJob); + + // Assert - Utils methods should behave the same as direct casting + Assert.Equal(mgmtJobDirect, mgmtJobUtils.Value); + Assert.Equal(DynamicVNetAssignmentScope.Job, mgmtJobUtils.Value); + } + + [Fact] + public void DynamicVNetAssignmentScopeConversions_NullableCasting_WorksCorrectly() + { + // Test that nullable casting works as expected + + // Arrange + Microsoft.Azure.Batch.Common.DynamicVNetAssignmentScope? nullablePsJob = Microsoft.Azure.Batch.Common.DynamicVNetAssignmentScope.Job; + Microsoft.Azure.Batch.Common.DynamicVNetAssignmentScope? nullPs = null; + + DynamicVNetAssignmentScope? nullableMgmtJob = DynamicVNetAssignmentScope.Job; + DynamicVNetAssignmentScope? nullMgmt = null; + + // Act + var mgmtFromNullableJob = Utils.Utils.toMgmtDynamicVNetAssignmentScope(nullablePsJob); + var mgmtFromNull = Utils.Utils.toMgmtDynamicVNetAssignmentScope(nullPs); + + var psFromNullableJob = Utils.Utils.fromMgmtDynamicVNetAssignmentScope(nullableMgmtJob); + var psFromNull = Utils.Utils.fromMgmtDynamicVNetAssignmentScope(nullMgmt); + + // Assert + Assert.Equal(DynamicVNetAssignmentScope.Job, mgmtFromNullableJob.Value); + Assert.Null(mgmtFromNull); + + Assert.Equal(Microsoft.Azure.Batch.Common.DynamicVNetAssignmentScope.Job, psFromNullableJob.Value); + Assert.Null(psFromNull); + } + + #endregion + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Test/Utils/UtilsIPAddressProvisioningTypeTests.cs b/src/Batch/Batch.Test/Utils/UtilsIPAddressProvisioningTypeTests.cs new file mode 100644 index 000000000000..219d767e161c --- /dev/null +++ b/src/Batch/Batch.Test/Utils/UtilsIPAddressProvisioningTypeTests.cs @@ -0,0 +1,700 @@ +// ----------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ----------------------------------------------------------------------------- + +using Microsoft.Azure.Management.Batch.Models; +using System; +using Xunit; + +namespace Microsoft.Azure.Commands.Batch.Test.ModelsConversions +{ + public class UtilsIPAddressProvisioningTypeTests + { + #region toIPAddressProvisioningType Tests + + [Fact] + public void ToIPAddressProvisioningType_WithBatchManaged_ReturnsCorrectMapping() + { + // Arrange + var mgmtProvisioningType = IPAddressProvisioningType.BatchManaged; + + // Act + var result = Utils.Utils.toIPAddressProvisioningType(mgmtProvisioningType); + + // Assert + Assert.Equal(Azure.Batch.Common.IPAddressProvisioningType.BatchManaged, result); + } + + [Fact] + public void ToIPAddressProvisioningType_WithUserManaged_ReturnsCorrectMapping() + { + // Arrange + var mgmtProvisioningType = IPAddressProvisioningType.UserManaged; + + // Act + var result = Utils.Utils.toIPAddressProvisioningType(mgmtProvisioningType); + + // Assert + Assert.Equal(Azure.Batch.Common.IPAddressProvisioningType.UserManaged, result); + } + + [Fact] + public void ToIPAddressProvisioningType_WithNoPublicIPAddresses_ReturnsCorrectMapping() + { + // Arrange + var mgmtProvisioningType = IPAddressProvisioningType.NoPublicIPAddresses; + + // Act + var result = Utils.Utils.toIPAddressProvisioningType(mgmtProvisioningType); + + // Assert + Assert.Equal(Azure.Batch.Common.IPAddressProvisioningType.NoPublicIPAddresses, result); + } + + [Theory] + [InlineData(IPAddressProvisioningType.BatchManaged, Azure.Batch.Common.IPAddressProvisioningType.BatchManaged)] + [InlineData(IPAddressProvisioningType.UserManaged, Azure.Batch.Common.IPAddressProvisioningType.UserManaged)] + [InlineData(IPAddressProvisioningType.NoPublicIPAddresses, Azure.Batch.Common.IPAddressProvisioningType.NoPublicIPAddresses)] + public void ToIPAddressProvisioningType_AllValidProvisioningTypes_ReturnsCorrectMapping( + IPAddressProvisioningType mgmtProvisioningType, + Azure.Batch.Common.IPAddressProvisioningType expectedPsProvisioningType) + { + // Act + var result = Utils.Utils.toIPAddressProvisioningType(mgmtProvisioningType); + + // Assert + Assert.Equal(expectedPsProvisioningType, result); + } + + [Fact] + public void ToIPAddressProvisioningType_WithNullableBatchManaged_ReturnsCorrectMapping() + { + // Arrange + IPAddressProvisioningType? mgmtProvisioningType = IPAddressProvisioningType.BatchManaged; + + // Act + var result = Utils.Utils.toIPAddressProvisioningType(mgmtProvisioningType); + + // Assert + Assert.Equal(Azure.Batch.Common.IPAddressProvisioningType.BatchManaged, result); + } + + + [Fact] + public void ToIPAddressProvisioningType_BatchManagedSemantics_PreservesNetworkingStrategy() + { + // Arrange - BatchManaged strategy for automatic IP management + var mgmtProvisioningType = IPAddressProvisioningType.BatchManaged; + + // Act + var result = Utils.Utils.toIPAddressProvisioningType(mgmtProvisioningType); + + // Assert + Assert.Equal(Azure.Batch.Common.IPAddressProvisioningType.BatchManaged, result); + // BatchManaged semantics: Azure Batch automatically creates and manages public IPs + } + + [Fact] + public void ToIPAddressProvisioningType_UserManagedSemantics_PreservesCustomNetworkingStrategy() + { + // Arrange - UserManaged strategy for custom IP management + var mgmtProvisioningType = IPAddressProvisioningType.UserManaged; + + // Act + var result = Utils.Utils.toIPAddressProvisioningType(mgmtProvisioningType); + + // Assert + Assert.Equal(Azure.Batch.Common.IPAddressProvisioningType.UserManaged, result); + // UserManaged semantics: User provides and manages public IPs for compute nodes + } + + [Fact] + public void ToIPAddressProvisioningType_NoPublicIPSemantics_PreservesPrivateNetworkingStrategy() + { + // Arrange - NoPublicIPAddresses strategy for private networking + var mgmtProvisioningType = IPAddressProvisioningType.NoPublicIPAddresses; + + // Act + var result = Utils.Utils.toIPAddressProvisioningType(mgmtProvisioningType); + + // Assert + Assert.Equal(Azure.Batch.Common.IPAddressProvisioningType.NoPublicIPAddresses, result); + // NoPublicIPAddresses semantics: Compute nodes have no public IP addresses + } + + #endregion + + #region toMgmtIPAddressProvisioningType Tests + + [Fact] + public void ToMgmtIPAddressProvisioningType_WithBatchManaged_ReturnsCorrectMapping() + { + // Arrange + var psProvisioningType = Azure.Batch.Common.IPAddressProvisioningType.BatchManaged; + + // Act + var result = Utils.Utils.toMgmtIPAddressProvisioningType(psProvisioningType); + + // Assert + Assert.Equal(IPAddressProvisioningType.BatchManaged, result); + } + + [Fact] + public void ToMgmtIPAddressProvisioningType_WithUserManaged_ReturnsCorrectMapping() + { + // Arrange + var psProvisioningType = Azure.Batch.Common.IPAddressProvisioningType.UserManaged; + + // Act + var result = Utils.Utils.toMgmtIPAddressProvisioningType(psProvisioningType); + + // Assert + Assert.Equal(IPAddressProvisioningType.UserManaged, result); + } + + [Fact] + public void ToMgmtIPAddressProvisioningType_WithNoPublicIPAddresses_ReturnsCorrectMapping() + { + // Arrange + var psProvisioningType = Azure.Batch.Common.IPAddressProvisioningType.NoPublicIPAddresses; + + // Act + var result = Utils.Utils.toMgmtIPAddressProvisioningType(psProvisioningType); + + // Assert + Assert.Equal(IPAddressProvisioningType.NoPublicIPAddresses, result); + } + + [Theory] + [InlineData(Azure.Batch.Common.IPAddressProvisioningType.BatchManaged, IPAddressProvisioningType.BatchManaged)] + [InlineData(Azure.Batch.Common.IPAddressProvisioningType.UserManaged, IPAddressProvisioningType.UserManaged)] + [InlineData(Azure.Batch.Common.IPAddressProvisioningType.NoPublicIPAddresses, IPAddressProvisioningType.NoPublicIPAddresses)] + public void ToMgmtIPAddressProvisioningType_AllValidProvisioningTypes_ReturnsCorrectMapping( + Azure.Batch.Common.IPAddressProvisioningType psProvisioningType, + IPAddressProvisioningType expectedMgmtProvisioningType) + { + // Act + var result = Utils.Utils.toMgmtIPAddressProvisioningType(psProvisioningType); + + // Assert + Assert.Equal(expectedMgmtProvisioningType, result); + } + + [Fact] + public void ToMgmtIPAddressProvisioningType_WithNullableBatchManaged_ReturnsCorrectMapping() + { + // Arrange + Azure.Batch.Common.IPAddressProvisioningType? psProvisioningType = Azure.Batch.Common.IPAddressProvisioningType.BatchManaged; + + // Act + var result = Utils.Utils.toMgmtIPAddressProvisioningType(psProvisioningType); + + // Assert + Assert.Equal(IPAddressProvisioningType.BatchManaged, result); + } + + [Fact] + public void ToMgmtIPAddressProvisioningType_WithNull_ReturnsNull() + { + // Arrange + Azure.Batch.Common.IPAddressProvisioningType? psProvisioningType = null; + + // Act + var result = Utils.Utils.toMgmtIPAddressProvisioningType(psProvisioningType); + + // Assert + Assert.Null(result); + } + + [Fact] + public void ToMgmtIPAddressProvisioningType_BatchManagedSemantics_PreservesNetworkingStrategy() + { + // Arrange - BatchManaged strategy for automatic IP management + var psProvisioningType = Azure.Batch.Common.IPAddressProvisioningType.BatchManaged; + + // Act + var result = Utils.Utils.toMgmtIPAddressProvisioningType(psProvisioningType); + + // Assert + Assert.Equal(IPAddressProvisioningType.BatchManaged, result); + // BatchManaged semantics: Azure Batch automatically creates and manages public IPs + } + + [Fact] + public void ToMgmtIPAddressProvisioningType_UserManagedSemantics_PreservesCustomNetworkingStrategy() + { + // Arrange - UserManaged strategy for custom IP management + var psProvisioningType = Azure.Batch.Common.IPAddressProvisioningType.UserManaged; + + // Act + var result = Utils.Utils.toMgmtIPAddressProvisioningType(psProvisioningType); + + // Assert + Assert.Equal(IPAddressProvisioningType.UserManaged, result); + // UserManaged semantics: User provides and manages public IPs for compute nodes + } + + [Fact] + public void ToMgmtIPAddressProvisioningType_NoPublicIPSemantics_PreservesPrivateNetworkingStrategy() + { + // Arrange - NoPublicIPAddresses strategy for private networking + var psProvisioningType = Azure.Batch.Common.IPAddressProvisioningType.NoPublicIPAddresses; + + // Act + var result = Utils.Utils.toMgmtIPAddressProvisioningType(psProvisioningType); + + // Assert + Assert.Equal(IPAddressProvisioningType.NoPublicIPAddresses, result); + // NoPublicIPAddresses semantics: Compute nodes have no public IP addresses + } + + #endregion + + #region Round-trip Conversion Tests + + [Fact] + public void RoundTripConversion_ToMgmtAndToPS_PreservesBatchManagedValue() + { + // Arrange + var originalPsProvisioningType = Azure.Batch.Common.IPAddressProvisioningType.BatchManaged; + + // Act - Convert PS -> Management -> PS + var mgmtProvisioningType = Utils.Utils.toMgmtIPAddressProvisioningType(originalPsProvisioningType); + var roundTripPsProvisioningType = Utils.Utils.toIPAddressProvisioningType(mgmtProvisioningType); + + // Assert - Should get back the original value + Assert.Equal(originalPsProvisioningType, roundTripPsProvisioningType); + Assert.Equal(Azure.Batch.Common.IPAddressProvisioningType.BatchManaged, roundTripPsProvisioningType); + } + + [Fact] + public void RoundTripConversion_ToMgmtAndToPS_PreservesUserManagedValue() + { + // Arrange + var originalPsProvisioningType = Azure.Batch.Common.IPAddressProvisioningType.UserManaged; + + // Act - Convert PS -> Management -> PS + var mgmtProvisioningType = Utils.Utils.toMgmtIPAddressProvisioningType(originalPsProvisioningType); + var roundTripPsProvisioningType = Utils.Utils.toIPAddressProvisioningType(mgmtProvisioningType); + + // Assert - Should get back the original value + Assert.Equal(originalPsProvisioningType, roundTripPsProvisioningType); + Assert.Equal(Azure.Batch.Common.IPAddressProvisioningType.UserManaged, roundTripPsProvisioningType); + } + + [Fact] + public void RoundTripConversion_ToMgmtAndToPS_PreservesNoPublicIPValue() + { + // Arrange + var originalPsProvisioningType = Azure.Batch.Common.IPAddressProvisioningType.NoPublicIPAddresses; + + // Act - Convert PS -> Management -> PS + var mgmtProvisioningType = Utils.Utils.toMgmtIPAddressProvisioningType(originalPsProvisioningType); + var roundTripPsProvisioningType = Utils.Utils.toIPAddressProvisioningType(mgmtProvisioningType); + + // Assert - Should get back the original value + Assert.Equal(originalPsProvisioningType, roundTripPsProvisioningType); + Assert.Equal(Azure.Batch.Common.IPAddressProvisioningType.NoPublicIPAddresses, roundTripPsProvisioningType); + } + + [Theory] + [InlineData(Azure.Batch.Common.IPAddressProvisioningType.BatchManaged)] + [InlineData(Azure.Batch.Common.IPAddressProvisioningType.UserManaged)] + [InlineData(Azure.Batch.Common.IPAddressProvisioningType.NoPublicIPAddresses)] + public void RoundTripConversion_ToMgmtAndToPS_PreservesAllValidValues( + Azure.Batch.Common.IPAddressProvisioningType originalValue) + { + // Act - Convert PS -> Management -> PS + var mgmtValue = Utils.Utils.toMgmtIPAddressProvisioningType(originalValue); + var roundTripValue = Utils.Utils.toIPAddressProvisioningType(mgmtValue); + + // Assert - Should get back the original value + Assert.Equal(originalValue, roundTripValue); + } + + [Fact] + public void RoundTripConversion_FromMgmtAndToMgmt_PreservesValues() + { + // This test verifies that converting Management -> PS -> Management preserves the original value + + // Arrange + var originalMgmtValues = new[] + { + IPAddressProvisioningType.BatchManaged, + IPAddressProvisioningType.UserManaged, + IPAddressProvisioningType.NoPublicIPAddresses + }; + + foreach (var originalValue in originalMgmtValues) + { + // Act - Convert Management -> PS -> Management + var psValue = Utils.Utils.toIPAddressProvisioningType(originalValue); + var roundTripValue = Utils.Utils.toMgmtIPAddressProvisioningType(psValue); + + // Assert - Should get back the original value + Assert.Equal(originalValue, roundTripValue); + } + } + + [Fact] + public void RoundTripConversion_WithNullableValues_HandlesNullCorrectly() + { + // Arrange + Azure.Batch.Common.IPAddressProvisioningType? nullPsProvisioningType = null; + + // Act + var mgmtFromNullPs = Utils.Utils.toMgmtIPAddressProvisioningType(nullPsProvisioningType); + + // Assert + Assert.Null(mgmtFromNullPs); + } + + #endregion + + #region Integration Tests + + [Fact] + public void IPAddressProvisioningTypeConversions_BothDirections_MaintainSemanticEquivalence() + { + // This test ensures that the semantic meaning is preserved across conversions + + // Test BatchManaged semantics - Batch service manages public IPs + var psBatchManaged = Azure.Batch.Common.IPAddressProvisioningType.BatchManaged; + var mgmtBatchManaged = Utils.Utils.toMgmtIPAddressProvisioningType(psBatchManaged); + var backToPs = Utils.Utils.toIPAddressProvisioningType(mgmtBatchManaged); + + Assert.Equal(IPAddressProvisioningType.BatchManaged, mgmtBatchManaged); + Assert.Equal(psBatchManaged, backToPs); + + // Test UserManaged semantics - User provides public IPs + var psUserManaged = Azure.Batch.Common.IPAddressProvisioningType.UserManaged; + var mgmtUserManaged = Utils.Utils.toMgmtIPAddressProvisioningType(psUserManaged); + var backToPsUserManaged = Utils.Utils.toIPAddressProvisioningType(mgmtUserManaged); + + Assert.Equal(IPAddressProvisioningType.UserManaged, mgmtUserManaged); + Assert.Equal(psUserManaged, backToPsUserManaged); + + // Test NoPublicIPAddresses semantics - No public IPs created + var psNoPublicIP = Azure.Batch.Common.IPAddressProvisioningType.NoPublicIPAddresses; + var mgmtNoPublicIP = Utils.Utils.toMgmtIPAddressProvisioningType(psNoPublicIP); + var backToPsNoPublicIP = Utils.Utils.toIPAddressProvisioningType(mgmtNoPublicIP); + + Assert.Equal(IPAddressProvisioningType.NoPublicIPAddresses, mgmtNoPublicIP); + Assert.Equal(psNoPublicIP, backToPsNoPublicIP); + } + + [Fact] + public void IPAddressProvisioningTypeConversions_NullHandling_WorksCorrectly() + { + // Test null handling in conversions + + // Act + var resultFromNullPs = Utils.Utils.toMgmtIPAddressProvisioningType(null); + + // Assert + Assert.Null(resultFromNullPs); + + // Note: toIPAddressProvisioningType(null) throws InvalidCastException as expected + } + + [Fact] + public void IPAddressProvisioningTypeConversions_BatchPoolContext_VerifyCorrectUsage() + { + // This test validates the conversions work correctly in the context of Azure Batch pool networking + // IPAddressProvisioningType is used to determine how public IPs are managed for Batch pool compute nodes + + // Arrange - Test BatchManaged strategy for managed public IP addresses + var psBatchManaged = Azure.Batch.Common.IPAddressProvisioningType.BatchManaged; + var mgmtBatchManaged = Utils.Utils.toMgmtIPAddressProvisioningType(psBatchManaged); + + // Act & Assert - BatchManaged should convert correctly for automatic IP management + Assert.Equal(IPAddressProvisioningType.BatchManaged, mgmtBatchManaged); + + // Arrange - Test UserManaged strategy for custom public IP addresses + var psUserManaged = Azure.Batch.Common.IPAddressProvisioningType.UserManaged; + var mgmtUserManaged = Utils.Utils.toMgmtIPAddressProvisioningType(psUserManaged); + + // Act & Assert - UserManaged should convert correctly for custom IP management + Assert.Equal(IPAddressProvisioningType.UserManaged, mgmtUserManaged); + + // Arrange - Test NoPublicIPAddresses strategy for private networking + var psNoPublicIP = Azure.Batch.Common.IPAddressProvisioningType.NoPublicIPAddresses; + var mgmtNoPublicIP = Utils.Utils.toMgmtIPAddressProvisioningType(psNoPublicIP); + + // Act & Assert - NoPublicIPAddresses should convert correctly for private networking + Assert.Equal(IPAddressProvisioningType.NoPublicIPAddresses, mgmtNoPublicIP); + + // Verify round-trip conversion maintains Batch pool networking semantics + var backToBatchManaged = Utils.Utils.toIPAddressProvisioningType(mgmtBatchManaged); + var backToUserManaged = Utils.Utils.toIPAddressProvisioningType(mgmtUserManaged); + var backToNoPublicIP = Utils.Utils.toIPAddressProvisioningType(mgmtNoPublicIP); + + Assert.Equal(Azure.Batch.Common.IPAddressProvisioningType.BatchManaged, backToBatchManaged); + Assert.Equal(Azure.Batch.Common.IPAddressProvisioningType.UserManaged, backToUserManaged); + Assert.Equal(Azure.Batch.Common.IPAddressProvisioningType.NoPublicIPAddresses, backToNoPublicIP); + } + + [Fact] + public void IPAddressProvisioningTypeConversions_DefaultValues_HandleCorrectly() + { + // Test conversion with default enum values + + // Arrange + var defaultPsProvisioningType = default(Azure.Batch.Common.IPAddressProvisioningType); + var defaultMgmtProvisioningType = default(IPAddressProvisioningType); + + // Act + var mgmtResult = Utils.Utils.toMgmtIPAddressProvisioningType(defaultPsProvisioningType); + var psResult = Utils.Utils.toIPAddressProvisioningType(defaultMgmtProvisioningType); + + // Assert + Assert.Equal((IPAddressProvisioningType)defaultPsProvisioningType, mgmtResult); + Assert.Equal((Azure.Batch.Common.IPAddressProvisioningType)defaultMgmtProvisioningType, psResult); + Assert.True(Enum.IsDefined(typeof(IPAddressProvisioningType), mgmtResult)); + Assert.True(Enum.IsDefined(typeof(Azure.Batch.Common.IPAddressProvisioningType), psResult)); + } + + #endregion + + #region Performance and Edge Case Tests + + [Fact] + public void IPAddressProvisioningTypeConversions_PerformanceTest_ExecutesQuickly() + { + // This test ensures the conversions are efficient + + // Arrange + var psProvisioningType = Azure.Batch.Common.IPAddressProvisioningType.BatchManaged; + var mgmtProvisioningType = IPAddressProvisioningType.UserManaged; + + // Act & Assert - Multiple conversions should complete without delay + for (int i = 0; i < 100; i++) + { + var mgmtResult = Utils.Utils.toMgmtIPAddressProvisioningType(psProvisioningType); + var psResult = Utils.Utils.toIPAddressProvisioningType(mgmtProvisioningType); + + Assert.Equal(IPAddressProvisioningType.BatchManaged, mgmtResult); + Assert.Equal(Azure.Batch.Common.IPAddressProvisioningType.UserManaged, psResult); + } + } + + #endregion + + #region Networking Strategy Tests + + [Fact] + public void IPAddressProvisioningTypeConversions_BatchManagedStrategy_AutomaticIPManagement() + { + // This test validates that BatchManaged provisioning semantics are preserved for automatic IP management + + // Arrange - BatchManaged provisioning for Azure Batch-managed public IPs + var psBatchManaged = Azure.Batch.Common.IPAddressProvisioningType.BatchManaged; + + // Act + var mgmtBatchManaged = Utils.Utils.toMgmtIPAddressProvisioningType(psBatchManaged); + var backToPs = Utils.Utils.toIPAddressProvisioningType(mgmtBatchManaged); + + // Assert - BatchManaged provisioning semantics preserved + Assert.Equal(IPAddressProvisioningType.BatchManaged, mgmtBatchManaged); + Assert.Equal(Azure.Batch.Common.IPAddressProvisioningType.BatchManaged, backToPs); + // BatchManaged ensures Azure Batch automatically creates and manages public IPs + } + + [Fact] + public void IPAddressProvisioningTypeConversions_UserManagedStrategy_CustomIPManagement() + { + // This test validates that UserManaged provisioning semantics are preserved for custom IP management + + // Arrange - UserManaged provisioning for user-provided public IPs + var psUserManaged = Azure.Batch.Common.IPAddressProvisioningType.UserManaged; + + // Act + var mgmtUserManaged = Utils.Utils.toMgmtIPAddressProvisioningType(psUserManaged); + var backToPs = Utils.Utils.toIPAddressProvisioningType(mgmtUserManaged); + + // Assert - UserManaged provisioning semantics preserved + Assert.Equal(IPAddressProvisioningType.UserManaged, mgmtUserManaged); + Assert.Equal(Azure.Batch.Common.IPAddressProvisioningType.UserManaged, backToPs); + // UserManaged ensures user provides and manages public IPs for compute nodes + } + + [Fact] + public void IPAddressProvisioningTypeConversions_NoPublicIPStrategy_PrivateNetworking() + { + // This test validates that NoPublicIPAddresses provisioning semantics are preserved for private networking + + // Arrange - NoPublicIPAddresses provisioning for private-only networking + var psNoPublicIP = Azure.Batch.Common.IPAddressProvisioningType.NoPublicIPAddresses; + + // Act + var mgmtNoPublicIP = Utils.Utils.toMgmtIPAddressProvisioningType(psNoPublicIP); + var backToPs = Utils.Utils.toIPAddressProvisioningType(mgmtNoPublicIP); + + // Assert - NoPublicIPAddresses provisioning semantics preserved + Assert.Equal(IPAddressProvisioningType.NoPublicIPAddresses, mgmtNoPublicIP); + Assert.Equal(Azure.Batch.Common.IPAddressProvisioningType.NoPublicIPAddresses, backToPs); + // NoPublicIPAddresses ensures compute nodes have no public IP addresses + } + + #endregion + + #region Type Safety and Casting Tests + + [Fact] + public void IPAddressProvisioningTypeConversions_TypeSafety_VerifyCorrectTypes() + { + // Test that conversions return the correct types and handle casting properly + + // Arrange + var psProvisioningType = Azure.Batch.Common.IPAddressProvisioningType.BatchManaged; + var mgmtProvisioningType = IPAddressProvisioningType.UserManaged; + + // Act + var mgmtResult = Utils.Utils.toMgmtIPAddressProvisioningType(psProvisioningType); + var psResult = Utils.Utils.toIPAddressProvisioningType(mgmtProvisioningType); + + // Assert - Verify correct types are returned + Assert.IsType(mgmtResult); + Assert.IsType(psResult); + Assert.Equal(IPAddressProvisioningType.BatchManaged, mgmtResult); + Assert.Equal(Azure.Batch.Common.IPAddressProvisioningType.UserManaged, psResult); + } + + [Fact] + public void IPAddressProvisioningTypeConversions_EnumValueEquivalence_VerifyDirectCasting() + { + // Test that the enum values are equivalent and casting works as expected + + // Arrange & Act - Test direct casting behavior + var psBatchManaged = Azure.Batch.Common.IPAddressProvisioningType.BatchManaged; + + var mgmtBatchManagedDirect = (IPAddressProvisioningType)psBatchManaged; + var mgmtBatchManagedUtils = Utils.Utils.toMgmtIPAddressProvisioningType(psBatchManaged); + + // Assert - Utils methods should behave the same as direct casting + Assert.Equal(mgmtBatchManagedDirect, mgmtBatchManagedUtils); + Assert.Equal(IPAddressProvisioningType.BatchManaged, mgmtBatchManagedUtils); + } + + [Fact] + public void IPAddressProvisioningTypeConversions_NullableCasting_WorksCorrectly() + { + // Test that nullable casting works as expected + + // Arrange + Azure.Batch.Common.IPAddressProvisioningType? nullablePsBatchManaged = Azure.Batch.Common.IPAddressProvisioningType.BatchManaged; + Azure.Batch.Common.IPAddressProvisioningType? nullPs = null; + + // Act + var mgmtFromNullableBatchManaged = Utils.Utils.toMgmtIPAddressProvisioningType(nullablePsBatchManaged); + var mgmtFromNull = Utils.Utils.toMgmtIPAddressProvisioningType(nullPs); + + // Assert + Assert.Equal(IPAddressProvisioningType.BatchManaged, mgmtFromNullableBatchManaged); + Assert.Null(mgmtFromNull); + } + + #endregion + + #region Public IP Configuration Context Tests + + [Fact] + public void IPAddressProvisioningTypeConversions_PublicIPConfiguration_VerifyProvisioningStrategy() + { + // This test validates the conversions work correctly in public IP configuration scenarios + // IPAddressProvisioningType determines how public IPs are provisioned for Azure Batch pools + + // Arrange - Test different provisioning strategies + var scenarios = new[] + { + new + { + PSProvisioningType = Azure.Batch.Common.IPAddressProvisioningType.BatchManaged, + MgmtProvisioningType = IPAddressProvisioningType.BatchManaged, + Description = "Batch-managed public IP provisioning for automatic management" + }, + new + { + PSProvisioningType = Azure.Batch.Common.IPAddressProvisioningType.UserManaged, + MgmtProvisioningType = IPAddressProvisioningType.UserManaged, + Description = "User-managed public IP provisioning for custom control" + }, + new + { + PSProvisioningType = Azure.Batch.Common.IPAddressProvisioningType.NoPublicIPAddresses, + MgmtProvisioningType = IPAddressProvisioningType.NoPublicIPAddresses, + Description = "No public IP provisioning for private networking" + } + }; + + foreach (var scenario in scenarios) + { + // Act + var mgmtResult = Utils.Utils.toMgmtIPAddressProvisioningType(scenario.PSProvisioningType); + var psResult = Utils.Utils.toIPAddressProvisioningType(scenario.MgmtProvisioningType); + + // Assert + Assert.Equal(scenario.MgmtProvisioningType, mgmtResult); + Assert.Equal(scenario.PSProvisioningType, psResult); + + // Verify round-trip maintains public IP provisioning strategy + var roundTripMgmt = Utils.Utils.toMgmtIPAddressProvisioningType(psResult); + var roundTripPs = Utils.Utils.toIPAddressProvisioningType(mgmtResult); + + Assert.Equal(scenario.MgmtProvisioningType, roundTripMgmt); + Assert.Equal(scenario.PSProvisioningType, roundTripPs); + } + } + + [Fact] + public void IPAddressProvisioningTypeConversions_NetworkConfiguration_PreservesProvisioningSemantics() + { + // This test ensures that IP address provisioning semantics are correctly preserved + + // Arrange - BatchManaged provisioning optimizes for ease of use + var psBatchManagedProvisioning = Azure.Batch.Common.IPAddressProvisioningType.BatchManaged; + + // Act + var mgmtBatchManagedProvisioning = Utils.Utils.toMgmtIPAddressProvisioningType(psBatchManagedProvisioning); + var backToPsBatchManaged = Utils.Utils.toIPAddressProvisioningType(mgmtBatchManagedProvisioning); + + // Assert - BatchManaged provisioning semantics preserved for automatic IP management + Assert.Equal(IPAddressProvisioningType.BatchManaged, mgmtBatchManagedProvisioning); + Assert.Equal(Azure.Batch.Common.IPAddressProvisioningType.BatchManaged, backToPsBatchManaged); + + // Arrange - UserManaged provisioning provides maximum control + var psUserManagedProvisioning = Azure.Batch.Common.IPAddressProvisioningType.UserManaged; + + // Act + var mgmtUserManagedProvisioning = Utils.Utils.toMgmtIPAddressProvisioningType(psUserManagedProvisioning); + var backToPsUserManaged = Utils.Utils.toIPAddressProvisioningType(mgmtUserManagedProvisioning); + + // Assert - UserManaged provisioning semantics preserved for custom IP management + Assert.Equal(IPAddressProvisioningType.UserManaged, mgmtUserManagedProvisioning); + Assert.Equal(Azure.Batch.Common.IPAddressProvisioningType.UserManaged, backToPsUserManaged); + + // Arrange - NoPublicIPAddresses provisioning maximizes security + var psNoPublicIPProvisioning = Azure.Batch.Common.IPAddressProvisioningType.NoPublicIPAddresses; + + // Act + var mgmtNoPublicIPProvisioning = Utils.Utils.toMgmtIPAddressProvisioningType(psNoPublicIPProvisioning); + var backToPsNoPublicIP = Utils.Utils.toIPAddressProvisioningType(mgmtNoPublicIPProvisioning); + + // Assert - NoPublicIPAddresses provisioning semantics preserved for private networking + Assert.Equal(IPAddressProvisioningType.NoPublicIPAddresses, mgmtNoPublicIPProvisioning); + Assert.Equal(Azure.Batch.Common.IPAddressProvisioningType.NoPublicIPAddresses, backToPsNoPublicIP); + } + + #endregion + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Test/Utils/UtilsInboundEndpointProtocolTests.cs b/src/Batch/Batch.Test/Utils/UtilsInboundEndpointProtocolTests.cs new file mode 100644 index 000000000000..d0d9f91a08d3 --- /dev/null +++ b/src/Batch/Batch.Test/Utils/UtilsInboundEndpointProtocolTests.cs @@ -0,0 +1,645 @@ +// ----------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ----------------------------------------------------------------------------- + +using Microsoft.Azure.Commands.Batch.Utils; +using Microsoft.Azure.Management.Batch.Models; +using System; +using System.Linq; +using Xunit; + +namespace Microsoft.Azure.Commands.Batch.Test.ModelsConversions +{ + public class UtilsInboundEndpointProtocolTests + { + #region ToMgmtInboundEndpointProtocol Tests + + [Fact] + public void ToMgmtInboundEndpointProtocol_TCP_ReturnsTCP() + { + // Arrange + var psProtocol = Microsoft.Azure.Batch.Common.InboundEndpointProtocol.Tcp; + + // Act + var result = Utils.Utils.ToMgmtInboundEndpointProtocol(psProtocol); + + // Assert + Assert.Equal(InboundEndpointProtocol.TCP, result); + } + + [Fact] + public void ToMgmtInboundEndpointProtocol_UDP_ReturnsUDP() + { + // Arrange + var psProtocol = Microsoft.Azure.Batch.Common.InboundEndpointProtocol.Udp; + + // Act + var result = Utils.Utils.ToMgmtInboundEndpointProtocol(psProtocol); + + // Assert + Assert.Equal(InboundEndpointProtocol.UDP, result); + } + + [Theory] + [InlineData(Microsoft.Azure.Batch.Common.InboundEndpointProtocol.Tcp, InboundEndpointProtocol.TCP)] + [InlineData(Microsoft.Azure.Batch.Common.InboundEndpointProtocol.Udp, InboundEndpointProtocol.UDP)] + public void ToMgmtInboundEndpointProtocol_AllValidValues_ReturnsCorrectMapping( + Microsoft.Azure.Batch.Common.InboundEndpointProtocol input, + InboundEndpointProtocol expected) + { + // Act + var result = Utils.Utils.ToMgmtInboundEndpointProtocol(input); + + // Assert + Assert.Equal(expected, result); + } + + [Fact] + public void ToMgmtInboundEndpointProtocol_DefaultValue_HandlesCorrectly() + { + // Arrange + var defaultValue = default(Microsoft.Azure.Batch.Common.InboundEndpointProtocol); + + // Act + var result = Utils.Utils.ToMgmtInboundEndpointProtocol(defaultValue); + + // Assert + // Default InboundEndpointProtocol is typically TCP (0) + Assert.Equal(InboundEndpointProtocol.TCP, result); + } + + [Fact] + public void ToMgmtInboundEndpointProtocol_EnumValueConsistency_EnsuresCorrectEnumMapping() + { + // This test ensures that the mapping logic correctly handles all defined enum values + // and verifies that the conversion maintains the semantic meaning of each protocol + + // Arrange & Act & Assert + // TCP: Use TCP for the endpoint (connection-oriented, reliable) + var tcpResult = Utils.Utils.ToMgmtInboundEndpointProtocol(Microsoft.Azure.Batch.Common.InboundEndpointProtocol.Tcp); + Assert.Equal(InboundEndpointProtocol.TCP, tcpResult); + + // UDP: Use UDP for the endpoint (connectionless, fast) + var udpResult = Utils.Utils.ToMgmtInboundEndpointProtocol(Microsoft.Azure.Batch.Common.InboundEndpointProtocol.Udp); + Assert.Equal(InboundEndpointProtocol.UDP, udpResult); + } + + [Fact] + public void ToMgmtInboundEndpointProtocol_StaticMethod_DoesNotRequireInstance() + { + // This test verifies that the method is properly static and can be called without instantiation + + // Arrange + var psProtocol = Microsoft.Azure.Batch.Common.InboundEndpointProtocol.Udp; + + // Act - Call static method directly on class + var result = Utils.Utils.ToMgmtInboundEndpointProtocol(psProtocol); + + // Assert + Assert.Equal(InboundEndpointProtocol.UDP, result); + } + + [Fact] + public void ToMgmtInboundEndpointProtocol_PerformanceTest_ExecutesQuickly() + { + // This test ensures the enum conversion is efficient for all values + + // Arrange + var enumValues = new[] + { + Microsoft.Azure.Batch.Common.InboundEndpointProtocol.Tcp, + Microsoft.Azure.Batch.Common.InboundEndpointProtocol.Udp + }; + + // Act & Assert - Each conversion should complete without delay + foreach (var value in enumValues) + { + var result = Utils.Utils.ToMgmtInboundEndpointProtocol(value); + Assert.True(Enum.IsDefined(typeof(InboundEndpointProtocol), result)); + } + } + + [Fact] + public void ToMgmtInboundEndpointProtocol_CastingBehavior_VerifyDirectCast() + { + // This test verifies that the conversion uses direct casting as implemented + + // Arrange + var psTcp = Microsoft.Azure.Batch.Common.InboundEndpointProtocol.Tcp; + var psUdp = Microsoft.Azure.Batch.Common.InboundEndpointProtocol.Udp; + + // Act + var mgmtTcp = Utils.Utils.ToMgmtInboundEndpointProtocol(psTcp); + var mgmtUdp = Utils.Utils.ToMgmtInboundEndpointProtocol(psUdp); + + // Assert - Verify that the underlying values match (direct cast behavior) + Assert.Equal((int)psTcp, (int)mgmtTcp); + Assert.Equal((int)psUdp, (int)mgmtUdp); + } + + #endregion + + #region FromMgmtInboundEndpointProtocol Tests + + [Fact] + public void FromMgmtInboundEndpointProtocol_TCP_ReturnsTCP() + { + // Arrange + var mgmtProtocol = InboundEndpointProtocol.TCP; + + // Act + var result = Utils.Utils.FromMgmtInboundEndpointProtocol(mgmtProtocol); + + // Assert + Assert.Equal(Microsoft.Azure.Batch.Common.InboundEndpointProtocol.Tcp, result); + } + + [Fact] + public void FromMgmtInboundEndpointProtocol_UDP_ReturnsUDP() + { + // Arrange + var mgmtProtocol = InboundEndpointProtocol.UDP; + + // Act + var result = Utils.Utils.FromMgmtInboundEndpointProtocol(mgmtProtocol); + + // Assert + Assert.Equal(Microsoft.Azure.Batch.Common.InboundEndpointProtocol.Udp, result); + } + + [Theory] + [InlineData(InboundEndpointProtocol.TCP, Microsoft.Azure.Batch.Common.InboundEndpointProtocol.Tcp)] + [InlineData(InboundEndpointProtocol.UDP, Microsoft.Azure.Batch.Common.InboundEndpointProtocol.Udp)] + public void FromMgmtInboundEndpointProtocol_AllValidValues_ReturnsCorrectMapping( + InboundEndpointProtocol input, + Microsoft.Azure.Batch.Common.InboundEndpointProtocol expected) + { + // Act + var result = Utils.Utils.FromMgmtInboundEndpointProtocol(input); + + // Assert + Assert.Equal(expected, result); + } + + [Fact] + public void FromMgmtInboundEndpointProtocol_DefaultValue_HandlesCorrectly() + { + // Arrange + var defaultValue = default(InboundEndpointProtocol); + + // Act + var result = Utils.Utils.FromMgmtInboundEndpointProtocol(defaultValue); + + // Assert + // Default InboundEndpointProtocol is typically TCP (0) + Assert.Equal(Microsoft.Azure.Batch.Common.InboundEndpointProtocol.Tcp, result); + } + + [Fact] + public void FromMgmtInboundEndpointProtocol_EnumValueConsistency_EnsuresCorrectEnumMapping() + { + // This test ensures that the mapping logic correctly handles all defined enum values + // and verifies that the conversion maintains the semantic meaning of each protocol + + // Arrange & Act & Assert + // TCP: Use TCP for the endpoint (connection-oriented, reliable) + var tcpResult = Utils.Utils.FromMgmtInboundEndpointProtocol(InboundEndpointProtocol.TCP); + Assert.Equal(Microsoft.Azure.Batch.Common.InboundEndpointProtocol.Tcp, tcpResult); + + // UDP: Use UDP for the endpoint (connectionless, fast) + var udpResult = Utils.Utils.FromMgmtInboundEndpointProtocol(InboundEndpointProtocol.UDP); + Assert.Equal(Microsoft.Azure.Batch.Common.InboundEndpointProtocol.Udp, udpResult); + } + + [Fact] + public void FromMgmtInboundEndpointProtocol_StaticMethod_DoesNotRequireInstance() + { + // This test verifies that the method is properly static and can be called without instantiation + + // Arrange + var mgmtProtocol = InboundEndpointProtocol.TCP; + + // Act - Call static method directly on class + var result = Utils.Utils.FromMgmtInboundEndpointProtocol(mgmtProtocol); + + // Assert + Assert.Equal(Microsoft.Azure.Batch.Common.InboundEndpointProtocol.Tcp, result); + } + + [Fact] + public void FromMgmtInboundEndpointProtocol_PerformanceTest_ExecutesQuickly() + { + // This test ensures the enum conversion is efficient for all values + + // Arrange + var enumValues = new[] + { + InboundEndpointProtocol.TCP, + InboundEndpointProtocol.UDP + }; + + // Act & Assert - Each conversion should complete without delay + foreach (var value in enumValues) + { + var result = Utils.Utils.FromMgmtInboundEndpointProtocol(value); + Assert.True(Enum.IsDefined(typeof(Microsoft.Azure.Batch.Common.InboundEndpointProtocol), result)); + } + } + + [Fact] + public void FromMgmtInboundEndpointProtocol_CastingBehavior_VerifyDirectCast() + { + // This test verifies that the conversion uses direct casting as implemented + + // Arrange + var mgmtTcp = InboundEndpointProtocol.TCP; + var mgmtUdp = InboundEndpointProtocol.UDP; + + // Act + var psTcp = Utils.Utils.FromMgmtInboundEndpointProtocol(mgmtTcp); + var psUdp = Utils.Utils.FromMgmtInboundEndpointProtocol(mgmtUdp); + + // Assert - Verify that the underlying values match (direct cast behavior) + Assert.Equal((int)mgmtTcp, (int)psTcp); + Assert.Equal((int)mgmtUdp, (int)psUdp); + } + + #endregion + + #region Round-trip Conversion Tests + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesTCPValue() + { + // Arrange + var originalPsProtocol = Microsoft.Azure.Batch.Common.InboundEndpointProtocol.Tcp; + + // Act + var mgmtProtocol = Utils.Utils.ToMgmtInboundEndpointProtocol(originalPsProtocol); + var roundTripPsProtocol = Utils.Utils.FromMgmtInboundEndpointProtocol(mgmtProtocol); + + // Assert + Assert.Equal(originalPsProtocol, roundTripPsProtocol); + } + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesUDPValue() + { + // Arrange + var originalPsProtocol = Microsoft.Azure.Batch.Common.InboundEndpointProtocol.Udp; + + // Act + var mgmtProtocol = Utils.Utils.ToMgmtInboundEndpointProtocol(originalPsProtocol); + var roundTripPsProtocol = Utils.Utils.FromMgmtInboundEndpointProtocol(mgmtProtocol); + + // Assert + Assert.Equal(originalPsProtocol, roundTripPsProtocol); + } + + [Theory] + [InlineData(Microsoft.Azure.Batch.Common.InboundEndpointProtocol.Tcp)] + [InlineData(Microsoft.Azure.Batch.Common.InboundEndpointProtocol.Udp)] + public void RoundTripConversion_AllValidValues_PreservesOriginalValue( + Microsoft.Azure.Batch.Common.InboundEndpointProtocol originalProtocol) + { + // Act + var mgmtProtocol = Utils.Utils.ToMgmtInboundEndpointProtocol(originalProtocol); + var roundTripProtocol = Utils.Utils.FromMgmtInboundEndpointProtocol(mgmtProtocol); + + // Assert + Assert.Equal(originalProtocol, roundTripProtocol); + } + + [Fact] + public void RoundTripConversion_FromMgmtAndToMgmt_PreservesValues() + { + // Arrange + var originalMgmtValues = new[] + { + InboundEndpointProtocol.TCP, + InboundEndpointProtocol.UDP + }; + + foreach (var originalValue in originalMgmtValues) + { + // Act + var psValue = Utils.Utils.FromMgmtInboundEndpointProtocol(originalValue); + var roundTripValue = Utils.Utils.ToMgmtInboundEndpointProtocol(psValue); + + // Assert + Assert.Equal(originalValue, roundTripValue); + } + } + + #endregion + + #region Enum Value Verification Tests + + [Fact] + public void InboundEndpointProtocol_VerifyEnumMemberCount_EnsuresAllValuesHandled() + { + // This test helps ensure that if new enum values are added, the conversion methods are updated + + // Arrange + var psProtocolValues = Enum.GetValues(typeof(Microsoft.Azure.Batch.Common.InboundEndpointProtocol)); + var mgmtProtocolValues = Enum.GetValues(typeof(InboundEndpointProtocol)); + + // Act & Assert + // Verify that both enums have the same number of values (assuming 1:1 mapping) + Assert.Equal(psProtocolValues.Length, mgmtProtocolValues.Length); + + // Verify that each PS enum value can be converted successfully + foreach (Microsoft.Azure.Batch.Common.InboundEndpointProtocol psValue in psProtocolValues) + { + var result = Utils.Utils.ToMgmtInboundEndpointProtocol(psValue); + Assert.True(Enum.IsDefined(typeof(InboundEndpointProtocol), result)); + } + + // Verify that each management enum value can be converted successfully + foreach (InboundEndpointProtocol mgmtValue in mgmtProtocolValues) + { + var result = Utils.Utils.FromMgmtInboundEndpointProtocol(mgmtValue); + Assert.True(Enum.IsDefined(typeof(Microsoft.Azure.Batch.Common.InboundEndpointProtocol), result)); + } + } + + [Fact] + public void InboundEndpointProtocol_BijectiveMapping_EnsuresUniqueConversion() + { + // This test verifies that the mapping is bijective (one-to-one) + + // Arrange + var psValues = new[] + { + Microsoft.Azure.Batch.Common.InboundEndpointProtocol.Tcp, + Microsoft.Azure.Batch.Common.InboundEndpointProtocol.Udp + }; + + var mgmtValues = new[] + { + InboundEndpointProtocol.TCP, + InboundEndpointProtocol.UDP + }; + + // Act - Convert PS to Management + var convertedMgmtValues = new InboundEndpointProtocol[psValues.Length]; + for (int i = 0; i < psValues.Length; i++) + { + convertedMgmtValues[i] = Utils.Utils.ToMgmtInboundEndpointProtocol(psValues[i]); + } + + // Act - Convert Management to PS + var convertedPsValues = new Microsoft.Azure.Batch.Common.InboundEndpointProtocol[mgmtValues.Length]; + for (int i = 0; i < mgmtValues.Length; i++) + { + convertedPsValues[i] = Utils.Utils.FromMgmtInboundEndpointProtocol(mgmtValues[i]); + } + + // Assert - Each management enum value should be unique (no duplicates) + var distinctMgmtValues = convertedMgmtValues.Distinct().ToArray(); + Assert.Equal(convertedMgmtValues.Length, distinctMgmtValues.Length); + + // Assert - Each PS enum value should be unique (no duplicates) + var distinctPsValues = convertedPsValues.Distinct().ToArray(); + Assert.Equal(convertedPsValues.Length, distinctPsValues.Length); + } + + #endregion + + #region Integration Tests + + [Fact] + public void InboundEndpointProtocolConversions_BothDirections_MaintainSemanticEquivalence() + { + // This test ensures that the semantic meaning is preserved across conversions + + // Test TCP semantics - Connection-oriented, reliable protocol + var psTcp = Microsoft.Azure.Batch.Common.InboundEndpointProtocol.Tcp; + var mgmtTcp = Utils.Utils.ToMgmtInboundEndpointProtocol(psTcp); + var backToPs = Utils.Utils.FromMgmtInboundEndpointProtocol(mgmtTcp); + + Assert.Equal(InboundEndpointProtocol.TCP, mgmtTcp); + Assert.Equal(psTcp, backToPs); + + // Test UDP semantics - Connectionless, fast protocol + var psUdp = Microsoft.Azure.Batch.Common.InboundEndpointProtocol.Udp; + var mgmtUdp = Utils.Utils.ToMgmtInboundEndpointProtocol(psUdp); + var backToPsUdp = Utils.Utils.FromMgmtInboundEndpointProtocol(mgmtUdp); + + Assert.Equal(InboundEndpointProtocol.UDP, mgmtUdp); + Assert.Equal(psUdp, backToPsUdp); + } + + [Fact] + public void InboundEndpointProtocolConversions_NetworkEndpointContext_VerifyCorrectUsage() + { + // This test validates the conversions work correctly in the context of Batch network endpoint configuration + // InboundEndpointProtocol is used to specify the protocol for inbound NAT pools in Azure Batch + + // Arrange - Test with realistic Batch network endpoint scenarios + var endpointScenarios = new[] + { + // TCP - For connection-oriented applications requiring reliability + new { + Protocol = Microsoft.Azure.Batch.Common.InboundEndpointProtocol.Tcp, + Description = "TCP protocol for reliable, connection-oriented network endpoints" + }, + // UDP - For low-latency applications or connectionless protocols + new { + Protocol = Microsoft.Azure.Batch.Common.InboundEndpointProtocol.Udp, + Description = "UDP protocol for fast, connectionless network endpoints" + } + }; + + foreach (var scenario in endpointScenarios) + { + // Act + var mgmtProtocol = Utils.Utils.ToMgmtInboundEndpointProtocol(scenario.Protocol); + + // Assert - Should convert correctly for Batch network endpoint configuration + var expectedMgmtProtocol = scenario.Protocol == Microsoft.Azure.Batch.Common.InboundEndpointProtocol.Tcp + ? InboundEndpointProtocol.TCP + : InboundEndpointProtocol.UDP; + Assert.Equal(expectedMgmtProtocol, mgmtProtocol); + + // Verify round-trip conversion maintains network endpoint semantics + var backToPs = Utils.Utils.FromMgmtInboundEndpointProtocol(mgmtProtocol); + Assert.Equal(scenario.Protocol, backToPs); + } + } + + [Fact] + public void InboundEndpointProtocolConversions_DirectCastingBehavior_VerifyImplementation() + { + // This test verifies that the methods use direct casting as implemented + // This is important because it ensures the enum values have the same underlying representation + + // Test that conversion preserves underlying integer values + foreach (Microsoft.Azure.Batch.Common.InboundEndpointProtocol psValue in Enum.GetValues(typeof(Microsoft.Azure.Batch.Common.InboundEndpointProtocol))) + { + var mgmtResult = Utils.Utils.ToMgmtInboundEndpointProtocol(psValue); + Assert.Equal((int)psValue, (int)mgmtResult); + } + + foreach (InboundEndpointProtocol mgmtValue in Enum.GetValues(typeof(InboundEndpointProtocol))) + { + var psResult = Utils.Utils.FromMgmtInboundEndpointProtocol(mgmtValue); + Assert.Equal((int)mgmtValue, (int)psResult); + } + } + + [Fact] + public void InboundEndpointProtocolConversions_InboundNatPoolContext_VerifySemantics() + { + // This test validates the semantic usage in the context of inbound NAT pool configuration + // InboundEndpointProtocol determines the network protocol for inbound endpoint connections + + // TCP protocol semantics - Connection-oriented for reliable applications + var tcpProtocol = Microsoft.Azure.Batch.Common.InboundEndpointProtocol.Tcp; + var mgmtTcpProtocol = Utils.Utils.ToMgmtInboundEndpointProtocol(tcpProtocol); + + Assert.Equal(InboundEndpointProtocol.TCP, mgmtTcpProtocol); + + // TCP ensures reliable, ordered delivery of data + // Suitable for applications requiring guaranteed delivery (SSH, HTTP, etc.) + + // UDP protocol semantics - Connectionless for low-latency applications + var udpProtocol = Microsoft.Azure.Batch.Common.InboundEndpointProtocol.Udp; + var mgmtUdpProtocol = Utils.Utils.ToMgmtInboundEndpointProtocol(udpProtocol); + + Assert.Equal(InboundEndpointProtocol.UDP, mgmtUdpProtocol); + + // UDP provides fast, connectionless communication + // Suitable for real-time applications where speed is more important than reliability + + // Verify semantic preservation through round-trip + var tcpRoundTrip = Utils.Utils.FromMgmtInboundEndpointProtocol(mgmtTcpProtocol); + var udpRoundTrip = Utils.Utils.FromMgmtInboundEndpointProtocol(mgmtUdpProtocol); + + Assert.Equal(tcpProtocol, tcpRoundTrip); + Assert.Equal(udpProtocol, udpRoundTrip); + } + + #endregion + + #region Edge Case Tests + + [Fact] + public void InboundEndpointProtocolConversions_TypeSafety_VerifyCorrectTypes() + { + // Test that conversions return the correct types and handle casting properly + + // Arrange + var psProtocol = Microsoft.Azure.Batch.Common.InboundEndpointProtocol.Udp; + var mgmtProtocol = InboundEndpointProtocol.TCP; + + // Act + var mgmtResult = Utils.Utils.ToMgmtInboundEndpointProtocol(psProtocol); + var psResult = Utils.Utils.FromMgmtInboundEndpointProtocol(mgmtProtocol); + + // Assert - Verify correct types are returned + Assert.IsType(mgmtResult); + Assert.IsType(psResult); + Assert.Equal(InboundEndpointProtocol.UDP, mgmtResult); + Assert.Equal(Microsoft.Azure.Batch.Common.InboundEndpointProtocol.Tcp, psResult); + } + + [Fact] + public void InboundEndpointProtocolConversions_EnumValueEquivalence_VerifyDirectCasting() + { + // Test that the enum values are equivalent and casting works as expected + + // Arrange & Act - Test direct casting behavior + var psTcp = Microsoft.Azure.Batch.Common.InboundEndpointProtocol.Tcp; + + var mgmtTcpDirect = (InboundEndpointProtocol)psTcp; + var mgmtTcpUtils = Utils.Utils.ToMgmtInboundEndpointProtocol(psTcp); + + // Assert - Utils methods should behave the same as direct casting + Assert.Equal(mgmtTcpDirect, mgmtTcpUtils); + Assert.Equal(InboundEndpointProtocol.TCP, mgmtTcpUtils); + } + + [Fact] + public void InboundEndpointProtocolConversions_DefaultValueBehavior_VerifyConsistency() + { + // Test that default value handling is consistent + + // Arrange + var defaultPsProtocol = default(Microsoft.Azure.Batch.Common.InboundEndpointProtocol); + var defaultMgmtProtocol = default(InboundEndpointProtocol); + + // Act + var mgmtFromDefault = Utils.Utils.ToMgmtInboundEndpointProtocol(defaultPsProtocol); + var psFromDefault = Utils.Utils.FromMgmtInboundEndpointProtocol(defaultMgmtProtocol); + + // Assert - Both should resolve to TCP (typically the 0 value) + Assert.Equal(InboundEndpointProtocol.TCP, mgmtFromDefault); + Assert.Equal(Microsoft.Azure.Batch.Common.InboundEndpointProtocol.Tcp, psFromDefault); + } + + #endregion + + #region Network Protocol Semantics Tests + + [Fact] + public void InboundEndpointProtocolConversions_TCPSemantics_ConnectionOrientedProtocol() + { + // This test validates TCP protocol semantics are preserved in conversions + + // Arrange - TCP for connection-oriented, reliable communication + var psTcp = Microsoft.Azure.Batch.Common.InboundEndpointProtocol.Tcp; + + // Act + var mgmtTcp = Utils.Utils.ToMgmtInboundEndpointProtocol(psTcp); + var backToPs = Utils.Utils.FromMgmtInboundEndpointProtocol(mgmtTcp); + + // Assert - TCP semantics preserved + Assert.Equal(InboundEndpointProtocol.TCP, mgmtTcp); + Assert.Equal(Microsoft.Azure.Batch.Common.InboundEndpointProtocol.Tcp, backToPs); + + // TCP protocol characteristics: + // - Connection-oriented + // - Reliable delivery + // - Ordered data transmission + // - Error detection and correction + // - Flow control + } + + [Fact] + public void InboundEndpointProtocolConversions_UDPSemantics_ConnectionlessProtocol() + { + // This test validates UDP protocol semantics are preserved in conversions + + // Arrange - UDP for connectionless, fast communication + var psUdp = Microsoft.Azure.Batch.Common.InboundEndpointProtocol.Udp; + + // Act + var mgmtUdp = Utils.Utils.ToMgmtInboundEndpointProtocol(psUdp); + var backToPs = Utils.Utils.FromMgmtInboundEndpointProtocol(mgmtUdp); + + // Assert - UDP semantics preserved + Assert.Equal(InboundEndpointProtocol.UDP, mgmtUdp); + Assert.Equal(Microsoft.Azure.Batch.Common.InboundEndpointProtocol.Udp, backToPs); + + // UDP protocol characteristics: + // - Connectionless + // - Fast transmission + // - No delivery guarantees + // - No ordering guarantees + // - Lower overhead + } + + #endregion + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Test/Utils/UtilsLoginModeTests.cs b/src/Batch/Batch.Test/Utils/UtilsLoginModeTests.cs new file mode 100644 index 000000000000..66c3067be2e5 --- /dev/null +++ b/src/Batch/Batch.Test/Utils/UtilsLoginModeTests.cs @@ -0,0 +1,801 @@ +// ----------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ----------------------------------------------------------------------------- + +using Microsoft.Azure.Commands.Batch.Utils; +using Microsoft.Azure.Management.Batch.Models; +using Microsoft.WindowsAzure.Commands.ScenarioTest; +using System; +using System.Linq; +using Xunit; + +namespace Microsoft.Azure.Commands.Batch.Test.ModelsConversions +{ + public class UtilsLoginModeTests + { + #region ToMgmtLoginMode Tests + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void ToMgmtLoginMode_Batch_ReturnsBatch() + { + // Arrange + var psLoginMode = Microsoft.Azure.Batch.Common.LoginMode.Batch; + + // Act + var result = Utils.Utils.ToMgmtLoginMode(psLoginMode); + + // Assert + Assert.NotNull(result); + Assert.Equal(LoginMode.Batch, result.Value); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void ToMgmtLoginMode_Interactive_ReturnsInteractive() + { + // Arrange + var psLoginMode = Microsoft.Azure.Batch.Common.LoginMode.Interactive; + + // Act + var result = Utils.Utils.ToMgmtLoginMode(psLoginMode); + + // Assert + Assert.NotNull(result); + Assert.Equal(LoginMode.Interactive, result.Value); + } + + [Theory] + [Trait(Category.AcceptanceType, Category.CheckIn)] + [InlineData(Microsoft.Azure.Batch.Common.LoginMode.Batch, LoginMode.Batch)] + [InlineData(Microsoft.Azure.Batch.Common.LoginMode.Interactive, LoginMode.Interactive)] + public void ToMgmtLoginMode_AllValidValues_ReturnsCorrectMapping( + Microsoft.Azure.Batch.Common.LoginMode input, + LoginMode expected) + { + // Act + var result = Utils.Utils.ToMgmtLoginMode(input); + + // Assert + Assert.NotNull(result); + Assert.Equal(expected, result.Value); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void ToMgmtLoginMode_NullValue_ReturnsNull() + { + // Arrange + Microsoft.Azure.Batch.Common.LoginMode? nullLoginMode = null; + + // Act + var result = Utils.Utils.ToMgmtLoginMode(nullLoginMode); + + // Assert + Assert.Null(result); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void ToMgmtLoginMode_DefaultValue_HandlesCorrectly() + { + // Arrange + var defaultValue = default(Microsoft.Azure.Batch.Common.LoginMode); + + // Act + var result = Utils.Utils.ToMgmtLoginMode(defaultValue); + + // Assert + Assert.NotNull(result); + // Default LoginMode is typically Batch (0) + Assert.Equal(LoginMode.Batch, result.Value); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void ToMgmtLoginMode_EnumValueConsistency_EnsuresCorrectEnumMapping() + { + // This test ensures that the mapping logic correctly handles all defined enum values + // and verifies that the conversion maintains the semantic meaning of each login mode + + // Arrange & Act & Assert + // Batch mode: Use Azure Batch account credentials for authentication + var batchResult = Utils.Utils.ToMgmtLoginMode(Microsoft.Azure.Batch.Common.LoginMode.Batch); + Assert.NotNull(batchResult); + Assert.Equal(LoginMode.Batch, batchResult.Value); + + // Interactive mode: Interactive login with user credentials + var interactiveResult = Utils.Utils.ToMgmtLoginMode(Microsoft.Azure.Batch.Common.LoginMode.Interactive); + Assert.NotNull(interactiveResult); + Assert.Equal(LoginMode.Interactive, interactiveResult.Value); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void ToMgmtLoginMode_StaticMethod_DoesNotRequireInstance() + { + // This test verifies that the method is properly static and can be called without instantiation + + // Arrange + var psLoginMode = Microsoft.Azure.Batch.Common.LoginMode.Interactive; + + // Act - Call static method directly on class + var result = Utils.Utils.ToMgmtLoginMode(psLoginMode); + + // Assert + Assert.NotNull(result); + Assert.Equal(LoginMode.Interactive, result.Value); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void ToMgmtLoginMode_PerformanceTest_ExecutesQuickly() + { + // This test ensures the enum conversion is efficient for all values + + // Arrange + var enumValues = new[] + { + Microsoft.Azure.Batch.Common.LoginMode.Batch, + Microsoft.Azure.Batch.Common.LoginMode.Interactive + }; + + // Act & Assert - Each conversion should complete without delay + foreach (var value in enumValues) + { + var result = Utils.Utils.ToMgmtLoginMode(value); + Assert.NotNull(result); + Assert.True(Enum.IsDefined(typeof(LoginMode), result.Value)); + } + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void ToMgmtLoginMode_CastingBehavior_VerifyDirectCast() + { + // This test verifies that the conversion uses direct casting as implemented + + // Arrange + var psBatch = Microsoft.Azure.Batch.Common.LoginMode.Batch; + var psInteractive = Microsoft.Azure.Batch.Common.LoginMode.Interactive; + + // Act + var mgmtBatch = Utils.Utils.ToMgmtLoginMode(psBatch); + var mgmtInteractive = Utils.Utils.ToMgmtLoginMode(psInteractive); + + // Assert + Assert.NotNull(mgmtBatch); + Assert.NotNull(mgmtInteractive); + + // Verify that the underlying values match (direct cast behavior) + Assert.Equal((int)psBatch, (int)mgmtBatch.Value); + Assert.Equal((int)psInteractive, (int)mgmtInteractive.Value); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void ToMgmtLoginMode_AlwaysReturnsNewNullableValue() + { + // This test verifies that the method always returns a new nullable value + + // Arrange + var psLoginMode = Microsoft.Azure.Batch.Common.LoginMode.Batch; + + // Act + var result1 = Utils.Utils.ToMgmtLoginMode(psLoginMode); + var result2 = Utils.Utils.ToMgmtLoginMode(psLoginMode); + + // Assert + Assert.NotNull(result1); + Assert.NotNull(result2); + Assert.Equal(result1.Value, result2.Value); + } + + #endregion + + #region FromMgmtLoginMode Tests + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void FromMgmtLoginMode_Batch_ReturnsBatch() + { + // Arrange + var mgmtLoginMode = LoginMode.Batch; + + // Act + var result = Utils.Utils.FromMgmtLoginMode(mgmtLoginMode); + + // Assert + Assert.NotNull(result); + Assert.Equal(Microsoft.Azure.Batch.Common.LoginMode.Batch, result.Value); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void FromMgmtLoginMode_Interactive_ReturnsInteractive() + { + // Arrange + var mgmtLoginMode = LoginMode.Interactive; + + // Act + var result = Utils.Utils.FromMgmtLoginMode(mgmtLoginMode); + + // Assert + Assert.NotNull(result); + Assert.Equal(Microsoft.Azure.Batch.Common.LoginMode.Interactive, result.Value); + } + + [Theory] + [Trait(Category.AcceptanceType, Category.CheckIn)] + [InlineData(LoginMode.Batch, Microsoft.Azure.Batch.Common.LoginMode.Batch)] + [InlineData(LoginMode.Interactive, Microsoft.Azure.Batch.Common.LoginMode.Interactive)] + public void FromMgmtLoginMode_AllValidValues_ReturnsCorrectMapping( + LoginMode input, + Microsoft.Azure.Batch.Common.LoginMode expected) + { + // Act + var result = Utils.Utils.FromMgmtLoginMode(input); + + // Assert + Assert.NotNull(result); + Assert.Equal(expected, result.Value); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void FromMgmtLoginMode_NullValue_ReturnsNull() + { + // Arrange + LoginMode? nullLoginMode = null; + + // Act + var result = Utils.Utils.FromMgmtLoginMode(nullLoginMode); + + // Assert + Assert.Null(result); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void FromMgmtLoginMode_DefaultValue_HandlesCorrectly() + { + // Arrange + var defaultValue = default(LoginMode); + + // Act + var result = Utils.Utils.FromMgmtLoginMode(defaultValue); + + // Assert + Assert.NotNull(result); + // Default LoginMode is typically Batch (0) + Assert.Equal(Microsoft.Azure.Batch.Common.LoginMode.Batch, result.Value); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void FromMgmtLoginMode_EnumValueConsistency_EnsuresCorrectEnumMapping() + { + // This test ensures that the mapping logic correctly handles all defined enum values + // and verifies that the conversion maintains the semantic meaning of each login mode + + // Arrange & Act & Assert + // Batch mode: Use Azure Batch account credentials for authentication + var batchResult = Utils.Utils.FromMgmtLoginMode(LoginMode.Batch); + Assert.NotNull(batchResult); + Assert.Equal(Microsoft.Azure.Batch.Common.LoginMode.Batch, batchResult.Value); + + // Interactive mode: Interactive login with user credentials + var interactiveResult = Utils.Utils.FromMgmtLoginMode(LoginMode.Interactive); + Assert.NotNull(interactiveResult); + Assert.Equal(Microsoft.Azure.Batch.Common.LoginMode.Interactive, interactiveResult.Value); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void FromMgmtLoginMode_StaticMethod_DoesNotRequireInstance() + { + // This test verifies that the method is properly static and can be called without instantiation + + // Arrange + var mgmtLoginMode = LoginMode.Batch; + + // Act - Call static method directly on class + var result = Utils.Utils.FromMgmtLoginMode(mgmtLoginMode); + + // Assert + Assert.NotNull(result); + Assert.Equal(Microsoft.Azure.Batch.Common.LoginMode.Batch, result.Value); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void FromMgmtLoginMode_PerformanceTest_ExecutesQuickly() + { + // This test ensures the enum conversion is efficient for all values + + // Arrange + var enumValues = new LoginMode?[] + { + LoginMode.Batch, + LoginMode.Interactive, + null + }; + + // Act & Assert - Each conversion should complete without delay + foreach (var value in enumValues) + { + var result = Utils.Utils.FromMgmtLoginMode(value); + if (value.HasValue) + { + Assert.NotNull(result); + Assert.True(Enum.IsDefined(typeof(Microsoft.Azure.Batch.Common.LoginMode), result.Value)); + } + else + { + Assert.Null(result); + } + } + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void FromMgmtLoginMode_AcceptsNullableType() + { + // This test verifies that the method accepts a nullable LoginMode + + // Arrange + LoginMode? nullableValue = LoginMode.Interactive; + + // Act + var result = Utils.Utils.FromMgmtLoginMode(nullableValue); + + // Assert + Assert.NotNull(result); + Assert.Equal(Microsoft.Azure.Batch.Common.LoginMode.Interactive, result.Value); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void FromMgmtLoginMode_CastingBehavior_VerifyDirectCast() + { + // This test verifies that the conversion uses direct casting as implemented + + // Arrange + var mgmtBatch = LoginMode.Batch; + var mgmtInteractive = LoginMode.Interactive; + + // Act + var psBatch = Utils.Utils.FromMgmtLoginMode(mgmtBatch); + var psInteractive = Utils.Utils.FromMgmtLoginMode(mgmtInteractive); + + // Assert + Assert.NotNull(psBatch); + Assert.NotNull(psInteractive); + + // Verify that the underlying values match (direct cast behavior) + Assert.Equal((int)mgmtBatch, (int)psBatch.Value); + Assert.Equal((int)mgmtInteractive, (int)psInteractive.Value); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void FromMgmtLoginMode_AlwaysReturnsNewNullableValue() + { + // This test verifies that the method always returns a new nullable value + + // Arrange + var mgmtLoginMode = LoginMode.Interactive; + + // Act + var result1 = Utils.Utils.FromMgmtLoginMode(mgmtLoginMode); + var result2 = Utils.Utils.FromMgmtLoginMode(mgmtLoginMode); + + // Assert + Assert.NotNull(result1); + Assert.NotNull(result2); + Assert.Equal(result1.Value, result2.Value); + } + + #endregion + + #region Round-trip Conversion Tests + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesBatchValue() + { + // Arrange + var originalPsLoginMode = Microsoft.Azure.Batch.Common.LoginMode.Batch; + + // Act + var mgmtLoginMode = Utils.Utils.ToMgmtLoginMode(originalPsLoginMode); + var roundTripPsLoginMode = Utils.Utils.FromMgmtLoginMode(mgmtLoginMode); + + // Assert + Assert.NotNull(roundTripPsLoginMode); + Assert.Equal(originalPsLoginMode, roundTripPsLoginMode.Value); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesInteractiveValue() + { + // Arrange + var originalPsLoginMode = Microsoft.Azure.Batch.Common.LoginMode.Interactive; + + // Act + var mgmtLoginMode = Utils.Utils.ToMgmtLoginMode(originalPsLoginMode); + var roundTripPsLoginMode = Utils.Utils.FromMgmtLoginMode(mgmtLoginMode); + + // Assert + Assert.NotNull(roundTripPsLoginMode); + Assert.Equal(originalPsLoginMode, roundTripPsLoginMode.Value); + } + + [Theory] + [Trait(Category.AcceptanceType, Category.CheckIn)] + [InlineData(Microsoft.Azure.Batch.Common.LoginMode.Batch)] + [InlineData(Microsoft.Azure.Batch.Common.LoginMode.Interactive)] + public void RoundTripConversion_AllValidValues_PreservesOriginalValue( + Microsoft.Azure.Batch.Common.LoginMode originalLoginMode) + { + // Act + var mgmtLoginMode = Utils.Utils.ToMgmtLoginMode(originalLoginMode); + var roundTripLoginMode = Utils.Utils.FromMgmtLoginMode(mgmtLoginMode); + + // Assert + Assert.NotNull(roundTripLoginMode); + Assert.Equal(originalLoginMode, roundTripLoginMode.Value); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void RoundTripConversion_FromMgmtAndToMgmt_PreservesValues() + { + // Arrange + var originalMgmtValues = new[] + { + LoginMode.Batch, + LoginMode.Interactive + }; + + foreach (var originalValue in originalMgmtValues) + { + // Act + var psValue = Utils.Utils.FromMgmtLoginMode(originalValue); + var roundTripValue = Utils.Utils.ToMgmtLoginMode(psValue); + + // Assert + Assert.NotNull(roundTripValue); + Assert.Equal(originalValue, roundTripValue.Value); + } + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void RoundTripConversion_NullHandling_WorksCorrectly() + { + // This test verifies null handling in round-trip conversions + + // Arrange + Microsoft.Azure.Batch.Common.LoginMode? nullPsValue = null; + LoginMode? nullMgmtValue = null; + + // Act + var mgmtFromNullPs = Utils.Utils.ToMgmtLoginMode(nullPsValue); + var psFromNullMgmt = Utils.Utils.FromMgmtLoginMode(nullMgmtValue); + + // Assert + Assert.Null(mgmtFromNullPs); + Assert.Null(psFromNullMgmt); + } + + #endregion + + #region Enum Value Verification Tests + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void LoginMode_VerifyEnumMemberCount_EnsuresAllValuesHandled() + { + // This test helps ensure that if new enum values are added, the conversion methods are updated + + // Arrange + var psLoginModeValues = Enum.GetValues(typeof(Microsoft.Azure.Batch.Common.LoginMode)); + var mgmtLoginModeValues = Enum.GetValues(typeof(LoginMode)); + + // Act & Assert + // Verify that both enums have the same number of values (assuming 1:1 mapping) + Assert.Equal(psLoginModeValues.Length, mgmtLoginModeValues.Length); + + // Verify that each PS enum value can be converted successfully + foreach (Microsoft.Azure.Batch.Common.LoginMode psValue in psLoginModeValues) + { + var result = Utils.Utils.ToMgmtLoginMode(psValue); + Assert.NotNull(result); + Assert.True(Enum.IsDefined(typeof(LoginMode), result.Value)); + } + + // Verify that each management enum value can be converted successfully + foreach (LoginMode mgmtValue in mgmtLoginModeValues) + { + var result = Utils.Utils.FromMgmtLoginMode(mgmtValue); + Assert.NotNull(result); + Assert.True(Enum.IsDefined(typeof(Microsoft.Azure.Batch.Common.LoginMode), result.Value)); + } + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void LoginMode_BijectiveMapping_EnsuresUniqueConversion() + { + // This test verifies that the mapping is bijective (one-to-one) + + // Arrange + var psValues = new[] + { + Microsoft.Azure.Batch.Common.LoginMode.Batch, + Microsoft.Azure.Batch.Common.LoginMode.Interactive + }; + + var mgmtValues = new[] + { + LoginMode.Batch, + LoginMode.Interactive + }; + + // Act - Convert PS to Management + var convertedMgmtValues = new LoginMode?[psValues.Length]; + for (int i = 0; i < psValues.Length; i++) + { + convertedMgmtValues[i] = Utils.Utils.ToMgmtLoginMode(psValues[i]); + } + + // Act - Convert Management to PS + var convertedPsValues = new Microsoft.Azure.Batch.Common.LoginMode?[mgmtValues.Length]; + for (int i = 0; i < mgmtValues.Length; i++) + { + convertedPsValues[i] = Utils.Utils.FromMgmtLoginMode(mgmtValues[i]); + } + + // Assert - Each management enum value should be unique (no duplicates) + var distinctMgmtValues = convertedMgmtValues.Where(v => v.HasValue).Select(v => v.Value).Distinct().ToArray(); + Assert.Equal(convertedMgmtValues.Count(v => v.HasValue), distinctMgmtValues.Length); + + // Assert - Each PS enum value should be unique (no duplicates) + var distinctPsValues = convertedPsValues.Where(v => v.HasValue).Select(v => v.Value).Distinct().ToArray(); + Assert.Equal(convertedPsValues.Count(v => v.HasValue), distinctPsValues.Length); + } + + #endregion + + #region Integration Tests + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void LoginModeConversions_BothDirections_MaintainSemanticEquivalence() + { + // This test ensures that the semantic meaning is preserved across conversions + + // Test Batch mode semantics - Use Azure Batch account credentials + var psBatch = Microsoft.Azure.Batch.Common.LoginMode.Batch; + var mgmtBatch = Utils.Utils.ToMgmtLoginMode(psBatch); + var backToPs = Utils.Utils.FromMgmtLoginMode(mgmtBatch); + + Assert.NotNull(mgmtBatch); + Assert.Equal(LoginMode.Batch, mgmtBatch.Value); + Assert.NotNull(backToPs); + Assert.Equal(psBatch, backToPs.Value); + + // Test Interactive mode semantics - Interactive user authentication + var psInteractive = Microsoft.Azure.Batch.Common.LoginMode.Interactive; + var mgmtInteractive = Utils.Utils.ToMgmtLoginMode(psInteractive); + var backToPsInteractive = Utils.Utils.FromMgmtLoginMode(mgmtInteractive); + + Assert.NotNull(mgmtInteractive); + Assert.Equal(LoginMode.Interactive, mgmtInteractive.Value); + Assert.NotNull(backToPsInteractive); + Assert.Equal(psInteractive, backToPsInteractive.Value); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void LoginModeConversions_NullabilityHandling_VerifyBehavior() + { + // This test verifies the nullable handling in these conversion methods + + // ToMgmtLoginMode returns null for null input + Microsoft.Azure.Batch.Common.LoginMode? nullInput = null; + var result = Utils.Utils.ToMgmtLoginMode(nullInput); + Assert.Null(result); + + // FromMgmtLoginMode returns null for null input + LoginMode? nullMgmtInput = null; + var mgmtResult = Utils.Utils.FromMgmtLoginMode(nullMgmtInput); + Assert.Null(mgmtResult); + + // Both methods handle nullable types correctly + LoginMode? nullableInteractive = LoginMode.Interactive; + var nonNullResult = Utils.Utils.FromMgmtLoginMode(nullableInteractive); + Assert.NotNull(nonNullResult); + Assert.Equal(Microsoft.Azure.Batch.Common.LoginMode.Interactive, nonNullResult.Value); + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void LoginModeConversions_BatchAuthenticationContext_VerifyCorrectUsage() + { + // This test validates the conversions work correctly in the context of Batch authentication + // LoginMode is used to specify authentication method for Azure Batch operations + + // Arrange - Test with realistic Batch authentication scenarios + var authenticationScenarios = new[] + { + // Batch account authentication using account keys or certificates + new { + LoginMode = Microsoft.Azure.Batch.Common.LoginMode.Batch, + Description = "Azure Batch account authentication for automated scripts and services" + }, + // Interactive authentication for user-initiated operations + new { + LoginMode = Microsoft.Azure.Batch.Common.LoginMode.Interactive, + Description = "Interactive authentication for user sessions and development scenarios" + } + }; + + foreach (var scenario in authenticationScenarios) + { + // Act + var mgmtLoginMode = Utils.Utils.ToMgmtLoginMode(scenario.LoginMode); + + // Assert - Should convert correctly for Batch authentication configuration + Assert.NotNull(mgmtLoginMode); + + var expectedMgmtMode = scenario.LoginMode == Microsoft.Azure.Batch.Common.LoginMode.Batch + ? LoginMode.Batch + : LoginMode.Interactive; + Assert.Equal(expectedMgmtMode, mgmtLoginMode.Value); + + // Verify round-trip conversion maintains authentication semantics + var backToPs = Utils.Utils.FromMgmtLoginMode(mgmtLoginMode); + Assert.NotNull(backToPs); + Assert.Equal(scenario.LoginMode, backToPs.Value); + } + } + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void LoginModeConversions_DirectCastingBehavior_VerifyImplementation() + { + // This test verifies that the methods use direct casting as implemented + // This is important because it ensures the enum values have the same underlying representation + + // Test that conversion preserves underlying integer values + foreach (Microsoft.Azure.Batch.Common.LoginMode psValue in Enum.GetValues(typeof(Microsoft.Azure.Batch.Common.LoginMode))) + { + var mgmtResult = Utils.Utils.ToMgmtLoginMode(psValue); + Assert.NotNull(mgmtResult); + Assert.Equal((int)psValue, (int)mgmtResult.Value); + } + + foreach (LoginMode mgmtValue in Enum.GetValues(typeof(LoginMode))) + { + var psResult = Utils.Utils.FromMgmtLoginMode(mgmtValue); + Assert.NotNull(psResult); + Assert.Equal((int)mgmtValue, (int)psResult.Value); + } + } + + #endregion + + #region Performance Tests + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void LoginModeConversions_PerformanceTest_ExecutesQuickly() + { + // This test ensures the conversions are efficient with multiple operations + + // Arrange + var psLoginModes = new Microsoft.Azure.Batch.Common.LoginMode[50]; + var mgmtLoginModes = new LoginMode[50]; + + for (int i = 0; i < 50; i++) + { + psLoginModes[i] = i % 2 == 0 + ? Microsoft.Azure.Batch.Common.LoginMode.Batch + : Microsoft.Azure.Batch.Common.LoginMode.Interactive; + + mgmtLoginModes[i] = i % 2 == 0 + ? LoginMode.Batch + : LoginMode.Interactive; + } + + // Act & Assert - Multiple conversions should complete without delay + for (int i = 0; i < 10; i++) + { + foreach (var psMode in psLoginModes) + { + var mgmtResult = Utils.Utils.ToMgmtLoginMode(psMode); + Assert.NotNull(mgmtResult); + } + + foreach (var mgmtMode in mgmtLoginModes) + { + var psResult = Utils.Utils.FromMgmtLoginMode(mgmtMode); + Assert.NotNull(psResult); + } + } + } + + #endregion + + #region Real-world Scenario Tests + + [Fact] + [Trait(Category.AcceptanceType, Category.CheckIn)] + public void LoginModeConversions_BatchServiceIntegration_VerifySemantics() + { + // This test validates the conversions work correctly in real Azure Batch service scenarios + + // Arrange - Test scenarios matching actual Azure Batch usage patterns + var serviceScenarios = new[] + { + // Automated batch processing with service accounts + new { + LoginMode = Microsoft.Azure.Batch.Common.LoginMode.Batch, + UseCase = "Automated data processing jobs using Azure Batch account credentials", + Context = "Production workloads, CI/CD pipelines, scheduled jobs" + }, + // Developer and user scenarios + new { + LoginMode = Microsoft.Azure.Batch.Common.LoginMode.Interactive, + UseCase = "Interactive development and testing of batch workloads", + Context = "Development environments, manual job submission, debugging" + } + }; + + foreach (var scenario in serviceScenarios) + { + // Act - Test conversion in the context of Azure Batch service integration + var mgmtLoginMode = Utils.Utils.ToMgmtLoginMode(scenario.LoginMode); + var roundTripPs = Utils.Utils.FromMgmtLoginMode(mgmtLoginMode); + + // Assert - Verify service integration semantics are preserved + Assert.NotNull(mgmtLoginMode); + Assert.NotNull(roundTripPs); + + var expectedMgmtMode = scenario.LoginMode == Microsoft.Azure.Batch.Common.LoginMode.Batch + ? LoginMode.Batch + : LoginMode.Interactive; + + Assert.Equal(expectedMgmtMode, mgmtLoginMode.Value); + Assert.Equal(scenario.LoginMode, roundTripPs.Value); + + // Verify that authentication mode semantics are maintained + if (scenario.LoginMode == Microsoft.Azure.Batch.Common.LoginMode.Batch) + { + Assert.Equal(LoginMode.Batch, mgmtLoginMode.Value); + // Batch mode should be used for service-to-service authentication + } + else + { + Assert.Equal(LoginMode.Interactive, mgmtLoginMode.Value); + // Interactive mode should be used for user authentication + } + } + } + + #endregion + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Test/Utils/UtilsNetworkSecurityGroupRuleAccessTests.cs b/src/Batch/Batch.Test/Utils/UtilsNetworkSecurityGroupRuleAccessTests.cs new file mode 100644 index 000000000000..4a6b2f9a67b7 --- /dev/null +++ b/src/Batch/Batch.Test/Utils/UtilsNetworkSecurityGroupRuleAccessTests.cs @@ -0,0 +1,643 @@ +// ----------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ----------------------------------------------------------------------------- + +using Microsoft.Azure.Commands.Batch.Utils; +using Microsoft.Azure.Management.Batch.Models; +using System; +using System.Linq; +using Xunit; + +namespace Microsoft.Azure.Commands.Batch.Test.ModelsConversions +{ + public class UtilsNetworkSecurityGroupRuleAccessTests + { + #region ToMgmtNetworkSecurityRuleAccess Tests + + [Fact] + public void ToMgmtNetworkSecurityRuleAccess_Allow_ReturnsAllow() + { + // Arrange + var psAccess = Microsoft.Azure.Batch.Common.NetworkSecurityGroupRuleAccess.Allow; + + // Act + var result = Utils.Utils.ToMgmtNetworkSecurityRuleAccess(psAccess); + + // Assert + Assert.Equal(NetworkSecurityGroupRuleAccess.Allow, result); + } + + [Fact] + public void ToMgmtNetworkSecurityRuleAccess_Deny_ReturnsDeny() + { + // Arrange + var psAccess = Microsoft.Azure.Batch.Common.NetworkSecurityGroupRuleAccess.Deny; + + // Act + var result = Utils.Utils.ToMgmtNetworkSecurityRuleAccess(psAccess); + + // Assert + Assert.Equal(NetworkSecurityGroupRuleAccess.Deny, result); + } + + [Theory] + [InlineData(Microsoft.Azure.Batch.Common.NetworkSecurityGroupRuleAccess.Allow, NetworkSecurityGroupRuleAccess.Allow)] + [InlineData(Microsoft.Azure.Batch.Common.NetworkSecurityGroupRuleAccess.Deny, NetworkSecurityGroupRuleAccess.Deny)] + public void ToMgmtNetworkSecurityRuleAccess_AllValidValues_ReturnsCorrectMapping( + Microsoft.Azure.Batch.Common.NetworkSecurityGroupRuleAccess input, + NetworkSecurityGroupRuleAccess expected) + { + // Act + var result = Utils.Utils.ToMgmtNetworkSecurityRuleAccess(input); + + // Assert + Assert.Equal(expected, result); + } + + [Fact] + public void ToMgmtNetworkSecurityRuleAccess_DefaultValue_HandlesCorrectly() + { + // Arrange + var defaultValue = default(Microsoft.Azure.Batch.Common.NetworkSecurityGroupRuleAccess); + + // Act + var result = Utils.Utils.ToMgmtNetworkSecurityRuleAccess(defaultValue); + + // Assert + // Default NetworkSecurityGroupRuleAccess is typically Allow (0) + Assert.Equal(NetworkSecurityGroupRuleAccess.Allow, result); + } + + [Fact] + public void ToMgmtNetworkSecurityRuleAccess_EnumValueConsistency_EnsuresCorrectEnumMapping() + { + // This test ensures that the mapping logic correctly handles all defined enum values + // and verifies that the conversion maintains the semantic meaning of each access type + + // Arrange & Act & Assert + // Allow: Allow access through the network security group rule + var allowResult = Utils.Utils.ToMgmtNetworkSecurityRuleAccess(Microsoft.Azure.Batch.Common.NetworkSecurityGroupRuleAccess.Allow); + Assert.Equal(NetworkSecurityGroupRuleAccess.Allow, allowResult); + + // Deny: Deny access through the network security group rule + var denyResult = Utils.Utils.ToMgmtNetworkSecurityRuleAccess(Microsoft.Azure.Batch.Common.NetworkSecurityGroupRuleAccess.Deny); + Assert.Equal(NetworkSecurityGroupRuleAccess.Deny, denyResult); + } + + [Fact] + public void ToMgmtNetworkSecurityRuleAccess_StaticMethod_DoesNotRequireInstance() + { + // This test verifies that the method is properly static and can be called without instantiation + + // Arrange + var psAccess = Microsoft.Azure.Batch.Common.NetworkSecurityGroupRuleAccess.Deny; + + // Act - Call static method directly on class + var result = Utils.Utils.ToMgmtNetworkSecurityRuleAccess(psAccess); + + // Assert + Assert.Equal(NetworkSecurityGroupRuleAccess.Deny, result); + } + + [Fact] + public void ToMgmtNetworkSecurityRuleAccess_PerformanceTest_ExecutesQuickly() + { + // This test ensures the enum conversion is efficient for all values + + // Arrange + var enumValues = new[] + { + Microsoft.Azure.Batch.Common.NetworkSecurityGroupRuleAccess.Allow, + Microsoft.Azure.Batch.Common.NetworkSecurityGroupRuleAccess.Deny + }; + + // Act & Assert - Each conversion should complete without delay + foreach (var value in enumValues) + { + var result = Utils.Utils.ToMgmtNetworkSecurityRuleAccess(value); + Assert.True(Enum.IsDefined(typeof(NetworkSecurityGroupRuleAccess), result)); + } + } + + [Fact] + public void ToMgmtNetworkSecurityRuleAccess_CastingBehavior_VerifyDirectCast() + { + // This test verifies that the conversion uses direct casting as implemented + + // Arrange + var psAllow = Microsoft.Azure.Batch.Common.NetworkSecurityGroupRuleAccess.Allow; + var psDeny = Microsoft.Azure.Batch.Common.NetworkSecurityGroupRuleAccess.Deny; + + // Act + var mgmtAllow = Utils.Utils.ToMgmtNetworkSecurityRuleAccess(psAllow); + var mgmtDeny = Utils.Utils.ToMgmtNetworkSecurityRuleAccess(psDeny); + + // Assert - Verify that the underlying values match (direct cast behavior) + Assert.Equal((int)psAllow, (int)mgmtAllow); + Assert.Equal((int)psDeny, (int)mgmtDeny); + } + + #endregion + + #region FromMgmtNetworkSecurityRuleAccess Tests + + [Fact] + public void FromMgmtNetworkSecurityRuleAccess_Allow_ReturnsAllow() + { + // Arrange + var mgmtAccess = NetworkSecurityGroupRuleAccess.Allow; + + // Act + var result = Utils.Utils.FromMgmtNetworkSecurityRuleAccess(mgmtAccess); + + // Assert + Assert.Equal(Microsoft.Azure.Batch.Common.NetworkSecurityGroupRuleAccess.Allow, result); + } + + [Fact] + public void FromMgmtNetworkSecurityRuleAccess_Deny_ReturnsDeny() + { + // Arrange + var mgmtAccess = NetworkSecurityGroupRuleAccess.Deny; + + // Act + var result = Utils.Utils.FromMgmtNetworkSecurityRuleAccess(mgmtAccess); + + // Assert + Assert.Equal(Microsoft.Azure.Batch.Common.NetworkSecurityGroupRuleAccess.Deny, result); + } + + [Theory] + [InlineData(NetworkSecurityGroupRuleAccess.Allow, Microsoft.Azure.Batch.Common.NetworkSecurityGroupRuleAccess.Allow)] + [InlineData(NetworkSecurityGroupRuleAccess.Deny, Microsoft.Azure.Batch.Common.NetworkSecurityGroupRuleAccess.Deny)] + public void FromMgmtNetworkSecurityRuleAccess_AllValidValues_ReturnsCorrectMapping( + NetworkSecurityGroupRuleAccess input, + Microsoft.Azure.Batch.Common.NetworkSecurityGroupRuleAccess expected) + { + // Act + var result = Utils.Utils.FromMgmtNetworkSecurityRuleAccess(input); + + // Assert + Assert.Equal(expected, result); + } + + [Fact] + public void FromMgmtNetworkSecurityRuleAccess_DefaultValue_HandlesCorrectly() + { + // Arrange + var defaultValue = default(NetworkSecurityGroupRuleAccess); + + // Act + var result = Utils.Utils.FromMgmtNetworkSecurityRuleAccess(defaultValue); + + // Assert + // Default NetworkSecurityGroupRuleAccess is typically Allow (0) + Assert.Equal(Microsoft.Azure.Batch.Common.NetworkSecurityGroupRuleAccess.Allow, result); + } + + [Fact] + public void FromMgmtNetworkSecurityRuleAccess_EnumValueConsistency_EnsuresCorrectEnumMapping() + { + // This test ensures that the mapping logic correctly handles all defined enum values + // and verifies that the conversion maintains the semantic meaning of each access type + + // Arrange & Act & Assert + // Allow: Allow access through the network security group rule + var allowResult = Utils.Utils.FromMgmtNetworkSecurityRuleAccess(NetworkSecurityGroupRuleAccess.Allow); + Assert.Equal(Microsoft.Azure.Batch.Common.NetworkSecurityGroupRuleAccess.Allow, allowResult); + + // Deny: Deny access through the network security group rule + var denyResult = Utils.Utils.FromMgmtNetworkSecurityRuleAccess(NetworkSecurityGroupRuleAccess.Deny); + Assert.Equal(Microsoft.Azure.Batch.Common.NetworkSecurityGroupRuleAccess.Deny, denyResult); + } + + [Fact] + public void FromMgmtNetworkSecurityRuleAccess_StaticMethod_DoesNotRequireInstance() + { + // This test verifies that the method is properly static and can be called without instantiation + + // Arrange + var mgmtAccess = NetworkSecurityGroupRuleAccess.Allow; + + // Act - Call static method directly on class + var result = Utils.Utils.FromMgmtNetworkSecurityRuleAccess(mgmtAccess); + + // Assert + Assert.Equal(Microsoft.Azure.Batch.Common.NetworkSecurityGroupRuleAccess.Allow, result); + } + + [Fact] + public void FromMgmtNetworkSecurityRuleAccess_PerformanceTest_ExecutesQuickly() + { + // This test ensures the enum conversion is efficient for all values + + // Arrange + var enumValues = new[] + { + NetworkSecurityGroupRuleAccess.Allow, + NetworkSecurityGroupRuleAccess.Deny + }; + + // Act & Assert - Each conversion should complete without delay + foreach (var value in enumValues) + { + var result = Utils.Utils.FromMgmtNetworkSecurityRuleAccess(value); + Assert.True(Enum.IsDefined(typeof(Microsoft.Azure.Batch.Common.NetworkSecurityGroupRuleAccess), result)); + } + } + + [Fact] + public void FromMgmtNetworkSecurityRuleAccess_CastingBehavior_VerifyDirectCast() + { + // This test verifies that the conversion uses direct casting as implemented + + // Arrange + var mgmtAllow = NetworkSecurityGroupRuleAccess.Allow; + var mgmtDeny = NetworkSecurityGroupRuleAccess.Deny; + + // Act + var psAllow = Utils.Utils.FromMgmtNetworkSecurityRuleAccess(mgmtAllow); + var psDeny = Utils.Utils.FromMgmtNetworkSecurityRuleAccess(mgmtDeny); + + // Assert - Verify that the underlying values match (direct cast behavior) + Assert.Equal((int)mgmtAllow, (int)psAllow); + Assert.Equal((int)mgmtDeny, (int)psDeny); + } + + #endregion + + #region Round-trip Conversion Tests + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesAllowValue() + { + // Arrange + var originalPsAccess = Microsoft.Azure.Batch.Common.NetworkSecurityGroupRuleAccess.Allow; + + // Act + var mgmtAccess = Utils.Utils.ToMgmtNetworkSecurityRuleAccess(originalPsAccess); + var roundTripPsAccess = Utils.Utils.FromMgmtNetworkSecurityRuleAccess(mgmtAccess); + + // Assert + Assert.Equal(originalPsAccess, roundTripPsAccess); + } + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesDenyValue() + { + // Arrange + var originalPsAccess = Microsoft.Azure.Batch.Common.NetworkSecurityGroupRuleAccess.Deny; + + // Act + var mgmtAccess = Utils.Utils.ToMgmtNetworkSecurityRuleAccess(originalPsAccess); + var roundTripPsAccess = Utils.Utils.FromMgmtNetworkSecurityRuleAccess(mgmtAccess); + + // Assert + Assert.Equal(originalPsAccess, roundTripPsAccess); + } + + [Theory] + [InlineData(Microsoft.Azure.Batch.Common.NetworkSecurityGroupRuleAccess.Allow)] + [InlineData(Microsoft.Azure.Batch.Common.NetworkSecurityGroupRuleAccess.Deny)] + public void RoundTripConversion_AllValidValues_PreservesOriginalValue( + Microsoft.Azure.Batch.Common.NetworkSecurityGroupRuleAccess originalAccess) + { + // Act + var mgmtAccess = Utils.Utils.ToMgmtNetworkSecurityRuleAccess(originalAccess); + var roundTripAccess = Utils.Utils.FromMgmtNetworkSecurityRuleAccess(mgmtAccess); + + // Assert + Assert.Equal(originalAccess, roundTripAccess); + } + + [Fact] + public void RoundTripConversion_FromMgmtAndToMgmt_PreservesValues() + { + // Arrange + var originalMgmtValues = new[] + { + NetworkSecurityGroupRuleAccess.Allow, + NetworkSecurityGroupRuleAccess.Deny + }; + + foreach (var originalValue in originalMgmtValues) + { + // Act + var psValue = Utils.Utils.FromMgmtNetworkSecurityRuleAccess(originalValue); + var roundTripValue = Utils.Utils.ToMgmtNetworkSecurityRuleAccess(psValue); + + // Assert + Assert.Equal(originalValue, roundTripValue); + } + } + + #endregion + + #region Enum Value Verification Tests + + [Fact] + public void NetworkSecurityGroupRuleAccess_VerifyEnumMemberCount_EnsuresAllValuesHandled() + { + // This test helps ensure that if new enum values are added, the conversion methods are updated + + // Arrange + var psAccessValues = Enum.GetValues(typeof(Microsoft.Azure.Batch.Common.NetworkSecurityGroupRuleAccess)); + var mgmtAccessValues = Enum.GetValues(typeof(NetworkSecurityGroupRuleAccess)); + + // Act & Assert + // Verify that both enums have the same number of values (assuming 1:1 mapping) + Assert.Equal(psAccessValues.Length, mgmtAccessValues.Length); + + // Verify that each PS enum value can be converted successfully + foreach (Microsoft.Azure.Batch.Common.NetworkSecurityGroupRuleAccess psValue in psAccessValues) + { + var result = Utils.Utils.ToMgmtNetworkSecurityRuleAccess(psValue); + Assert.True(Enum.IsDefined(typeof(NetworkSecurityGroupRuleAccess), result)); + } + + // Verify that each management enum value can be converted successfully + foreach (NetworkSecurityGroupRuleAccess mgmtValue in mgmtAccessValues) + { + var result = Utils.Utils.FromMgmtNetworkSecurityRuleAccess(mgmtValue); + Assert.True(Enum.IsDefined(typeof(Microsoft.Azure.Batch.Common.NetworkSecurityGroupRuleAccess), result)); + } + } + + [Fact] + public void NetworkSecurityGroupRuleAccess_BijectiveMapping_EnsuresUniqueConversion() + { + // This test verifies that the mapping is bijective (one-to-one) + + // Arrange + var psValues = new[] + { + Microsoft.Azure.Batch.Common.NetworkSecurityGroupRuleAccess.Allow, + Microsoft.Azure.Batch.Common.NetworkSecurityGroupRuleAccess.Deny + }; + + var mgmtValues = new[] + { + NetworkSecurityGroupRuleAccess.Allow, + NetworkSecurityGroupRuleAccess.Deny + }; + + // Act - Convert PS to Management + var convertedMgmtValues = new NetworkSecurityGroupRuleAccess[psValues.Length]; + for (int i = 0; i < psValues.Length; i++) + { + convertedMgmtValues[i] = Utils.Utils.ToMgmtNetworkSecurityRuleAccess(psValues[i]); + } + + // Act - Convert Management to PS + var convertedPsValues = new Microsoft.Azure.Batch.Common.NetworkSecurityGroupRuleAccess[mgmtValues.Length]; + for (int i = 0; i < mgmtValues.Length; i++) + { + convertedPsValues[i] = Utils.Utils.FromMgmtNetworkSecurityRuleAccess(mgmtValues[i]); + } + + // Assert - Each management enum value should be unique (no duplicates) + var distinctMgmtValues = convertedMgmtValues.Distinct().ToArray(); + Assert.Equal(convertedMgmtValues.Length, distinctMgmtValues.Length); + + // Assert - Each PS enum value should be unique (no duplicates) + var distinctPsValues = convertedPsValues.Distinct().ToArray(); + Assert.Equal(convertedPsValues.Length, distinctPsValues.Length); + } + + #endregion + + #region Integration Tests + + [Fact] + public void NetworkSecurityGroupRuleAccessConversions_BothDirections_MaintainSemanticEquivalence() + { + // This test ensures that the semantic meaning is preserved across conversions + + // Test Allow semantics - Grant access through the network security group rule + var psAllow = Microsoft.Azure.Batch.Common.NetworkSecurityGroupRuleAccess.Allow; + var mgmtAllow = Utils.Utils.ToMgmtNetworkSecurityRuleAccess(psAllow); + var backToPs = Utils.Utils.FromMgmtNetworkSecurityRuleAccess(mgmtAllow); + + Assert.Equal(NetworkSecurityGroupRuleAccess.Allow, mgmtAllow); + Assert.Equal(psAllow, backToPs); + + // Test Deny semantics - Block access through the network security group rule + var psDeny = Microsoft.Azure.Batch.Common.NetworkSecurityGroupRuleAccess.Deny; + var mgmtDeny = Utils.Utils.ToMgmtNetworkSecurityRuleAccess(psDeny); + var backToPsDeny = Utils.Utils.FromMgmtNetworkSecurityRuleAccess(mgmtDeny); + + Assert.Equal(NetworkSecurityGroupRuleAccess.Deny, mgmtDeny); + Assert.Equal(psDeny, backToPsDeny); + } + + [Fact] + public void NetworkSecurityGroupRuleAccessConversions_NetworkSecurityContext_VerifyCorrectUsage() + { + // This test validates the conversions work correctly in the context of Batch network security configuration + // NetworkSecurityGroupRuleAccess is used to specify access control for network security group rules in Azure Batch + + // Arrange - Test with realistic Batch network security scenarios + var networkSecurityScenarios = new[] + { + // Allow - For permissive network rules allowing specific traffic + new { + Access = Microsoft.Azure.Batch.Common.NetworkSecurityGroupRuleAccess.Allow, + Description = "Allow access for authorized network traffic and connections" + }, + // Deny - For restrictive network rules blocking specific traffic + new { + Access = Microsoft.Azure.Batch.Common.NetworkSecurityGroupRuleAccess.Deny, + Description = "Deny access to block unauthorized network traffic and connections" + } + }; + + foreach (var scenario in networkSecurityScenarios) + { + // Act + var mgmtAccess = Utils.Utils.ToMgmtNetworkSecurityRuleAccess(scenario.Access); + + // Assert - Should convert correctly for Batch network security configuration + var expectedMgmtAccess = scenario.Access == Microsoft.Azure.Batch.Common.NetworkSecurityGroupRuleAccess.Allow + ? NetworkSecurityGroupRuleAccess.Allow + : NetworkSecurityGroupRuleAccess.Deny; + Assert.Equal(expectedMgmtAccess, mgmtAccess); + + // Verify round-trip conversion maintains network security semantics + var backToPs = Utils.Utils.FromMgmtNetworkSecurityRuleAccess(mgmtAccess); + Assert.Equal(scenario.Access, backToPs); + } + } + + [Fact] + public void NetworkSecurityGroupRuleAccessConversions_DirectCastingBehavior_VerifyImplementation() + { + // This test verifies that the methods use direct casting as implemented + // This is important because it ensures the enum values have the same underlying representation + + // Test that conversion preserves underlying integer values + foreach (Microsoft.Azure.Batch.Common.NetworkSecurityGroupRuleAccess psValue in Enum.GetValues(typeof(Microsoft.Azure.Batch.Common.NetworkSecurityGroupRuleAccess))) + { + var mgmtResult = Utils.Utils.ToMgmtNetworkSecurityRuleAccess(psValue); + Assert.Equal((int)psValue, (int)mgmtResult); + } + + foreach (NetworkSecurityGroupRuleAccess mgmtValue in Enum.GetValues(typeof(NetworkSecurityGroupRuleAccess))) + { + var psResult = Utils.Utils.FromMgmtNetworkSecurityRuleAccess(mgmtValue); + Assert.Equal((int)mgmtValue, (int)psResult); + } + } + + [Fact] + public void NetworkSecurityGroupRuleAccessConversions_InboundNatPoolContext_VerifySemantics() + { + // This test validates the semantic usage in the context of inbound NAT pool network security group rules + // NetworkSecurityGroupRuleAccess determines whether traffic is allowed or denied for specific network security group rules + + // Allow access semantics - Permit specified network traffic + var allowAccess = Microsoft.Azure.Batch.Common.NetworkSecurityGroupRuleAccess.Allow; + var mgmtAllowAccess = Utils.Utils.ToMgmtNetworkSecurityRuleAccess(allowAccess); + + Assert.Equal(NetworkSecurityGroupRuleAccess.Allow, mgmtAllowAccess); + + // Allow access ensures that matching network traffic is permitted + // Suitable for enabling connectivity to specific services, ports, or IP ranges + + // Deny access semantics - Block specified network traffic + var denyAccess = Microsoft.Azure.Batch.Common.NetworkSecurityGroupRuleAccess.Deny; + var mgmtDenyAccess = Utils.Utils.ToMgmtNetworkSecurityRuleAccess(denyAccess); + + Assert.Equal(NetworkSecurityGroupRuleAccess.Deny, mgmtDenyAccess); + + // Deny access ensures that matching network traffic is blocked + // Suitable for security hardening and blocking unwanted connections + + // Verify semantic preservation through round-trip + var allowRoundTrip = Utils.Utils.FromMgmtNetworkSecurityRuleAccess(mgmtAllowAccess); + var denyRoundTrip = Utils.Utils.FromMgmtNetworkSecurityRuleAccess(mgmtDenyAccess); + + Assert.Equal(allowAccess, allowRoundTrip); + Assert.Equal(denyAccess, denyRoundTrip); + } + + #endregion + + #region Edge Case Tests + + [Fact] + public void NetworkSecurityGroupRuleAccessConversions_TypeSafety_VerifyCorrectTypes() + { + // Test that conversions return the correct types and handle casting properly + + // Arrange + var psAccess = Microsoft.Azure.Batch.Common.NetworkSecurityGroupRuleAccess.Deny; + var mgmtAccess = NetworkSecurityGroupRuleAccess.Allow; + + // Act + var mgmtResult = Utils.Utils.ToMgmtNetworkSecurityRuleAccess(psAccess); + var psResult = Utils.Utils.FromMgmtNetworkSecurityRuleAccess(mgmtAccess); + + // Assert - Verify correct types are returned + Assert.IsType(mgmtResult); + Assert.IsType(psResult); + Assert.Equal(NetworkSecurityGroupRuleAccess.Deny, mgmtResult); + Assert.Equal(Microsoft.Azure.Batch.Common.NetworkSecurityGroupRuleAccess.Allow, psResult); + } + + [Fact] + public void NetworkSecurityGroupRuleAccessConversions_EnumValueEquivalence_VerifyDirectCasting() + { + // Test that the enum values are equivalent and casting works as expected + + // Arrange & Act - Test direct casting behavior + var psAllow = Microsoft.Azure.Batch.Common.NetworkSecurityGroupRuleAccess.Allow; + + var mgmtAllowDirect = (NetworkSecurityGroupRuleAccess)psAllow; + var mgmtAllowUtils = Utils.Utils.ToMgmtNetworkSecurityRuleAccess(psAllow); + + // Assert - Utils methods should behave the same as direct casting + Assert.Equal(mgmtAllowDirect, mgmtAllowUtils); + Assert.Equal(NetworkSecurityGroupRuleAccess.Allow, mgmtAllowUtils); + } + + [Fact] + public void NetworkSecurityGroupRuleAccessConversions_DefaultValueBehavior_VerifyConsistency() + { + // Test that default value handling is consistent + + // Arrange + var defaultPsAccess = default(Microsoft.Azure.Batch.Common.NetworkSecurityGroupRuleAccess); + var defaultMgmtAccess = default(NetworkSecurityGroupRuleAccess); + + // Act + var mgmtFromDefault = Utils.Utils.ToMgmtNetworkSecurityRuleAccess(defaultPsAccess); + var psFromDefault = Utils.Utils.FromMgmtNetworkSecurityRuleAccess(defaultMgmtAccess); + + // Assert - Both should resolve to Allow (typically the 0 value) + Assert.Equal(NetworkSecurityGroupRuleAccess.Allow, mgmtFromDefault); + Assert.Equal(Microsoft.Azure.Batch.Common.NetworkSecurityGroupRuleAccess.Allow, psFromDefault); + } + + #endregion + + #region Network Security Policy Semantics Tests + + [Fact] + public void NetworkSecurityGroupRuleAccessConversions_AllowSemantics_NetworkAccessControl() + { + // This test validates Allow access semantics are preserved in conversions + + // Arrange - Allow access for permissive network security policies + var psAllow = Microsoft.Azure.Batch.Common.NetworkSecurityGroupRuleAccess.Allow; + + // Act + var mgmtAllow = Utils.Utils.ToMgmtNetworkSecurityRuleAccess(psAllow); + var backToPs = Utils.Utils.FromMgmtNetworkSecurityRuleAccess(mgmtAllow); + + // Assert - Allow access semantics preserved + Assert.Equal(NetworkSecurityGroupRuleAccess.Allow, mgmtAllow); + Assert.Equal(Microsoft.Azure.Batch.Common.NetworkSecurityGroupRuleAccess.Allow, backToPs); + + // Allow access characteristics: + // - Permits matching network traffic + // - Used for enabling connectivity + // - Applied to authorized services and ports + // - Essential for application functionality + } + + [Fact] + public void NetworkSecurityGroupRuleAccessConversions_DenySemantics_NetworkSecurityHardening() + { + // This test validates Deny access semantics are preserved in conversions + + // Arrange - Deny access for restrictive network security policies + var psDeny = Microsoft.Azure.Batch.Common.NetworkSecurityGroupRuleAccess.Deny; + + // Act + var mgmtDeny = Utils.Utils.ToMgmtNetworkSecurityRuleAccess(psDeny); + var backToPs = Utils.Utils.FromMgmtNetworkSecurityRuleAccess(mgmtDeny); + + // Assert - Deny access semantics preserved + Assert.Equal(NetworkSecurityGroupRuleAccess.Deny, mgmtDeny); + Assert.Equal(Microsoft.Azure.Batch.Common.NetworkSecurityGroupRuleAccess.Deny, backToPs); + + // Deny access characteristics: + // - Blocks matching network traffic + // - Used for security hardening + // - Applied to unauthorized services and ports + // - Essential for security compliance + } + + #endregion + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Test/Utils/UtilsNodePlacementPolicyTypeTests.cs b/src/Batch/Batch.Test/Utils/UtilsNodePlacementPolicyTypeTests.cs new file mode 100644 index 000000000000..c8d1b09ce296 --- /dev/null +++ b/src/Batch/Batch.Test/Utils/UtilsNodePlacementPolicyTypeTests.cs @@ -0,0 +1,484 @@ +// ----------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ----------------------------------------------------------------------------- + +using Microsoft.Azure.Management.Batch.Models; +using System; +using Xunit; + +namespace Microsoft.Azure.Commands.Batch.Test.ModelsConversions +{ + public class UtilsNodePlacementPolicyTypeTests + { + #region toMgmtNodePlacementPolicyType Tests + + [Fact] + public void ToMgmtNodePlacementPolicyType_WithRegional_ReturnsCorrectMapping() + { + // Arrange + var psPolicy = Azure.Batch.Common.NodePlacementPolicyType.Regional; + + // Act + var result = Utils.Utils.toMgmtNodePlacementPolicyType(psPolicy); + + // Assert + Assert.Equal(NodePlacementPolicyType.Regional, result); + } + + [Fact] + public void ToMgmtNodePlacementPolicyType_WithZonal_ReturnsCorrectMapping() + { + // Arrange + var psPolicy = Azure.Batch.Common.NodePlacementPolicyType.Zonal; + + // Act + var result = Utils.Utils.toMgmtNodePlacementPolicyType(psPolicy); + + // Assert + Assert.Equal(NodePlacementPolicyType.Zonal, result); + } + + [Theory] + [InlineData(Azure.Batch.Common.NodePlacementPolicyType.Regional, NodePlacementPolicyType.Regional)] + [InlineData(Azure.Batch.Common.NodePlacementPolicyType.Zonal, NodePlacementPolicyType.Zonal)] + public void ToMgmtNodePlacementPolicyType_AllValidPolicyTypes_ReturnsCorrectMapping( + Azure.Batch.Common.NodePlacementPolicyType psPolicyType, + NodePlacementPolicyType expectedMgmtPolicyType) + { + // Act + var result = Utils.Utils.toMgmtNodePlacementPolicyType(psPolicyType); + + // Assert + Assert.Equal(expectedMgmtPolicyType, result); + } + + [Fact] + public void ToMgmtNodePlacementPolicyType_WithNullableRegional_ReturnsCorrectMapping() + { + // Arrange + Azure.Batch.Common.NodePlacementPolicyType? psPolicy = Azure.Batch.Common.NodePlacementPolicyType.Regional; + + // Act + var result = Utils.Utils.toMgmtNodePlacementPolicyType(psPolicy); + + // Assert + Assert.Equal(NodePlacementPolicyType.Regional, result); + } + + [Fact] + public void ToMgmtNodePlacementPolicyType_WithNullableZonal_ReturnsCorrectMapping() + { + // Arrange + Azure.Batch.Common.NodePlacementPolicyType? psPolicy = Azure.Batch.Common.NodePlacementPolicyType.Zonal; + + // Act + var result = Utils.Utils.toMgmtNodePlacementPolicyType(psPolicy); + + // Assert + Assert.Equal(NodePlacementPolicyType.Zonal, result); + } + + [Fact] + public void ToMgmtNodePlacementPolicyType_WithNull_ReturnsNull() + { + // Arrange + Azure.Batch.Common.NodePlacementPolicyType? psPolicy = null; + + // Act + var result = Utils.Utils.toMgmtNodePlacementPolicyType(psPolicy); + + // Assert + Assert.Null(result); + } + + [Fact] + public void ToMgmtNodePlacementPolicyType_RegionalSemantics_PreservesPlacementStrategy() + { + // Arrange - Regional strategy places nodes across multiple regions + var psPolicy = Azure.Batch.Common.NodePlacementPolicyType.Regional; + + // Act + var result = Utils.Utils.toMgmtNodePlacementPolicyType(psPolicy); + + // Assert + Assert.Equal(NodePlacementPolicyType.Regional, result); + // Regional semantics: Nodes are placed across multiple Azure regions for high availability + } + + [Fact] + public void ToMgmtNodePlacementPolicyType_ZonalSemantics_PreservesPlacementStrategy() + { + // Arrange - Zonal strategy places nodes within specific availability zones + var psPolicy = Azure.Batch.Common.NodePlacementPolicyType.Zonal; + + // Act + var result = Utils.Utils.toMgmtNodePlacementPolicyType(psPolicy); + + // Assert + Assert.Equal(NodePlacementPolicyType.Zonal, result); + // Zonal semantics: Nodes are placed within specific availability zones for fault tolerance + } + + #endregion + + #region fromMgmtNodePlacementPolicyType Tests + + [Fact] + public void FromMgmtNodePlacementPolicyType_WithRegional_ReturnsCorrectMapping() + { + // Arrange + var mgmtPolicy = NodePlacementPolicyType.Regional; + + // Act + var result = Utils.Utils.fromMgmtNodePlacementPolicyType(mgmtPolicy); + + // Assert + Assert.Equal(Azure.Batch.Common.NodePlacementPolicyType.Regional, result); + } + + [Fact] + public void FromMgmtNodePlacementPolicyType_WithZonal_ReturnsCorrectMapping() + { + // Arrange + var mgmtPolicy = NodePlacementPolicyType.Zonal; + + // Act + var result = Utils.Utils.fromMgmtNodePlacementPolicyType(mgmtPolicy); + + // Assert + Assert.Equal(Azure.Batch.Common.NodePlacementPolicyType.Zonal, result); + } + + [Theory] + [InlineData(NodePlacementPolicyType.Regional, Azure.Batch.Common.NodePlacementPolicyType.Regional)] + [InlineData(NodePlacementPolicyType.Zonal, Azure.Batch.Common.NodePlacementPolicyType.Zonal)] + public void FromMgmtNodePlacementPolicyType_AllValidPolicyTypes_ReturnsCorrectMapping( + NodePlacementPolicyType mgmtPolicyType, + Azure.Batch.Common.NodePlacementPolicyType expectedPsPolicyType) + { + // Act + var result = Utils.Utils.fromMgmtNodePlacementPolicyType(mgmtPolicyType); + + // Assert + Assert.Equal(expectedPsPolicyType, result); + } + + [Fact] + public void FromMgmtNodePlacementPolicyType_WithNullableRegional_ReturnsCorrectMapping() + { + // Arrange + NodePlacementPolicyType? mgmtPolicy = NodePlacementPolicyType.Regional; + + // Act + var result = Utils.Utils.fromMgmtNodePlacementPolicyType(mgmtPolicy); + + // Assert + Assert.Equal(Azure.Batch.Common.NodePlacementPolicyType.Regional, result); + } + + [Fact] + public void FromMgmtNodePlacementPolicyType_WithNullableZonal_ReturnsCorrectMapping() + { + // Arrange + NodePlacementPolicyType? mgmtPolicy = NodePlacementPolicyType.Zonal; + + // Act + var result = Utils.Utils.fromMgmtNodePlacementPolicyType(mgmtPolicy); + + // Assert + Assert.Equal(Azure.Batch.Common.NodePlacementPolicyType.Zonal, result); + } + + [Fact] + public void FromMgmtNodePlacementPolicyType_WithNull_ReturnsNull() + { + // Arrange + NodePlacementPolicyType? mgmtPolicy = null; + + // Act + var result = Utils.Utils.fromMgmtNodePlacementPolicyType(mgmtPolicy); + + // Assert + Assert.Null(result); + } + + [Fact] + public void FromMgmtNodePlacementPolicyType_RegionalSemantics_PreservesPlacementStrategy() + { + // Arrange + var mgmtPolicy = NodePlacementPolicyType.Regional; + + // Act + var result = Utils.Utils.fromMgmtNodePlacementPolicyType(mgmtPolicy); + + // Assert + Assert.Equal(Azure.Batch.Common.NodePlacementPolicyType.Regional, result); + // Regional semantics preserved: Multi-region placement for high availability + } + + [Fact] + public void FromMgmtNodePlacementPolicyType_ZonalSemantics_PreservesPlacementStrategy() + { + // Arrange + var mgmtPolicy = NodePlacementPolicyType.Zonal; + + // Act + var result = Utils.Utils.fromMgmtNodePlacementPolicyType(mgmtPolicy); + + // Assert + Assert.Equal(Azure.Batch.Common.NodePlacementPolicyType.Zonal, result); + // Zonal semantics preserved: Availability zone placement for fault tolerance + } + + #endregion + + #region Round-trip Conversion Tests + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesRegionalValue() + { + // Arrange + var originalPsPolicy = Azure.Batch.Common.NodePlacementPolicyType.Regional; + + // Act - Convert PS -> Management -> PS + var mgmtPolicy = Utils.Utils.toMgmtNodePlacementPolicyType(originalPsPolicy); + var roundTripPsPolicy = Utils.Utils.fromMgmtNodePlacementPolicyType(mgmtPolicy); + + // Assert - Should get back the original value + Assert.Equal(originalPsPolicy, roundTripPsPolicy); + Assert.Equal(Azure.Batch.Common.NodePlacementPolicyType.Regional, roundTripPsPolicy); + } + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesZonalValue() + { + // Arrange + var originalPsPolicy = Azure.Batch.Common.NodePlacementPolicyType.Zonal; + + // Act - Convert PS -> Management -> PS + var mgmtPolicy = Utils.Utils.toMgmtNodePlacementPolicyType(originalPsPolicy); + var roundTripPsPolicy = Utils.Utils.fromMgmtNodePlacementPolicyType(mgmtPolicy); + + // Assert - Should get back the original value + Assert.Equal(originalPsPolicy, roundTripPsPolicy); + Assert.Equal(Azure.Batch.Common.NodePlacementPolicyType.Zonal, roundTripPsPolicy); + } + + [Theory] + [InlineData(Azure.Batch.Common.NodePlacementPolicyType.Regional)] + [InlineData(Azure.Batch.Common.NodePlacementPolicyType.Zonal)] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesAllValidValues( + Azure.Batch.Common.NodePlacementPolicyType originalValue) + { + // Act - Convert PS -> Management -> PS + var mgmtValue = Utils.Utils.toMgmtNodePlacementPolicyType(originalValue); + var roundTripValue = Utils.Utils.fromMgmtNodePlacementPolicyType(mgmtValue); + + // Assert - Should get back the original value + Assert.Equal(originalValue, roundTripValue); + } + + [Fact] + public void RoundTripConversion_FromMgmtAndToMgmt_PreservesValues() + { + // This test verifies that converting Management -> PS -> Management preserves the original value + + // Arrange + var originalMgmtValues = new[] + { + NodePlacementPolicyType.Regional, + NodePlacementPolicyType.Zonal + }; + + foreach (var originalValue in originalMgmtValues) + { + // Act - Convert Management -> PS -> Management + var psValue = Utils.Utils.fromMgmtNodePlacementPolicyType(originalValue); + var roundTripValue = Utils.Utils.toMgmtNodePlacementPolicyType(psValue); + + // Assert - Should get back the original value + Assert.Equal(originalValue, roundTripValue); + } + } + + [Fact] + public void RoundTripConversion_WithNullableValues_PreservesNulls() + { + // Arrange + Azure.Batch.Common.NodePlacementPolicyType? nullPsPolicy = null; + NodePlacementPolicyType? nullMgmtPolicy = null; + + // Act + var mgmtFromNullPs = Utils.Utils.toMgmtNodePlacementPolicyType(nullPsPolicy); + var psFromNullMgmt = Utils.Utils.fromMgmtNodePlacementPolicyType(nullMgmtPolicy); + + // Assert + Assert.Null(mgmtFromNullPs); + Assert.Null(psFromNullMgmt); + } + + #endregion + + #region Integration Tests + + [Fact] + public void NodePlacementPolicyTypeConversions_BothDirections_MaintainSemanticEquivalence() + { + // This test ensures that the semantic meaning is preserved across conversions + + // Test Regional semantics - Nodes placed across multiple regions for high availability + var psRegional = Azure.Batch.Common.NodePlacementPolicyType.Regional; + var mgmtRegional = Utils.Utils.toMgmtNodePlacementPolicyType(psRegional); + var backToPs = Utils.Utils.fromMgmtNodePlacementPolicyType(mgmtRegional); + + Assert.Equal(NodePlacementPolicyType.Regional, mgmtRegional); + Assert.Equal(psRegional, backToPs); + + // Test Zonal semantics - Nodes placed within specific availability zones + var psZonal = Azure.Batch.Common.NodePlacementPolicyType.Zonal; + var mgmtZonal = Utils.Utils.toMgmtNodePlacementPolicyType(psZonal); + var backToPsZonal = Utils.Utils.fromMgmtNodePlacementPolicyType(mgmtZonal); + + Assert.Equal(NodePlacementPolicyType.Zonal, mgmtZonal); + Assert.Equal(psZonal, backToPsZonal); + } + + [Fact] + public void NodePlacementPolicyTypeConversions_NullHandling_WorksCorrectly() + { + // Test null handling in conversions + + // Act + var resultFromNullPs = Utils.Utils.toMgmtNodePlacementPolicyType(null); + var resultFromNullMgmt = Utils.Utils.fromMgmtNodePlacementPolicyType(null); + + // Assert + Assert.Null(resultFromNullPs); + Assert.Null(resultFromNullMgmt); + } + + [Fact] + public void NodePlacementPolicyTypeConversions_PoolPlacementContext_VerifyCorrectUsage() + { + // This test validates the conversions work correctly in the context of Batch pool node placement + // NodePlacementPolicyType is used to determine how compute nodes are allocated across Azure infrastructure + + // Arrange - Test Regional strategy for distributed workloads + var psRegional = Azure.Batch.Common.NodePlacementPolicyType.Regional; + var mgmtRegional = Utils.Utils.toMgmtNodePlacementPolicyType(psRegional); + + // Act & Assert - Regional should convert correctly for cross-region high availability + Assert.Equal(NodePlacementPolicyType.Regional, mgmtRegional); + + // Arrange - Test Zonal strategy for zone-aware workloads + var psZonal = Azure.Batch.Common.NodePlacementPolicyType.Zonal; + var mgmtZonal = Utils.Utils.toMgmtNodePlacementPolicyType(psZonal); + + // Act & Assert - Zonal should convert correctly for availability zone placement + Assert.Equal(NodePlacementPolicyType.Zonal, mgmtZonal); + + // Verify round-trip conversion maintains pool placement semantics + var backToRegional = Utils.Utils.fromMgmtNodePlacementPolicyType(mgmtRegional); + var backToZonal = Utils.Utils.fromMgmtNodePlacementPolicyType(mgmtZonal); + + Assert.Equal(Azure.Batch.Common.NodePlacementPolicyType.Regional, backToRegional); + Assert.Equal(Azure.Batch.Common.NodePlacementPolicyType.Zonal, backToZonal); + } + + [Fact] + public void NodePlacementPolicyTypeConversions_DefaultValues_HandleCorrectly() + { + // Test conversion with default enum values + + // Arrange + var defaultPsPolicy = default(Azure.Batch.Common.NodePlacementPolicyType); + var defaultMgmtPolicy = default(NodePlacementPolicyType); + + // Act + var mgmtResult = Utils.Utils.toMgmtNodePlacementPolicyType(defaultPsPolicy); + var psResult = Utils.Utils.fromMgmtNodePlacementPolicyType(defaultMgmtPolicy); + + // Assert + Assert.Equal((NodePlacementPolicyType)defaultPsPolicy, mgmtResult); + Assert.Equal((Azure.Batch.Common.NodePlacementPolicyType)defaultMgmtPolicy, psResult); + Assert.True(Enum.IsDefined(typeof(NodePlacementPolicyType), mgmtResult)); + Assert.True(Enum.IsDefined(typeof(Azure.Batch.Common.NodePlacementPolicyType), psResult)); + } + + #endregion + + #region Performance and Edge Case Tests + + [Fact] + public void NodePlacementPolicyTypeConversions_PerformanceTest_ExecutesQuickly() + { + // This test ensures the conversions are efficient + + // Arrange + var psPolicy = Azure.Batch.Common.NodePlacementPolicyType.Regional; + var mgmtPolicy = NodePlacementPolicyType.Zonal; + + // Act & Assert - Multiple conversions should complete without delay + for (int i = 0; i < 100; i++) + { + var mgmtResult = Utils.Utils.toMgmtNodePlacementPolicyType(psPolicy); + var psResult = Utils.Utils.fromMgmtNodePlacementPolicyType(mgmtPolicy); + + Assert.Equal(NodePlacementPolicyType.Regional, mgmtResult); + Assert.Equal(Azure.Batch.Common.NodePlacementPolicyType.Zonal, psResult); + } + } + + #endregion + + #region Infrastructure Resilience Tests + + [Fact] + public void NodePlacementPolicyTypeConversions_RegionalStrategy_InfrastructureResilience() + { + // This test validates that Regional policy semantics are preserved for infrastructure resilience + + // Arrange - Regional policy for spreading across regions + var psRegional = Azure.Batch.Common.NodePlacementPolicyType.Regional; + + // Act + var mgmtRegional = Utils.Utils.toMgmtNodePlacementPolicyType(psRegional); + var backToPs = Utils.Utils.fromMgmtNodePlacementPolicyType(mgmtRegional); + + // Assert - Regional placement semantics preserved + Assert.Equal(NodePlacementPolicyType.Regional, mgmtRegional); + Assert.Equal(Azure.Batch.Common.NodePlacementPolicyType.Regional, backToPs); + // Regional policy ensures nodes are distributed across multiple Azure regions for maximum resilience + } + + [Fact] + public void NodePlacementPolicyTypeConversions_ZonalStrategy_AvailabilityZoneAwareness() + { + // This test validates that Zonal policy semantics are preserved for availability zone awareness + + // Arrange - Zonal policy for availability zone placement + var psZonal = Azure.Batch.Common.NodePlacementPolicyType.Zonal; + + // Act + var mgmtZonal = Utils.Utils.toMgmtNodePlacementPolicyType(psZonal); + var backToPs = Utils.Utils.fromMgmtNodePlacementPolicyType(mgmtZonal); + + // Assert - Zonal placement semantics preserved + Assert.Equal(NodePlacementPolicyType.Zonal, mgmtZonal); + Assert.Equal(Azure.Batch.Common.NodePlacementPolicyType.Zonal, backToPs); + // Zonal policy ensures nodes are placed within specific availability zones for fault tolerance + } + + #endregion + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Test/Utils/UtilsSecurityTypesTests.cs b/src/Batch/Batch.Test/Utils/UtilsSecurityTypesTests.cs new file mode 100644 index 000000000000..67996a57aa9a --- /dev/null +++ b/src/Batch/Batch.Test/Utils/UtilsSecurityTypesTests.cs @@ -0,0 +1,746 @@ +// ----------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ----------------------------------------------------------------------------- + +using Microsoft.Azure.Commands.Batch.Utils; +using Microsoft.Azure.Management.Batch.Models; +using System; +using System.Linq; +using Xunit; + +namespace Microsoft.Azure.Commands.Batch.Test.ModelsConversions +{ + public class UtilsSecurityTypesTests + { + #region ToMgmtSecurityType Tests + + [Fact] + public void ToMgmtSecurityType_TrustedLaunch_ReturnsTrustedLaunch() + { + // Arrange + var psSecurityType = Azure.Batch.Common.SecurityTypes.TrustedLaunch; + + // Act + var result = Utils.Utils.ToMgmtSecurityType(psSecurityType); + + // Assert + Assert.NotNull(result); + Assert.Equal(SecurityTypes.TrustedLaunch, result.Value); + } + + [Fact] + public void ToMgmtSecurityType_ConfidentialVM_ReturnsConfidentialVM() + { + // Arrange + var psSecurityType = Azure.Batch.Common.SecurityTypes.ConfidentialVM; + + // Act + var result = Utils.Utils.ToMgmtSecurityType(psSecurityType); + + // Assert + Assert.NotNull(result); + Assert.Equal(SecurityTypes.ConfidentialVM, result.Value); + } + + [Theory] + [InlineData(Azure.Batch.Common.SecurityTypes.TrustedLaunch, SecurityTypes.TrustedLaunch)] + [InlineData(Azure.Batch.Common.SecurityTypes.ConfidentialVM, SecurityTypes.ConfidentialVM)] + public void ToMgmtSecurityType_AllValidValues_ReturnsCorrectMapping( + Azure.Batch.Common.SecurityTypes input, + SecurityTypes expected) + { + // Act + var result = Utils.Utils.ToMgmtSecurityType(input); + + // Assert + Assert.NotNull(result); + Assert.Equal(expected, result.Value); + } + + [Fact] + public void ToMgmtSecurityType_WithNullInput_ReturnsNull() + { + // Arrange + Azure.Batch.Common.SecurityTypes? nullInput = null; + + // Act + var result = Utils.Utils.ToMgmtSecurityType(nullInput); + + // Assert + Assert.Null(result); + } + + [Fact] + public void ToMgmtSecurityType_DefaultValue_HandlesCorrectly() + { + // Arrange + var defaultValue = default(Azure.Batch.Common.SecurityTypes); + + // Act + var result = Utils.Utils.ToMgmtSecurityType(defaultValue); + + // Assert + Assert.NotNull(result); + // Default SecurityTypes is typically TrustedLaunch (0) + Assert.Equal(SecurityTypes.TrustedLaunch, result.Value); + } + + [Fact] + public void ToMgmtSecurityType_EnumValueConsistency_EnsuresCorrectEnumMapping() + { + // This test ensures that the mapping logic correctly handles all defined enum values + // and verifies that the conversion maintains the semantic meaning of each security type + + // Arrange & Act & Assert + // TrustedLaunch: Protects against advanced and persistent attack techniques + var trustedLaunchResult = Utils.Utils.ToMgmtSecurityType(Azure.Batch.Common.SecurityTypes.TrustedLaunch); + Assert.NotNull(trustedLaunchResult); + Assert.Equal(SecurityTypes.TrustedLaunch, trustedLaunchResult.Value); + + // ConfidentialVM: Azure confidential computing for high security requirements + var confidentialVMResult = Utils.Utils.ToMgmtSecurityType(Azure.Batch.Common.SecurityTypes.ConfidentialVM); + Assert.NotNull(confidentialVMResult); + Assert.Equal(SecurityTypes.ConfidentialVM, confidentialVMResult.Value); + } + + [Fact] + public void ToMgmtSecurityType_StaticMethod_DoesNotRequireInstance() + { + // This test verifies that the method is properly static and can be called without instantiation + + // Arrange + var psSecurityType = Azure.Batch.Common.SecurityTypes.ConfidentialVM; + + // Act - Call static method directly on class + var result = Utils.Utils.ToMgmtSecurityType(psSecurityType); + + // Assert + Assert.NotNull(result); + Assert.Equal(SecurityTypes.ConfidentialVM, result.Value); + } + + [Fact] + public void ToMgmtSecurityType_PerformanceTest_ExecutesQuickly() + { + // This test ensures the enum conversion is efficient for all values + + // Arrange + var enumValues = new[] + { + Azure.Batch.Common.SecurityTypes.TrustedLaunch, + Azure.Batch.Common.SecurityTypes.ConfidentialVM + }; + + // Act & Assert - Each conversion should complete without delay + foreach (var value in enumValues) + { + var result = Utils.Utils.ToMgmtSecurityType(value); + Assert.NotNull(result); + Assert.True(Enum.IsDefined(typeof(SecurityTypes), result.Value)); + } + } + + [Fact] + public void ToMgmtSecurityType_ReturnsNullableType() + { + // This test verifies that the method returns a nullable SecurityTypes + + // Arrange + var psSecurityType = Azure.Batch.Common.SecurityTypes.TrustedLaunch; + + // Act + var result = Utils.Utils.ToMgmtSecurityType(psSecurityType); + + // Assert + Assert.IsType(result); + Assert.NotNull(result); + } + + [Fact] + public void ToMgmtSecurityType_CastingBehavior_VerifyDirectCast() + { + // This test verifies that the conversion uses direct casting as implemented + + // Arrange + var psTrustedLaunch = Azure.Batch.Common.SecurityTypes.TrustedLaunch; + var psConfidentialVM = Azure.Batch.Common.SecurityTypes.ConfidentialVM; + + // Act + var mgmtTrustedLaunch = Utils.Utils.ToMgmtSecurityType(psTrustedLaunch); + var mgmtConfidentialVM = Utils.Utils.ToMgmtSecurityType(psConfidentialVM); + + // Assert + // Verify that the underlying values match (direct cast behavior) + Assert.NotNull(mgmtTrustedLaunch); + Assert.NotNull(mgmtConfidentialVM); + Assert.Equal((int)psTrustedLaunch, (int)mgmtTrustedLaunch.Value); + Assert.Equal((int)psConfidentialVM, (int)mgmtConfidentialVM.Value); + } + + #endregion + + #region fromMgmtSecurityType Tests + + [Fact] + public void FromMgmtSecurityType_TrustedLaunch_ReturnsTrustedLaunch() + { + // Arrange + var mgmtSecurityType = SecurityTypes.TrustedLaunch; + + // Act + var result = Utils.Utils.fromMgmtSecurityType(mgmtSecurityType); + + // Assert + Assert.NotNull(result); + Assert.Equal(Azure.Batch.Common.SecurityTypes.TrustedLaunch, result.Value); + } + + [Fact] + public void FromMgmtSecurityType_ConfidentialVM_ReturnsConfidentialVM() + { + // Arrange + var mgmtSecurityType = SecurityTypes.ConfidentialVM; + + // Act + var result = Utils.Utils.fromMgmtSecurityType(mgmtSecurityType); + + // Assert + Assert.NotNull(result); + Assert.Equal(Azure.Batch.Common.SecurityTypes.ConfidentialVM, result.Value); + } + + [Theory] + [InlineData(SecurityTypes.TrustedLaunch, Azure.Batch.Common.SecurityTypes.TrustedLaunch)] + [InlineData(SecurityTypes.ConfidentialVM, Azure.Batch.Common.SecurityTypes.ConfidentialVM)] + public void FromMgmtSecurityType_AllValidValues_ReturnsCorrectMapping( + SecurityTypes input, + Azure.Batch.Common.SecurityTypes expected) + { + // Act + var result = Utils.Utils.fromMgmtSecurityType(input); + + // Assert + Assert.NotNull(result); + Assert.Equal(expected, result.Value); + } + + [Fact] + public void FromMgmtSecurityType_WithNullInput_ReturnsNull() + { + // Arrange + SecurityTypes? nullInput = null; + + // Act + var result = Utils.Utils.fromMgmtSecurityType(nullInput); + + // Assert + Assert.Null(result); + } + + [Fact] + public void FromMgmtSecurityType_DefaultValue_HandlesCorrectly() + { + // Arrange + var defaultValue = default(SecurityTypes); + + // Act + var result = Utils.Utils.fromMgmtSecurityType(defaultValue); + + // Assert + Assert.NotNull(result); + // Default SecurityTypes is typically TrustedLaunch (0) + Assert.Equal(Azure.Batch.Common.SecurityTypes.TrustedLaunch, result.Value); + } + + [Fact] + public void FromMgmtSecurityType_EnumValueConsistency_EnsuresCorrectEnumMapping() + { + // This test ensures that the mapping logic correctly handles all defined enum values + // and verifies that the conversion maintains the semantic meaning of each security type + + // Arrange & Act & Assert + // TrustedLaunch: Protects against advanced and persistent attack techniques + var trustedLaunchResult = Utils.Utils.fromMgmtSecurityType(SecurityTypes.TrustedLaunch); + Assert.NotNull(trustedLaunchResult); + Assert.Equal(Azure.Batch.Common.SecurityTypes.TrustedLaunch, trustedLaunchResult.Value); + + // ConfidentialVM: Azure confidential computing for high security requirements + var confidentialVMResult = Utils.Utils.fromMgmtSecurityType(SecurityTypes.ConfidentialVM); + Assert.NotNull(confidentialVMResult); + Assert.Equal(Azure.Batch.Common.SecurityTypes.ConfidentialVM, confidentialVMResult.Value); + } + + [Fact] + public void FromMgmtSecurityType_StaticMethod_DoesNotRequireInstance() + { + // This test verifies that the method is properly static and can be called without instantiation + + // Arrange + var mgmtSecurityType = SecurityTypes.TrustedLaunch; + + // Act - Call static method directly on class + var result = Utils.Utils.fromMgmtSecurityType(mgmtSecurityType); + + // Assert + Assert.NotNull(result); + Assert.Equal(Azure.Batch.Common.SecurityTypes.TrustedLaunch, result.Value); + } + + [Fact] + public void FromMgmtSecurityType_PerformanceTest_ExecutesQuickly() + { + // This test ensures the enum conversion is efficient for all values + + // Arrange + var enumValues = new[] + { + SecurityTypes.TrustedLaunch, + SecurityTypes.ConfidentialVM + }; + + // Act & Assert - Each conversion should complete without delay + foreach (var value in enumValues) + { + var result = Utils.Utils.fromMgmtSecurityType(value); + Assert.NotNull(result); + Assert.True(Enum.IsDefined(typeof(Azure.Batch.Common.SecurityTypes), result.Value)); + } + } + + [Fact] + public void FromMgmtSecurityType_CastingBehavior_VerifyDirectCast() + { + // This test verifies that the conversion uses direct casting as implemented + + // Arrange + var mgmtTrustedLaunch = SecurityTypes.TrustedLaunch; + var mgmtConfidentialVM = SecurityTypes.ConfidentialVM; + + // Act + var psTrustedLaunch = Utils.Utils.fromMgmtSecurityType(mgmtTrustedLaunch); + var psConfidentialVM = Utils.Utils.fromMgmtSecurityType(mgmtConfidentialVM); + + // Assert + // Verify that the underlying values match (direct cast behavior) + Assert.NotNull(psTrustedLaunch); + Assert.NotNull(psConfidentialVM); + Assert.Equal((int)mgmtTrustedLaunch, (int)psTrustedLaunch.Value); + Assert.Equal((int)mgmtConfidentialVM, (int)psConfidentialVM.Value); + } + + #endregion + + #region Round-trip Conversion Tests + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesTrustedLaunchValue() + { + // Arrange + var originalPsSecurityType = Azure.Batch.Common.SecurityTypes.TrustedLaunch; + + // Act + var mgmtSecurityType = Utils.Utils.ToMgmtSecurityType(originalPsSecurityType); + var roundTripPsSecurityType = Utils.Utils.fromMgmtSecurityType(mgmtSecurityType); + + // Assert + Assert.NotNull(roundTripPsSecurityType); + Assert.Equal(originalPsSecurityType, roundTripPsSecurityType.Value); + } + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesConfidentialVMValue() + { + // Arrange + var originalPsSecurityType = Azure.Batch.Common.SecurityTypes.ConfidentialVM; + + // Act + var mgmtSecurityType = Utils.Utils.ToMgmtSecurityType(originalPsSecurityType); + var roundTripPsSecurityType = Utils.Utils.fromMgmtSecurityType(mgmtSecurityType); + + // Assert + Assert.NotNull(roundTripPsSecurityType); + Assert.Equal(originalPsSecurityType, roundTripPsSecurityType.Value); + } + + [Theory] + [InlineData(Azure.Batch.Common.SecurityTypes.TrustedLaunch)] + [InlineData(Azure.Batch.Common.SecurityTypes.ConfidentialVM)] + public void RoundTripConversion_AllValidValues_PreservesOriginalValue( + Azure.Batch.Common.SecurityTypes originalSecurityType) + { + // Act + var mgmtSecurityType = Utils.Utils.ToMgmtSecurityType(originalSecurityType); + var roundTripSecurityType = Utils.Utils.fromMgmtSecurityType(mgmtSecurityType); + + // Assert + Assert.NotNull(roundTripSecurityType); + Assert.Equal(originalSecurityType, roundTripSecurityType.Value); + } + + [Fact] + public void RoundTripConversion_FromMgmtAndToMgmt_PreservesValues() + { + // Arrange + var originalMgmtValues = new[] + { + SecurityTypes.TrustedLaunch, + SecurityTypes.ConfidentialVM + }; + + foreach (var originalValue in originalMgmtValues) + { + // Act + var psValue = Utils.Utils.fromMgmtSecurityType(originalValue); + var roundTripValue = Utils.Utils.ToMgmtSecurityType(psValue); + + // Assert + Assert.NotNull(roundTripValue); + Assert.Equal(originalValue, roundTripValue.Value); + } + } + + [Fact] + public void RoundTripConversion_WithNullValues_PreservesNulls() + { + // Arrange + Azure.Batch.Common.SecurityTypes? psNull = null; + SecurityTypes? mgmtNull = null; + + // Act + var mgmtFromPsNull = Utils.Utils.ToMgmtSecurityType(psNull); + var psFromMgmtNull = Utils.Utils.fromMgmtSecurityType(mgmtNull); + + // Assert + Assert.Null(mgmtFromPsNull); + Assert.Null(psFromMgmtNull); + } + + #endregion + + #region Enum Value Verification Tests + + [Fact] + public void SecurityTypes_VerifyEnumMemberCount_EnsuresAllValuesHandled() + { + // This test helps ensure that if new enum values are added, the conversion methods are updated + + // Arrange + var psSecurityTypeValues = Enum.GetValues(typeof(Azure.Batch.Common.SecurityTypes)); + var mgmtSecurityTypeValues = Enum.GetValues(typeof(SecurityTypes)); + + // Act & Assert + // Verify that both enums have the same number of values (assuming 1:1 mapping) + Assert.Equal(psSecurityTypeValues.Length, mgmtSecurityTypeValues.Length); + + // Verify that each PS enum value can be converted successfully + foreach (Azure.Batch.Common.SecurityTypes psValue in psSecurityTypeValues) + { + var result = Utils.Utils.ToMgmtSecurityType(psValue); + Assert.NotNull(result); + Assert.True(Enum.IsDefined(typeof(SecurityTypes), result.Value)); + } + + // Verify that each management enum value can be converted successfully + foreach (SecurityTypes mgmtValue in mgmtSecurityTypeValues) + { + var result = Utils.Utils.fromMgmtSecurityType(mgmtValue); + Assert.NotNull(result); + Assert.True(Enum.IsDefined(typeof(Azure.Batch.Common.SecurityTypes), result.Value)); + } + } + + [Fact] + public void SecurityTypes_BijectiveMapping_EnsuresUniqueConversion() + { + // This test verifies that the mapping is bijective (one-to-one) + + // Arrange + var psValues = new[] + { + Azure.Batch.Common.SecurityTypes.TrustedLaunch, + Azure.Batch.Common.SecurityTypes.ConfidentialVM + }; + + var mgmtValues = new[] + { + SecurityTypes.TrustedLaunch, + SecurityTypes.ConfidentialVM + }; + + // Act - Convert PS to Management + var convertedMgmtValues = new SecurityTypes?[psValues.Length]; + for (int i = 0; i < psValues.Length; i++) + { + convertedMgmtValues[i] = Utils.Utils.ToMgmtSecurityType(psValues[i]); + } + + // Act - Convert Management to PS + var convertedPsValues = new Azure.Batch.Common.SecurityTypes?[mgmtValues.Length]; + for (int i = 0; i < mgmtValues.Length; i++) + { + convertedPsValues[i] = Utils.Utils.fromMgmtSecurityType(mgmtValues[i]); + } + + // Assert - Each management enum value should be unique (no duplicates) + var distinctMgmtValues = convertedMgmtValues.Where(v => v.HasValue).Select(v => v.Value).Distinct().ToArray(); + Assert.Equal(convertedMgmtValues.Count(v => v.HasValue), distinctMgmtValues.Length); + + // Assert - Each PS enum value should be unique (no duplicates) + var distinctPsValues = convertedPsValues.Where(v => v.HasValue).Select(v => v.Value).Distinct().ToArray(); + Assert.Equal(convertedPsValues.Count(v => v.HasValue), distinctPsValues.Length); + } + + #endregion + + #region Integration Tests + + [Fact] + public void SecurityTypesConversions_BothDirections_MaintainSemanticEquivalence() + { + // This test ensures that the semantic meaning is preserved across conversions + + // Test TrustedLaunch semantics - Protects against advanced and persistent attack techniques + var psTrustedLaunch = Azure.Batch.Common.SecurityTypes.TrustedLaunch; + var mgmtTrustedLaunch = Utils.Utils.ToMgmtSecurityType(psTrustedLaunch); + var backToPs = Utils.Utils.fromMgmtSecurityType(mgmtTrustedLaunch); + + Assert.NotNull(mgmtTrustedLaunch); + Assert.Equal(SecurityTypes.TrustedLaunch, mgmtTrustedLaunch.Value); + Assert.NotNull(backToPs); + Assert.Equal(psTrustedLaunch, backToPs.Value); + + // Test ConfidentialVM semantics - High security and confidentiality requirements + var psConfidentialVM = Azure.Batch.Common.SecurityTypes.ConfidentialVM; + var mgmtConfidentialVM = Utils.Utils.ToMgmtSecurityType(psConfidentialVM); + var backToPsConfidential = Utils.Utils.fromMgmtSecurityType(mgmtConfidentialVM); + + Assert.NotNull(mgmtConfidentialVM); + Assert.Equal(SecurityTypes.ConfidentialVM, mgmtConfidentialVM.Value); + Assert.NotNull(backToPsConfidential); + Assert.Equal(psConfidentialVM, backToPsConfidential.Value); + } + + [Fact] + public void SecurityTypesConversions_NullabilityHandling_VerifyBehavior() + { + // This test verifies the nullable handling in these conversion methods + + // ToMgmtSecurityType returns null for null input + Azure.Batch.Common.SecurityTypes? nullInput = null; + var result = Utils.Utils.ToMgmtSecurityType(nullInput); + Assert.Null(result); + + // fromMgmtSecurityType returns null for null input + SecurityTypes? nullMgmtInput = null; + var mgmtResult = Utils.Utils.fromMgmtSecurityType(nullMgmtInput); + Assert.Null(mgmtResult); + } + + [Fact] + public void SecurityTypesConversions_BatchSecurityContext_VerifyCorrectUsage() + { + // This test validates the conversions work correctly in the context of Batch security configuration + // SecurityTypes is used to specify security features for virtual machines in Azure Batch pools + + // Arrange - Test with different security scenarios + var securityScenarios = new[] + { + // Trusted Launch for enhanced boot security + new { + SecurityType = Azure.Batch.Common.SecurityTypes.TrustedLaunch, + Description = "Trusted Launch for enhanced boot security and attestation" + }, + // Confidential VM for sensitive workloads + new { + SecurityType = Azure.Batch.Common.SecurityTypes.ConfidentialVM, + Description = "Confidential VM for sensitive data processing workloads" + } + }; + + foreach (var scenario in securityScenarios) + { + // Act + var mgmtSecurityType = Utils.Utils.ToMgmtSecurityType(scenario.SecurityType); + + // Assert - Should convert correctly for Batch security configuration + var expectedMgmtType = scenario.SecurityType == Azure.Batch.Common.SecurityTypes.TrustedLaunch + ? SecurityTypes.TrustedLaunch + : SecurityTypes.ConfidentialVM; + Assert.NotNull(mgmtSecurityType); + Assert.Equal(expectedMgmtType, mgmtSecurityType.Value); + + // Verify round-trip conversion maintains security semantics + var backToPs = Utils.Utils.fromMgmtSecurityType(mgmtSecurityType); + Assert.NotNull(backToPs); + Assert.Equal(scenario.SecurityType, backToPs.Value); + } + } + + [Fact] + public void SecurityTypesConversions_ConfidentialComputingContext_VerifyCorrectUsage() + { + // This test validates the conversions work correctly in the context of confidential computing + // SecurityTypes is essential for configuring confidential computing features in Azure Batch + + // Arrange - Test with confidential computing scenarios + var confidentialScenarios = new[] + { + // TrustedLaunch for hardware-based attestation + new { + SecurityType = Azure.Batch.Common.SecurityTypes.TrustedLaunch, + ComplianceType = "Hardware Attestation", + Description = "Hardware-based attestation and secure boot validation" + }, + // ConfidentialVM for memory encryption + new { + SecurityType = Azure.Batch.Common.SecurityTypes.ConfidentialVM, + ComplianceType = "Memory Encryption", + Description = "Hardware-enforced memory encryption and isolation" + } + }; + + foreach (var scenario in confidentialScenarios) + { + // Act + var mgmtType = Utils.Utils.ToMgmtSecurityType(scenario.SecurityType); + var roundTripType = Utils.Utils.fromMgmtSecurityType(mgmtType); + + // Assert - Confidential computing semantics should be preserved + Assert.NotNull(roundTripType); + Assert.Equal(scenario.SecurityType, roundTripType.Value); + + // Verify the conversion maintains the security context + var expectedMgmtValue = scenario.SecurityType switch + { + Azure.Batch.Common.SecurityTypes.TrustedLaunch => SecurityTypes.TrustedLaunch, + Azure.Batch.Common.SecurityTypes.ConfidentialVM => SecurityTypes.ConfidentialVM, + _ => throw new ArgumentOutOfRangeException() + }; + + Assert.NotNull(mgmtType); + Assert.Equal(expectedMgmtValue, mgmtType.Value); + } + } + + [Fact] + public void SecurityTypesConversions_VMSecurityIntegration_VerifySemantics() + { + // This test validates the semantic usage in the context of Azure Batch VM security configuration + // SecurityTypes determines VM security features for compute nodes in Batch pools + + // TrustedLaunch semantics - Boot integrity and attestation + var trustedLaunchType = Azure.Batch.Common.SecurityTypes.TrustedLaunch; + var mgmtTrustedLaunchType = Utils.Utils.ToMgmtSecurityType(trustedLaunchType); + + Assert.NotNull(mgmtTrustedLaunchType); + Assert.Equal(SecurityTypes.TrustedLaunch, mgmtTrustedLaunchType.Value); + // Use case: Enhanced boot security for compliance requirements + + // ConfidentialVM semantics - Hardware-enforced confidentiality + var confidentialVMType = Azure.Batch.Common.SecurityTypes.ConfidentialVM; + var mgmtConfidentialVMType = Utils.Utils.ToMgmtSecurityType(confidentialVMType); + + Assert.NotNull(mgmtConfidentialVMType); + Assert.Equal(SecurityTypes.ConfidentialVM, mgmtConfidentialVMType.Value); + // Use case: Sensitive data processing with hardware isolation + + // Verify all round-trip correctly + var trustedLaunchRoundTrip = Utils.Utils.fromMgmtSecurityType(mgmtTrustedLaunchType); + var confidentialVMRoundTrip = Utils.Utils.fromMgmtSecurityType(mgmtConfidentialVMType); + + Assert.NotNull(trustedLaunchRoundTrip); + Assert.NotNull(confidentialVMRoundTrip); + Assert.Equal(trustedLaunchType, trustedLaunchRoundTrip.Value); + Assert.Equal(confidentialVMType, confidentialVMRoundTrip.Value); + } + + #endregion + + #region Performance and Edge Case Tests + + [Fact] + public void SecurityTypesConversions_PerformanceTest_ExecutesQuickly() + { + // This test ensures the conversions are efficient + + // Arrange + var psSecurityTypes = new[] + { + Azure.Batch.Common.SecurityTypes.TrustedLaunch, + Azure.Batch.Common.SecurityTypes.ConfidentialVM + }; + + var mgmtSecurityTypes = new[] + { + SecurityTypes.TrustedLaunch, + SecurityTypes.ConfidentialVM + }; + + // Act & Assert - Multiple conversions should complete without delay + for (int i = 0; i < 100; i++) + { + foreach (var psType in psSecurityTypes) + { + var mgmtResult = Utils.Utils.ToMgmtSecurityType(psType); + Assert.NotNull(mgmtResult); + } + + foreach (var mgmtType in mgmtSecurityTypes) + { + var psResult = Utils.Utils.fromMgmtSecurityType(mgmtType); + Assert.NotNull(psResult); + } + } + } + + [Fact] + public void SecurityTypesConversions_TypeSafety_VerifyCorrectTypes() + { + // Test that conversions return the correct types + + // Arrange + var psSecurityType = Azure.Batch.Common.SecurityTypes.TrustedLaunch; + var mgmtSecurityType = SecurityTypes.ConfidentialVM; + + // Act + var mgmtResult = Utils.Utils.ToMgmtSecurityType(psSecurityType); + var psResult = Utils.Utils.fromMgmtSecurityType(mgmtSecurityType); + + // Assert - Verify correct types are returned + Assert.IsType(mgmtResult); + Assert.IsType(psResult); + Assert.NotNull(mgmtResult); + Assert.NotNull(psResult); + } + + [Fact] + public void SecurityTypesConversions_EdgeCases_HandleCorrectly() + { + // Test edge cases and boundary conditions + + // Default enum values + var defaultPs = default(Azure.Batch.Common.SecurityTypes); + var defaultMgmt = default(SecurityTypes); + + var mgmtFromDefaultPs = Utils.Utils.ToMgmtSecurityType(defaultPs); + var psFromDefaultMgmt = Utils.Utils.fromMgmtSecurityType(defaultMgmt); + + Assert.NotNull(mgmtFromDefaultPs); + Assert.NotNull(psFromDefaultMgmt); + Assert.Equal(SecurityTypes.TrustedLaunch, mgmtFromDefaultPs.Value); + Assert.Equal(Azure.Batch.Common.SecurityTypes.TrustedLaunch, psFromDefaultMgmt.Value); + } + + #endregion + } +} \ No newline at end of file diff --git a/src/Batch/Batch.Test/Utils/UtilsToMgmtStorageAccountTypeTests.cs b/src/Batch/Batch.Test/Utils/UtilsToMgmtStorageAccountTypeTests.cs new file mode 100644 index 000000000000..ddcb81af6049 --- /dev/null +++ b/src/Batch/Batch.Test/Utils/UtilsToMgmtStorageAccountTypeTests.cs @@ -0,0 +1,877 @@ +// ----------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ----------------------------------------------------------------------------- + +using Microsoft.Azure.Commands.Batch.Utils; +using Microsoft.Azure.Management.Batch.Models; +using System; +using System.Linq; +using Xunit; + +namespace Microsoft.Azure.Commands.Batch.Test.ModelsConversions +{ + public class UtilsToMgmtStorageAccountTypeTests + { + #region ToMgmtStorageAccountType Tests + + [Fact] + public void ToMgmtStorageAccountType_StandardLRS_ReturnsStandardLRS() + { + // Arrange + var psStorageAccountType = Microsoft.Azure.Batch.Common.StorageAccountType.StandardLrs; + + // Act + var result = Utils.Utils.ToMgmtStorageAccountType(psStorageAccountType); + + // Assert + Assert.NotNull(result); + Assert.Equal(StorageAccountType.StandardLRS, result.Value); + } + + [Fact] + public void ToMgmtStorageAccountType_PremiumLRS_ReturnsPremiumLRS() + { + // Arrange + var psStorageAccountType = Microsoft.Azure.Batch.Common.StorageAccountType.PremiumLrs; + + // Act + var result = Utils.Utils.ToMgmtStorageAccountType(psStorageAccountType); + + // Assert + Assert.NotNull(result); + Assert.Equal(StorageAccountType.PremiumLRS, result.Value); + } + + [Fact] + public void ToMgmtStorageAccountType_StandardSSDLRS_ReturnsStandardSSDLRS() + { + // Arrange + var psStorageAccountType = Microsoft.Azure.Batch.Common.StorageAccountType.StandardSSDLRS; + + // Act + var result = Utils.Utils.ToMgmtStorageAccountType(psStorageAccountType); + + // Assert + Assert.NotNull(result); + Assert.Equal(StorageAccountType.StandardSSDLRS, result.Value); + } + + [Theory] + [InlineData(Microsoft.Azure.Batch.Common.StorageAccountType.StandardLrs, StorageAccountType.StandardLRS)] + [InlineData(Microsoft.Azure.Batch.Common.StorageAccountType.PremiumLrs, StorageAccountType.PremiumLRS)] + [InlineData(Microsoft.Azure.Batch.Common.StorageAccountType.StandardSSDLRS, StorageAccountType.StandardSSDLRS)] + public void ToMgmtStorageAccountType_AllValidValues_ReturnsCorrectMapping( + Microsoft.Azure.Batch.Common.StorageAccountType input, + StorageAccountType expected) + { + // Act + var result = Utils.Utils.ToMgmtStorageAccountType(input); + + // Assert + Assert.NotNull(result); + Assert.Equal(expected, result.Value); + } + + [Fact] + public void ToMgmtStorageAccountType_NullValue_ReturnsNull() + { + // Arrange + Microsoft.Azure.Batch.Common.StorageAccountType? nullStorageAccountType = null; + + // Act + var result = Utils.Utils.ToMgmtStorageAccountType(nullStorageAccountType); + + // Assert + Assert.Null(result); + } + + [Fact] + public void ToMgmtStorageAccountType_DefaultValue_HandlesCorrectly() + { + // Arrange + var defaultValue = default(Microsoft.Azure.Batch.Common.StorageAccountType); + + // Act + var result = Utils.Utils.ToMgmtStorageAccountType(defaultValue); + + // Assert + Assert.NotNull(result); + // Default StorageAccountType is typically StandardLRS (0) + Assert.Equal(StorageAccountType.StandardLRS, result.Value); + } + + [Fact] + public void ToMgmtStorageAccountType_EnumValueConsistency_EnsuresCorrectEnumMapping() + { + // This test ensures that the mapping logic correctly handles all defined enum values + // and verifies that the conversion maintains the semantic meaning of each storage account type + + // Arrange & Act & Assert + // StandardLRS: Standard locally redundant storage + var standardLRSResult = Utils.Utils.ToMgmtStorageAccountType(Microsoft.Azure.Batch.Common.StorageAccountType.StandardLrs); + Assert.NotNull(standardLRSResult); + Assert.Equal(StorageAccountType.StandardLRS, standardLRSResult.Value); + + // PremiumLRS: Premium locally redundant storage (SSD-based) + var premiumLRSResult = Utils.Utils.ToMgmtStorageAccountType(Microsoft.Azure.Batch.Common.StorageAccountType.PremiumLrs); + Assert.NotNull(premiumLRSResult); + Assert.Equal(StorageAccountType.PremiumLRS, premiumLRSResult.Value); + + // StandardSSDLRS: Standard SSD locally redundant storage + var standardSSDLRSResult = Utils.Utils.ToMgmtStorageAccountType(Microsoft.Azure.Batch.Common.StorageAccountType.StandardSSDLRS); + Assert.NotNull(standardSSDLRSResult); + Assert.Equal(StorageAccountType.StandardSSDLRS, standardSSDLRSResult.Value); + } + + [Fact] + public void ToMgmtStorageAccountType_StaticMethod_DoesNotRequireInstance() + { + // This test verifies that the method is properly static and can be called without instantiation + + // Arrange + var psStorageAccountType = Microsoft.Azure.Batch.Common.StorageAccountType.PremiumLrs; + + // Act - Call static method directly on class + var result = Utils.Utils.ToMgmtStorageAccountType(psStorageAccountType); + + // Assert + Assert.NotNull(result); + Assert.Equal(StorageAccountType.PremiumLRS, result.Value); + } + + [Fact] + public void ToMgmtStorageAccountType_PerformanceTest_ExecutesQuickly() + { + // This test ensures the enum conversion is efficient for all values + + // Arrange + var enumValues = new[] + { + Microsoft.Azure.Batch.Common.StorageAccountType.StandardLrs, + Microsoft.Azure.Batch.Common.StorageAccountType.PremiumLrs, + Microsoft.Azure.Batch.Common.StorageAccountType.StandardSSDLRS + }; + + // Act & Assert - Each conversion should complete without delay + foreach (var value in enumValues) + { + var result = Utils.Utils.ToMgmtStorageAccountType(value); + Assert.NotNull(result); + Assert.True(Enum.IsDefined(typeof(StorageAccountType), result.Value)); + } + } + + [Fact] + public void ToMgmtStorageAccountType_CastingBehavior_VerifyDirectCast() + { + // This test verifies that the conversion uses direct casting as implemented + + // Arrange + var psStandardLRS = Microsoft.Azure.Batch.Common.StorageAccountType.StandardLrs; + var psPremiumLRS = Microsoft.Azure.Batch.Common.StorageAccountType.PremiumLrs; + var psStandardSSDLRS = Microsoft.Azure.Batch.Common.StorageAccountType.StandardSSDLRS; + + // Act + var mgmtStandardLRS = Utils.Utils.ToMgmtStorageAccountType(psStandardLRS); + var mgmtPremiumLRS = Utils.Utils.ToMgmtStorageAccountType(psPremiumLRS); + var mgmtStandardSSDLRS = Utils.Utils.ToMgmtStorageAccountType(psStandardSSDLRS); + + // Assert + Assert.NotNull(mgmtStandardLRS); + Assert.NotNull(mgmtPremiumLRS); + Assert.NotNull(mgmtStandardSSDLRS); + + // Verify that the underlying values match (direct cast behavior) + Assert.Equal((int)psStandardLRS, (int)mgmtStandardLRS.Value); + Assert.Equal((int)psPremiumLRS, (int)mgmtPremiumLRS.Value); + Assert.Equal((int)psStandardSSDLRS, (int)mgmtStandardSSDLRS.Value); + } + + #endregion + + #region FromMgmtStorageAccountType Tests + + [Fact] + public void FromMgmtStorageAccountType_StandardLRS_ReturnsStandardLRS() + { + // Arrange + var mgmtStorageAccountType = StorageAccountType.StandardLRS; + + // Act + var result = Utils.Utils.FromMgmtStorageAccountType(mgmtStorageAccountType); + + // Assert + Assert.NotNull(result); + Assert.Equal(Microsoft.Azure.Batch.Common.StorageAccountType.StandardLrs, result.Value); + } + + [Fact] + public void FromMgmtStorageAccountType_PremiumLRS_ReturnsPremiumLRS() + { + // Arrange + var mgmtStorageAccountType = StorageAccountType.PremiumLRS; + + // Act + var result = Utils.Utils.FromMgmtStorageAccountType(mgmtStorageAccountType); + + // Assert + Assert.NotNull(result); + Assert.Equal(Microsoft.Azure.Batch.Common.StorageAccountType.PremiumLrs, result.Value); + } + + [Fact] + public void FromMgmtStorageAccountType_StandardSSDLRS_ReturnsStandardSSDLRS() + { + // Arrange + var mgmtStorageAccountType = StorageAccountType.StandardSSDLRS; + + // Act + var result = Utils.Utils.FromMgmtStorageAccountType(mgmtStorageAccountType); + + // Assert + Assert.NotNull(result); + Assert.Equal(Microsoft.Azure.Batch.Common.StorageAccountType.StandardSSDLRS, result.Value); + } + + [Theory] + [InlineData(StorageAccountType.StandardLRS, Microsoft.Azure.Batch.Common.StorageAccountType.StandardLrs)] + [InlineData(StorageAccountType.PremiumLRS, Microsoft.Azure.Batch.Common.StorageAccountType.PremiumLrs)] + [InlineData(StorageAccountType.StandardSSDLRS, Microsoft.Azure.Batch.Common.StorageAccountType.StandardSSDLRS)] + public void FromMgmtStorageAccountType_AllValidValues_ReturnsCorrectMapping( + StorageAccountType input, + Microsoft.Azure.Batch.Common.StorageAccountType expected) + { + // Act + var result = Utils.Utils.FromMgmtStorageAccountType(input); + + // Assert + Assert.NotNull(result); + Assert.Equal(expected, result.Value); + } + + [Fact] + public void FromMgmtStorageAccountType_NullValue_ReturnsNull() + { + // Arrange + StorageAccountType? nullStorageAccountType = null; + + // Act + var result = Utils.Utils.FromMgmtStorageAccountType(nullStorageAccountType); + + // Assert + Assert.Null(result); + } + + [Fact] + public void FromMgmtStorageAccountType_DefaultValue_HandlesCorrectly() + { + // Arrange + var defaultValue = default(StorageAccountType); + + // Act + var result = Utils.Utils.FromMgmtStorageAccountType(defaultValue); + + // Assert + Assert.NotNull(result); + // Default StorageAccountType is typically StandardLRS (0) + Assert.Equal(Microsoft.Azure.Batch.Common.StorageAccountType.StandardLrs, result.Value); + } + + [Fact] + public void FromMgmtStorageAccountType_EnumValueConsistency_EnsuresCorrectEnumMapping() + { + // This test ensures that the mapping logic correctly handles all defined enum values + // and verifies that the conversion maintains the semantic meaning of each storage account type + + // Arrange & Act & Assert + // StandardLRS: Standard locally redundant storage + var standardLRSResult = Utils.Utils.FromMgmtStorageAccountType(StorageAccountType.StandardLRS); + Assert.NotNull(standardLRSResult); + Assert.Equal(Microsoft.Azure.Batch.Common.StorageAccountType.StandardLrs, standardLRSResult.Value); + + // PremiumLRS: Premium locally redundant storage (SSD-based) + var premiumLRSResult = Utils.Utils.FromMgmtStorageAccountType(StorageAccountType.PremiumLRS); + Assert.NotNull(premiumLRSResult); + Assert.Equal(Microsoft.Azure.Batch.Common.StorageAccountType.PremiumLrs, premiumLRSResult.Value); + + // StandardSSDLRS: Standard SSD locally redundant storage + var standardSSDLRSResult = Utils.Utils.FromMgmtStorageAccountType(StorageAccountType.StandardSSDLRS); + Assert.NotNull(standardSSDLRSResult); + Assert.Equal(Microsoft.Azure.Batch.Common.StorageAccountType.StandardSSDLRS, standardSSDLRSResult.Value); + } + + [Fact] + public void FromMgmtStorageAccountType_StaticMethod_DoesNotRequireInstance() + { + // This test verifies that the method is properly static and can be called without instantiation + + // Arrange + var mgmtStorageAccountType = StorageAccountType.StandardSSDLRS; + + // Act - Call static method directly on class + var result = Utils.Utils.FromMgmtStorageAccountType(mgmtStorageAccountType); + + // Assert + Assert.NotNull(result); + Assert.Equal(Microsoft.Azure.Batch.Common.StorageAccountType.StandardSSDLRS, result.Value); + } + + [Fact] + public void FromMgmtStorageAccountType_PerformanceTest_ExecutesQuickly() + { + // This test ensures the enum conversion is efficient for all values + + // Arrange + var enumValues = new StorageAccountType?[] + { + StorageAccountType.StandardLRS, + StorageAccountType.PremiumLRS, + StorageAccountType.StandardSSDLRS, + null + }; + + // Act & Assert - Each conversion should complete without delay + foreach (var value in enumValues) + { + var result = Utils.Utils.FromMgmtStorageAccountType(value); + if (value.HasValue) + { + Assert.NotNull(result); + Assert.True(Enum.IsDefined(typeof(Microsoft.Azure.Batch.Common.StorageAccountType), result.Value)); + } + else + { + Assert.Null(result); + } + } + } + + [Fact] + public void FromMgmtStorageAccountType_AcceptsNullableType() + { + // This test verifies that the method accepts a nullable StorageAccountType + + // Arrange + StorageAccountType? nullableValue = StorageAccountType.PremiumLRS; + + // Act + var result = Utils.Utils.FromMgmtStorageAccountType(nullableValue); + + // Assert + Assert.NotNull(result); + Assert.Equal(Microsoft.Azure.Batch.Common.StorageAccountType.PremiumLrs, result.Value); + } + + [Fact] + public void FromMgmtStorageAccountType_CastingBehavior_VerifyDirectCast() + { + // This test verifies that the conversion uses direct casting as implemented + + // Arrange + var mgmtStandardLRS = StorageAccountType.StandardLRS; + var mgmtPremiumLRS = StorageAccountType.PremiumLRS; + var mgmtStandardSSDLRS = StorageAccountType.StandardSSDLRS; + + // Act + var psStandardLRS = Utils.Utils.FromMgmtStorageAccountType(mgmtStandardLRS); + var psPremiumLRS = Utils.Utils.FromMgmtStorageAccountType(mgmtPremiumLRS); + var psStandardSSDLRS = Utils.Utils.FromMgmtStorageAccountType(mgmtStandardSSDLRS); + + // Assert + Assert.NotNull(psStandardLRS); + Assert.NotNull(psPremiumLRS); + Assert.NotNull(psStandardSSDLRS); + + // Verify that the underlying values match (direct cast behavior) + Assert.Equal((int)mgmtStandardLRS, (int)psStandardLRS.Value); + Assert.Equal((int)mgmtPremiumLRS, (int)psPremiumLRS.Value); + Assert.Equal((int)mgmtStandardSSDLRS, (int)psStandardSSDLRS.Value); + } + + #endregion + + #region Round-trip Conversion Tests + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesStandardLRSValue() + { + // Arrange + var originalPsStorageAccountType = Microsoft.Azure.Batch.Common.StorageAccountType.StandardLrs; + + // Act + var mgmtStorageAccountType = Utils.Utils.ToMgmtStorageAccountType(originalPsStorageAccountType); + var roundTripPsStorageAccountType = Utils.Utils.FromMgmtStorageAccountType(mgmtStorageAccountType); + + // Assert + Assert.NotNull(roundTripPsStorageAccountType); + Assert.Equal(originalPsStorageAccountType, roundTripPsStorageAccountType.Value); + } + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesPremiumLRSValue() + { + // Arrange + var originalPsStorageAccountType = Microsoft.Azure.Batch.Common.StorageAccountType.PremiumLrs; + + // Act + var mgmtStorageAccountType = Utils.Utils.ToMgmtStorageAccountType(originalPsStorageAccountType); + var roundTripPsStorageAccountType = Utils.Utils.FromMgmtStorageAccountType(mgmtStorageAccountType); + + // Assert + Assert.NotNull(roundTripPsStorageAccountType); + Assert.Equal(originalPsStorageAccountType, roundTripPsStorageAccountType.Value); + } + + [Fact] + public void RoundTripConversion_ToMgmtAndFromMgmt_PreservesStandardSSDLRSValue() + { + // Arrange + var originalPsStorageAccountType = Microsoft.Azure.Batch.Common.StorageAccountType.StandardSSDLRS; + + // Act + var mgmtStorageAccountType = Utils.Utils.ToMgmtStorageAccountType(originalPsStorageAccountType); + var roundTripPsStorageAccountType = Utils.Utils.FromMgmtStorageAccountType(mgmtStorageAccountType); + + // Assert + Assert.NotNull(roundTripPsStorageAccountType); + Assert.Equal(originalPsStorageAccountType, roundTripPsStorageAccountType.Value); + } + + [Theory] + [InlineData(Microsoft.Azure.Batch.Common.StorageAccountType.StandardLrs)] + [InlineData(Microsoft.Azure.Batch.Common.StorageAccountType.PremiumLrs)] + [InlineData(Microsoft.Azure.Batch.Common.StorageAccountType.StandardSSDLRS)] + public void RoundTripConversion_AllValidValues_PreservesOriginalValue( + Microsoft.Azure.Batch.Common.StorageAccountType originalStorageAccountType) + { + // Act + var mgmtStorageAccountType = Utils.Utils.ToMgmtStorageAccountType(originalStorageAccountType); + var roundTripStorageAccountType = Utils.Utils.FromMgmtStorageAccountType(mgmtStorageAccountType); + + // Assert + Assert.NotNull(roundTripStorageAccountType); + Assert.Equal(originalStorageAccountType, roundTripStorageAccountType.Value); + } + + [Fact] + public void RoundTripConversion_FromMgmtAndToMgmt_PreservesValues() + { + // Arrange + var originalMgmtValues = new[] + { + StorageAccountType.StandardLRS, + StorageAccountType.PremiumLRS, + StorageAccountType.StandardSSDLRS + }; + + foreach (var originalValue in originalMgmtValues) + { + // Act + var psValue = Utils.Utils.FromMgmtStorageAccountType(originalValue); + var roundTripValue = Utils.Utils.ToMgmtStorageAccountType(psValue); + + // Assert + Assert.NotNull(roundTripValue); + Assert.Equal(originalValue, roundTripValue.Value); + } + } + + [Fact] + public void RoundTripConversion_NullHandling_WorksCorrectly() + { + // This test verifies null handling in round-trip conversions + + // Arrange + Microsoft.Azure.Batch.Common.StorageAccountType? nullPsValue = null; + StorageAccountType? nullMgmtValue = null; + + // Act + var mgmtFromNullPs = Utils.Utils.ToMgmtStorageAccountType(nullPsValue); + var psFromNullMgmt = Utils.Utils.FromMgmtStorageAccountType(nullMgmtValue); + + // Assert + Assert.Null(mgmtFromNullPs); + Assert.Null(psFromNullMgmt); + } + + #endregion + + #region Enum Value Verification Tests + + [Fact] + public void StorageAccountType_VerifyEnumMemberCount_EnsuresAllValuesHandled() + { + // This test helps ensure that if new enum values are added, the conversion methods are updated + + // Arrange + var psStorageAccountTypeValues = Enum.GetValues(typeof(Microsoft.Azure.Batch.Common.StorageAccountType)); + var mgmtStorageAccountTypeValues = Enum.GetValues(typeof(StorageAccountType)); + + // Act & Assert + // Verify that both enums have the same number of values (assuming 1:1 mapping) + Assert.Equal(psStorageAccountTypeValues.Length, mgmtStorageAccountTypeValues.Length); + + // Verify that each PS enum value can be converted successfully + foreach (Microsoft.Azure.Batch.Common.StorageAccountType psValue in psStorageAccountTypeValues) + { + var result = Utils.Utils.ToMgmtStorageAccountType(psValue); + Assert.NotNull(result); + Assert.True(Enum.IsDefined(typeof(StorageAccountType), result.Value)); + } + + // Verify that each management enum value can be converted successfully + foreach (StorageAccountType mgmtValue in mgmtStorageAccountTypeValues) + { + var result = Utils.Utils.FromMgmtStorageAccountType(mgmtValue); + Assert.NotNull(result); + Assert.True(Enum.IsDefined(typeof(Microsoft.Azure.Batch.Common.StorageAccountType), result.Value)); + } + } + + [Fact] + public void StorageAccountType_BijectiveMapping_EnsuresUniqueConversion() + { + // This test verifies that the mapping is bijective (one-to-one) + + // Arrange + var psValues = new[] + { + Microsoft.Azure.Batch.Common.StorageAccountType.StandardLrs, + Microsoft.Azure.Batch.Common.StorageAccountType.PremiumLrs, + Microsoft.Azure.Batch.Common.StorageAccountType.StandardSSDLRS + }; + + var mgmtValues = new[] + { + StorageAccountType.StandardLRS, + StorageAccountType.PremiumLRS, + StorageAccountType.StandardSSDLRS + }; + + // Act - Convert PS to Management + var convertedMgmtValues = new StorageAccountType?[psValues.Length]; + for (int i = 0; i < psValues.Length; i++) + { + convertedMgmtValues[i] = Utils.Utils.ToMgmtStorageAccountType(psValues[i]); + } + + // Act - Convert Management to PS + var convertedPsValues = new Microsoft.Azure.Batch.Common.StorageAccountType?[mgmtValues.Length]; + for (int i = 0; i < mgmtValues.Length; i++) + { + convertedPsValues[i] = Utils.Utils.FromMgmtStorageAccountType(mgmtValues[i]); + } + + // Assert - Each management enum value should be unique (no duplicates) + var distinctMgmtValues = convertedMgmtValues.Where(v => v.HasValue).Select(v => v.Value).Distinct().ToArray(); + Assert.Equal(convertedMgmtValues.Count(v => v.HasValue), distinctMgmtValues.Length); + + // Assert - Each PS enum value should be unique (no duplicates) + var distinctPsValues = convertedPsValues.Where(v => v.HasValue).Select(v => v.Value).Distinct().ToArray(); + Assert.Equal(convertedPsValues.Count(v => v.HasValue), distinctPsValues.Length); + } + + #endregion + + #region Integration Tests + + [Fact] + public void StorageAccountTypeConversions_BothDirections_MaintainSemanticEquivalence() + { + // This test ensures that the semantic meaning is preserved across conversions + + // Test StandardLRS semantics - Standard locally redundant storage (HDD-based, cost-optimized) + var psStandardLRS = Microsoft.Azure.Batch.Common.StorageAccountType.StandardLrs; + var mgmtStandardLRS = Utils.Utils.ToMgmtStorageAccountType(psStandardLRS); + var backToPs = Utils.Utils.FromMgmtStorageAccountType(mgmtStandardLRS); + + Assert.NotNull(mgmtStandardLRS); + Assert.Equal(StorageAccountType.StandardLRS, mgmtStandardLRS.Value); + Assert.NotNull(backToPs); + Assert.Equal(psStandardLRS, backToPs.Value); + + // Test PremiumLRS semantics - Premium locally redundant storage (SSD-based, high performance) + var psPremiumLRS = Microsoft.Azure.Batch.Common.StorageAccountType.PremiumLrs; + var mgmtPremiumLRS = Utils.Utils.ToMgmtStorageAccountType(psPremiumLRS); + var backToPsPremium = Utils.Utils.FromMgmtStorageAccountType(mgmtPremiumLRS); + + Assert.NotNull(mgmtPremiumLRS); + Assert.Equal(StorageAccountType.PremiumLRS, mgmtPremiumLRS.Value); + Assert.NotNull(backToPsPremium); + Assert.Equal(psPremiumLRS, backToPsPremium.Value); + + // Test StandardSSDLRS semantics - Standard SSD locally redundant storage (balanced performance/cost) + var psStandardSSDLRS = Microsoft.Azure.Batch.Common.StorageAccountType.StandardSSDLRS; + var mgmtStandardSSDLRS = Utils.Utils.ToMgmtStorageAccountType(psStandardSSDLRS); + var backToPsStandardSSD = Utils.Utils.FromMgmtStorageAccountType(mgmtStandardSSDLRS); + + Assert.NotNull(mgmtStandardSSDLRS); + Assert.Equal(StorageAccountType.StandardSSDLRS, mgmtStandardSSDLRS.Value); + Assert.NotNull(backToPsStandardSSD); + Assert.Equal(psStandardSSDLRS, backToPsStandardSSD.Value); + } + + [Fact] + public void StorageAccountTypeConversions_NullabilityHandling_VerifyBehavior() + { + // This test verifies the nullable handling in these conversion methods + + // ToMgmtStorageAccountType returns null for null input + Microsoft.Azure.Batch.Common.StorageAccountType? nullInput = null; + var result = Utils.Utils.ToMgmtStorageAccountType(nullInput); + Assert.Null(result); + + // FromMgmtStorageAccountType returns null for null input + StorageAccountType? nullMgmtInput = null; + var mgmtResult = Utils.Utils.FromMgmtStorageAccountType(nullMgmtInput); + Assert.Null(mgmtResult); + + // Both methods handle nullable types correctly + StorageAccountType? nullableStandardSSD = StorageAccountType.StandardSSDLRS; + var nonNullResult = Utils.Utils.FromMgmtStorageAccountType(nullableStandardSSD); + Assert.NotNull(nonNullResult); + Assert.Equal(Microsoft.Azure.Batch.Common.StorageAccountType.StandardSSDLRS, nonNullResult.Value); + } + + [Fact] + public void StorageAccountTypeConversions_BatchDataDiskContext_VerifyCorrectUsage() + { + // This test validates the conversions work correctly in the context of Batch data disk configuration + // StorageAccountType is used to specify storage performance characteristics for data disks + + // Arrange - Test with different storage type scenarios + var diskStorageScenarios = new[] + { + // High-performance scenario with Premium SSD + new { + StorageAccountType = Microsoft.Azure.Batch.Common.StorageAccountType.PremiumLrs, + Description = "High-performance workload with Premium SSD for maximum IOPS and throughput" + }, + // Balanced scenario with Standard SSD + new { + StorageAccountType = Microsoft.Azure.Batch.Common.StorageAccountType.StandardSSDLRS, + Description = "Balanced workload with Standard SSD for good performance at lower cost" + }, + // Cost-optimized scenario with Standard HDD + new { + StorageAccountType = Microsoft.Azure.Batch.Common.StorageAccountType.StandardLrs, + Description = "Cost-optimized workload with Standard HDD for basic storage needs" + } + }; + + foreach (var scenario in diskStorageScenarios) + { + // Act + var mgmtStorageAccountType = Utils.Utils.ToMgmtStorageAccountType(scenario.StorageAccountType); + + // Assert - Should convert correctly for Batch data disk configuration + Assert.NotNull(mgmtStorageAccountType); + + var expectedMgmtType = scenario.StorageAccountType == Microsoft.Azure.Batch.Common.StorageAccountType.StandardLrs + ? StorageAccountType.StandardLRS + : scenario.StorageAccountType == Microsoft.Azure.Batch.Common.StorageAccountType.PremiumLrs + ? StorageAccountType.PremiumLRS + : StorageAccountType.StandardSSDLRS; + Assert.Equal(expectedMgmtType, mgmtStorageAccountType.Value); + + // Verify round-trip conversion maintains storage type semantics + var backToPs = Utils.Utils.FromMgmtStorageAccountType(mgmtStorageAccountType); + Assert.NotNull(backToPs); + Assert.Equal(scenario.StorageAccountType, backToPs.Value); + } + } + + [Fact] + public void StorageAccountTypeConversions_DirectCastingBehavior_VerifyImplementation() + { + // This test verifies that the methods use direct casting as implemented + // This is important because it ensures the enum values have the same underlying representation + + // Test that conversion preserves underlying integer values + foreach (Microsoft.Azure.Batch.Common.StorageAccountType psValue in Enum.GetValues(typeof(Microsoft.Azure.Batch.Common.StorageAccountType))) + { + var mgmtResult = Utils.Utils.ToMgmtStorageAccountType(psValue); + Assert.NotNull(mgmtResult); + Assert.Equal((int)psValue, (int)mgmtResult.Value); + } + + foreach (StorageAccountType mgmtValue in Enum.GetValues(typeof(StorageAccountType))) + { + var psResult = Utils.Utils.FromMgmtStorageAccountType(mgmtValue); + Assert.NotNull(psResult); + Assert.Equal((int)mgmtValue, (int)psResult.Value); + } + } + + [Fact] + public void StorageAccountTypeConversions_DataDiskIntegration_VerifySemantics() + { + // This test validates the semantic usage in the context of Azure Batch data disk configuration + // StorageAccountType determines storage performance characteristics and cost + + // StandardLRS semantics - Standard locally redundant storage (HDD-based) + var standardLRSType = Microsoft.Azure.Batch.Common.StorageAccountType.StandardLrs; + var mgmtStandardLRSType = Utils.Utils.ToMgmtStorageAccountType(standardLRSType); + + Assert.NotNull(mgmtStandardLRSType); + Assert.Equal(StorageAccountType.StandardLRS, mgmtStandardLRSType.Value); + // Use case: Cost-optimized storage for large datasets with infrequent access + + // PremiumLRS semantics - Premium locally redundant storage (SSD-based) + var premiumLRSType = Microsoft.Azure.Batch.Common.StorageAccountType.PremiumLrs; + var mgmtPremiumLRSType = Utils.Utils.ToMgmtStorageAccountType(premiumLRSType); + + Assert.NotNull(mgmtPremiumLRSType); + Assert.Equal(StorageAccountType.PremiumLRS, mgmtPremiumLRSType.Value); + // Use case: High-performance workloads requiring maximum IOPS and low latency + + // StandardSSDLRS semantics - Standard SSD locally redundant storage + var standardSSDLRSType = Microsoft.Azure.Batch.Common.StorageAccountType.StandardSSDLRS; + var mgmtStandardSSDLRSType = Utils.Utils.ToMgmtStorageAccountType(standardSSDLRSType); + + Assert.NotNull(mgmtStandardSSDLRSType); + Assert.Equal(StorageAccountType.StandardSSDLRS, mgmtStandardSSDLRSType.Value); + // Use case: Balanced performance and cost for general-purpose workloads + + // Verify all round-trip correctly + var standardLRSRoundTrip = Utils.Utils.FromMgmtStorageAccountType(mgmtStandardLRSType); + var premiumLRSRoundTrip = Utils.Utils.FromMgmtStorageAccountType(mgmtPremiumLRSType); + var standardSSDLRSRoundTrip = Utils.Utils.FromMgmtStorageAccountType(mgmtStandardSSDLRSType); + + Assert.Equal(standardLRSType, standardLRSRoundTrip.Value); + Assert.Equal(premiumLRSType, premiumLRSRoundTrip.Value); + Assert.Equal(standardSSDLRSType, standardSSDLRSRoundTrip.Value); + } + + [Fact] + public void StorageAccountTypeConversions_PerformanceCharacteristics_VerifySemantics() + { + // This test validates that the storage account types maintain their performance characteristics + // through the conversion process + + var performanceProfiles = new[] + { + new { + Type = Microsoft.Azure.Batch.Common.StorageAccountType.StandardLrs, + Category = "HDD", + PerformanceProfile = "Cost-Optimized", + TypicalIOPS = "Up to 500 IOPS", + UseCases = new[] { "Backup", "Archive", "Large datasets with infrequent access" } + }, + new { + Type = Microsoft.Azure.Batch.Common.StorageAccountType.StandardSSDLRS, + Category = "SSD", + PerformanceProfile = "Balanced", + TypicalIOPS = "Up to 6,000 IOPS", + UseCases = new[] { "Web servers", "Development environments", "General-purpose workloads" } + }, + new { + Type = Microsoft.Azure.Batch.Common.StorageAccountType.PremiumLrs, + Category = "Premium SSD", + PerformanceProfile = "High-Performance", + TypicalIOPS = "Up to 20,000+ IOPS", + UseCases = new[] { "Production databases", "High-performance computing", "Low-latency applications" } + } + }; + + foreach (var profile in performanceProfiles) + { + // Act - Convert to management type and back + var mgmtType = Utils.Utils.ToMgmtStorageAccountType(profile.Type); + var roundTripType = Utils.Utils.FromMgmtStorageAccountType(mgmtType); + + // Assert - Performance characteristics should be preserved + Assert.NotNull(mgmtType); + Assert.NotNull(roundTripType); + Assert.Equal(profile.Type, roundTripType.Value); + + // Verify the conversion maintains the semantic meaning + var expectedMgmtValue = profile.Type switch + { + Microsoft.Azure.Batch.Common.StorageAccountType.StandardLrs => StorageAccountType.StandardLRS, + Microsoft.Azure.Batch.Common.StorageAccountType.PremiumLrs => StorageAccountType.PremiumLRS, + Microsoft.Azure.Batch.Common.StorageAccountType.StandardSSDLRS => StorageAccountType.StandardSSDLRS, + _ => throw new ArgumentOutOfRangeException() + }; + + Assert.Equal(expectedMgmtValue, mgmtType.Value); + } + } + + #endregion + + #region Case Sensitivity Tests + + [Fact] + public void UppercaseVsLowercaseMethods_BehaviorConsistency_VerifyIdenticalOutput() + { + // This test verifies that the uppercase and lowercase method variants produce identical results + // This ensures consistency between ToMgmtStorageAccountType/toMgmtStorageAccountType and + // FromMgmtStorageAccountType/fromMgmtStorageAccountType + + // Arrange + var testValues = new[] + { + Microsoft.Azure.Batch.Common.StorageAccountType.StandardLrs, + Microsoft.Azure.Batch.Common.StorageAccountType.PremiumLrs, + Microsoft.Azure.Batch.Common.StorageAccountType.StandardSSDLRS + }; + + foreach (var testValue in testValues) + { + // Act - Call both uppercase and lowercase variants + var uppercaseResult = Utils.Utils.ToMgmtStorageAccountType(testValue); + var lowercaseResult = Utils.Utils.toMgmtStorageAccountType(testValue); + + // Assert - Both should produce identical results + Assert.Equal(uppercaseResult, lowercaseResult); + + // Test the reverse direction + if (uppercaseResult.HasValue) + { + var uppercaseReverseResult = Utils.Utils.FromMgmtStorageAccountType(uppercaseResult.Value); + var lowercaseReverseResult = Utils.Utils.fromMgmtStorageAccountType(uppercaseResult.Value); + + Assert.Equal(uppercaseReverseResult, lowercaseReverseResult); + } + } + } + + [Fact] + public void UppercaseVsLowercaseMethods_NullHandling_VerifyConsistency() + { + // This test ensures that both uppercase and lowercase variants handle null values consistently + + // Arrange + Microsoft.Azure.Batch.Common.StorageAccountType? nullPsValue = null; + StorageAccountType? nullMgmtValue = null; + + // Act + var uppercaseToMgmtResult = Utils.Utils.ToMgmtStorageAccountType(nullPsValue); + var lowercaseToMgmtResult = Utils.Utils.toMgmtStorageAccountType(nullPsValue); + + var uppercaseFromMgmtResult = Utils.Utils.FromMgmtStorageAccountType(nullMgmtValue); + var lowercaseFromMgmtResult = Utils.Utils.fromMgmtStorageAccountType(nullMgmtValue); + + // Assert - Both variants should handle nulls identically + Assert.Equal(uppercaseToMgmtResult, lowercaseToMgmtResult); + Assert.Equal(uppercaseFromMgmtResult, lowercaseFromMgmtResult); + Assert.Null(uppercaseToMgmtResult); + Assert.Null(lowercaseToMgmtResult); + Assert.Null(uppercaseFromMgmtResult); + Assert.Null(lowercaseFromMgmtResult); + } + + #endregion + } +} \ No newline at end of file diff --git a/src/Batch/Batch/Models.Generated/PSAzureBlobFileSystemConfiguration.cs b/src/Batch/Batch/Models.Generated/PSAzureBlobFileSystemConfiguration.cs index 86edf227e991..0eb0aac11111 100644 --- a/src/Batch/Batch/Models.Generated/PSAzureBlobFileSystemConfiguration.cs +++ b/src/Batch/Batch/Models.Generated/PSAzureBlobFileSystemConfiguration.cs @@ -27,8 +27,7 @@ namespace Microsoft.Azure.Commands.Batch.Models using System.Collections; using System.Collections.Generic; using Microsoft.Azure.Batch; - - + public partial class PSAzureBlobFileSystemConfiguration { @@ -127,5 +126,7 @@ public string SasKey return this.omObject.SasKey; } } + + } } diff --git a/src/Batch/Batch/Models/BatchClient.Pools.cs b/src/Batch/Batch/Models/BatchClient.Pools.cs index 8567674d448a..5426c79503fa 100644 --- a/src/Batch/Batch/Models/BatchClient.Pools.cs +++ b/src/Batch/Batch/Models/BatchClient.Pools.cs @@ -17,6 +17,7 @@ using Microsoft.Azure.Commands.Batch.Properties; using Microsoft.Azure.Management.Batch; using Microsoft.Azure.Management.Batch.Models; +using Microsoft.Rest.Azure; using System; using System.Collections; using System.Collections.Generic; @@ -66,7 +67,13 @@ public IEnumerable ListPools(ListPoolOptions options) PoolOperations poolOperations = options.Context.BatchOMClient.PoolOperations; IPagedEnumerable pools = poolOperations.ListPools(listDetailLevel, options.AdditionalBehaviors); + + IPage mgmtPools = BatchManagementClient.Pool.ListByBatchAccount( + resourceGroupName: options.Context.ResourceGroupName, + accountName: options.Context.AccountName); + Func mappingFunction = p => { return new PSCloudPool(p); }; + return PSPagedEnumerable.CreateWithMaxCount( pools, mappingFunction, options.MaxCount, () => WriteMaxCount(options.MaxCount)); } @@ -87,16 +94,20 @@ public void CreatePool(NewPoolParameters parameters) CloudPool pool = poolOperations.CreatePool(); - Pool mgmtPool = new Pool(); + Pool mgmtPool = new Pool(id: parameters.PoolId,name: parameters.DisplayName); pool.Id = parameters.PoolId; - //mgmtPool.Id = parameters.PoolId; pool.VirtualMachineSize = parameters.VirtualMachineSize; mgmtPool.VMSize = parameters.VirtualMachineSize; pool.DisplayName = parameters.DisplayName; mgmtPool.DisplayName = parameters.DisplayName; pool.ResizeTimeout = parameters.ResizeTimeout; - mgmtPool.ResizeOperationStatus.ResizeTimeout = parameters.ResizeTimeout; + if (parameters.ResizeTimeout.HasValue) + { + mgmtPool.ScaleSettings = new ScaleSettings(); + mgmtPool.ScaleSettings.FixedScale = new FixedScaleSettings(); + mgmtPool.ScaleSettings.FixedScale.ResizeTimeout = parameters.ResizeTimeout; + } pool.TaskSlotsPerNode = parameters.TaskSlotsPerNode; mgmtPool.TaskSlotsPerNode = parameters.TaskSlotsPerNode; pool.InterComputeNodeCommunicationEnabled = parameters.InterComputeNodeCommunicationEnabled; @@ -108,6 +119,10 @@ public void CreatePool(NewPoolParameters parameters) pool.AutoScaleEvaluationInterval = parameters.AutoScaleEvaluationInterval; pool.AutoScaleFormula = parameters.AutoScaleFormula; + if(mgmtPool.ScaleSettings == null) + { + mgmtPool.ScaleSettings = new ScaleSettings(); + } mgmtPool.ScaleSettings.AutoScale = new AutoScaleSettings { Formula = parameters.AutoScaleFormula, @@ -119,6 +134,10 @@ public void CreatePool(NewPoolParameters parameters) pool.TargetDedicatedComputeNodes = parameters.TargetDedicatedComputeNodes; pool.TargetLowPriorityComputeNodes = parameters.TargetLowPriorityComputeNodes; + if (mgmtPool.ScaleSettings == null) + { + mgmtPool.ScaleSettings = new ScaleSettings(); + } mgmtPool.ScaleSettings.FixedScale = new FixedScaleSettings { TargetDedicatedNodes = parameters.TargetDedicatedComputeNodes, @@ -176,25 +195,35 @@ public void CreatePool(NewPoolParameters parameters) if (parameters.NetworkConfiguration != null) { pool.NetworkConfiguration = parameters.NetworkConfiguration.omObject; + mgmtPool.NetworkConfiguration = parameters.NetworkConfiguration.toMgmtNetworkConfiguration(); } if (parameters.MountConfiguration != null) { pool.MountConfiguration = new List(); + mgmtPool.MountConfiguration = new List(); foreach (PSMountConfiguration m in parameters.MountConfiguration) { pool.MountConfiguration.Add(m.omObject); + mgmtPool.MountConfiguration.Add(m.toMgmtMountConfiguration()); } } if (parameters.UserAccounts != null) { pool.UserAccounts = parameters.UserAccounts.ToList().ConvertAll(user => user.omObject); + mgmtPool.UserAccounts = parameters.UserAccounts.ToList().ConvertAll(user => user.toMgmtUserAccount()); } WriteVerbose(string.Format(Resources.CreatingPool, parameters.PoolId)); - pool.Commit(parameters.AdditionalBehaviors); + BatchManagementClient.Pool.Create( + resourceGroupName: parameters.Context.ResourceGroupName, + accountName: parameters.Context.AccountName, + poolName: parameters.PoolId, + parameters: mgmtPool); + + //pool.Commit(parameters.AdditionalBehaviors); } /// diff --git a/src/Batch/Batch/Models/PSAzureBlobFileSystemConfiguration.cs b/src/Batch/Batch/Models/PSAzureBlobFileSystemConfiguration.cs new file mode 100644 index 000000000000..88e966259d91 --- /dev/null +++ b/src/Batch/Batch/Models/PSAzureBlobFileSystemConfiguration.cs @@ -0,0 +1,78 @@ +// ----------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ----------------------------------------------------------------------------- + +using System; +using System.Collections.Generic; +using System.Text; +using System.Xml; +using Microsoft.Azure.Management.Batch; +using Microsoft.Azure.Management.Batch.Models; +using Microsoft.Azure.Commands.Batch.Utils; + +namespace Microsoft.Azure.Commands.Batch.Models +{ + public partial class PSAzureBlobFileSystemConfiguration + { + internal Management.Batch.Models.AzureBlobFileSystemConfiguration toMgmtAzureBlobFileSystemConfiguration() + { + return new Management.Batch.Models.AzureBlobFileSystemConfiguration() + { + AccountName = this.AccountName, + ContainerName = this.ContainerName, + AccountKey = this.AccountKey, + SasKey = this.SasKey, + BlobfuseOptions = this.BlobfuseOptions, + RelativeMountPath = this.RelativeMountPath, + IdentityReference = this.IdentityReference?.toMgmtIdentityReference() + }; + } + + internal static PSAzureBlobFileSystemConfiguration fromMgmtAzureBlobFileSystemConfiguration(Management.Batch.Models.AzureBlobFileSystemConfiguration fsConfig) + { + if (fsConfig == null) + { + return null; + } + if (fsConfig.IdentityReference != null) + { + return new PSAzureBlobFileSystemConfiguration( + accountName: fsConfig.AccountName, + containerName: fsConfig.ContainerName, + relativeMountPath: fsConfig.RelativeMountPath, + identityReference: (fsConfig.IdentityReference != null ? new PSComputeNodeIdentityReference(PSComputeNodeIdentityReference.fromMgmtIdentityReference(fsConfig.IdentityReference)) : null), + blobfuseOptions: fsConfig.BlobfuseOptions); + + }else if (fsConfig.SasKey != null) + { + return new PSAzureBlobFileSystemConfiguration( + accountName: fsConfig.AccountName, + containerName: fsConfig.ContainerName, + relativeMountPath: fsConfig.RelativeMountPath, + key: Microsoft.Azure.Batch.AzureStorageAuthenticationKey.FromSasKey(fsConfig.SasKey), + blobfuseOptions: fsConfig.BlobfuseOptions); + } + else if (fsConfig.AccountKey != null) + { + return new PSAzureBlobFileSystemConfiguration( + accountName: fsConfig.AccountName, + containerName: fsConfig.ContainerName, + relativeMountPath: fsConfig.RelativeMountPath, + key: Microsoft.Azure.Batch.AzureStorageAuthenticationKey.FromAccountKey(fsConfig.AccountKey), + blobfuseOptions: fsConfig.BlobfuseOptions); + } + + return null; + } + } +} diff --git a/src/Batch/Batch/Models/PSAzureFileShareConfiguration.cs b/src/Batch/Batch/Models/PSAzureFileShareConfiguration.cs new file mode 100644 index 000000000000..bfcd90a182b9 --- /dev/null +++ b/src/Batch/Batch/Models/PSAzureFileShareConfiguration.cs @@ -0,0 +1,53 @@ +// ----------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ----------------------------------------------------------------------------- + +using System; +using System.Collections.Generic; +using System.Text; +using System.Xml; +using Microsoft.Azure.Management.Batch; +using Microsoft.Azure.Management.Batch.Models; +using Microsoft.Azure.Commands.Batch.Utils; + +namespace Microsoft.Azure.Commands.Batch.Models +{ + public partial class PSAzureFileShareConfiguration + { + internal AzureFileShareConfiguration toMgmtAzureFileShareConfiguration() + { + return new AzureFileShareConfiguration( + accountName: this.AccountName, + azureFileUrl: this.AzureFileUrl, + accountKey: this.AccountKey, + relativeMountPath: this.RelativeMountPath, + mountOptions: this.MountOptions); + } + + internal static PSAzureFileShareConfiguration fromMgmtAzureFileShareConfiguration(AzureFileShareConfiguration afs) + { + if (afs == null) + { + return null; + } + return new PSAzureFileShareConfiguration( + + accountName: afs.AccountName, + azureFileUrl: afs.AzureFileUrl, + accountKey: afs.AccountKey, + relativeMountPath: afs.RelativeMountPath, + mountOptions: afs.MountOptions + ); + } + } +} diff --git a/src/Batch/Batch/Models/PSCifsMountConfiguration.cs b/src/Batch/Batch/Models/PSCifsMountConfiguration.cs new file mode 100644 index 000000000000..f46bba596e8d --- /dev/null +++ b/src/Batch/Batch/Models/PSCifsMountConfiguration.cs @@ -0,0 +1,56 @@ +// ----------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ----------------------------------------------------------------------------- + +using Microsoft.Azure.Commands.Batch.Utils; +using Microsoft.Azure.Graph.RBAC.Version1_6_20190326.Models; +using Microsoft.Azure.Management.Batch; +using Microsoft.Azure.Management.Batch.Models; +using Microsoft.Azure.Management.Monitor.Version2018_09_01.Models; +using System; +using System.Collections.Generic; +using System.Text; +using System.Xml; + +namespace Microsoft.Azure.Commands.Batch.Models +{ + public partial class PSCifsMountConfiguration + { + internal CifsMountConfiguration toMgmtCifsMountConfiguration() + { + return new CifsMountConfiguration() + { + UserName = this.Username, + Source = this.Source, + RelativeMountPath = this.RelativeMountPath, + MountOptions = this.MountOptions, + Password = this.Password + }; + } + + internal static PSCifsMountConfiguration fromMgmtCifsMountConfiguration(CifsMountConfiguration cifsMountConfiguration) + { + if (cifsMountConfiguration == null) + { + return null; + } + return new PSCifsMountConfiguration( + username: cifsMountConfiguration.UserName, + source: cifsMountConfiguration.Source, + relativeMountPath: cifsMountConfiguration.RelativeMountPath, + mountOptions: cifsMountConfiguration.MountOptions, + password: cifsMountConfiguration.Password + ); + } + } +} diff --git a/src/Batch/Batch/Models/PSContainerConfiguration.cs b/src/Batch/Batch/Models/PSContainerConfiguration.cs index 0a23b1768e99..fde0854c4365 100644 --- a/src/Batch/Batch/Models/PSContainerConfiguration.cs +++ b/src/Batch/Batch/Models/PSContainerConfiguration.cs @@ -31,7 +31,7 @@ internal ContainerConfiguration toMgmtContainerConfiguration() this.ContainerRegistries?.ToList().ConvertAll(cr => cr.toMgmtContainerRegistry())); } - internal PSContainerConfiguration fromMgmtContainerConfiguration(ContainerConfiguration containerConfiguration) + internal static PSContainerConfiguration fromMgmtContainerConfiguration(ContainerConfiguration containerConfiguration) { if (containerConfiguration == null) { diff --git a/src/Batch/Batch/Models/PSDiffDiskSettings.cs b/src/Batch/Batch/Models/PSDiffDiskSettings.cs new file mode 100644 index 000000000000..5e46d4a73886 --- /dev/null +++ b/src/Batch/Batch/Models/PSDiffDiskSettings.cs @@ -0,0 +1,47 @@ +// ----------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ----------------------------------------------------------------------------- + +using System; +using System.Collections.Generic; +using System.Text; +using System.Xml; +using Microsoft.Azure.Management.Batch; +using Microsoft.Azure.Management.Batch.Models; +using Microsoft.Azure.Commands.Batch.Utils; + +namespace Microsoft.Azure.Commands.Batch.Models +{ + public partial class PSDiffDiskSettings + { + internal static PSDiffDiskSettings FromMgmtDiffDiskSettings(DiffDiskSettings ephemeralOSDiskSettings) + { + if (ephemeralOSDiskSettings == null) + { + return null; + } + return new PSDiffDiskSettings() + { + Placement = Utils.Utils.FromMgmtPlacement(ephemeralOSDiskSettings.Placement) + }; + } + + internal DiffDiskSettings ToMgmtEphemeralOSDiskSettings() + { + return new DiffDiskSettings() + { + Placement = Utils.Utils.ToMgmtPlacement(this.Placement) + }; + } + } +} diff --git a/src/Batch/Batch/Models/PSInboundNatPool.cs b/src/Batch/Batch/Models/PSInboundNatPool.cs new file mode 100644 index 000000000000..dba4d92ee1c0 --- /dev/null +++ b/src/Batch/Batch/Models/PSInboundNatPool.cs @@ -0,0 +1,57 @@ +// ----------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ----------------------------------------------------------------------------- + +using System; +using System.Collections.Generic; +using System.Text; +using System.Xml; +using Microsoft.Azure.Management.Batch; +using Microsoft.Azure.Management.Batch.Models; +using Microsoft.Azure.Commands.Batch.Utils; +using System.Linq; + +namespace Microsoft.Azure.Commands.Batch.Models +{ + public partial class PSInboundNatPool + { + internal static Azure.Batch.InboundNatPool FromMgmtInboundNatPool(InboundNatPool e) + { + if (e == null) + { + return null; + } + return new Azure.Batch.InboundNatPool( + name: e.Name, + protocol: Utils.Utils.FromMgmtInboundEndpointProtocol(e.Protocol), + backendPort: e.BackendPort, + frontendPortRangeStart: e.FrontendPortRangeStart, + frontendPortRangeEnd: e.FrontendPortRangeEnd, + networkSecurityGroupRules: (IReadOnlyList)((e.NetworkSecurityGroupRules != null ? e.NetworkSecurityGroupRules.Select(PSNetworkSecurityGroupRule.FromMgmtNetworkSecurityGroupRule).ToList() : null)) + ); + } + + internal InboundNatPool toMgmtInboundNatPool() + { + return new InboundNatPool() + { + Name = this.Name, + Protocol = Utils.Utils.ToMgmtInboundEndpointProtocol(this.Protocol), + BackendPort = this.BackendPort, + FrontendPortRangeStart = this.FrontendPortRangeStart, + FrontendPortRangeEnd = this.FrontendPortRangeEnd, + NetworkSecurityGroupRules = (this.NetworkSecurityGroupRules != null) ? this.NetworkSecurityGroupRules.Select(e => e.toMgmtNetworkSecurityGroupRule()).ToList() : null + }; + } + } +} diff --git a/src/Batch/Batch/Models/PSLinuxUserConfiguration.cs b/src/Batch/Batch/Models/PSLinuxUserConfiguration.cs new file mode 100644 index 000000000000..72a41a541bb0 --- /dev/null +++ b/src/Batch/Batch/Models/PSLinuxUserConfiguration.cs @@ -0,0 +1,49 @@ +// ----------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ----------------------------------------------------------------------------- + +using System; +using System.Collections.Generic; +using System.Text; +using System.Xml; +using Microsoft.Azure.Management.Batch; +using Microsoft.Azure.Management.Batch.Models; +using Microsoft.Azure.Commands.Batch.Utils; + +namespace Microsoft.Azure.Commands.Batch.Models +{ + public partial class PSLinuxUserConfiguration + { + internal LinuxUserConfiguration ToLinuxUserConfiguration() + { + return new LinuxUserConfiguration( + uid: this.Uid, + gid: this.Gid, + sshPrivateKey: this.SshPrivateKey); + } + + internal static PSLinuxUserConfiguration FromLinuxUserConfiguration(LinuxUserConfiguration linuxUserConfiguration) + { + if (linuxUserConfiguration == null) + { + return null; + } + return new PSLinuxUserConfiguration() + { + Uid = linuxUserConfiguration.Uid, + Gid = linuxUserConfiguration.Gid, + SshPrivateKey = linuxUserConfiguration.SshPrivateKey + }; + } + } +} diff --git a/src/Batch/Batch/Models/PSManagedDisk.cs b/src/Batch/Batch/Models/PSManagedDisk.cs new file mode 100644 index 000000000000..4e3ceec4ca71 --- /dev/null +++ b/src/Batch/Batch/Models/PSManagedDisk.cs @@ -0,0 +1,41 @@ +// ----------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ----------------------------------------------------------------------------- + +using System; +using System.Collections.Generic; +using System.Text; +using Microsoft.Azure.Management.Batch; +using Microsoft.Azure.Management.Batch.Models; +using Microsoft.Azure.Commands.Batch.Utils; + +namespace Microsoft.Azure.Commands.Batch.Models +{ + public partial class PSManagedDisk + { + internal static PSManagedDisk FromMgmtManagedDisk(ManagedDisk managedDisk) + { + if (managedDisk == null) + { + return null; + } + return new PSManagedDisk(securityProfile: PSVMDiskSecurityProfile.FromMgmtVMDiskSecurityProfile(managedDisk.SecurityProfile), storageAccountType: Utils.Utils.FromMgmtStorageAccountType(managedDisk.StorageAccountType)); + } + + internal ManagedDisk ToMgmtManagedDisk() + { + ManagedDisk managedDisk = new ManagedDisk(storageAccountType: Utils.Utils.ToMgmtStorageAccountType(this.StorageAccountType), securityProfile: this.SecurityProfile?.ToMgmtVMDiskSecurityProfile()); + return managedDisk; + } + } +} diff --git a/src/Batch/Batch/Models/PSMountConfiguration.cs b/src/Batch/Batch/Models/PSMountConfiguration.cs new file mode 100644 index 000000000000..65f71171157b --- /dev/null +++ b/src/Batch/Batch/Models/PSMountConfiguration.cs @@ -0,0 +1,64 @@ +// ----------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ----------------------------------------------------------------------------- + +using System; +using System.Collections.Generic; +using System.Text; +using System.Xml; +using Microsoft.Azure.Management.Batch; +using Microsoft.Azure.Management.Batch.Models; +using Microsoft.Azure.Commands.Batch.Utils; + +namespace Microsoft.Azure.Commands.Batch.Models +{ + public partial class PSMountConfiguration + { + internal MountConfiguration toMgmtMountConfiguration() + { + return new MountConfiguration() + { + AzureBlobFileSystemConfiguration = this.AzureBlobFileSystemConfiguration?.toMgmtAzureBlobFileSystemConfiguration(), + NfsMountConfiguration = this.NfsMountConfiguration?.toMgmtNfsMountConfiguration(), + CifsMountConfiguration = this.CifsMountConfiguration?.toMgmtCifsMountConfiguration(), + AzureFileShareConfiguration = this.AzureFileShareConfiguration?.toMgmtAzureFileShareConfiguration() + }; + } + + internal static PSMountConfiguration fromMgmtMountConfiguration(MountConfiguration mountConfiguration) + { + if (mountConfiguration == null) + { + return null; + } + if(mountConfiguration.NfsMountConfiguration != null) + { + return new PSMountConfiguration(PSNfsMountConfiguration.fromMgmtNfsMountConfiguration(mountConfiguration.NfsMountConfiguration)); + } + if(mountConfiguration.CifsMountConfiguration != null) + { + return new PSMountConfiguration(PSCifsMountConfiguration.fromMgmtCifsMountConfiguration(mountConfiguration.CifsMountConfiguration)); + } + if(mountConfiguration.AzureBlobFileSystemConfiguration != null) + { + return new PSMountConfiguration(PSAzureBlobFileSystemConfiguration.fromMgmtAzureBlobFileSystemConfiguration(mountConfiguration.AzureBlobFileSystemConfiguration)); + } + if(mountConfiguration.AzureFileShareConfiguration != null) + { + return new PSMountConfiguration(PSAzureFileShareConfiguration.fromMgmtAzureFileShareConfiguration(mountConfiguration.AzureFileShareConfiguration)); + } + + return null; + } + } +} diff --git a/src/Batch/Batch/Models/PSNetworkConfiguration.cs b/src/Batch/Batch/Models/PSNetworkConfiguration.cs new file mode 100644 index 000000000000..d1c687ac1698 --- /dev/null +++ b/src/Batch/Batch/Models/PSNetworkConfiguration.cs @@ -0,0 +1,56 @@ +// ----------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ----------------------------------------------------------------------------- + +using System; +using System.Collections.Generic; +using System.Text; +using System.Xml; +using Microsoft.Azure.Management.Batch; +using Microsoft.Azure.Management.Batch.Models; +using Microsoft.Azure.Commands.Batch.Utils; +using System.Linq; + +namespace Microsoft.Azure.Commands.Batch.Models +{ + public partial class PSNetworkConfiguration + { + internal NetworkConfiguration toMgmtNetworkConfiguration() + { + return new NetworkConfiguration() + { + SubnetId = this.SubnetId, + PublicIPAddressConfiguration = (this.PublicIPAddressConfiguration != null) ? this.PublicIPAddressConfiguration.toMgmtPublicIPAddressConfiguration() : null, + DynamicVnetAssignmentScope = Utils.Utils.toMgmtDynamicVNetAssignmentScope(this.DynamicVNetAssignmentScope), + EndpointConfiguration = this.EndpointConfiguration?.toMgmtPoolEndpointConfiguration(), + EnableAcceleratedNetworking = this.EnableAcceleratedNetworking + }; + } + + internal static PSNetworkConfiguration fromMgmtNetworkConfiguration(NetworkConfiguration networkConfiguration) + { + if (networkConfiguration == null) + { + return null; + } + return new PSNetworkConfiguration() + { + SubnetId = networkConfiguration.SubnetId, + PublicIPAddressConfiguration = PSPublicIPAddressConfiguration.FromMgmtPublicIPAddressConfiguration(networkConfiguration.PublicIPAddressConfiguration), + DynamicVNetAssignmentScope = Utils.Utils.fromMgmtDynamicVNetAssignmentScope(networkConfiguration.DynamicVnetAssignmentScope), + EndpointConfiguration = PSPoolEndpointConfiguration.FromMgmtPoolEndpointConfiguration(networkConfiguration.EndpointConfiguration), + EnableAcceleratedNetworking = networkConfiguration.EnableAcceleratedNetworking + }; + } + } +} diff --git a/src/Batch/Batch/Models/PSNetworkSecurityGroupRule.cs b/src/Batch/Batch/Models/PSNetworkSecurityGroupRule.cs new file mode 100644 index 000000000000..c882327d8be1 --- /dev/null +++ b/src/Batch/Batch/Models/PSNetworkSecurityGroupRule.cs @@ -0,0 +1,52 @@ +// ----------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ----------------------------------------------------------------------------- + +using System; +using System.Collections.Generic; +using System.Text; +using System.Xml; +using Microsoft.Azure.Management.Batch; +using Microsoft.Azure.Management.Batch.Models; +using Microsoft.Azure.Commands.Batch.Utils; +using System.Linq; + +namespace Microsoft.Azure.Commands.Batch.Models +{ + public partial class PSNetworkSecurityGroupRule + { + public static Microsoft.Azure.Batch.NetworkSecurityGroupRule FromMgmtNetworkSecurityGroupRule(NetworkSecurityGroupRule rule) + { + if (rule == null) + { + return null; + } + return new Microsoft.Azure.Batch.NetworkSecurityGroupRule( + priority: rule.Priority, + access: Utils.Utils.FromMgmtNetworkSecurityRuleAccess(rule.Access), + sourceAddressPrefix: rule.SourceAddressPrefix, + sourcePortRanges: (IReadOnlyList)(rule.SourcePortRanges) + ); + } + + public Microsoft.Azure.Management.Batch.Models.NetworkSecurityGroupRule toMgmtNetworkSecurityGroupRule() + { + return new NetworkSecurityGroupRule( + priority: this.Priority, + access: Utils.Utils.ToMgmtNetworkSecurityRuleAccess(this.Access), + sourceAddressPrefix: this.SourceAddressPrefix, + sourcePortRanges: (IList)this.SourcePortRanges + ); + } + } +} diff --git a/src/Batch/Batch/Models/PSNfsMountConfiguration.cs b/src/Batch/Batch/Models/PSNfsMountConfiguration.cs new file mode 100644 index 000000000000..fc291ddd2b34 --- /dev/null +++ b/src/Batch/Batch/Models/PSNfsMountConfiguration.cs @@ -0,0 +1,49 @@ +// ----------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ----------------------------------------------------------------------------- + +using System; +using System.Collections.Generic; +using System.Text; +using System.Xml; +using Microsoft.Azure.Management.Batch; +using Microsoft.Azure.Management.Batch.Models; +using Microsoft.Azure.Commands.Batch.Utils; + +namespace Microsoft.Azure.Commands.Batch.Models +{ + public partial class PSNfsMountConfiguration + { + internal NFSMountConfiguration toMgmtNfsMountConfiguration() + { + return new NFSMountConfiguration( + source: this.Source, + relativeMountPath: this.RelativeMountPath, + mountOptions: this.MountOptions + ); + } + + internal static PSNfsMountConfiguration fromMgmtNfsMountConfiguration(NFSMountConfiguration nfsMountConfiguration) + { + if (nfsMountConfiguration == null) + { + return null; + } + return new PSNfsMountConfiguration( + source: nfsMountConfiguration.Source, + relativeMountPath: nfsMountConfiguration.RelativeMountPath, + mountOptions: nfsMountConfiguration.MountOptions + ); + } + } +} diff --git a/src/Batch/Batch/Models/PSNodePlacementConfiguration.cs b/src/Batch/Batch/Models/PSNodePlacementConfiguration.cs new file mode 100644 index 000000000000..91f46b1c2f0f --- /dev/null +++ b/src/Batch/Batch/Models/PSNodePlacementConfiguration.cs @@ -0,0 +1,41 @@ +// ----------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ----------------------------------------------------------------------------- + +using System; +using System.Collections.Generic; +using System.Text; +using System.Xml; +using Microsoft.Azure.Management.Batch; +using Microsoft.Azure.Management.Batch.Models; +using Microsoft.Azure.Commands.Batch.Utils; + +namespace Microsoft.Azure.Commands.Batch.Models +{ + public partial class PSNodePlacementConfiguration + { + internal NodePlacementConfiguration toMgmtNodePlacementConfiguration() + { + return new NodePlacementConfiguration(Utils.Utils.toMgmtNodePlacementPolicyType(this.Policy)); + } + + internal static PSNodePlacementConfiguration fromMgmtNodePlacementConfiguration(NodePlacementConfiguration nodePlacementConfiguration) + { + if (nodePlacementConfiguration == null) + { + return null; + } + return new PSNodePlacementConfiguration(Utils.Utils.fromMgmtNodePlacementPolicyType(nodePlacementConfiguration.Policy)); + } + } +} diff --git a/src/Batch/Batch/Models/PSOSDisk.cs b/src/Batch/Batch/Models/PSOSDisk.cs new file mode 100644 index 000000000000..daa9e186cb35 --- /dev/null +++ b/src/Batch/Batch/Models/PSOSDisk.cs @@ -0,0 +1,57 @@ +// ----------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ----------------------------------------------------------------------------- + +using System; +using System.Collections.Generic; +using System.Text; +using System.Xml; +using Microsoft.Azure.Management.Batch; +using Microsoft.Azure.Management.Batch.Models; +using Microsoft.Azure.Commands.Batch.Utils; + +namespace Microsoft.Azure.Commands.Batch.Models +{ + public partial class PSOSDisk + { + internal Management.Batch.Models.OSDisk toMgmtOSDisk() + { + OSDisk osDisk = new OSDisk(); + osDisk.ManagedDisk = this.ManagedDisk?.ToMgmtManagedDisk(); + osDisk.DiskSizeGb = this.DiskSizeGB; + osDisk.EphemeralOSDiskSettings = this.EphemeralOSDiskSettings?.ToMgmtEphemeralOSDiskSettings(); + osDisk.Caching = Utils.Utils.toMgmtCaching(this.Caching); + osDisk.WriteAcceleratorEnabled = this.WriteAcceleratorEnabled; + + return osDisk; + } + + internal static PSOSDisk fromMgmtOSDisk(Management.Batch.Models.OSDisk osDisk) + { + if (osDisk == null) + { + return null; + } + + + PSOSDisk psOSDisk = new PSOSDisk(); + psOSDisk.ManagedDisk = PSManagedDisk.FromMgmtManagedDisk(osDisk.ManagedDisk); + psOSDisk.DiskSizeGB = osDisk.DiskSizeGb; + psOSDisk.EphemeralOSDiskSettings = PSDiffDiskSettings.FromMgmtDiffDiskSettings(osDisk.EphemeralOSDiskSettings); + psOSDisk.Caching = Utils.Utils.fromMgmtCaching(osDisk.Caching); + psOSDisk.WriteAcceleratorEnabled = osDisk.WriteAcceleratorEnabled; + + return psOSDisk; + } + } +} diff --git a/src/Batch/Batch/Models/PSPoolEndpointConfiguration.cs b/src/Batch/Batch/Models/PSPoolEndpointConfiguration.cs new file mode 100644 index 000000000000..fb9d43a492a2 --- /dev/null +++ b/src/Batch/Batch/Models/PSPoolEndpointConfiguration.cs @@ -0,0 +1,47 @@ +// ----------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ----------------------------------------------------------------------------- + +using System; +using System.Collections.Generic; +using System.Text; +using System.Xml; +using Microsoft.Azure.Management.Batch; +using Microsoft.Azure.Management.Batch.Models; +using Microsoft.Azure.Commands.Batch.Utils; +using System.Linq; + +namespace Microsoft.Azure.Commands.Batch.Models +{ + public partial class PSPoolEndpointConfiguration + { + internal static PSPoolEndpointConfiguration FromMgmtPoolEndpointConfiguration(PoolEndpointConfiguration endpointConfiguration) + { + if (endpointConfiguration == null) + { + return null; + } + return new PSPoolEndpointConfiguration( + inboundNatPools: (endpointConfiguration.InboundNatPools != null) ? (IReadOnlyList)endpointConfiguration.InboundNatPools.Select(e => PSInboundNatPool.FromMgmtInboundNatPool(e)).ToList() : null + ); + } + + internal PoolEndpointConfiguration toMgmtPoolEndpointConfiguration() + { + return new PoolEndpointConfiguration() + { + InboundNatPools = (this.InboundNatPools != null) ? this.InboundNatPools.Select(e => e.toMgmtInboundNatPool()).ToList() : null, + }; + } + } +} diff --git a/src/Batch/Batch/Models/PSPublicIPAddressConfiguration.cs b/src/Batch/Batch/Models/PSPublicIPAddressConfiguration.cs new file mode 100644 index 000000000000..5ba1cea05cbc --- /dev/null +++ b/src/Batch/Batch/Models/PSPublicIPAddressConfiguration.cs @@ -0,0 +1,50 @@ +// ----------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ----------------------------------------------------------------------------- + +using System; +using System.Collections.Generic; +using System.Text; +using System.Xml; +using Microsoft.Azure.Management.Batch; +using Microsoft.Azure.Management.Batch.Models; +using Microsoft.Azure.Commands.Batch.Utils; +using System.Linq; + +namespace Microsoft.Azure.Commands.Batch.Models +{ + public partial class PSPublicIPAddressConfiguration + { + internal static PSPublicIPAddressConfiguration FromMgmtPublicIPAddressConfiguration(PublicIPAddressConfiguration publicIPAddressConfiguration) + { + if (publicIPAddressConfiguration == null) + { + return null; + } + Microsoft.Azure.Batch.Common.IPAddressProvisioningType? provision = Utils.Utils.toIPAddressProvisioningType(publicIPAddressConfiguration.Provision); + return new PSPublicIPAddressConfiguration(provision) + { + IpAddressIds = publicIPAddressConfiguration.IPAddressIds != null ? publicIPAddressConfiguration.IPAddressIds.ToList() : null, + }; + } + + internal PublicIPAddressConfiguration toMgmtPublicIPAddressConfiguration() + { + return new PublicIPAddressConfiguration() + { + Provision = Utils.Utils.toMgmtIPAddressProvisioningType(this.Provision), + IPAddressIds = this.IpAddressIds != null ? this.IpAddressIds.ToList() : null, + }; + } + } +} diff --git a/src/Batch/Batch/Models/PSSecurityProfile.cs b/src/Batch/Batch/Models/PSSecurityProfile.cs new file mode 100644 index 000000000000..04efd8cfda28 --- /dev/null +++ b/src/Batch/Batch/Models/PSSecurityProfile.cs @@ -0,0 +1,51 @@ +// ----------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ----------------------------------------------------------------------------- + +using System; +using System.Collections.Generic; +using System.Text; +using Microsoft.Azure.Management.Batch; +using Microsoft.Azure.Management.Batch.Models; +using Microsoft.Azure.Commands.Batch.Utils; +using System.Linq; + +namespace Microsoft.Azure.Commands.Batch.Models +{ + public partial class PSSecurityProfile + { + internal SecurityProfile toMgmtSecurityProfile() + { + return new SecurityProfile() + { + SecurityType = Utils.Utils.ToMgmtSecurityType(this.SecurityType), + EncryptionAtHost = this.EncryptionAtHost, + UefiSettings = this.UefiSettings?.toMgmtUefiSettings(), + }; + } + + internal static PSSecurityProfile fromMgmtSecurityProfile(SecurityProfile securityProfile) + { + if (securityProfile == null) + { + return null; + } + return new PSSecurityProfile() + { + SecurityType = Utils.Utils.fromMgmtSecurityType(securityProfile.SecurityType), + EncryptionAtHost = securityProfile.EncryptionAtHost, + UefiSettings = PSUefiSettings.fromMgmtUefiSettings(securityProfile.UefiSettings), + }; + } + } +} diff --git a/src/Batch/Batch/Models/PSServiceArtifactReference.cs b/src/Batch/Batch/Models/PSServiceArtifactReference.cs new file mode 100644 index 000000000000..90c66d120a11 --- /dev/null +++ b/src/Batch/Batch/Models/PSServiceArtifactReference.cs @@ -0,0 +1,40 @@ +// ----------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ----------------------------------------------------------------------------- + +using System; +using System.Collections.Generic; +using System.Text; +using Microsoft.Azure.Management.Batch; +using Microsoft.Azure.Management.Batch.Models; +using Microsoft.Azure.Commands.Batch.Utils; +using System.Linq; + +namespace Microsoft.Azure.Commands.Batch.Models +{ + public partial class PSServiceArtifactReference + { + internal ServiceArtifactReference toMgmtServiceArtifactReference() + { + return new ServiceArtifactReference(this.Id); + } + + internal static PSServiceArtifactReference fromMgmtServiceArtifactReference(ServiceArtifactReference serviceArtifactReference) + { + if (serviceArtifactReference == null) + { return null; } + + return new PSServiceArtifactReference(serviceArtifactReference.Id); + } + } +} diff --git a/src/Batch/Batch/Models/PSUefiSettings.cs b/src/Batch/Batch/Models/PSUefiSettings.cs new file mode 100644 index 000000000000..3ed745ab34f7 --- /dev/null +++ b/src/Batch/Batch/Models/PSUefiSettings.cs @@ -0,0 +1,51 @@ +// ----------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ----------------------------------------------------------------------------- + +using System; +using System.Collections.Generic; +using System.Text; +using Microsoft.Azure.Management.Batch; +using Microsoft.Azure.Management.Batch.Models; +using Microsoft.Azure.Commands.Batch.Utils; +using System.Linq; + +namespace Microsoft.Azure.Commands.Batch.Models +{ + public partial class PSUefiSettings + { + internal static PSUefiSettings fromMgmtUefiSettings(UefiSettings uefiSettings) + { + if (uefiSettings == null) + { + return null; + } + return new PSUefiSettings() + { + SecureBootEnabled = uefiSettings.SecureBootEnabled, + VTpmEnabled = uefiSettings.VTpmEnabled, + // Add other properties as needed + }; + } + + internal UefiSettings toMgmtUefiSettings() + { + return new UefiSettings() + { + SecureBootEnabled = this.SecureBootEnabled, + VTpmEnabled = this.VTpmEnabled, + // Add other properties as needed + }; + } + } +} diff --git a/src/Batch/Batch/Models/PSUserAccount.cs b/src/Batch/Batch/Models/PSUserAccount.cs new file mode 100644 index 000000000000..1c6195a7ff53 --- /dev/null +++ b/src/Batch/Batch/Models/PSUserAccount.cs @@ -0,0 +1,53 @@ +// ----------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ----------------------------------------------------------------------------- + +using System; +using System.Collections.Generic; +using System.Text; +using System.Xml; +using Microsoft.Azure.Management.Batch; +using Microsoft.Azure.Management.Batch.Models; +using Microsoft.Azure.Commands.Batch.Utils; + +namespace Microsoft.Azure.Commands.Batch.Models +{ + public partial class PSUserAccount + { + internal UserAccount toMgmtUserAccount() + { + return new UserAccount( + name: this.Name, + password: this.Password, + elevationLevel: Utils.Utils.ToMgmtElevationLevel(this.ElevationLevel), + linuxUserConfiguration: (this.LinuxUserConfiguration != null) ? this.LinuxUserConfiguration.ToLinuxUserConfiguration() : null, + windowsUserConfiguration: (this.WindowsUserConfiguration != null) ? this.WindowsUserConfiguration.ToWindowsUserConfiguration() : null + ); + } + + internal static PSUserAccount fromMgmtUserAccount(UserAccount userAccount) + { + if (userAccount == null) + { + return null; + } + return new PSUserAccount( + name: userAccount.Name, + password: userAccount.Password, + elevationLevel: Utils.Utils.FromMgmtElevationLevel(userAccount.ElevationLevel), + linuxUserConfiguration: PSLinuxUserConfiguration.FromLinuxUserConfiguration(userAccount.LinuxUserConfiguration), + windowsUserConfiguration: PSWindowsUserConfiguration.FromWindowsUserConfiguration(userAccount.WindowsUserConfiguration) + ); + } + } +} diff --git a/src/Batch/Batch/Models/PSVMDiskSecurityProfile.cs b/src/Batch/Batch/Models/PSVMDiskSecurityProfile.cs new file mode 100644 index 000000000000..2671b09487af --- /dev/null +++ b/src/Batch/Batch/Models/PSVMDiskSecurityProfile.cs @@ -0,0 +1,47 @@ +// ----------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ----------------------------------------------------------------------------- + +using System; +using System.Collections.Generic; +using System.Text; +using Microsoft.Azure.Management.Batch; +using Microsoft.Azure.Management.Batch.Models; +using Microsoft.Azure.Commands.Batch.Utils; + +namespace Microsoft.Azure.Commands.Batch.Models +{ + public partial class PSVMDiskSecurityProfile + { + internal static PSVMDiskSecurityProfile FromMgmtVMDiskSecurityProfile(VMDiskSecurityProfile securityProfile) + { + if (securityProfile == null) + { + return null; + } + + return new PSVMDiskSecurityProfile() + { + SecurityEncryptionType = securityProfile?.SecurityEncryptionType + }; + } + + internal VMDiskSecurityProfile ToMgmtVMDiskSecurityProfile() + { + return new VMDiskSecurityProfile() + { + SecurityEncryptionType = this.SecurityEncryptionType + }; + } + } +} diff --git a/src/Batch/Batch/Models/PSVMExtension.cs b/src/Batch/Batch/Models/PSVMExtension.cs new file mode 100644 index 000000000000..14391d79a401 --- /dev/null +++ b/src/Batch/Batch/Models/PSVMExtension.cs @@ -0,0 +1,58 @@ +// ----------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ----------------------------------------------------------------------------- + +using System; +using System.Collections.Generic; +using System.Text; +using Microsoft.Azure.Management.Batch; +using Microsoft.Azure.Management.Batch.Models; +using Microsoft.Azure.Commands.Batch.Utils; + +namespace Microsoft.Azure.Commands.Batch.Models +{ + public partial class PSVMExtension + { + internal VMExtension toMgmtVMExtension() + { + return new VMExtension( + name: Name, + publisher: Publisher, + type: Type, + typeHandlerVersion: TypeHandlerVersion, + autoUpgradeMinorVersion: AutoUpgradeMinorVersion, + enableAutomaticUpgrade: EnableAutomaticUpgrade, + settings: Settings, //need to check this one + protectedSettings: ProtectedSettings,//need to check this one + provisionAfterExtensions: ProvisionAfterExtensions + ); + } + + internal static PSVMExtension fromMgmtVMExtension(VMExtension vmExtension) + { + if (vmExtension == null) + { + return null; + } + return new PSVMExtension(name: vmExtension.Name, publisher: vmExtension.Publisher, type: vmExtension.Type) + { + TypeHandlerVersion = vmExtension.TypeHandlerVersion, + AutoUpgradeMinorVersion = vmExtension.AutoUpgradeMinorVersion, + EnableAutomaticUpgrade = vmExtension.EnableAutomaticUpgrade, + Settings = vmExtension.Settings, + ProtectedSettings = vmExtension.ProtectedSettings, + ProvisionAfterExtensions = vmExtension.ProvisionAfterExtensions + }; + } + } +} diff --git a/src/Batch/Batch/Models/PSVirtualMachineConfiguration.cs b/src/Batch/Batch/Models/PSVirtualMachineConfiguration.cs index bda9ff21e267..3f87adb7a884 100644 --- a/src/Batch/Batch/Models/PSVirtualMachineConfiguration.cs +++ b/src/Batch/Batch/Models/PSVirtualMachineConfiguration.cs @@ -35,11 +35,35 @@ internal VirtualMachineConfiguration toMgmtVirtualMachineConfiguration() LicenseType = this.LicenseType, ContainerConfiguration = this.ContainerConfiguration?.toMgmtContainerConfiguration(), DiskEncryptionConfiguration = this.DiskEncryptionConfiguration?.toMgmtDiskEncryptionConfiguration(), - //NodePlacementConfiguration = this.NodePlacementConfiguration?.toMgmtNodePlacementConfiguration(), - //Extensions = this.Extensions?.Select(ext => ext?.toMgmtVMExtension()).ToList(), - //OSDisk = this.OSDisk?.toMgmtOSDisk(), - //SecurityProfile = this.SecurityProfile?.toMgmtSecurityProfile(), - //ServiceArtifactReference = this.ServiceArtifactReference?.toMgmtServiceArtifactReference() + NodePlacementConfiguration = this.NodePlacementConfiguration?.toMgmtNodePlacementConfiguration(), + Extensions = this.Extensions?.Select(ext => ext?.toMgmtVMExtension()).ToList(), + OSDisk = this.OSDisk?.toMgmtOSDisk(), + SecurityProfile = this.SecurityProfile?.toMgmtSecurityProfile(), + ServiceArtifactReference = this.ServiceArtifactReference?.toMgmtServiceArtifactReference() + }; + } + + internal static PSVirtualMachineConfiguration fromMgmtPSVirtualMachineConfiguration(VirtualMachineConfiguration virtualMachineConfiguration) + { + if (virtualMachineConfiguration == null) + { + return null; + } + return new PSVirtualMachineConfiguration( + imageReference: PSImageReference.fromMgmtImageReference(virtualMachineConfiguration.ImageReference), + nodeAgentSkuId: virtualMachineConfiguration.NodeAgentSkuId + ) + { + WindowsConfiguration = PSWindowsConfiguration.fromMgmtWindowsConfiguration(virtualMachineConfiguration.WindowsConfiguration), + DataDisks = (virtualMachineConfiguration.DataDisks != null) ? virtualMachineConfiguration.DataDisks.Select(dd => PSDataDisk.fromMgmtDataDisk(dd)).ToList() : null, + LicenseType = virtualMachineConfiguration.LicenseType, + ContainerConfiguration = PSContainerConfiguration.fromMgmtContainerConfiguration(virtualMachineConfiguration.ContainerConfiguration), + DiskEncryptionConfiguration = PSDiskEncryptionConfiguration.fromMgmtDiskEncryptionConfiguration(virtualMachineConfiguration.DiskEncryptionConfiguration), + NodePlacementConfiguration = PSNodePlacementConfiguration.fromMgmtNodePlacementConfiguration(virtualMachineConfiguration.NodePlacementConfiguration), + Extensions = (virtualMachineConfiguration.Extensions != null) ? virtualMachineConfiguration.Extensions.Select(ext => PSVMExtension.fromMgmtVMExtension(ext)).ToList() : null, + OSDisk = PSOSDisk.fromMgmtOSDisk(virtualMachineConfiguration.OSDisk), + SecurityProfile = PSSecurityProfile.fromMgmtSecurityProfile(virtualMachineConfiguration.SecurityProfile), + ServiceArtifactReference = PSServiceArtifactReference.fromMgmtServiceArtifactReference(virtualMachineConfiguration.ServiceArtifactReference) }; } } diff --git a/src/Batch/Batch/Models/PSWindowsUserConfiguration.cs b/src/Batch/Batch/Models/PSWindowsUserConfiguration.cs new file mode 100644 index 000000000000..d345e1d484ce --- /dev/null +++ b/src/Batch/Batch/Models/PSWindowsUserConfiguration.cs @@ -0,0 +1,47 @@ +// ----------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ----------------------------------------------------------------------------- + +using System; +using System.Collections.Generic; +using System.Text; +using System.Xml; +using Microsoft.Azure.Management.Batch; +using Microsoft.Azure.Management.Batch.Models; +using Microsoft.Azure.Commands.Batch.Utils; + +namespace Microsoft.Azure.Commands.Batch.Models +{ + public partial class PSWindowsUserConfiguration + { + internal WindowsUserConfiguration ToWindowsUserConfiguration() + { + return new WindowsUserConfiguration() + { + LoginMode = Utils.Utils.ToMgmtLoginMode(this.LoginMode) + }; + } + + internal static PSWindowsUserConfiguration FromWindowsUserConfiguration(WindowsUserConfiguration windowsUserConfiguration) + { + if (windowsUserConfiguration == null) + { + return null; + } + return new PSWindowsUserConfiguration() + { + LoginMode = Utils.Utils.FromMgmtLoginMode(windowsUserConfiguration.LoginMode) + }; + } + } +} diff --git a/src/Batch/Batch/Utils/Utils.cs b/src/Batch/Batch/Utils/Utils.cs index 9acc9ce74b8b..edf0ff59c74b 100644 --- a/src/Batch/Batch/Utils/Utils.cs +++ b/src/Batch/Batch/Utils/Utils.cs @@ -714,5 +714,136 @@ internal static Azure.Batch.Common.DiskEncryptionTarget fromMgmtDiskEncryptionTa { return (Azure.Batch.Common.DiskEncryptionTarget)md; } + + internal static NodePlacementPolicyType? toMgmtNodePlacementPolicyType(Azure.Batch.Common.NodePlacementPolicyType? policy) + { + return (NodePlacementPolicyType?)policy; + } + + internal static Azure.Batch.Common.NodePlacementPolicyType? fromMgmtNodePlacementPolicyType(NodePlacementPolicyType? policy) + { + return (Azure.Batch.Common.NodePlacementPolicyType?)policy; + } + + internal static StorageAccountType? ToMgmtStorageAccountType(Azure.Batch.Common.StorageAccountType? storageAccountType) + { + return (StorageAccountType?)storageAccountType; + } + + internal static Azure.Batch.Common.StorageAccountType? FromMgmtStorageAccountType(StorageAccountType? storageAccountType) + { + return (Azure.Batch.Common.StorageAccountType?)storageAccountType; + } + + internal static Azure.Batch.Common.DiffDiskPlacement? FromMgmtPlacement(DiffDiskPlacement? placement) + { + return (Azure.Batch.Common.DiffDiskPlacement?)placement; + } + + internal static DiffDiskPlacement? ToMgmtPlacement(Azure.Batch.Common.DiffDiskPlacement? placement) + { + return (DiffDiskPlacement?)placement; + } + + internal static SecurityTypes? ToMgmtSecurityType(Azure.Batch.Common.SecurityTypes? securityType) + { + if (!securityType.HasValue) + { + return null; + } + return (SecurityTypes?)securityType; + } + + internal static Azure.Batch.Common.SecurityTypes? fromMgmtSecurityType(SecurityTypes? securityType) + { + if (!securityType.HasValue) { + return null; + } + return (Azure.Batch.Common.SecurityTypes?)securityType; + } + + internal static Azure.Batch.Common.IPAddressProvisioningType? toIPAddressProvisioningType(IPAddressProvisioningType? provision) + { + if (!provision.HasValue) + { + return null; + } + return (Azure.Batch.Common.IPAddressProvisioningType)provision; + } + + internal static IPAddressProvisioningType? toMgmtIPAddressProvisioningType(Azure.Batch.Common.IPAddressProvisioningType? provision) + { + if (!provision.HasValue) { + return null; + } + return (IPAddressProvisioningType)provision; + } + + internal static DynamicVNetAssignmentScope? toMgmtDynamicVNetAssignmentScope(Azure.Batch.Common.DynamicVNetAssignmentScope? dynamicVNetAssignmentScope) + { + if (!dynamicVNetAssignmentScope.HasValue) + { + return null; + } + return (DynamicVNetAssignmentScope)dynamicVNetAssignmentScope; + } + + internal static Azure.Batch.Common.DynamicVNetAssignmentScope? fromMgmtDynamicVNetAssignmentScope(DynamicVNetAssignmentScope? dynamicVnetAssignmentScope) + { + if (!dynamicVnetAssignmentScope.HasValue) { + return null; + } + return (Azure.Batch.Common.DynamicVNetAssignmentScope)dynamicVnetAssignmentScope; + } + + internal static InboundEndpointProtocol ToMgmtInboundEndpointProtocol(Azure.Batch.Common.InboundEndpointProtocol protocol) + { + return (InboundEndpointProtocol)protocol; + } + + internal static Azure.Batch.Common.InboundEndpointProtocol FromMgmtInboundEndpointProtocol(InboundEndpointProtocol protocol) + { + return (Azure.Batch.Common.InboundEndpointProtocol)protocol; + } + + internal static NetworkSecurityGroupRuleAccess ToMgmtNetworkSecurityRuleAccess(Azure.Batch.Common.NetworkSecurityGroupRuleAccess access) + { + return (NetworkSecurityGroupRuleAccess)access; + } + + internal static Microsoft.Azure.Batch.Common.NetworkSecurityGroupRuleAccess FromMgmtNetworkSecurityRuleAccess(NetworkSecurityGroupRuleAccess access) + { + return (Microsoft.Azure.Batch.Common.NetworkSecurityGroupRuleAccess)access; + } + + internal static ElevationLevel? ToMgmtElevationLevel(Azure.Batch.Common.ElevationLevel? elevationLevel) + { + return (ElevationLevel?)elevationLevel; + } + + internal static Azure.Batch.Common.ElevationLevel? FromMgmtElevationLevel(ElevationLevel? elevationLevel) + { + return (Azure.Batch.Common.ElevationLevel?)elevationLevel; + } + + internal static LoginMode? ToMgmtLoginMode(Azure.Batch.Common.LoginMode? loginMode) + { + return (LoginMode?)loginMode; + } + + internal static Azure.Batch.Common.LoginMode? FromMgmtLoginMode(LoginMode? loginMode) + { + return (Azure.Batch.Common.LoginMode?)loginMode; + } + + internal static Azure.Batch.Common.AllocationState? ToPSAllocationState(AllocationState? allocationState) + { + return (Azure.Batch.Common.AllocationState?)allocationState; + } + + internal static AllocationState? FromPSAllocationState(Azure.Batch.Common.AllocationState? allocationState) + { + return (AllocationState?)allocationState; + } } } \ No newline at end of file